verilog
digital design
邏輯設計
邏設
在寫完程式碼之後,勢必要測試它是否正確,而 testbench (簡稱 tb)就是用來幫助我們測試我們的程式是否有誤的方法。
testbench 基本上也是一個 verilog 檔案( .v ),所以裡面也是由一個 module 組成,不同的地方在於,一般 verilog 檔案會燒進電路板裡,而 testbench 只是讓我們在電腦模擬的檔案罷了。因此,可以用一些方便的工具執行,例如, for 迴圈、integer…等。
這裡介紹一種最簡單的模板供大家使用,有興趣的,可以再自己深入研究。
首先,我們必須觀察我們寫好的 verilog 檔,判斷哪些是 input ,哪些是 output。
舉例來說:
由此範例可得, input 為 din,而 output 為 dout。
剛剛說過,tb 也是一個 verilog 檔案,所以起手式都一樣。
接著要呼叫我們剛剛寫好的程式碼(呼叫裡面的 module)
- name 是幫這個呼叫取一個名字,因為在之後寫 code 時,每個 module 通常不會只呼叫一次,所以每一個呼叫都需要一個名字,且不能一樣。
設置常數。
always #5 指的是每經過 5 個 cycles ,就跑一次後面的式子。
initial 指的是程式一開始執行時,就先運行這一行式子。
開始運算
寫 test 部分
task 是一個用來寫重複指令的方法,在這裡我們將所有正確的結果放在 if 裡面,這樣我們就能判斷我們的程式碼是否正確。
ps. $display 類似 c 語言的 printf 。