| #!/bin/bash | |
| set -ex | |
| sed 's/DSP48E1/DSP48E1_UUT/; /DSP48E1_UUT/,/endmodule/ p; d;' < ../cells_sim.v > test_dsp_model_uut.v | |
| if [ ! -f "test_dsp_model_ref.v" ]; then | |
| cat /opt/Xilinx/Vivado/2019.1/data/verilog/src/unisims/DSP48E1.v > test_dsp_model_ref.v | |
| fi | |
| for tb in macc_overflow_underflow \ | |
| simd24_preadd_noreg_nocasc simd12_preadd_noreg_nocasc \ | |
| mult_allreg_nopreadd_nocasc mult_noreg_nopreadd_nocasc \ | |
| mult_allreg_preadd_nocasc mult_noreg_preadd_nocasc mult_inreg_preadd_nocasc | |
| do | |
| iverilog -s $tb -s glbl -o test_dsp_model test_dsp_model.v test_dsp_model_uut.v test_dsp_model_ref.v /opt/Xilinx/Vivado/2019.1/data/verilog/src/glbl.v | |
| vvp -N ./test_dsp_model | |
| done |