999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一種基于UVM的網絡協議報文發包器

2022-07-13 09:04:24王瀟楓
中國科技縱橫 2022年11期
關鍵詞:定義

王瀟楓

(南京郵電大學,江蘇南京 210023)

0.引言

隨著超大規模集成電路功能的日趨豐富,尤其在當前的熱點方向如5G、AI、工業4.0等,更高性能、更快速度、更多功能、更低功耗成為芯片設計制造商的追求目標。隨之而來對于驗證工作的挑戰在不斷增大,驗證的工作量已經占到整個SOC研發的70%左右,因此提高芯片驗證工作的效率也成為了研發流程中的重要一環[1]。作為以太網芯片中必不可少的功能點,報文解析及處理是驗證對象中不可或缺的重要組成部分。而對于報文解析及處理的驗證工作,網絡協議報文發包器是必不可少的驗證組件,它作為驗證用例激勵的約束與生成組件,是用例能精確覆蓋各功能點的基礎與核心。一個全面且實用的發包器組件不僅能實現對各協議字段的約束、報文的生成和封裝,同時也能具備對協議報文字段的解析功能。除此之外,優秀的驗證組件還要具備良好的復用性與即插即用的特點,即不需要配合驗證平臺結構做組件結構上的修改,能簡潔高效地運用于仿真場景構建中。

1.UVM方法學

針對傳統RTL(寄存器傳輸級)驗證平臺重用性差、自動化程度低等缺陷,Accellera標準組織采用OVM為標準,在此基礎之上推出了新一代的基于系統及硬件描述語言System Verilog的通用驗證方法學UVM,并于2011年推出了UVM的正式版本。UVM完全繼承了OVM,同時采納了VMM中的RAL、Callback機制等,為驗證工程師建立了一套基于面向對象思想的System Verilog語言標準組件庫,提高了驗證環境的重用性與靈活性[2]。

如圖1所示,UVM采用樹形結構構建自頂向下的驗證平臺。各結點按照既定層次關系實現驗證平臺的整體功能[3],具體組件包含:

圖1 UVM樹形結構圖

(1)Driver:是驗證平臺最基本的組件以及數據流的源泉,將激勵驅動至RTL邏輯;本設計中,他將實現將發包器生成的激勵按約束封裝成數據流驅動至DUT引腳或內部接口;(2)Sequencer:是Driver與Sequence間溝通的仲裁方,實現transaction的傳遞;(3)Monitor:監測DUT的行為及信號變化;(4)Scoreboard:比對Monitor采樣的DUT輸出結果與Reference Model模擬的預期輸出;(5)Reference Model:完成與DUT相同的功能設計并輸出結果與DUT輸出相比較;(6)Agent:將處理相同協議的driver與monitor封裝為更高一層的抽象組件[4],便于驗證平臺的復用性與環境管理;(7)Env:引入容器類概念,將Agent例化于Env中,并實現各Agent中組件的通信鏈接;針對不同驗證層次使用不同的容器類Env,增加了驗證平臺的復用性,便于驗證工作的管理與平臺維護。

2.發包器設計

發包器設計結構圖2所示。

圖2 發包器設計結構圖

2.1 發包器層次結構

基于UVM自頂向下層次邏輯,發包器由3大組成部分構成——報文生成組件frame_tools、流量控制組件flow_tools、相關工具算法組件svlib。

2.1.1 Frame_tools

Frame_tools組件包含了兩大基類:

(1)frame_tools_item。發包器核心基類,由該類中定義的parse、generate函數實現報文字段解析與數據流生成,其包含了frame_tools_head與frame_tools_payload兩大子類。

frame_tools_head為報文首部類,其包含了L2層協議首部類frame_tools_head_l2_ethernet、frame_tools_head_l2_llc、frame_tools_head_l2_llc_snap,并通過自定義枚舉類型frame_tools_protocol_t引導L2層首部使用何種協議格式。由此向內遞進,在L2層各協議首部類中,包含了L3層協議首部類frame_tools_head_l3_ipv4、frame_tools_head_l3_ipv6、frame_tools_head_l3_pppoe等,并通過自定義枚舉類型frame_tools_protocol_t引導L3層首部使用何種協議格式。在L3層中衍生出L4層首部協議字段,由此生成報文首部字段。

