通過一個簡單的testbench來初識SystemVerilog

硬件描述語言(Hardware Description Language, HDL)是用于描述硬件行為的語言,可以在寄存器傳輸級、行為級、邏輯門級等對數(shù)字電路系統(tǒng)進行描述。為了驗證HDL中的硬件描述是否正確,我們需要搭建一個testbench,來驗證RTL代碼是否正確無誤。因此誕生這種具有更多功能的驗證語言SystemVerilog。

??? SystemVerilog是Verilog的擴展,可以完全兼容Verilog。它具有面向?qū)ο蟮奶匦裕瑫r還具有隨機化、約束和功能覆蓋率等特性。提供了DPI接口,可以把C/C++的函數(shù)導入到SystemVerilog代碼中。

那么如何在驗證中使用SystemVerilog呢?

????首先我們需要知道,IC設計的代碼主要由多個Verilog(.v)文件和一個頂層模塊組成,其中所有的子模塊都被實例化以實現(xiàn)所需的行為和功能。因此,需要構(gòu)建一個testbench環(huán)境來驗證這些設計代碼。頂層設計模塊在testbench環(huán)境中被實例化,設計的輸入/輸出端口與適當?shù)臏y試平臺組件信號相連接。分析輸出并與預期值進行比較,以查看設計行為是否正確。


????下面舉個例子:

????一個需要驗證的D觸發(fā)器的設計,D觸發(fā)器的功能是在每個時鐘的上升沿,輸出引腳Q鎖存到輸入引腳D的值,是一個上升沿觸發(fā)的觸發(fā)器。假設該觸發(fā)器有一個低電平有效的復位和一個時鐘。


我們使用SystemVerilog語言為該RTL代碼構(gòu)建一個testbench,將信號值直接驅(qū)動到D觸發(fā)器的輸入引腳clk、rst_n、d以觀察輸出結(jié)果。通過驅(qū)動適當激勵以及之后的檢查結(jié)果,我們就可以驗證其功能行為的正確性。充分驗證后,可以通過綜合工具可以將該設計邏輯綜合為門級網(wǎng)表。

tb_top是一個簡單的testbench,其中實例化了d_ff0,并將其端口與testbench的信號連接。只需要在testbench中驅(qū)動信號,就可以傳遞到設計中,通過對比輸出來判斷是否符合預期值。

????通過以上例子,可以基本了解SystemVerilog的用途,即用于搭建復雜的testbench和產(chǎn)生激勵來驗證設計代碼。例子比較簡單,并沒有涉及復雜驗證平臺的搭建、OOP特性、隨機激勵、功能覆蓋等等功能。對于更加復雜的設計,一般需要使用這些特性。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容