針對 test fixture 的再進化
我們剛剛寫好的 test fixture 有什麼缺點 ?
缺點1. 我們所測試出來的波形,系統無法自行判斷是正確或是錯誤的波形,得要由人類的眼睛來判斷。
缺點2. 輸入波形無法自動產生
針對缺點1之解決方式
我們使用行為模式(behavior model)來撰寫 testfixture,其目的是讓 testfixture 能自動產生 x+y 的半加器輸出,程式碼如下:
reg sumY, coutY; // test result
// self calculate coutY, sumY
always @ ( a or b)
begin
{coutY, sumY} = a+b;
end
並以此輸出來與原始 ha_gate/ha_rtl/ha_cont.v 中電路所產生之輸出作比對。
reg testok; // 0 == error, 1 == testok;
// compare
always @ ( coutX or sumX )
begin
if ( coutX == coutY && sumX == sumY)
testok=1;
else
testok=0;
end
我們可以觀察 testok 的波形,當 testok == 1 時,我們的電路輸出與自動產生之電路輸出是一致的,萬一 testok == 0 時,兩者不一致,運算有錯,必須進行除錯。
針對缺點2之解決方式
a. 定義一個 clock 訊號源
b. 利用 clock 訊號源來產生訊號
沒有留言:
張貼留言