而frame_tools_payload為報文負載字段類,其包含負載內容子類frame_tools_payload_value,以及報文信息子類frame_tools_payload_info。負載內容子類frame_tools_payload_value可以依據自定義枚舉類型frame_tools_payload_value_mode_e的約束生成遞增、遞減、隨機、規定值字節序列;報文信息子類中包含數據流號、port號、報文id以及fcs校驗位。

headlib中存放了自uvm_sequence_item派生的L2至L4各種協議報文首部字段類。若需根據自定義協議構建新首部格式,需要在headlib中放入自定義首部字段類的System Verilog文件,并針對對應類型的報文,在frame_tools_head_defines文件中增添對應報文類型名稱的frame_tools_protocol_t類枚舉元素。而frame_tools_head_defines文件中不僅定義了枚舉類型frame_tools_protocol_t,還封裝了多層次各種不同類型報文的宏定義,根據不同類型協議約束各種報文各層次首部字段的protocol_next指針,以實現由L2向L3、L4的幀首部字段嵌套。這些宏定義將在發包器調用時約束報文類型,并指導各字段的內容的封裝。

(2)frame_tools_sequence。該sequence采用參數化定義方式,由本發包器設計中frame_tools_sequence_defines文件封裝于宏中,在該文件內,由宏定義實現了發包器的調用方式,以宏FRAME_TOOLS_SEQ_BASE_BEGIN、FRAME_TOOLS_SEQ_BASE_END限定了發包器sequence生成框架,同時宏FRAME_TOOLS_SEQ_BASE_BEGIN在調用時將傳入sequence定義所需參數seq_name、總數據流數stream_total、sequence推送時間drop_us。同時還定義了參數化類frame_tools_sequence_lib,此類由frame_tools_sequence_library.svh文件中定義的frame_tools_sequence_library類派生,該類定義了一些對sequence的操作與綁定task。

宏FRAME_TOOLS_SEQ_BASE_BEGIN內調用數據流啟動宏FRAME_TOOLS_SEQ_STREAM_DO。該宏內封裝了數據流控制宏FRAME_TOOLS_SEQ_STREAM_BEGIN,其調用 flow_tools中流量啟動函數starting并傳入發包數量pkt_num參數,并啟動`uvm_create函數實例化transaction;調用FRAME_TOOLS_SEQ_STREAM_END宏,通過例化的frame_tools_item類中的generat函數生成數據流queue。調用 flow_tools中流控函數check_credit并將item中報文長度傳入其中,以調整幀間隔,實現流量控制,而后啟動`uvm_send函數將sequence發出,最后調用 flow_tools中停止函數stopping結束流量監控。

2.1.2 Flow_tools

(1) flow_tools_monitor。包含 starting(),stopping()兩個控制task。starting()中例化一monitor process,調用速率計算函數rate_calculate()可計算周期流量及整體流量,并可以實時打印出流量數據;stopping()中關閉monitor process。(2) flow_tools_driver。該driver同樣包含starting(),stopping()2個控制task。starting()中例化一drive process,調用rate_calculate()函數做時鐘周期性計數,并配合credit_add()函數累計。累計參數供check_credit()函數實時檢查,由frame_tools在sequence生成完后調用,以調整幀間隔。

2.1.3 Svlib

Svlib中包含math_lib、pack_lib。其中math_lib中定義了報文生成中所需的例如CRC-32算法的計算函數;pack_lib中則定義了一些例如bit位倒序、多字節對齊等函數。

2.2 使用方法

