IC驗證培訓 實戰SV驗證學習(lab3)

2021-08-21 17:21:06 字數 2363 閱讀 4273

在上一期的lab2中,我們拓展了測試平台並從乙個輸入端向乙個輸出端傳送了資料報。今天的lab3的學習目標是:

1.構造乙個從路由器輸出端進行取樣的監視器(monitor)。

2.構造乙個可以驗證路由器輸出的比較器(checker)。

3.執行driver和monitor程式,檢驗checker能否正確比數。

任務一:建立頂層測試環境(top-level test environment)

1.編輯已存在的test.sv檔案。

2.給pkt2cmp_payload[$]序列新增乙個全域性宣告(global-declaration),位寬為8bit(logic[7:0])。這個序列將會被用來儲存來自於dut的取樣資料。

3.為了能夠進行自我核對,修改程式使recv()和send()可以並行進行,並在其後新增乙個自我核對程式check()。

任務二:發展乙個監視器(monitor)

1.宣告乙個recv()命令。

2.在recv()體中呼叫get_payload()來獲取有效負載。(在目前這是這是recv()程式中的唯一內容,在後面的實驗中我們會在新增一些內容。)

3.宣告get_payload()任務。

4.在get_payload()中,刪除掉pkt2cmp_payload[$]的內容。(刪掉來自之前資料報的可能剩餘物是十分有必要的)

5.繼續在get_payload()之中,等待輸出端frame訊號的下降沿。

6.通過在路由器的輸出埠取樣來繼續完善get_payload():

a)保持迴圈直到frame訊號被檢測到。

b)在迴圈中,至少8個時鐘週期內聚合起乙個位元組(8bit)的資料。接著將每乙個8位資料儲存到pkt2cmp_payload[$]序列中去。

7.如果payload沒有連成乙個byte,就列印錯誤資訊並終止**。

任務三:發展比較器(checker)

這一步是為了發展乙個核對器從而去檢查路由器的輸出。

1.建立乙個compare()函式,它可以返回乙個bit的值並且可以進行資料比較。

2.在compare()中,比較payload[$]序列(用來參考的資料)和pkt2cmp_payload[$]序列取樣的資料)中儲存的資料來驗證接收到的payload是否正確。

a)如果payload[$]序列和pkt2cmp_payload[$]序列的長度不匹配的話,設定描述該錯誤的語句,並返回0值結束該子程式。

b)如果在payload[$]序列和pkt2cmp_payload[$]序列的資料不匹配,設定描述該錯誤的語句,並返回0值和結束該子程式。(你可以用「==」來直接比較兩個序列)。

c)如果在payload[$]序列和pkt2cmp_payload[$]序列中的資料是完全一致的,設定描述比較成功的語句,並返回1值和結束該子程式。

3.建立check()任務。

4.在check()體中,宣告乙個string(字串)變數和乙個計數器。

5.在check())體內,呼叫compare函式來核對接收到的資料。

a)如果乙個錯誤被發現了,則列印錯誤資訊並終止**。

b)如果核對是成功的,則列印乙個資訊來表明比較成功和查到的資料報的數量。

6.儲存並關閉test.v檔案。

任務四:編譯和**(略)

任務五:測試所有埠

1.修改你的測試程式來隨機產生sa(源位址)和da(目標位址)。

2.將你的testbench拓展到可以傳送2000個資料報。

3.使用make指令碼去編譯和**你的程式。

4.確定**依然可以完全成功。(**見附件中的完整程式)

1.將資料報資訊封裝進入packet類.

2.利用隨機化(randomization)在packet類中隨機產生源位址,目標位址和payload。

3.建立兩個packet物件(object),乙個資料報用來在dut輸入端輸入,另乙個資料報用來和dut輸出的資料相參照。

4.將compare()嵌入packet類,用來驗證dut工作的正確性。

乙個小白的數字IC驗證入門之路 簡單的驗證思想

如文章所敘述中,經歷了 簡單的驗證環境搭建,和 模組化設計 後 這些都是我在學校接觸的較少的 我開始跨進了這個門。其實這些理解是歷經了多個專案後慢慢總結下來,而不是經歷了risc cpu這個簡單的過程就認識到,但這裡先做簡單敘述,便於之後我講述時的分類。本質 我們拋開驗證方法,工具,結果分析什麼的,...

晶元老化驗證流程 IC老化測試

第一章測試座與老化座的區別 csp封裝量產測試中存在的問題 如前所述,csp封裝晶元的量產測試採用類似晶圓測試的方法進行,但是兩者的區別在於 晶圓的 測試,探 針是扎在管芯的 pad 通常情況下為鋁金屬 上,而csp 封裝的測試,探針是扎到 csp封裝的錫球上。問題由此 產生,在晶圓測試中鋁質的 p...

統計學 假設驗證

統計學系列目錄 文末有大獎贈送 統計學 概率論基礎及業務實戰 統計學 概率分布 幾何,二項,泊松,正態分佈 統計學 總體與樣本 統計學 置信區間 當你從廣告中,從別人口中,從新聞上等得到乙個結論時,你要判斷這個結論是否可信,假設驗證就是這樣一種判斷是否值得可信的方法。比如市面上很繁榮的it培訓,包你...