<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 手機與無(wú)線(xiàn)通信 > 設計應用 > 基于OpenVera構建以太網(wǎng)MAC芯片驗證平臺

基于OpenVera構建以太網(wǎng)MAC芯片驗證平臺

——
作者:張冬青 張晉敏 時(shí)間:2006-10-04 來(lái)源:電子設計應用 收藏

引言

當芯片的設計規模越來(lái)越大,朝向SoC發(fā)展時(shí),RTL級功能仿真時(shí)間還可以忍受,但門(mén)級仿真己經(jīng)成為不可能繼續廣泛使用的技術(shù)了。對設計進(jìn)行完備性驗證要求有足夠的測試向量,隨著(zhù)設計規模的增大,需要的仿真向量也急劇增加。近十年來(lái),芯片的設計規模增大了100倍,仿真向量增加了近10000倍。二者的共同作用使門(mén)級仿真所需的時(shí)間飛速增長(cháng)。要找到如此龐大的能夠保證驗證完備性的仿真向量集也變得不太可能。

另一方面,芯片設計又面臨著(zhù)上市時(shí)間的巨大壓力,驗證的不足直接導致芯片不能通過(guò)測試,由此可能造成更大的損失。驗證,尤其是功能驗證必將影響集成電路的設計和開(kāi)發(fā)進(jìn)程。因此,縮短驗證時(shí)間、建立高效的驗證平臺已成為現代集成電路設計的關(guān)鍵。

基于驗證平臺的結構

實(shí)時(shí)以太網(wǎng)RTE 芯片是符合IEEE802.3(CSMA/CD)協(xié)議和IEEE1588精確時(shí)間同步協(xié)議的通信控制器。它不僅兼容商用以太網(wǎng)的功能,還增加了特殊工業(yè)中所必須的實(shí)時(shí)特性,將應用于高速工業(yè)以太網(wǎng),以滿(mǎn)足工業(yè)以太網(wǎng)的實(shí)時(shí)要求。

                                  驗證平臺的發(fā)送部分架構
                                                  圖1 驗證平臺的發(fā)送部分架構

本平臺就是為驗證RTE 芯片而搭建的。平臺采用語(yǔ)言,基于事務(wù)級建立。驗證平臺發(fā)送部分的架構如圖1所示,接收部分結構與此類(lèi)似。它包括下面幾個(gè)部分:

1) 調度:調度是整個(gè)平臺的頂層,用于協(xié)調各個(gè)模塊的工作。

2) DUV(design under verification):待驗證的芯片,除此以外都是用語(yǔ)言編寫(xiě)的測試軟件模塊。

3) 測試事例:驗證中針對具體功能而采用不同的測試事例,這里采用帶約束的隨機驗證方式,通過(guò)對它的約束產(chǎn)生各種測試事例。

4) Frame_gen:將測試事例按照CPU總線(xiàn)側的幀格式組成數據幀通過(guò)BFM輸出到芯片。

5) Monitor:監視器,包括Bus_ Monitor和Ethernet_ Monitor。其中Bus_ Monitor監測總線(xiàn)的行為,可以監視存儲器讀寫(xiě),芯片的數據處理等事務(wù);Ethernet_ Monitor可以監視輸出有效、沖突、載波等網(wǎng)路信息。

6) Check_table:根據BFM側監視器檢測的數據以及相應的配置,將理想DUV的輸出存儲在數組中,check模塊可以把Check_table內的數據與DUV輸出進(jìn)行對照,實(shí)現自動(dòng)檢測。

7) BFM:總線(xiàn)功能模型,用于模擬總線(xiàn)功能,驅動(dòng)DUV。

OpenVera驗證平臺的建立方法及特點(diǎn)

該平臺基于事務(wù)級驗證,采用專(zhuān)門(mén)的驗證語(yǔ)言編寫(xiě),具有高度的可重用性、靈活性,體現著(zhù)現代電路設計中驗證的發(fā)展潮流,下面將結合此平臺介紹現代驗證的特點(diǎn)和趨勢。

驗證與設計并行

傳統的設計首先進(jìn)行設計的開(kāi)發(fā),完成RTL代碼的編寫(xiě)后再進(jìn)行驗證,整個(gè)產(chǎn)品開(kāi)發(fā)時(shí)間接近于設計加上驗證的時(shí)間。而對于現在的項目開(kāi)發(fā),在根據具體的設計要求定義功能,并給出初步的設計文檔之后,就可以根據這些功能定義同時(shí)進(jìn)行設計開(kāi)發(fā)和驗證平臺的搭建。這一階段中驗證平臺的搭建主要是建模,因此需要引入高級驗證語(yǔ)言。高級驗證語(yǔ)言是芯片設計復雜度達到一定程度后的必然產(chǎn)物,如OpenVera ,SystemC ,System Verilog,都具有強大的建模功能。就OpenVera而言,它引入C++中類(lèi)的概念,是一種面向對象的編程,并有強大的函數功能支持,不僅使得驗證與設計并行成為可能,還能加快驗證平臺的建立。

   總線(xiàn)的驅動(dòng)時(shí)序

