国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

一種基于UVM的網(wǎng)絡(luò)協(xié)議報(bào)文發(fā)包器

2022-07-13 09:04王瀟楓
中國科技縱橫 2022年11期
關(guān)鍵詞:子類字段數(shù)據(jù)流

王瀟楓

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

0.引言

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

1.UVM方法學(xué)

針對傳統(tǒng)RTL(寄存器傳輸級)驗(yàn)證平臺重用性差、自動化程度低等缺陷,Accellera標(biāo)準(zhǔn)組織采用OVM為標(biāo)準(zhǔn),在此基礎(chǔ)之上推出了新一代的基于系統(tǒng)及硬件描述語言System Verilog的通用驗(yàn)證方法學(xué)UVM,并于2011年推出了UVM的正式版本。UVM完全繼承了OVM,同時(shí)采納了VMM中的RAL、Callback機(jī)制等,為驗(yàn)證工程師建立了一套基于面向?qū)ο笏枷氲腟ystem Verilog語言標(biāo)準(zhǔn)組件庫,提高了驗(yàn)證環(huán)境的重用性與靈活性[2]。

如圖1所示,UVM采用樹形結(jié)構(gòu)構(gòu)建自頂向下的驗(yàn)證平臺。各結(jié)點(diǎn)按照既定層次關(guān)系實(shí)現(xiàn)驗(yàn)證平臺的整體功能[3],具體組件包含:

圖1 UVM樹形結(jié)構(gòu)圖

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

2.發(fā)包器設(shè)計(jì)

發(fā)包器設(shè)計(jì)結(jié)構(gòu)圖2所示。

圖2 發(fā)包器設(shè)計(jì)結(jié)構(gòu)圖

2.1 發(fā)包器層次結(jié)構(gòu)

基于UVM自頂向下層次邏輯,發(fā)包器由3大組成部分構(gòu)成——報(bào)文生成組件frame_tools、流量控制組件flow_tools、相關(guān)工具算法組件svlib。

2.1.1 Frame_tools

Frame_tools組件包含了兩大基類:

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

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

而frame_tools_payload為報(bào)文負(fù)載字段類,其包含負(fù)載內(nèi)容子類frame_tools_payload_value,以及報(bào)文信息子類frame_tools_payload_info。負(fù)載內(nèi)容子類frame_tools_payload_value可以依據(jù)自定義枚舉類型frame_tools_payload_value_mode_e的約束生成遞增、遞減、隨機(jī)、規(guī)定值字節(jié)序列;報(bào)文信息子類中包含數(shù)據(jù)流號、port號、報(bào)文id以及fcs校驗(yàn)位。

headlib中存放了自uvm_sequence_item派生的L2至L4各種協(xié)議報(bào)文首部字段類。若需根據(jù)自定義協(xié)議構(gòu)建新首部格式,需要在headlib中放入自定義首部字段類的System Verilog文件,并針對對應(yīng)類型的報(bào)文,在frame_tools_head_defines文件中增添對應(yīng)報(bào)文類型名稱的frame_tools_protocol_t類枚舉元素。而frame_tools_head_defines文件中不僅定義了枚舉類型frame_tools_protocol_t,還封裝了多層次各種不同類型報(bào)文的宏定義,根據(jù)不同類型協(xié)議約束各種報(bào)文各層次首部字段的protocol_next指針,以實(shí)現(xiàn)由L2向L3、L4的幀首部字段嵌套。這些宏定義將在發(fā)包器調(diào)用時(shí)約束報(bào)文類型,并指導(dǎo)各字段的內(nèi)容的封裝。

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

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

2.1.2 Flow_tools

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

2.1.3 Svlib

Svlib中包含math_lib、pack_lib。其中math_lib中定義了報(bào)文生成中所需的例如CRC-32算法的計(jì)算函數(shù);pack_lib中則定義了一些例如bit位倒序、多字節(jié)對齊等函數(shù)。

2.2 使用方法

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

3.結(jié)語

在驗(yàn)證領(lǐng)域,高效性和復(fù)用性是評判一個(gè)組件實(shí)用程度的重要指標(biāo)。本文提出的基于UVM的網(wǎng)絡(luò)協(xié)議報(bào)文發(fā)包器,從使用靈活度以及可定制化程度均體現(xiàn)了高效、可復(fù)用性,能夠?qū)W(wǎng)絡(luò)數(shù)據(jù)報(bào)文解析與處理功能的驗(yàn)證起到較好的輔助作用,提高驗(yàn)證效率。

猜你喜歡
子類字段數(shù)據(jù)流
圖書館中文圖書編目外包數(shù)據(jù)質(zhì)量控制分析
卷入Hohlov算子的某解析雙單葉函數(shù)子類的系數(shù)估計(jì)
關(guān)于對稱共軛點(diǎn)的倒星象函數(shù)某些子類的系數(shù)估計(jì)
一種提高TCP與UDP數(shù)據(jù)流公平性的擁塞控制機(jī)制
基于數(shù)據(jù)流聚類的多目標(biāo)跟蹤算法
CNMARC304字段和314字段責(zé)任附注方式解析
北醫(yī)三院 數(shù)據(jù)流疏通就診量
無正題名文獻(xiàn)著錄方法評述
關(guān)于CNMARC的3--字段改革的必要性與可行性研究
塊H矩陣新的子類