李敬磊++尹新++曾清樂
摘 要:隨著FPGA的廣泛應用,其設計規模和復雜度也急劇增加,FPGA測試的效率也有待進一步提高。研究了基于SystemVerilog的事務級建模,并結合具體實例研究了其在FPGA測試中的應用。研究表明,基于SystemVerilog的事務級建模可重用性強,使用方便,可使FPGA的測試效率得到極大提高。
關鍵詞:現場可編程邏輯器件;SystemVerilog;ASIC;CPU
中圖分類號:TN47 文獻標識碼:A DOI:10.15913/j.cnki.kjycx.2016.23.116
FPGA(Field Programmable Gate Array,現場可編程門陣列)相比于ASIC和通用CPU而言,其在性能、價格和靈活性方面都較好,已經被廣泛應用于航空、航天、通信、汽車工業等領域。同時,其設計規模及復雜度也在急劇增加。如果單純采用傳統FPGA驗證方法,構造用例復雜,且用例可復用性低,效率比較低,無法快速地縮短產品研發周期。采用基于SystemVerilog的事務級建模的驗證方法,不僅可以搭建通用的事務級模型,從而提高復用性,而且基于SystemVerilog的語言特性可以方便地對模型進行靈活配置,從而提高FPGA測試的效率。
本文簡述了SystemVerilog語言的語言特性,介紹了利用SystemVerilog進行事務級建模的方法,之后利用基于SystemVerilog的事務級建模的驗證方法驗證了FPGA串口功能的正確性,闡述了基于SystemVerilog的事務級建模在FPGA測試中的優勢。
1 SystemVerilog簡介
SystemVerilog簡稱SV語言,它建立在Verilog語言的基礎上,是IEEE 1364 Verilog-2001標準的擴展增強,可兼容Verilog 2001,并成為了下一代硬件設計和驗證的語言。其具有以下特性:①在Verilog基礎上集成了C語言的很多特點,具有面向對象特性,有助于采用事務級的驗證和提高驗證的重用性;②支持約束隨機的產生,可以方便地產生約定的數據,從而降低用例構造的復雜度;③支持覆蓋率統計分析及斷言驗證。
SystemVerilog屬于面向對象編程語言,也有類的概念,且語法與C/C++類似,可以使用類的封裝、對象的生成和使用、類的繼承和擴展等特性來搭建事務級模型。
2 基于事務級建模驗證的FPGA串口功能
Transaction-level Modeling(事務級建模)簡稱TLM,它起源于SystemC的一種通信標準。所謂“Transaction level”,是相對DUT中各個模塊之間信號線級別的通信而言的。簡單而言,一個“Transaction”就是將具體某一特定功能的一組信息封裝在一起,進而形成一個類。現以構造一個RS422串口協議模型為例,簡要介紹事務級模型的構建。
2.1 RSS422串口模型
RS422串口協議傳輸時序如圖1所示。
在圖1中,每一位代表的意義為:①空閑位。處于邏輯“1”的狀態,表示當前線路上沒有數據傳送。②起始位。先發出一個邏輯“0”的狀態,表示開始傳輸數據。③數據位。起始位后緊接著為數據位,數據位長度可以為4,5,6,7,8。④校驗位。1 B數據,校驗數據傳送的正確性,可以分為奇校驗和偶校驗。⑤停止位。高電平,一個字符數據傳輸結束的標志,長度為1~2 B。
根據上述RS422串口協議,構建了以下的串口事務級模型。
2.2 基于RSS422串口模型驗證串口功能
現有一DUT實現了串口收發功能。具體而言,接收串口輸入數據,然后收到回傳命令后將接收的數據通過串口發出,串口格式為有效數據8 B、停止位1位、偶校驗。為了驗證其功能的正確性,搭建了驗證平臺,將上述的串口模塊與DUT對接。利用上述的串口模型構建用例為:
class tc_uart_test;
C_UART_MOD mo_uart_mod;
//根據需求配置串口參數
mo_uart_mod. mo_uart_item.randomize() with {
mb4_data_len == 8; //配置有效數據長度為8
mb2_stop_len == 1; //配置停止位長度為1
mb_crc_sel == 0; //配置校驗方式為偶校驗
mb32_pkt_num == 1; //配置數據幀數為1幀
mb32_data_num== 10; //配置1幀字符個數為10個
};
endclass:tc_uart_test
用例構建完畢后,驗證平臺按照設定參數自動產生1幀數據,之后通過串口模型將數據驅動到DUT接口,同時,接收DUT發送的串口數據,并發送到指定的文件中。
3 測試結果及其分析
測試仿真結果如圖2所示。
用例仿真結果如圖2所示。從波形上可以看出,驗證平臺正確驅動串口輸入數據到FPGA輸入端口sdin,FPGA正確輸出串口發送數據sdout。
比對通過RS422串口模型打印的發送串口數據文件與接收
到的串口數據文件,兩者結果一致。這表明FPGA正確接收了輸入的串口數據sdin,并將收到的數據正確地通過串口sdout發出,即驗證了FPGA串口功能的正確性。對比兩個文件結果,采用基于SystemVerilog的事務級建模構建的RS422串口模型,有效、快速地驗證了FPGA串口功能的正確性。同時,利用該串口模型還可以構造出指定的幀頭和幀尾、含有幀的校驗和、定向串口數據等復雜場景的串口激勵。該RS422串口模型可以用于多個FPGA項目串口功能的驗證,具有良好的可重用性,極大地提高了FPGA測試的效率。因此,基于SystemVerilog的事務級建模在FPGA測試中具有以下優勢:①面向對象的編程結構,可以方便地對諸如某個協議接口、某一組特定功能的信號等進行事務級建模;②基于SystemVerilog隨機約束的語言特性,可以方便、靈活地對事務級模型進行參數配置,具有良好的可重用性;③基于SystemVerilog的事務級建模可將驗證與設計通過接口分離,驗證與設計可以分別單獨調試,便于對FPGA整個開發流程的管理。
4 結束語
本文結合具體實例構建了基于SystemVerilog的事務級模型,并以此模型驗證了FPGA功能的正確性。驗證結果表明,基于SystemVerilog的事務級模型具有很好的可重用性,在FPGA測試中極大地提高了測試效率。下一步研究方向為采用基于SystemVerilog的事務級建模方法,結合UVM 、VMM等驗證方法學,構造通用的自動化驗證平臺,從而進一步提高FPGA測試效率。
參考文獻
[1]鐘文楓.SystemVerilog與功能驗證[M].北京:機械工業出版社,2010.
[2]張強.UVM實戰[M].北京:機械工業出版社,2014.
〔編輯:張思楠〕