1. 编译xilinx IP的库
- 这部分在网上有很多教程,也可查看高亚军《vivado从此开始》4.1.2小节。
2. 构建仿真元素
2.1 创建工程
2.2 编写RTL代码、添加IP
2.3 搭建 testbench
2.4 编写脚本文件 [重点]
- 和altera的IP仿真类似,不过xilinx是单独把需要仿真用到的IP添加进来。可以通过查阅proj.srcs/sources_1/ip/ip_name/sim/IP.v文件,查看该IP仿真所需的IP类型和版本。
- 在仿真命令中使用 -L 将所需的IP库添加到仿真的工程中。
quit -sim
.main clear
vlib work
vmap work work
vlog ./../*.srcs/sources_1/new/OC.v
# 编译源文件
vlog ./../*.srcs/sources_1/find_init_ref.v
vlog ./../*.srcs/sources_1/code_density_init.v
vlog ./../*.srcs/sources_1/find_alter_ref.v
vlog ./../*.srcs/sources_1/code_density_alter.v
vlog ./../*.srcs/sources_1/kind_judge.v
vlog ./../*.srcs/sources_1/new/kind_judge_aver.v
vlog ./../*.srcs/sources_1/edge_gen.v
vlog ./../*.srcs/sources_1/kind_judge_upload.v
# 编译IP文件
vlog ./../*.srcs/sources_1/ip/Fxx_ram/sim/*.v
vlog ./../*.srcs/sources_1/ip/clk_need_update_ref_ram/sim/*.v
vlog ./../*.srcs/sources_1/ip/kind_judge_aver_fifo/sim/*.v
vlog ./../*.srcs/sources_1/ip/kind_judge_fifo/sim/*.v
vlog ./../*.srcs/sources_1/ip/edge_mem/sim/*.v
# 编译 testbench
vlog ./OC_tb.v
# 开始仿真 注意需要连接 xilinx 的IP库
vsim -L D:/Questasim/Questasim_xlib/blk_mem_gen_v8_4_2 -L D:/Questasim/Questasim_xlib/fifo_generator_v13_2_3 -t ns -voptargs=+acc work.OC_tb
add wave -divider {tb}
add wave -radix unsigned OC_tb/*
add wave -divider {find_alter_ref_inst}
# add wave -radix unsigned OC_tb/OC_dut/find_init_ref_inst/*
# add wave -radix unsigned OC_tb/OC_dut/code_density_init_inst/*
add wave -radix unsigned OC_tb/OC_dut/find_alter_ref_inst/*
# add wave -divider {inst}
# add wave -radix unsigned OC_tb/OC_dut/*
# run 1us
run -all