圖2 總線(xiàn)的驅動(dòng)時(shí)序

基于事務(wù)級的驗證方法

以往的驗證基于信號級,一個(gè)復雜芯片的信號數目非常多,包括大量的外部信號和內部信號,想要對它進(jìn)行完整詳細的驗證,需要耗費很多的精力和時(shí)間,嚴重影響設計周期?;谑聞?wù)的驗證方法可以在一個(gè)更高的層次上進(jìn)行驗證,顯著(zhù)地減輕了測試工作,并有助于統計測試覆蓋率。事務(wù)是一次性完成的一組操作或信號變化,在一個(gè)抽象概念上包括信號的傳送,數據的處理、變化,系統的狀態(tài)等。事務(wù)的概念很寬,可以簡(jiǎn)單到存儲器的讀寫(xiě),復雜到很多數據的處理與傳輸。事務(wù)也可以由多個(gè)操作、多個(gè)時(shí)鐘周期組成。

當一個(gè)設計在信號層經(jīng)常要關(guān)注那些1或0時(shí),設計者可以借助基于事務(wù)的方法很方便快捷地創(chuàng )建測試方法。系統結構設計人員可以不用費心去思考那些使能信號、地址總線(xiàn)等細節, 而是更多的關(guān)注數據的流向、處理、存儲,以及電路的狀態(tài)和動(dòng)作等這類(lèi)事務(wù)?;谑聞?wù)的驗證方法可以說(shuō)是自然驗證方法在設計更高抽象層的一種擴展,它也有利于平臺的可重用性。

將發(fā)送數據寫(xiě)入片內ram 


                                            圖3 將發(fā)送數據寫(xiě)入片內RAM

驗證平臺的重用性

具有重用性的驗證既可以被有相同特性的芯片所重用,比如當不同芯片基于同樣的總線(xiàn)時(shí),總線(xiàn)的BFM以及監視器就可以重用在不同的設計里。很多公司也有自己的成型驗證庫,如Synopsys提供的DesignWare VIP就是一種。另外,具有重用性的驗證也可以在同一設計中被不同的測試事例所重用,本設計中的Frame_gen就是這樣的模塊。搭建可重用的平臺最重要的是各個(gè)部件相互獨立,并有層次性。下面對本平臺的BFM和監視器這兩大關(guān)鍵的可重用部件加以說(shuō)明。

BFM

總線(xiàn)功能模型構建于較高的抽象層次,是總線(xiàn)功能的一種抽象描述,在基于特定總? 線(xiàn)的基礎上,為底層的各種總線(xiàn)操作建立直接同信號相聯(lián)系的模塊。這些模塊可以用函數的形式出現,這些函數的組合可以用來(lái)實(shí)現總線(xiàn)的功能,這就是總線(xiàn)功能模型??梢?jiàn),它的作用是提供給上層測試激勵一個(gè)任務(wù)接口,而對底層的DUT,它提供具體的時(shí)序,完成從高層函數到具體帶時(shí)序功能的轉換。在設計測試激勵的時(shí)候,可以通過(guò)簡(jiǎn)單地調用總線(xiàn)功能模型提供的任務(wù)以及函數對DUT進(jìn)行驅動(dòng)。

發(fā)送開(kāi)始 


                                                            圖4 發(fā)送開(kāi)始

在本驗證任務(wù)中,只對單個(gè)芯片進(jìn)行驗證,只需要對總線(xiàn)進(jìn)行讀寫(xiě),可以完全采用任務(wù)的形式實(shí)現。BFM的程序中有一個(gè)cpu_port.vrh端口文件,是程序與芯片接口的文件之一,OpenVera通過(guò)它對DUV施加激勵。驅動(dòng)任務(wù)可以用類(lèi)封裝起來(lái)(這里是基于任務(wù)的BFM),這些任務(wù)模擬總線(xiàn)的功能,通過(guò)對類(lèi)內任務(wù)調用可實(shí)現對DUV施加激勵。

