<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è) > EDA/PCB > 設計應用 > 分層驗證法在基于A(yíng)MBA系統中的應用

分層驗證法在基于A(yíng)MBA系統中的應用

作者:■ Synopsys公司 Mick Posner 時(shí)間:2005-04-27 來(lái)源:eaw 收藏

在基于A(yíng)MBA(Advanced Microcontroller Bus Architecture,先進(jìn)的微控制器總線(xiàn)體系結構)的系統中,用戶(hù)設計的模塊和第三方IP模塊與AMBA AHB(Advanced High-performance Bus)和AMBA APB(Advance Peripheral Bus)總線(xiàn)相連,如圖1所示。分層驗證方法能夠跨越總線(xiàn)邊界應用于A(yíng)HB和APB兩種總線(xiàn)系統。同樣的方法還可以用于多層設計以及新的先進(jìn)可擴展接口(Advanced eXtensible Interface,AXI)。下面主要討論與AHB連接的用戶(hù)設計的模塊。
驗證環(huán)境目標:
* 支持單一模塊級組件驗證;
* 支持子系統組件集成和子系統驗證;
* 支持全系統范圍的集成和全系統驗證;
* 全面改善覆蓋范圍;
* 提供第三方IP模塊的快速集成。
驗證環(huán)境本身也應是可升級的,以便在后續的驗證項目重用。

分層驗證
為了完成既定目標,需要一種分層的方法驗證。分層法用于單個(gè)模塊級驗證以及子系統級和全系統級驗證。每一層測試都建立在其它層之上,因此從層與層之間的轉移只需做很少的工作。每一層的測試可在后續的層或新的驗證項目中重用。
將系統分為三層(見(jiàn)圖2),第一層的測試目標是接口協(xié)議的驗證。第二、三層的目標是用真實(shí)數據流驗證專(zhuān)用邏輯。
第一層
第一層的目標是測試物理總線(xiàn)接口,確保其不違反總線(xiàn)協(xié)議。接口必須遵守在這部分定義的AMBA AHB或APB協(xié)議。第一層測試是一組直接測試,它確保所有不同的總線(xiàn)周期都能被正確執行。每一項測試都創(chuàng )建成檢查總線(xiàn)協(xié)議的專(zhuān)門(mén)區域。所有的基本事務(wù)都被測試后,就可以進(jìn)入第二層。
第二層
第二層的目標是產(chǎn)生一個(gè)事務(wù)序列,不僅重點(diǎn)測試總線(xiàn)接口邏輯,而且還要測試專(zhuān)用邏輯。第二層測試產(chǎn)生真實(shí)設計數據流。為了完全實(shí)現第二層目標,在驗證環(huán)境中必須引入條件隨機技術(shù)(constrained random techniques)。
用條件隨機技術(shù)實(shí)現第二層目標的主要益處是很容易完成第一個(gè)測試。用幾個(gè)簡(jiǎn)單的功能命令,就能產(chǎn)生總線(xiàn)周期。高位總線(xiàn)周期和功能區完成也很快,并且還能發(fā)現更多的難點(diǎn)。將更多的運用統計概念而非僅用直接測試。這種條件隨機環(huán)境能夠從少量的基準測試碼中產(chǎn)生大量的激勵。由于對設計需求是有條件的,因此仿真周期不會(huì )因疏忽而浪費在子系統中無(wú)關(guān)緊要的部分。條件隨機數據流將使驗證著(zhù)重針對設計模塊而非直接測試。實(shí)際的數據流將完全測試模塊專(zhuān)用邏輯,在某種意義上,更接近物理硅的情況。
條件隨機激勵應用于簡(jiǎn)單的AMBA AHB周期,也即條件隨機事務(wù)(CRT)功能(見(jiàn)圖3),可以簡(jiǎn)單而迅速地產(chǎn)生擴展周期。對于一個(gè)給定的AHB事務(wù),傳輸類(lèi)型、地址、大小和脈沖類(lèi)型都是有條件的。
例如,AHB主機能產(chǎn)生一個(gè)大小和脈沖寬度都可變的讀寫(xiě)周期。在這個(gè)周期中,讀操作占10%,寫(xiě)操作占70%,空閑狀態(tài)占20%。用傳統的HDL語(yǔ)言是很難描述的。
一個(gè)完整的條件隨機環(huán)境定義為一組事務(wù),上面是序列層,中間是選擇層,最后是事務(wù)條件層。有效載荷反饋進(jìn)系統中,形成一個(gè)自激的激勵信號發(fā)生器。單個(gè)事務(wù)綜合到一起形成一個(gè)序列,多組序列綜合到一起形成一個(gè)選擇,多個(gè)選擇產(chǎn)生廣泛的事務(wù)周期和響應。
第三層:專(zhuān)用測試
第三層的測試用于提高設計穩定性。所有部件都將工作起來(lái),包括系統和應用引導序列。在這一層檢查軟件與軟件的接口,測試最終API和驅動(dòng),以及更重要的系統性能。至此,一個(gè)完整的層次關(guān)系被確定下來(lái)。第三層測試目標是單個(gè)模塊或系統的高級功能。第三層還有一個(gè)特點(diǎn),即能夠發(fā)現錯誤(bug)。而傳統的方法只能在實(shí)驗室里,產(chǎn)品在投入應用的過(guò)程中才會(huì )發(fā)現。
層目標
第一層的目標是測試模塊的接口,第二、三層的目標不僅測試接口,更重要的是測試模塊專(zhuān)用邏輯(見(jiàn)圖4)。測試時(shí)的所有訪(fǎng)問(wèn)都通過(guò)AMBA總線(xiàn)。層被應用于設計驗證處理的每一級,從模塊級驗證,到子系統,到最終的全系統驗證。