在使用該發包器生成報文時首先需在用例中調用宏FRAME_TOOLS_SEQ_BASE_BEGIN、FRAME_TOOLS_SEQ_BASE_END以生成發包器整體框架,并輸入數據流參數seq_name、總數據流數stream_total、sequence推送時間drop_us。其次,需根據數據流數以及對數據流的定制化約束,調用數據流控制宏FRAME_TOOLS_SEQ_STREAM_DO,傳入發包數量pkt_num,并由上文中對head_defines文件的介紹,調用報文類型宏定義,以約束報文類型,并根據其類型填寫各字段內容。

3.結語

在驗證領域,高效性和復用性是評判一個組件實用程度的重要指標。本文提出的基于UVM的網絡協議報文發包器,從使用靈活度以及可定制化程度均體現了高效、可復用性,能夠對網絡數據報文解析與處理功能的驗證起到較好的輔助作用,提高驗證效率。

猜你喜歡
定義
以愛之名,定義成長
活用定義巧解統計概率解答題
例談橢圓的定義及其應用
題在書外 根在書中——圓錐曲線第三定義在教材和高考中的滲透
永遠不要用“起點”定義自己
海峽姐妹(2020年9期)2021-01-04 01:35:44
嚴昊:不定義終點 一直在路上
華人時刊(2020年13期)2020-09-25 08:21:32
定義“風格”
成功的定義
山東青年(2016年1期)2016-02-28 14:25:25
有壹手——重新定義快修連鎖
修辭學的重大定義
當代修辭學(2014年3期)2014-01-21 02:30:44
主站蜘蛛池模板: 青青草原国产免费av观看| 九九热精品在线视频| 大学生久久香蕉国产线观看| 99久久99这里只有免费的精品| 二级毛片免费观看全程| 国产一在线| a级毛片毛片免费观看久潮| 国产午夜看片| 欧美一区二区啪啪| 亚洲人成网站观看在线观看| 欧美无专区| 乱码国产乱码精品精在线播放| 麻豆国产精品一二三在线观看| 亚洲第一区欧美国产综合| 天堂av高清一区二区三区| 日本高清免费一本在线观看| 欧美日韩久久综合| 色综合天天娱乐综合网| 日韩无码视频网站| 久久精品一卡日本电影| 欧美亚洲日韩不卡在线在线观看| 国产人在线成免费视频| 亚洲精品动漫| 亚洲一区波多野结衣二区三区| 国产成人禁片在线观看| 国产精品自在在线午夜| 亚洲综合色婷婷| a级免费视频| 国产一区二区精品福利| 亚洲人妖在线| 91在线无码精品秘九色APP| 99久久99这里只有免费的精品| 婷婷开心中文字幕| 国产福利影院在线观看| 日本精品αv中文字幕| 久久频这里精品99香蕉久网址| 亚洲三级色| 国产成人8x视频一区二区| 波多野结衣无码AV在线| 亚洲天堂网在线观看视频| 亚洲另类色| 高h视频在线| 92午夜福利影院一区二区三区| 国产毛片基地| 日韩毛片基地| 欧美日韩综合网| 亚洲综合精品香蕉久久网| 欧美一级在线看| 伊人色天堂| 青青青亚洲精品国产| 欧美日韩一区二区三区在线视频| 国产人人射| 欲色天天综合网| 欧洲熟妇精品视频| 免费中文字幕一级毛片| 国产成人高清精品免费5388| 97精品久久久大香线焦| 丝袜无码一区二区三区| 黄色污网站在线观看| 国产精品免费福利久久播放| 99成人在线观看| jizz在线观看| 国产在线观看第二页| 狼友视频一区二区三区| a天堂视频在线| 欧美日韩国产系列在线观看| 欧美精品在线视频观看| 综合五月天网| 免费国产高清视频| 久久婷婷色综合老司机| 日韩在线影院| 真人高潮娇喘嗯啊在线观看 | 国产精品99在线观看| 19国产精品麻豆免费观看| 制服丝袜 91视频| 久久婷婷国产综合尤物精品| 99久久国产综合精品2023| 亚洲中字无码AV电影在线观看| 日本午夜在线视频| 色婷婷电影网| 人妻丰满熟妇AV无码区| 亚洲一区二区无码视频|