在平臺運行時(shí)可以例化這個(gè)類(lèi),并調用其任務(wù),調用BFM任務(wù)實(shí)現對DUV驅動(dòng)時(shí)的時(shí)序如圖2所示。圖中示出intel186寫(xiě)周期的時(shí)序(wr為寫(xiě)信號,低電壓有效,s_clk為時(shí)鐘,ALE為地址鎖存信號,data_addr為數據地址線(xiàn)),實(shí)現總線(xiàn)向芯片寫(xiě)數據的功能。采用Vera與VCS工具,數據與地址總線(xiàn)分時(shí)復用值為0xffff 的部分是數據,0x0001與0x0002是寫(xiě)操作的地址。

監視器

本設計中有兩個(gè)監視器,它的可重用性是提高驗證效率的重要原因,需要遵循一些基本的設計規則。首先,1個(gè)監視器只監視1個(gè)接口,這樣具有更大的靈活性,需要重用時(shí)可以不進(jìn)行任何修改直接使用。 如果監視器要監視多個(gè)接口,當1個(gè)接口發(fā)生改變時(shí)就需要修改監視器,這不符合重用性的要求。其次,監視器可以被建立和取消。 在SoC設計中經(jīng)常有復用I/O 的存在,隨著(zhù)I/O功能的不同,可能要使用不同的監視器來(lái)監控,需要通過(guò)SoC設置的改變來(lái)進(jìn)行選擇。一般來(lái)說(shuō),可以在監視器代碼中添加一個(gè)參數開(kāi)關(guān)來(lái)滿(mǎn)足這個(gè)要求,在OpenVera中只需在調度中控制。最后還需要注意的是,監視器不能受其它設計或測試模塊影響, 其它模塊代碼如激勵驅動(dòng)、運行環(huán)境或待測IP 的可配置寄存器的變化不能影響監視器工作。

隨機測試


隨機測試是必不可少的。因為對于一個(gè)系統而言,若期望使用直接測試激勵來(lái)覆蓋所有功能的測試,工作量是巨大的;對于模塊間交互工作的邊界情況的測試,使用直接測試激勵也力不從心。所以,相對于直接激勵測試而言,隨機測試的目的在于試圖花費較少的代價(jià)找出在某些極端情況或偶然巧合下才出現的設計錯誤。隨機是帶約束的隨機,它比完全的隨機測試更有針對性。對隨機的控制可以在類(lèi)內部建立constraint模塊進(jìn)行隨機約束,也可以調用類(lèi)的對象randomize()函數,用with{}進(jìn)行約束。以以太網(wǎng)幀為例,“ frame.randomize() with{data_length<100};”產(chǎn)生的隨機數據長(cháng)度限定在100字節以?xún)?。另外,在隨機測試中,功能覆蓋率顯得尤為重要,它是隨機測試是否完成的標準。采用專(zhuān)門(mén)的語(yǔ)言和事務(wù)級的驗證,以及監視器的監視,能使統計功能覆蓋率變得很容易。比如檢測是否激勵經(jīng)過(guò)了所有類(lèi)別的幀,如超長(cháng)幀、短幀、地址不匹配幀等。

平臺靈活性和獨立性

靈活的驗證平臺會(huì )大大提高驗證的效率。重用性在實(shí)現復雜功能的情況下,還要具有獨立性。從另一個(gè)角度看,獨立性也可以帶來(lái)平臺的靈活性。本文平臺中的配置模塊和軟件提供給check模塊特定的通道,從而在不影響其它模塊的情況下達到了最大的靈活性。自動(dòng)檢測通過(guò)兩側監視器監視的事務(wù),根據配置進(jìn)行對照,然后產(chǎn)生錯誤提示,給出出錯的相關(guān)信息,這使得驗證人員可以根據錯誤報告準確定位錯誤發(fā)生地點(diǎn)。這些就是現代驗證的一個(gè)趨勢。

實(shí)驗結果

本平臺在UNIX工作站采用Synopsys的驗證開(kāi)發(fā)環(huán)境,設計語(yǔ)言采用OpenVera,應用Vera和VCS仿真工具。發(fā)送部分波形如圖3和圖4所示,芯片有8k的片內RAM,首先把發(fā)送數據寫(xiě)入RAM,當RAM中有數據或數據寫(xiě)完后再進(jìn)行發(fā)送。

如圖,從15100ns開(kāi)始向片內RAM寫(xiě)入發(fā)送數據;從27220ns開(kāi)始啟動(dòng)發(fā)送數據并添加前導(premable)、前定界(sfd)、校驗碼(fcs)。

結語(yǔ)

本文中所討論的驗證平臺已在具體項目中得到應用,該結構在很大程度上提高了可重用性、靈活性和驗證的自動(dòng)化程度。使用該驗證平臺, 能夠極大地提高驗證平臺開(kāi)發(fā)效率,也加速了設計的最終實(shí)現。



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>