破天荒 · 2022年12月13日 · 浙江

modelsim自动化独立仿真(带xilinx ip)

modelsim自动化独立仿真

关键字:

do文件的写法启动仿真独立仿真信号添加

所需文件及其作用:

为简化流程,一共需要三个文件,sim.bat文件,sim.do文件和wave.do文件;

  • sim.bat:windows批处理文件,用于启动modelsim,然后运行sim.do文件;

    modelsim -do sim.do 

    注意:modelsim在安装的时候需要加入到环境变量。

  • sim.do: 自动化仿真脚本,语法是TCL,负责新建库,映射库,编译源文件,添加波形,启动仿真......

    cd {D:/xxx/FPGA Demo/Xilinx FPGA/DDR_TEST/sim/tb_ddr_rw_user}
    
    quit -sim  
    .main clear
    
    vlib ./modelsim_lib
    vlib ./modelsim_lib/work
    vlib ./modelsim_lib/msim
    vlib ./modelsim_lib/msim/xil_defaultlib
    
    vmap xil_defaultlib ./modelsim_lib/msim/xil_defaultlib
    
    set SOURCE_HOME {D:/xxx/FPGA Demo/Xilinx FPGA/DDR_TEST}
     
    vcom -64 -93 -work xil_defaultlib $SOURCE_HOME/src/ip/ddr_mult/sim/ddr_mult.vhd
    
    vlog -64 -incr -work xil_defaultlib  +incdir+$SOURCE_HOME/src/ip/ddr4_0/ip_1/rtl/map +incdir+$SOURCE_HOME/src/ip/ddr4_0/rtl/ip_top +incdir+$SOURCE_HOME/src/ip/ddr4_0/rtl/cal    \
    $SOURCE_HOME/sim/tb_ddr_rw_user/tb_ddr_rw_user.v \
    $SOURCE_HOME/sim/tb_ddr_rw_user/ddr4_mem.v \
    $SOURCE_HOME/src/ddr_rw_user/ddr_rw_test.v \
    $SOURCE_HOME/src/ddr_rw_user/ddr_rw_user.v \
    $SOURCE_HOME/src/ip/ddr2data/sim/ddr2data.v \
    $SOURCE_HOME/src/ip/ddr2data/simulation/blk_mem_gen_v8_4.v \
    $SOURCE_HOME/src/ip/data2ddr/sim/data2ddr.v \
    $SOURCE_HOME/src/ip/data2ddr/simulation/blk_mem_gen_v8_4.v \
    
    # compile glbl module
    # vlog -work xil_defaultlib "glbl.v"
    
    
    vsim -t ns -voptargs=+acc xil_defaultlib.tb_ddr_rw_user  
    
    set NumericStdNoWarnings 1
    set StdArithNoWarnings 1
    
    do {wave.do}
    
    view wave
    view structure
    view signals
    
    run 800 ms
  • wave.do: 仿真结果的波形信号显示等设置,包括信号名,颜色,进制等信息,最好是先仿真一遍设置好之后直接用modelsim保存;

    onerror {resume}
    quietly WaveActivateNextPane {} 0
    add wave -divider {tb_ddr_rw_user}   
    add wave -noupdate /tb_ddr_rw_user/clk
    add wave -noupdate /tb_ddr_rw_user/rst
    add wave -noupdate /tb_ddr_rw_user/clk_153p6
    add wave -noupdate /tb_ddr_rw_user/rst_153p6
    add wave -noupdate /tb_ddr_rw_user/clk_245p76
    add wave -noupdate /tb_ddr_rw_user/rst_245p76
    add wave -noupdate /tb_ddr_rw_user/app_rdy
    add wave -noupdate /tb_ddr_rw_user/app_en
    add wave -noupdate /tb_ddr_rw_user/app_cmd
    add wave -noupdate /tb_ddr_rw_user/app_addr
    add wave -noupdate /tb_ddr_rw_user/app_wdf_wren
    add wave -noupdate /tb_ddr_rw_user/app_wdf_end
    add wave -noupdate /tb_ddr_rw_user/app_wdf_data
    add wave -noupdate /tb_ddr_rw_user/app_wdf_mask
    add wave -noupdate /tb_ddr_rw_user/app_wdf_rdy
    add wave -noupdate /tb_ddr_rw_user/app_rd_data_valid
    add wave -noupdate /tb_ddr_rw_user/app_rd_data_end
    add wave -noupdate /tb_ddr_rw_user/app_rd_data
    add wave -noupdate /tb_ddr_rw_user/init_calib_complete
    ...
    ...
    ...
    TreeUpdate [SetDefaultTree]
    WaveRestoreCursors {{Cursor 1} {92268318000 ps} 0}
    quietly wave cursor active 1
    configure wave -namecolwidth 183
    configure wave -valuecolwidth 100
    configure wave -justifyvalue left
    configure wave -signalnamewidth 1
    configure wave -snapdistance 10
    configure wave -datasetprefix 0
    configure wave -rowmargin 4
    configure wave -childrowmargin 2
    configure wave -gridoffset 0
    configure wave -gridperiod 1
    configure wave -griddelta 40
    configure wave -timeline 0
    configure wave -timelineunits ns
    update
    WaveRestoreZoom {0 ps} {189070505374 ps}

    modelsim仿真完成,波形参数设置好之后,直接ctrl+S快捷键保存,或者使用File -> Save Format进行保存;

推荐阅读
关注数
9
文章数
6
FPGA攻城狮一枚~
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息