module TestFile
reg clk
wire[1:0] m
wire[2:0] n
gen_data aabb(clk,m,n)
initial
begin
clk = 0
end
always #100 clk = ~clk
endmodule
以下 *** 作在ModelSim SE PLUS 6.2b中完成1.新建一个工程 file ->new ->project... 此时会d出一个Creat Project对话框,输入一个工程名,选择保存路径 (不要包含中文),其他默认就行了
2.点OK后会d喊段猛出一个Add items to the Project,里面有几个可选项,应该燃桐很容易明白
3.添加好文件后,点郑桥close把Add items to the Project对话框关闭,这时在左侧的workspace的project窗口里可以看到刚才添加的文件,双击可以打开这些文件进行编辑,编辑好后保存
4.右击刚才编辑好的文件compile ->compile select(或根据自己需要选其他项),如果没有错误,则在底部的命令窗口可以看到编译成功的消息(呈绿色),否则会出现出错的消息(呈红色),双击它会d出一个更具体的窗口提示你出错的地方.
5.修改所有错误直到编译成功.这时可以在菜单栏选择Simulation ->Start simulatio... 这时会d出一个Start simulatio的对话框,在Design的标签下你会看到有很多库,展开work库会看到刚才编译成功的文件(如果有多个文件的话选择一个你想仿真的,比如测试程序,这时底部的OK会由刚才的不可用变成可用的),然后把Opitimization选项下的Enable opitimization前复选取消(这样可以保证过会儿所有的输入输出都可以看到,你可以试试不取消这项有何区别),然后点OK就行了.
6.选择view ->Objects就可以看到你想仿真的各个量,选中它们并右击Add to wave ->Selected signals,这时就会d出一个波形仿真窗口.如果你的测试文件写得没问题的话就可以看到仿真波形,你也可以观察底部的命令窗口察看相关信息.
7.如果没写测试文件的话,在波形仿真窗口右击相关信号,选择force...设置想仿真的值或clock...把该量设置为时钟,然后点工具栏上的Run或Simulation菜单下的Run.
首先,在测试模块下,你的输入时钟为clk_in,而不是clk,所以应该把 clk = ~clk;替换为clk_in=~clk_in在哗穗友initial下把clk=0改成clk_in=0;另外,在modelsim下创建testbench的时候,由source——>show language templates可以得到测试模族橡块的模板,只需对输入进行定义和初始化,以下是我做修改后在modelsim6.2下的测试模块的程序:
`timescale 1ns/100ps
`define clk_cycle 50
module half_clk_tb
reg clk_in
wire clk_out
reg reset
always #`clk_cycle clk_in = ~clk_in
initial
begin
clk_in = 0
reset = 1
#100 reset = 0
#100 reset = 1
#10000 乱槐$stop
end
half_clk
half_clk (
.clk_in (clk_in ) ,
.clk_out (clk_out ) ,
.reset (reset ) )
endmodule
以下插图是我仿真后的结果:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)