用分層驗證方法進(jìn)行模塊級驗證
在基于A(yíng)MBA系統構建之前,每一個(gè)模塊都必須進(jìn)行功能測試。每一個(gè)模塊都在獨立的環(huán)境中驗證,并且在每一層都要進(jìn)行測試。這就是子系統綜合前的設計,它是為了發(fā)現基本功能性錯誤。在這一級,基準測試序列既可以用傳統的硬件描述語(yǔ)言如VHDL或Vrilog編寫(xiě),也可以用硬件驗證語(yǔ)言如OpenVera編寫(xiě)。OpenVera在設計時(shí)就考慮到易于創(chuàng )建基準測試序列,并且在構建時(shí)考慮到便于運用象 Vera一樣的工具進(jìn)行自動(dòng)驗證,因此很容易完成驗證任務(wù)。
在模塊級驗證階段,第一層測試檢查模塊能否經(jīng)由定義的AMBA接口被訪(fǎng)問(wèn)。在子系統集成開(kāi)始前,模塊必須符合AMBA協(xié)議要求。所有總線(xiàn)周期必須被檢查以確保模塊與AMBA系統中的其它模塊連接時(shí)正確運行。在最短時(shí)間內和最大程度上完成這項工作的最好方法就是用驗證IP,如的DesignWare驗證IP,驅動(dòng)用戶(hù)邏輯模塊。
AHB主機驗證IP用于產(chǎn)生直接讀寫(xiě)測試,它將全面檢查用戶(hù)模塊的AHB總線(xiàn)接口(見(jiàn)圖5)。有一個(gè)監控器用于檢查是否違反AMBA協(xié)議,并捕捉總線(xiàn)周期的各種信息。監控器可以讓驗證工程師知道總線(xiàn)接口已經(jīng)測試了多少。在第一層,若用直接測試的方法實(shí)現100%總線(xiàn)測試是不太可能的。而實(shí)際上,第一層的目標就是100%的總線(xiàn)周期或事務(wù)范圍測試。這個(gè)目標確保模塊在最短時(shí)間內響應絕大多數AMBA周期。
為了實(shí)現更廣泛的功能范圍,第一層的測試環(huán)境能迅速擴展到支持第二層測試。在第二層要用更多的真實(shí)總線(xiàn)數據流測試模塊功能。為了完全實(shí)現第二層目標,必須應用條件隨機技術(shù)。在第二層產(chǎn)生隨機數據流是很重要的,因為它特別強調總線(xiàn)操作,能揭示那些被忽視的情況。用直接測試完成這件事情,不僅需要大量的時(shí)間,而且并不能仿真真正的AMBA環(huán)境。這些事務(wù)序列開(kāi)始測試用戶(hù)模塊的專(zhuān)用功能。
用更完全的形式測試用戶(hù)模塊就是進(jìn)行大量的AMBA訪(fǎng)問(wèn),同時(shí)檢查模塊到模塊的數據完整性。還應該產(chǎn)生一些事務(wù)序列,檢查用戶(hù)模塊處在更完全系統中的功能。
當第一層測試與AMBA協(xié)議一致時(shí),它在第二層仍然有效。第二層測試將產(chǎn)生更全面的AMBA AHB協(xié)議。在條件隨機激勵作用下,測試將接近100%總線(xiàn)事務(wù)目標。
同樣的方法可以建立第三層專(zhuān)用測試。創(chuàng )建一個(gè)測試,模擬實(shí)際的應用功能,如高速緩存接入、DMA傳輸和器件引導配置。引導和應用配置時(shí)唯一的限制因素是仿真周期和時(shí)鐘時(shí)間本身。在第三層用傳統的全功能CPU模式測試將需要數百萬(wàn)個(gè)時(shí)鐘周期。用AHB主機驗證IP方式則會(huì )減少時(shí)鐘周期,并使測試很容易管理。第三層測試的整體優(yōu)勢是模塊接近最終的應用形式。例如,在引導過(guò)程中測試寄存器負載能徹底清除在引導中可能導致系統崩潰的功能錯誤。

用分層驗證方法進(jìn)行子系統級驗證
當單個(gè)模塊全部驗證完成后,它們就可以集成到子系統環(huán)境中。每一級與模塊級驗證中的一樣,應用于子系統環(huán)境中。每一層的驗證目標也是一樣的,例如第一層的協(xié)議檢查,第二層的事務(wù)序列產(chǎn)生,第三層的專(zhuān)用測試。將每一個(gè)模塊組合到子系統中,測試的不僅是單個(gè)模塊,還包括子系統結構本身。
子系統包括實(shí)際的數據流發(fā)生器,如PCI、USB和物理存儲器以及存儲器控制模塊。圖6中第三方IP模塊是已經(jīng)發(fā)布的可配置預驗證IP。預驗證IP模塊并不需要單獨的模塊級驗證,因為IP提供者已經(jīng)完成這項工作,但是它在子系統中還是應驗證其與其它模塊的連接關(guān)系。
第一層測試檢查子系統是否正確連接,是否違反AMBA協(xié)議。在第一層中為模塊級驗證任務(wù)創(chuàng )建的測試可以在子系統驗證中重用。在檢查子系統協(xié)議時(shí),測試修改很方便,就像檢查子系統中的單一單元一樣。
第二層的模塊級條件隨機處理也可以重用。在子系統中,測試的產(chǎn)生是執行同樣的AHB主機條件隨機任務(wù)。增加的AHB主機,如新增加的PCI和USB模塊承擔著(zhù)最多的創(chuàng )建總線(xiàn)數據流的任務(wù)。這些模塊就是DesignWare驗證IP,因此在第一次測試前只須花很少的時(shí)間。條件隨機技術(shù)應該用于這些實(shí)際的數據流發(fā)生器,就象它應用于模塊級測試中的AHB主機一樣。這個(gè)子系統驗證環(huán)境很快將產(chǎn)生大量的設計數據,這些數據將全面測試每個(gè)模塊的接口和所有應用。
再次驗證在這一級是很重要的。因為所驗證的設計越來(lái)越大,實(shí)現目標變得越來(lái)越困難。在子系統級,直接測試幾乎是不可能的,即使是最簡(jiǎn)單的AMBA子系統,也要激勵所有可能的系統配置。條件隨機事務(wù)產(chǎn)生是唯一的方法,只有它能產(chǎn)生足夠的子系統測試來(lái)完成整個(gè)目標。
子系統級是工程師第一個(gè)設置監控器的地方,因此可以了解用戶(hù)模塊與其它子系統組件的相互連接關(guān)系,發(fā)現接口邏輯和專(zhuān)用邏輯中的錯誤。第二和第三層的測試能迅速發(fā)現錯誤。第一層協(xié)議只注意協(xié)議規則,第二、三層測試檢查所有子系統組件工作正確與否。
第三層專(zhuān)用測試工作在模塊級,也可以在子系統內擴展到多個(gè)組件。例如通過(guò)測試PCI和存儲器控制IP的配置,查看PCI接口數據傳輸情況和外部存儲器數據存儲情況。開(kāi)始和末端的數據映像用于驗證數據是否被存放在正確的地址里。這種測試還特別注重總線(xiàn)結構和仲裁邏輯。

最終系統級驗證
在系統級仍然可以用分層的方法,但是現在相當多的驗證負擔要由實(shí)際的系統級組件承擔。已經(jīng)存在的來(lái)自子系統驗證環(huán)境的第一、二和三層測試都可以在正確創(chuàng )立的系統環(huán)境中重用。
在系統級中,已預驗證的第三方IP模塊可被用來(lái)建造一個(gè)完整的系統??芍赜肐P模塊減少了創(chuàng )建系統環(huán)境的工作量,從而讓設計者將更多的時(shí)間集中到核心組件上。
在系統級,驗證目標是檢查為專(zhuān)門(mén)應用而設計的整個(gè)系統??偩€(xiàn)協(xié)議的驗證不僅要做,更需要注意的是高一級的應用測試。在系統級,實(shí)際的應用軟件用于測試。這個(gè)軟件運行在全功能軟件模型上,而不是低級別的AHB主機模型上。
運行實(shí)際應用編碼的優(yōu)點(diǎn)是創(chuàng )建一個(gè)與真實(shí)系統盡可能接近的環(huán)境。缺點(diǎn)是當執行軟件編碼時(shí)很難控制總線(xiàn)周期。編碼不能產(chǎn)生測試所有總線(xiàn)事務(wù)協(xié)議的一整套總線(xiàn)周期,這是系統級環(huán)境中重新運行第一、二層測試的重要原因。第三層測試模擬引導序列和全系統配置。
在系統級仿真環(huán)境中運行的測試軟件都應在實(shí)際的硅級上再運行,以驗證其功能。實(shí)際硅級的操作都應在系統級仿真中再現,以方便調試?!?nbsp; (陳鋮譯)



關(guān)鍵詞: Synopsys

評論


相關(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>