blob: 297a86a7923bed4fa3d4e7ec045d0d2e5085e850 [file] [log] [blame]
#!/bin/bash
#
# Usage example:
# bash lm32/sim/xilinx.sh
# bash scripts/sim_rtl.sh lm32
# cmp lm32/gen/sim_rtl.out lm32/gen/xilinx.out
set -ex
mkdir -p lm32/gen/
yosys -l lm32/gen/xilinx.log -v2 <<EOT
read_verilog lm32/rtl/lm32_adder.v
read_verilog lm32/rtl/lm32_addsub.v
read_verilog lm32/rtl/lm32_cpu.v
read_verilog lm32/rtl/lm32_dcache.v
read_verilog lm32/rtl/lm32_debug.v
read_verilog lm32/rtl/lm32_decoder.v
read_verilog lm32/rtl/lm32_dp_ram.v
read_verilog lm32/rtl/lm32_dtlb.v
read_verilog lm32/rtl/lm32_icache.v
read_verilog lm32/rtl/lm32_instruction_unit.v
read_verilog lm32/rtl/lm32_interrupt.v
read_verilog lm32/rtl/lm32_itlb.v
read_verilog lm32/rtl/lm32_jtag.v
read_verilog lm32/rtl/lm32_load_store_unit.v
read_verilog lm32/rtl/lm32_logic_op.v
read_verilog lm32/rtl/lm32_mc_arithmetic.v
read_verilog lm32/rtl/lm32_multiplier.v
read_verilog lm32/rtl/lm32_ram.v
read_verilog lm32/rtl/lm32_shifter.v
read_verilog lm32/rtl/lm32_top.v
synth_xilinx -top lm32_top
tee -o /dev/stdout stat
write_verilog -noexpr -noattr lm32/gen/xilinx.v
EOT
unisims=/opt/Xilinx/Vivado/2014.4/data/verilog/src/unisims
iverilog -o lm32/gen/xilinx_tb -Ilm32/rtl lm32/gen/xilinx.v lm32/sim/tb_lm32_system.v \
$(yosys-config --datdir/xilinx/cells_sim.v) $unisims/../glbl.v -y$unisims
vvp -n -l lm32/gen/xilinx.out lm32/gen/xilinx_tb