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

一種基于UVM的高層次化1394鏈路層驗證方法

2021-09-28 10:11:18魏美榮王宣明
計算機技術(shù)與發(fā)展 2021年9期
關(guān)鍵詞:功能設(shè)計

魏美榮,田 澤,王宣明,郭 蒙

(1.航空工業(yè)西安航空計算技術(shù)研究所,陜西 西安 710068;2.集成電路與微系統(tǒng)設(shè)計航空科技重點實驗室,陜西 西安 710068;3.西安翔騰微電子科技有限公司,陜西 西安 710068)

0 引 言

1394總線是一種高性能串行總線,鏈路層在串行總線節(jié)點系統(tǒng)中位于事務(wù)層、應(yīng)用層和物理層之間。鏈路層為事務(wù)層提供異步數(shù)據(jù)的接收、發(fā)送和確認(rèn)服務(wù),為應(yīng)用層提供固定時間間隔的等時數(shù)據(jù)廣播傳輸服務(wù)。同時鏈路層提供尋址、數(shù)據(jù)檢查、發(fā)送數(shù)據(jù)組包和接收數(shù)據(jù)解包服務(wù)。

隨著集成電路技術(shù)的不斷發(fā)展,芯片的規(guī)模和集成度在快速提升,這對驗證提出了更高的要求。據(jù)統(tǒng)計表明,發(fā)現(xiàn)bug的時間與修復(fù)成本成指數(shù)關(guān)系,越早發(fā)現(xiàn)彌補的成本也會越低,因此,驗證已經(jīng)成為芯片設(shè)計的發(fā)展瓶頸。針對傳統(tǒng)RTL代碼驗證平臺重用性差、覆蓋率低和自動化程度低等問題,在吸取了OVM,VMM和ERM等驗證方法優(yōu)點的基礎(chǔ)上,三大EDA公司(Mentor、Candence和Synopsys)聯(lián)合業(yè)內(nèi)其他公司推出UVM(universal verification methodology)驗證方法學(xué)。UVM是基于系統(tǒng)級硬件描述語言SystemVerilog,具備面向?qū)ο缶幊痰乃枷牒凸δ躘1-3],實現(xiàn)了驗證的重用性和清晰的層次結(jié)構(gòu)。由于其開源的特質(zhì),使得它相比于其他的驗證方法學(xué),具備更好的兼容性。UVM平臺的架構(gòu)主要是由通用的驗證組件(universal verification component,UVC)構(gòu)成的,而且每個UVC都是已經(jīng)封裝好、功能完善且可配置的驗證環(huán)境,可重用的驗證組件,約束隨機激勵產(chǎn)生、自動化的驗證平臺等特點,大大縮短了驗證時間[4-6]。

另外,相比于傳統(tǒng)的驗證平臺,斷言機制提供了簡潔的行為級代碼描述,能對設(shè)計的屬性進行實時性的檢測,仿真過程一旦報錯可迅速定位[7]。功能覆蓋率是用來衡量哪些設(shè)計特征已被測試程序測試過的一個指標(biāo),評估驗證的結(jié)果[8]。覆蓋率有三類:代碼覆蓋率、功能覆蓋率和斷言覆蓋率。使用UVM提供的隨機測試激勵以及帶約束的隨機測試(constrained random test,CRT)方法可以覆蓋各種情況[9-10],不用編寫定向的測試集,就可以達(dá)到盡可能高的覆蓋率。若還有未能覆蓋的邊界情況,可采用定向的測試激勵來進行測試[11]。

文中以1394鏈路層作為主要分析對象,重點從基于覆蓋率驅(qū)動的自動化驗證環(huán)境搭建、驗證流程、驗證平臺、隨機驗證激勵用例開發(fā)、覆蓋率統(tǒng)計結(jié)果分析等方面重點闡述。并經(jīng)過功能仿真測試和覆蓋率分析表明,采用基于UVM的驗證分層結(jié)構(gòu),實現(xiàn)的事務(wù)層請求模型、數(shù)據(jù)包模型、鏈路層監(jiān)控模型,物理層模型等激勵序列具有繼承性和靈活的隨機約束性,可使驗證人員花費較少的精力實現(xiàn)重用原有的激勵場景而構(gòu)成新的激勵場景?;跀嘌院透采w率驅(qū)動的驗證理念,以可約束的隨機向量為主,對仿真結(jié)果進行覆蓋率統(tǒng)計和分析,并對隨機向量的約束進行修改或補充定向向量,保證驗證的完備性。

1 虛擬驗證策劃

