主页: fstor-CSDN博客
项目场景:
项目场景:
问题描述
提示:这里描述项目中遇到的问题:
gtkwave 卡顿, 几十秒都不反应, 体验很差。
# 3.运行
vvp_cmd = [r'vvp']
vvp_cmd.append(r'out.vvp')
process = subprocess.Popen(vvp_cmd)
原因分析:
gtkwave,icarus支持vcd,lxt,lxt2 dump.
vcd通用但vcd dump太大,gtkwave不能很好的查看波形,导致崩溃。
解决方案:
步骤一:
官方建议: VVP Command Line Flags — Icarus Verilog documentation
-fst
Generate FST format outputs instead of VCD format waveform dumps. This is the preferred output format if using GTKWave for viewing waveforms.
# 3.运行
vvp_cmd = [r'vvp']
vvp_cmd.append(r'out.vvp')
vvp_cmd.append(r'-fst')
process = subprocess.Popen(vvp_cmd)
因为我是调用线程打开 vvp, 所以按上面的写法。
如果直接在终端执行直接:
vvp out.vvp -fst
感觉卡顿改善了不少, 但响应还是有点慢, 可能是文件较大或是电脑配置不行。内存占用
步骤二:
将 GTkWave.exe 应用优先级设更高, 默认是 Normal 优先级。
打开 “任务管理器”。
找到 gtkwave.exe
原本默认优先级是“正常”, 改完“高于正常” 就可以了。一般不需要设为实时或高, 这可能会导致 windows 不正常。
步骤三:
但任务管理器手动设置优先级后,下次重打开 gtkwave 就会恢复成正常优先级, 有没有一劳永逸的办法,还真有。
控制台自动执行
wmic process where name="gtkwave.exe" CALL setpriority "Above normal"
可以加在 bat 文件里, 自动批处理执行编译、仿真、查看波形、设置优先级
cd D:\soft\tinyriscv\tests\example\simple
make
cd D:\soft\tinyriscv\sim
python .\sim_new_nowave.py ..\tests\example\simple\simple.bin inst.data
cd D:\soft\tinyriscv
gtkwave \sim\tinyriscv_soc_tb.fst
wmic process where name="gtkwave.exe" CALL setpriority "Above normal"
cd D:\soft\tinyriscv
参考: