Modelsim仿真注意

使用Modelsim直接仿真应该注意以下几个问题:

(1)分别建立rtl、sim和tb三个文件夹,在rtl中放入顶层.v文件,在sim中放入glbl.v和sim_tb_top.do文件,

其中glbl.v中内容为:

`timescale  1 ps / 1 ps


module glbl ();
    parameter ROC_WIDTH = 100000;
    parameter TOC_WIDTH = 0;

//--------   STARTUP Globals --------------
    wire GSR;
    wire GTS;
    wire GWE;
    wire PRLD;
    tri1 p_up_tmp;
    tri (weak1, strong0) PLL_LOCKG = p_up_tmp;

    reg GSR_int;
    reg GTS_int;
    reg PRLD_int;

//--------   JTAG Globals --------------
    wire JTAG_TDO_GLBL;
    wire JTAG_TCK_GLBL;
    wire JTAG_TDI_GLBL;
    wire JTAG_TMS_GLBL;
    wire JTAG_TRST_GLBL;

    reg JTAG_CAPTURE_GLBL;
    reg JTAG_RESET_GLBL;
    reg JTAG_SHIFT_GLBL;
    reg JTAG_UPDATE_GLBL;
    reg JTAG_RUNTEST_GLBL;

    reg JTAG_SEL1_GLBL = 0;
    reg JTAG_SEL2_GLBL = 0 ;
    reg JTAG_SEL3_GLBL = 0;
    reg JTAG_SEL4_GLBL = 0;

    reg JTAG_USER_TDO1_GLBL = 1'bz;
    reg JTAG_USER_TDO2_GLBL = 1'bz;
    reg JTAG_USER_TDO3_GLBL = 1'bz;
    reg JTAG_USER_TDO4_GLBL = 1'bz;

    assign (weak1, weak0) GSR = GSR_int;
    assign (weak1, weak0) GTS = GTS_int;
    assign (weak1, weak0) PRLD = PRLD_int;

    initial begin
GSR_int = 1'b1;
PRLD_int = 1'b1;
#(ROC_WIDTH)
GSR_int = 1'b0;
PRLD_int = 1'b0;
    end

    initial begin
GTS_int = 1'b1;
#(TOC_WIDTH)
GTS_int = 1'b0;
    end
endmodule

sim_tb_top.do内容为:

vlib work


vlog ../tb/*.v
vlog ../sim/glbl.v

vlog ../rtl/*.v

vsim -t ps -novopt +notimingchecks -L xilinxcorelib_ver -L unisims_ver work.sim_tb_top glbl -do wave.do
#vsim -t ps -novopt +notimingchecks -L xilinxcorelib_ver -L unisims_ver work.sim_tb_top glbl

tb文件夹中放入sim_tb_top testbench文件。

(2)Modelsim操作

cd D:/modeltech_10.1c/zp_test_2/zp_test/sim(注意:斜杠为/)

do sim_tb_top.do

运行之后弹出Modelsim仿真框,加入想要查看的信号即可进行仿真。




版权声明:本文为yundanfengqing_nuc原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。