在前端設(shè)計中,文中先對1394總線鏈路層系統(tǒng)功能進行分析,根據(jù)設(shè)計功能提取鏈路層驗證功能點,然后制定了相應(yīng)的驗證策略與方法,并詳細(xì)描述了該方法中的驗證環(huán)境、驗證流程、虛擬驗證平臺各組件功能以及工作原理。

1.1 系統(tǒng)功能分析

1394總線鏈路層是1394高性能串行總線的重要部分,實現(xiàn)了IEEE Std 1394-2008協(xié)議規(guī)定的1394b高性能串行總線的節(jié)點鏈路層功能,其邏輯結(jié)構(gòu)框圖如圖1所示。主要包含數(shù)據(jù)搬運(data mover)模塊、選擇控制模塊、異步發(fā)送FIFO模塊(asynchronous transmit FIFO,ATF)、通用接收FIFO(general receive FIFO,GRF)、微處理器接口(microcontroller interface)模塊、鏈路層核(link core)等功能模塊,實現(xiàn)的主要功能包括:

圖1 1394總線鏈路層結(jié)構(gòu)框圖

(a)負(fù)責(zé)在事務(wù)層和物理層之間傳遞異步、異步流和等時數(shù)據(jù);

(b)提供標(biāo)準(zhǔn)的Alpha類型物理層-鏈路層接口,用于連接物理層;

(c)提供數(shù)據(jù)搬運接口(data mover),支持異步流數(shù)據(jù)的收發(fā),可通過寄存器訪問接口進行異步發(fā)送物理配置包和異步包,通過訪問GRF接收異步包和自標(biāo)識包;

(d)當(dāng)進行異步消息收發(fā)時,鏈路層將數(shù)據(jù)從事物層傳遞給物理層,或?qū)⑽锢韺咏邮盏降臄?shù)據(jù)傳遞給事物層,并負(fù)責(zé)添加數(shù)據(jù)CRC校驗;

(e)在等時通訊過程中,負(fù)責(zé)周期發(fā)送、接收cycle start包,用于同步總線各節(jié)點的等時周期,并保證等時消息通訊能夠正常進行。

1.2 驗證方法

文中采用UVM驗證系統(tǒng)架構(gòu)、基于功能覆蓋率驅(qū)動的驗證方法,從鏈路層系統(tǒng)級功能分析角度出發(fā),制定出一套通用性強的1394總線鏈路層驗證實施方案。

1.2.1 驗證流程

文中將結(jié)合最新UVM驗證技術(shù)、統(tǒng)一覆蓋率的驗證管理技術(shù),采用新型閉環(huán)的驗證流程[12],如圖2所示。

圖2 驗證流程

實現(xiàn)對1394總線鏈路層功能驗證,具體過程如下:

(a)首先,根據(jù)1394總線鏈路層功能規(guī)范編寫驗證規(guī)范和驗證計劃,即列出需要驗證的關(guān)鍵功能特性、邊界情況和可能出現(xiàn)的故障模式。建立覆蓋率模型時,先根據(jù)上述的驗證規(guī)范,明確待驗證的功能點以及如何對這些數(shù)據(jù)采樣,然后構(gòu)建能夠自動統(tǒng)計功能覆蓋率的驗證平臺,定義覆蓋組(Covergroup)來統(tǒng)計和分析功能覆蓋率,確保每個設(shè)計需求都被實現(xiàn)、驗證且功能正確。下面以1394總線鏈路層寄存器訪問為例,設(shè)計的一個寄存器對象的功能覆蓋組代碼示例如下:

class host_coverage_monitor extends uvm_subscriber #(host_trans_item);

