verilog stop什么用

verilog stop什么用,第1张

$stop用于在仿真时,暂停仿真。运行到$stop的时候,仿真会暂停;此时可以在命令行输入run继续运行仿真。

与此对应有一个$finish,这个是仿真停止。运行到$finish的时候,仿真停止退出,此时不可以再继续运行了。

有一个简单的办法,就是用disable语句,它可以kill进程也可以kill task,如果是kill task 那么在该task里面衍生的所有进程都会被kill。

task a(ref bit kill_en);

fork:error_chk

begin

.....error check processing

end

begin

wait(kill_en == 1'b1)

disable a////kill this task a, and this will kill all the threads spawned in this task.

end

join_none

endtask

task b(ref bit kill_en)

kill_en = 1'b0

......

if(satisfy kill condition)

kill_en = 1'b1

......

endtask

....

bit kill_en = 0

task a(kill_en)

task 1..2 ...3...

task b(kill_en)

.......

按一下步骤进行

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.


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8004280.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-12
下一篇2023-04-12

发表评论

登录后才能评论

评论列表(0条)

    保存