一個簡單的 Verilog Testbench 不一定要實體化某個 module,如果只是使用 $display or $monitor 顯示一些訊息也不一定要產生 VCD 檔案。
使用方式
使用 UltraEdit 開啟任意一個 TestBench 檔案,檔名格式為 XXX_tb.v
副檔名不一定要 .v,只是一般習慣這樣命名。
最重要的是 %p %n %e 都用小寫,大寫是 "8.3" short filename for DOS(用了快 20 年的 UltraEdit,我也是直到今天才知道XD)。
我的 Windows Batch 會去做上述檢查並決定是否要呼叫 GTKWave。
Windows Batch
@echo off
SET OUTPUT=wave
SET OUTPUT_VCD=wave.vcd
IF EXIST "%OUTPUT%" (
del /Q %OUTPUT%
)
IF EXIST "%OUTPUT_VCD%" (
del /Q %OUTPUT_VCD%
)
SET MODULE_TB=%1
SET MODULE_TMP=%MODULE_TB:_tb=%
echo %MODULE_TB%
echo %MODULE_TMP%
echo.
IF EXIST %MODULE_TMP% (
SET MODULE=%MODULE_TMP%
)
iverilog -o %OUTPUT% %MODULE_TB% %MODULE%
IF NOT "%ERRORLEVEL%" == "0" (
echo.
pause
goto END
)
vvp -n %OUTPUT% -lxt2
IF NOT EXIST %OUTPUT_VCD% (
goto END
)
start gtkwave %OUTPUT_VCD%
:END
echo.
沒有留言:
張貼留言