Merge runsimsoc2.sh into runsimsoc.sh
[gram.git] / gram / simulation / runsimsoc.sh
1 #!/bin/bash
2 set -e
3
4 # Check for presence of the Diamond ECP5 verilog model files
5 LIB_DIR=./ecp5u
6 if [ ! -d "$LIB_DIR" ]; then
7 LIB_DIR=/usr/local/diamond/3.11_x64/ispfpga/verilog/data/ecp5u
8 if [ ! -d "$LIB_DIR" ]; then
9 echo "Error: Could not find the ECP5 verilog models." >&2
10 echo >&2
11 echo "Please either install Diamond (in /usr/local), " >&2
12 echo "or copy its ecp5u directory ($LIB_DIR) here." >&2
13 exit 1
14 fi
15 fi
16
17 python3 simsoc.py
18 yosys simsoc.ys
19 cp ${LIB_DIR}/DDRDLLA.v DDRDLLA.v
20 patch DDRDLLA.v < DDRDLLA.patch
21 iverilog -Wall -g2012 -s simsoctb -o simsoc simsoctb.v build_simsoc/top.v dram_model/ddr3.v ${LIB_DIR}/ECLKSYNCB.v ${LIB_DIR}/EHXPLLL.v ${LIB_DIR}/PUR.v ${LIB_DIR}/GSR.v \
22 ${LIB_DIR}/FD1S3AX.v ${LIB_DIR}/SGSR.v ${LIB_DIR}/ODDRX2F.v ${LIB_DIR}/ODDRX2DQA.v ${LIB_DIR}/DELAYF.v ${LIB_DIR}/BB.v ${LIB_DIR}/OB.v ${LIB_DIR}/IB.v \
23 ${LIB_DIR}/DQSBUFM.v ${LIB_DIR}/UDFDL5_UDP_X.v ${LIB_DIR}/TSHX2DQSA.v ${LIB_DIR}/TSHX2DQA.v ${LIB_DIR}/ODDRX2DQSB.v ${LIB_DIR}/IDDRX2DQA.v DDRDLLA.v \
24 ${LIB_DIR}/CLKDIVF.v
25 vvp -n simsoc -fst-speed