`uvm_component_utils(host_coverage_monitor)

host_trans_item analysis_txn;

covergroup host_cov;

option.per_instance =1;

ADDR: coverpoint analysis_txn.addr[5:1]{

bins VERSION_U ={6'h00};

bins VERSION_L ={6'h01};

………

}

OPCODE: coverpoint analysis_txn.wr {

bins write = {0};

bins read = {1};

}

RW_CROSS: cross ADDR,OPCODE;

endgroup

// Standard UVM Methods:

function new(string name = "host_coverage_monitor", uvm_component parent = null);

super.new(name, parent);

host_cov = new();

endfunction

extern function void write(T t);

extern function void report_phase(uvm_phase phase);

endclass: host_coverage_monitor

(b)其次,基于UVM方法學(xué)搭建驗證環(huán)境、開發(fā)驗證代碼、驗證管理功能,通過輸入測試計劃,即“產(chǎn)生的激勵”輸入到DUT(design under test)設(shè)計中,并且通過UVM內(nèi)部自帶的函數(shù)run_test()開啟UVM運行仿真,并將產(chǎn)生結(jié)果輸出,引入功能覆蓋率模型,對覆蓋率的結(jié)果進行分析,即將測試覆蓋率與測試對象聯(lián)系起來,從而為管理人員與工程師提供強大支持,使得持續(xù)不斷地跟蹤驗證進度和更為合理高效地配置資源成為可能。

(c)最后,經(jīng)過回歸測試、驗證結(jié)果和覆蓋率分析,如果驗證達(dá)不到要求,則需要反復(fù)迭代優(yōu)化驗證方案,完善或更改驗證計劃,通過UVM機制管理驗證平臺、再運行、再進行結(jié)果分析等,直到完成驗證激勵的開發(fā)調(diào)試,最終極大程度地實現(xiàn)1394總線鏈路層芯片驗證工作的收斂。

1.2.2 驗證平臺構(gòu)建

文中對不同的功能組件進行單獨設(shè)計,同時以UVM方法學(xué)為基礎(chǔ),設(shè)計了如圖3所示的高層次化驗證平臺結(jié)構(gòu)。采用基于Systemverilog面向?qū)ο缶幊痰姆椒ň幋a實現(xiàn),每一個組件用一個類(class)單獨實現(xiàn),類中定義屬性(數(shù)據(jù))和屬性操作方法(包括任務(wù)和函數(shù))[13-15]。此驗證平臺的結(jié)構(gòu)可以分為三個部分:首先實例化鏈路層DUT,是用于平臺中與其他組件進行通信的接口;然后創(chuàng)建DUT外圍的驗證組件UVC,是一種可以重用的對應(yīng)于鏈路層外圍接口協(xié)議的IP模型,與頂層DUT之間具備通信接口,分別是微控制器寄存器訪問(Microcontroller Agent)、事務(wù)層數(shù)據(jù)搬運接口(Data_Mover Agent)、1394總線物理層模型(Phy model agent)、1394總線多節(jié)點的鏈路層模型(link node agent);最后是基于UVM開發(fā)的測試激勵Test Suites、測試腳本等。

圖3 基于UVM的1394總線鏈路層虛擬平臺驗證架構(gòu)

文中搭建的驗證平臺是一個1394總線多節(jié)點拓?fù)浣Y(jié)構(gòu),鏈路層DUT也是作為其中一個被測試節(jié)點,其中,Test Suites是由UVM的Sequence機制實現(xiàn)的一系列隨機測試激勵。各模塊Agent內(nèi)部Sequencer是激勵產(chǎn)生器,產(chǎn)生協(xié)議規(guī)定的寄存器訪問類型、不同類型包數(shù)據(jù)格式,Sequence通過Sequencer將Seq_item送到驅(qū)動器Driver,Driver通過虛接口virtual interface(vif)將事務(wù)級的數(shù)據(jù)按照信號層接口的時序要求轉(zhuǎn)換為DUT端的電信號,并驅(qū)動DUT來發(fā)送接收數(shù)據(jù)包。平臺中的Configuration模塊用于系統(tǒng)的配置,根據(jù)不同的配置,使驅(qū)動芯片外部管腳不同時序下激勵輸出和錯誤注入。各Agent內(nèi)部的Monitor進行數(shù)據(jù)采集監(jiān)控,最后將放到Coverage和記分板Scoreboard中,通過記分板Scoreboard與行為級模型進行數(shù)據(jù)結(jié)果比較,通過UVM_report功能完成結(jié)果輸出。

在上述驗證平臺中各功能模型Agent的主要功能如下:

(a)Microcontroller Agent,模擬1394鏈路層主機訪問寄存器讀寫,和通過填寫內(nèi)部包頭、包中和包尾寄存器來實現(xiàn)TAF中異步包、異步流包、物理配置包的發(fā)送以及通過GRF接收異步包、自標(biāo)識包等數(shù)據(jù)包的接收;

(b)Data_Mover Agent,模擬事務(wù)層進行異步或等時通信模式下,數(shù)據(jù)包的發(fā)送與接收;

(c)Phy model Agent,和link node agent連接,模擬1394總線上的拓?fù)浣Y(jié)構(gòu),并且提供1394總線物理層的協(xié)議規(guī)定的數(shù)據(jù)處理行為;

(d)link node agent,模擬1394總線協(xié)議規(guī)定的鏈路層協(xié)議處理行為;

(e)Test Suites,用于驗證的測試用例,是由UVM的sequence機制實現(xiàn)的一系列隨機測試激勵。測試用例均由uvm_test類派生而來,每個測試激勵都設(shè)置了默認(rèn)啟動的測試激勵,只需在命令行啟用這些測試用例。文中設(shè)計有3種類測試用例,分別是基本測試、隨機測試、注錯測試。其中,隨機激勵測試可以找出預(yù)料不到的錯誤,通過SystemVerilog語言對激勵進行隨機化和約束?;緶y試用例是根據(jù)需要產(chǎn)生特定要求的激勵,關(guān)注設(shè)計功能點本身。注錯測試用例通過帶約束的隨機激勵產(chǎn)生各種錯誤激勵,用于測試某些極限情況下可能出現(xiàn)的故障問題,檢測設(shè)計本身的處理錯誤能力;

(f)達(dá)到覆蓋各種情況,達(dá)到盡可能高的覆蓋率,從而完成驗證目標(biāo)。

上述各Agent模塊均具有獨立結(jié)構(gòu),根據(jù)實際項目中1394總線節(jié)點通信個數(shù),只需要通過實例化多個Phy model Agent、link node agent來實現(xiàn)可重用,達(dá)到快速構(gòu)建驗證平臺,便可以加快驗證流程。

文中根據(jù)制定1394總線鏈路層主要功能建立的測試用例如表1所示。

表1 測試向量

續(xù)表1

1.2.3 驗證環(huán)境

文中采用Metor Graphics公司提供的Questa作為功能仿真平臺,如圖4所示。利用其內(nèi)嵌斷言引擎、高性能約束求解,以及統(tǒng)一覆蓋率數(shù)據(jù)庫(UCDB)。斷言是對設(shè)計屬性的描述,采用斷言技術(shù)快速檢測到設(shè)計中潛藏的缺陷,如被檢測對象與預(yù)期檢測行為不一致,則上報斷言錯誤,并直接追溯源代碼中最原始的信號。通過UCDB管理并收集所有的覆蓋率數(shù)據(jù):代碼覆蓋率、功能覆蓋率和斷言覆蓋率,并存儲在統(tǒng)一個數(shù)據(jù)庫中。驗證管理功能通過輸入測試計劃、并將測試覆蓋率與測試對象聯(lián)系起來,利用Questa提供的強大分析能力,將原始覆蓋率數(shù)據(jù)轉(zhuǎn)變?yōu)榭刹僮饕鬃R別的信息。

圖4 功能仿真平臺

在Linux運行環(huán)境QuestaSim功能仿真平臺,如表2所示,采用SystemVerilog、Makefile編程語言及腳本語言,將編譯、仿真、測試選擇、覆蓋率收集等功能設(shè)計為自動化流程。不同的測試模式下,切換外部測試模型的應(yīng)用場景,把外部的測試激勵輸入給1394總線鏈路層被測設(shè)計。

表2 1394鏈路層驗證環(huán)境

1.2.4 運行流程

基于UVM驗證方法學(xué),驗證組件之間按照UVM的phase機制運行,即仿真器首先從平臺頂層TOP執(zhí)行,遇到特定函數(shù)run_test()后驗證平臺開始啟動,腳本運行時利用UVM_TESTCASE從命令行中尋找testcase名字并創(chuàng)建該測試case實例,以樹形結(jié)構(gòu)方式依次執(zhí)行case及其成員變量的build_phase,順序執(zhí)行UVM樹各個節(jié)點build_phase、connect_phase以及run_phase各階段,直到所有的phase執(zhí)行結(jié)束。

2 驗證與分析

使用上述描述的驗證平臺對鏈路層DUT進行功能驗證,以事務(wù)層數(shù)據(jù)搬運Data Mover接口的等時和異步模式通信仿真為例,采用上述規(guī)劃的測試激勵,運行UVM仿真平臺得到仿真結(jié)果波形,如圖5所示。圖中橢圓框出的部分為等時數(shù)據(jù)包的發(fā)送,長方形框出的部分為異步流數(shù)據(jù)包發(fā)送,圓角矩形框部分是等時數(shù)據(jù)包和異步流數(shù)據(jù)包的接收,可見該測試平臺能夠很好地模擬1394總線實際通信場景。仿真進行到Check_phase階段通過檢查Scoreboard的對比結(jié)果以及其他組件的結(jié)果是否出現(xiàn)違例,確認(rèn)沒有遺留的數(shù)據(jù)要處理,到Report_phase階段產(chǎn)生報告仿真結(jié)果,或者生成的log文件中的報告及斷言來檢測DUT的正確性[16-17]。同時,通過分析覆蓋率報告,不斷完善測試激勵,添加新的測試激勵,實現(xiàn)全面的功能驗證,將所有測試向量測試完畢后,進行回歸測試并進行覆蓋率統(tǒng)計,將輸出結(jié)果進行打印。如圖6所示,覆蓋率已達(dá)到100%,滿足鏈路層系統(tǒng)功能驗證的要求,證明了該驗證平臺測試激勵的完整性,達(dá)到了預(yù)期驗證目標(biāo)。

圖5 DM接口等時和異步流數(shù)據(jù)包收發(fā)通信仿真波形

3 結(jié)束語

文中針對1394總線鏈路層系統(tǒng)功能需求分析,制定了一套適用于鏈路層驗證的方法,構(gòu)建了能夠自動統(tǒng)計功能覆蓋率的驗證平臺,基于高級驗證方法學(xué)UVM的UVC實現(xiàn)了1394總線協(xié)議。采用monitor監(jiān)視收集數(shù)據(jù),利用功能覆蓋率統(tǒng)計各驗證功能點,并能夠在Scoreboard上比較輸出結(jié)果。采用基于UVM的高層次的以覆蓋率驅(qū)動的驗證方法,實現(xiàn)了鏈路層功能驗證的100%的功能覆蓋率。能有效模擬鏈路層行為,極大地提高驗證效率,縮短驗證周期。

猜你喜歡
功能設(shè)計
也談詩的“功能”
中華詩詞(2022年6期)2022-12-31 06:41:24
何為設(shè)計的守護之道?
《豐收的喜悅展示設(shè)計》
流行色(2020年1期)2020-04-28 11:16:38
瞞天過?!律O(shè)計萌到家
設(shè)計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
關(guān)于非首都功能疏解的幾點思考
有種設(shè)計叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
懷孕了,凝血功能怎么變?
媽媽寶寶(2017年2期)2017-02-21 01:21:24
“簡直”和“幾乎”的表達(dá)功能
中西醫(yī)結(jié)合治療甲狀腺功能亢進癥31例
主站蜘蛛池模板: 九九久久精品免费观看| 久无码久无码av无码| jizz国产视频| 呦系列视频一区二区三区| 亚洲日韩高清在线亚洲专区| 日韩精品专区免费无码aⅴ| 在线观看免费国产| 色悠久久久| 国产96在线 | 欧美成人在线免费| 91欧美亚洲国产五月天| 国产又爽又黄无遮挡免费观看| 日本一本在线视频| 国产全黄a一级毛片| 精品1区2区3区| 专干老肥熟女视频网站| 国产精品欧美在线观看| 伊伊人成亚洲综合人网7777| 色一情一乱一伦一区二区三区小说| 免费人成在线观看成人片 | 美美女高清毛片视频免费观看| 高h视频在线| 一边摸一边做爽的视频17国产| 国产成人高清在线精品| 18禁黄无遮挡网站| 国产永久在线观看| 国产精品不卡片视频免费观看| 欧美在线天堂| 国产97视频在线观看| Aⅴ无码专区在线观看| 草逼视频国产| 日韩精品久久久久久久电影蜜臀| 国产日本视频91| 亚洲V日韩V无码一区二区| 国产一级视频久久| 免费 国产 无码久久久| 欧美亚洲欧美区| 国产在线视频导航| 无码专区第一页| h网站在线播放| 国产在线无码一区二区三区| www.av男人.com| 国产流白浆视频| 国产精品第页| 在线观看国产精美视频| 国产尹人香蕉综合在线电影| 国产玖玖视频| 老司机精品久久| 片在线无码观看| 91精品专区| 日本久久久久久免费网络| 亚洲无限乱码| 亚洲精品无码AⅤ片青青在线观看| 国产情侣一区| 欧美h在线观看| 国产精品自拍露脸视频| 亚洲第一色网站| 久久香蕉国产线看观看亚洲片| 国产精品免费久久久久影院无码| 国产精品成| 亚洲天堂网在线视频| 亚洲精品va| 久久96热在精品国产高清 | 成年午夜精品久久精品| 亚洲啪啪网| 久久免费看片| 视频一区亚洲| 国产另类视频| 国产精品亚欧美一区二区| 成·人免费午夜无码视频在线观看| 51国产偷自视频区视频手机观看 | 国产一区二区在线视频观看| 国产主播在线一区| 国产精品第5页| 极品性荡少妇一区二区色欲| 国产精品高清国产三级囯产AV| 国产精品伦视频观看免费| 国产在线观看91精品亚瑟| 欧美国产综合视频| 欧美中文一区| 亚洲国产日韩一区| 91九色国产在线|