-
Notifications
You must be signed in to change notification settings - Fork 519
/
Copy pathinit.sh
executable file
·122 lines (103 loc) · 5.12 KB
/
init.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
#!/bin/bash
# Amazon FPGA Hardware Development Kit
#
# Copyright 2016 Amazon.com, Inc. or its affiliates. All Rights Reserved.
#
# Licensed under the Amazon Software License (the "License"). You may not use
# this file except in compliance with the License. A copy of the License is
# located at
#
# http://aws.amazon.com/asl/
#
# or in the "license" file accompanying this file. This file is distributed on
# an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, express or
# implied. See the License for the specific language governing permissions and
# limitations under the License.
if [[ ":$HDK_COMMON_DIR" == ":" ]]; then
echo "ERROR: HDK_COMMON_DIR not set. Source hdk_setup.sh first."
exit 2
fi
if [[ ":$VIVADO_VER" == ":" ]]; then
echo "ERROR: VIVADO_VER not set. Source hdk_setup.sh first."
exit 2
fi
models_dir=$1
if [[ ":$models_dir" == ":" ]]; then
models_dir=$HDK_COMMON_DIR/verif/models
fi
if [ ! -e $models_dir ]; then
mkdir -p $models_dir
fi
lockfile_filename=$models_dir/build.lock
# Prevent multiple users from building in the same directory.
# Set the number of retries to 0 so that we will just fail
# and let the other process complete the build.
if [ -e $lockfile_filename ]; then
echo "ERROR: $lockfile_filename exists"
echo "ERROR: Another process is already building the models."
exit 2
else
touch $lockfile_filename
fi
echo "$VIVADO_VER" > $models_dir/.vivado_version
if ! vivado -mode batch -source $HDK_COMMON_DIR/verif/scripts/init.tcl; then
rm -f $lockfile_filename
exit 2
fi
ddr4_imports_dir=tmp/tmp_ddr_ex/ddr4_core_ex/imports
ddr4_model_dir=$models_dir/ddr4_model
ddr4_rdimm_model_dir=$models_dir/ddr4_rdimm_wrapper
if [ ! -d $ddr4_model_dir ]; then mkdir -p $ddr4_model_dir; fi
if [ ! -d $ddr4_rdimm_model_dir ]; then mkdir -p $ddr4_rdimm_model_dir; fi
echo "Copying files to $ddr4_model_dir"
cp $ddr4_imports_dir/arch_defines.v $ddr4_model_dir/
cp $ddr4_imports_dir/arch_package.sv $ddr4_model_dir/
cp $ddr4_imports_dir/ddr4_model.sv $ddr4_model_dir/
cp $ddr4_imports_dir/ddr4_sdram_model_wrapper.sv $ddr4_model_dir/
#cp $ddr4_imports_dir/dimm_interface.sv $ddr4_model_dir/
#cp $ddr4_imports_dir/dimm_subtest.vh $ddr4_model_dir/
#cp $ddr4_imports_dir/dimm.vh $ddr4_model_dir/
cp $ddr4_imports_dir/interface.sv $ddr4_model_dir/
cp $ddr4_imports_dir/MemoryArray.sv $ddr4_model_dir/
cp $ddr4_imports_dir/proj_package.sv $ddr4_model_dir/
cp $ddr4_imports_dir/StateTableCore.sv $ddr4_model_dir/
cp $ddr4_imports_dir/StateTable.sv $ddr4_model_dir/
#cp $ddr4_imports_dir/subtest.vh $ddr4_model_dir/
cp $ddr4_imports_dir/timing_tasks.sv $ddr4_model_dir/
echo "Copying files to $ddr4_rdimm_model_dir"
cp $ddr4_imports_dir/ddr4_bi_delay.sv $ddr4_rdimm_model_dir/
cp $ddr4_imports_dir/ddr4_db_delay_model.sv $ddr4_rdimm_model_dir/
cp $ddr4_imports_dir/ddr4_db_dly_dir.sv $ddr4_rdimm_model_dir/
cp $ddr4_imports_dir/ddr4_dimm.sv $ddr4_rdimm_model_dir/
cp $ddr4_imports_dir/ddr4_dir_detect.sv $ddr4_rdimm_model_dir/
cp $ddr4_imports_dir/ddr4_rank.sv $ddr4_rdimm_model_dir/
cp $ddr4_imports_dir/ddr4_rcd_model.sv $ddr4_rdimm_model_dir/
cp $ddr4_imports_dir/ddr4_rdimm_wrapper.sv $ddr4_rdimm_model_dir/
echo "patching ddr4_rdimm_wrapper.sv file"
sed -i s/_4G/_8G/g $ddr4_rdimm_model_dir/ddr4_rdimm_wrapper.sv
sed -i -e 's/\/\/\LRDIMM/\: LRDIMM/g' $ddr4_rdimm_model_dir/ddr4_rdimm_wrapper.sv
sed -i -e 's/\/\/\!LRDIMM/\: NOT_LRDIMM/g' $ddr4_rdimm_model_dir/ddr4_rdimm_wrapper.sv
echo "patching ddr4_sdram_model_wrapper.sv file"
sed -i '/`include "arch_package.sv"/d' $ddr4_model_dir/ddr4_sdram_model_wrapper.sv
sed -i '/`include "proj_package.sv"/d' $ddr4_model_dir/ddr4_sdram_model_wrapper.sv
sed -i '/`include "interface.sv"/d' $ddr4_model_dir/ddr4_sdram_model_wrapper.sv
sed -i '/`include "ddr4_model.sv"/d' $ddr4_model_dir/ddr4_sdram_model_wrapper.sv
echo "\`include \"arch_package.sv\"" >> $ddr4_model_dir/ddr4_sdram_model_wrapper.sv
echo "\`include \"proj_package.sv\"" >> $ddr4_model_dir/ddr4_sdram_model_wrapper.sv
echo "\`include \"interface.sv\"" >> $ddr4_model_dir/ddr4_sdram_model_wrapper.sv
echo "\`include \"ddr4_model.sv\"" >> $ddr4_model_dir/ddr4_sdram_model_wrapper.sv
echo "patching interface.sv file"
sed -i '/`include "ddr4_sdram_model_wrapper.sv"/d' $ddr4_model_dir/interface.sv
sed -i '2i`ifndef DDR4_INT_DEF' $ddr4_model_dir/interface.sv
sed -i '3i `define DDR4_INT_DEF' $ddr4_model_dir/interface.sv
sed -i '$a`endif' $ddr4_model_dir/interface.sv
echo "patching proj_package.sv file"
sed -i '/`include "ddr4_sdram_model_wrapper.sv"/d' $ddr4_model_dir/proj_package.sv
sed -i '2i`ifndef DDR4_PROJ_PKG' $ddr4_model_dir/proj_package.sv
sed -i '3i `define DDR4_PROJ_PKG' $ddr4_model_dir/proj_package.sv
sed -i '$a`endif' $ddr4_model_dir/proj_package.sv
echo "patching ddr4_model.sv file"
sed -i '1i`ifndef DDR4_MODEL_DEF' $ddr4_model_dir/ddr4_model.sv
sed -i '2i `define DDR4_MODEL_DEF' $ddr4_model_dir/ddr4_model.sv
sed -i '$a`endif' $ddr4_model_dir/ddr4_model.sv
rm -f $lockfile_filename