国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

適用于系統(tǒng)級(jí)驗(yàn)證的VMM多層框架

發(fā)布時(shí)間:2011-11-16 14:44    發(fā)布者:李寬
關(guān)鍵詞: VMM , 驗(yàn)證
作者:ADI公司 Ashok Chandran,Sajeev Thomas,Saj Kapoor

基于驗(yàn)證方法手冊(cè)(VMM)的驗(yàn)證是非常有效的模塊級(jí)驗(yàn)證環(huán)境實(shí)現(xiàn)方法。在系統(tǒng)級(jí)采用模塊級(jí)驗(yàn)證組件可顯著改善驗(yàn)證質(zhì)量,縮短滿足系統(tǒng)級(jí)覆蓋率所需的時(shí)間。但是,這種方法也給系統(tǒng)級(jí)測(cè)試平臺(tái)帶來了一系列需要應(yīng)對(duì)的挑戰(zhàn),包括運(yùn)行時(shí)間、隨機(jī)化質(zhì)量、系統(tǒng)存儲(chǔ)器管理、多寄存器訪問接口、時(shí)鐘域和隨機(jī)穩(wěn)定性。此外,模塊到系統(tǒng)的重用方法應(yīng)當(dāng)簡(jiǎn)單、可擴(kuò)展。

對(duì)于具有專有內(nèi)核和系統(tǒng)接口的片上系統(tǒng)(SoC),通過匯編語言編碼進(jìn)行各種外圍器件不同模式下的測(cè)試并不是一個(gè)可擴(kuò)展的解決方案,也不大適合基于VMM的流程。在VMM流程中,會(huì)出現(xiàn)多個(gè)仿真線程同時(shí)訪問外設(shè)的情況。例如,在配置一個(gè)外設(shè)時(shí),可能有另一個(gè)線程正在讀取同一寄存器空間以檢查中斷狀態(tài)。在匯編測(cè)試中,一個(gè)內(nèi)核只有一個(gè)指令流,因此無法模擬這種行為。本文所述方法將內(nèi)核替換為總線功能模型(BFM),直接驅(qū)動(dòng)系統(tǒng)接口總線。每個(gè)模塊測(cè)試平臺(tái)在不同的線程中處理,并可以訪問相應(yīng)的外圍組件。采用VMM寄存器抽象層(RAL)可確保由模塊級(jí)測(cè)試平臺(tái)遷移到系統(tǒng)級(jí)時(shí),僅發(fā)生極小的行為改變。

系統(tǒng)測(cè)試平臺(tái)需要根據(jù)外設(shè)要求對(duì)系統(tǒng)組件進(jìn)行編程。例如,通用異步接收機(jī)/發(fā)射機(jī)(UART)模塊在發(fā)射之前,需要配置直接存儲(chǔ)器訪問(DMA)引擎并且初始化存儲(chǔ)器。由于系統(tǒng)架構(gòu)是所有外設(shè)的公用資源,因此提供一個(gè)統(tǒng)一的平臺(tái)和一些實(shí)用任務(wù)來根據(jù)外設(shè)要求配置系統(tǒng)會(huì)更合理。多層架構(gòu)能夠確保系統(tǒng)支持每個(gè)外圍組件。同時(shí)各層實(shí)現(xiàn)了隨機(jī)化,確保系統(tǒng)和外設(shè)覆蓋率最大化。

環(huán)境針對(duì)性能進(jìn)行了優(yōu)化,支持線程管理、條件編譯和模塊級(jí)測(cè)試平臺(tái)的即插即用。因此,這是一種自下而上的方法,模塊級(jí)需要遵守一套基本但寬泛的原則,以便簡(jiǎn)化集成。

本文將介紹傳統(tǒng)的系統(tǒng)級(jí)驗(yàn)證方法,并說明改進(jìn)的新方法,進(jìn)一步闡述分層架構(gòu)及其優(yōu)勢(shì)。本文還將討論通過適當(dāng)?shù)木程和存儲(chǔ)器管理來改善運(yùn)行時(shí)間的技術(shù),以及利用分離編譯和多核編譯技術(shù)解決編譯時(shí)間較長(zhǎng)問題的方法。最后,本文將涉及該測(cè)試平臺(tái)如何利用VMM錄制/回放方法來避免隨機(jī)穩(wěn)定性問題,以及如何支持匯編格式的測(cè)試轉(zhuǎn)儲(chǔ)。

設(shè)計(jì)詳情

本文考慮的設(shè)計(jì)是一個(gè)復(fù)雜的通用SoC,它包含多個(gè)內(nèi)核、一個(gè)中斷控制器、大量專有外設(shè)模塊、L1/L2/L3存儲(chǔ)器、存儲(chǔ)器控制器、DMA引擎和多個(gè)IP(知識(shí)產(chǎn)權(quán))模塊。一些模塊可以通過內(nèi)置的DMA引擎訪問系統(tǒng)存儲(chǔ)器,另一些模塊則使用系統(tǒng)DMA引擎訪問存儲(chǔ)器。雖然沒有明確顯示,但外設(shè)與存儲(chǔ)器之間有多個(gè)仲裁層。

該芯片還有多個(gè)模塊、電源和用于仲裁的系統(tǒng)交叉開關(guān),如圖1的簡(jiǎn)化示意圖所示。外部引腳通過多路復(fù)用方案由多個(gè)外設(shè)共用。


圖1 :設(shè)計(jì)概覽。

系統(tǒng)級(jí)驗(yàn)證挑戰(zhàn)

系統(tǒng)級(jí)驗(yàn)證旨在驗(yàn)證系統(tǒng)配置與外設(shè)模式的不同組合,這會(huì)揭示許多有意義的情況,其中包括:

是否經(jīng)歷了所有可能影響外設(shè)的系統(tǒng)配置模式下的外設(shè)模式?

1.關(guān)于連接是否存在遺漏?一旦處在特定的系統(tǒng)/外設(shè)配置下,該連接就可能變得可見。

2.是否所有模塊都已連接到適當(dāng)?shù)臅r(shí)鐘域?

3.當(dāng)多個(gè)外設(shè)為獲得系統(tǒng)資源而競(jìng)爭(zhēng)時(shí),系統(tǒng)中是否存在帶寬問題?

4.每個(gè)DMA/外設(shè)都有對(duì)整個(gè)存儲(chǔ)器空間的讀寫權(quán)限嗎?

5.系統(tǒng)內(nèi)的所有寄存器都可以訪問嗎?

6.是否會(huì)產(chǎn)生流量模式,從而驗(yàn)證系統(tǒng)真正支持使用案例?

7.模塊是否采用了在系統(tǒng)上無效的行為,或者模塊是否看到了它不是為此而設(shè)計(jì)的行為?

由于涉及到大量組合,對(duì)于如此復(fù)雜的SoC利用定向測(cè)試來驗(yàn)證上述各種情況是不可行的。

使用模塊級(jí)VMM測(cè)試平臺(tái)可在系統(tǒng)級(jí)提供良好的覆蓋率,但是隨著模塊數(shù)量的增加,將會(huì)帶來一系列全新的挑戰(zhàn)。

1.系統(tǒng)編程應(yīng)與外設(shè)模式相關(guān)。例如,針對(duì)接收模式下的一個(gè)外設(shè),需要在存儲(chǔ)器寫入模式下對(duì)DMA進(jìn)行編程。當(dāng)模塊級(jí)測(cè)試平臺(tái)在系統(tǒng)級(jí)工作時(shí),將系統(tǒng)配置信息封裝在外設(shè)交易(transaction)類中,這種分層方法提供一種可在所有模塊上實(shí)現(xiàn)的通用方法。

2.大量模塊子環(huán)境和線程一起運(yùn)行必然會(huì)拖慢仿真,因此必須對(duì)線程進(jìn)行管理,確保只有活動(dòng)的測(cè)試平臺(tái)占用CPU周期。

3.龐大的測(cè)試平臺(tái)和復(fù)雜的設(shè)計(jì)會(huì)導(dǎo)致編譯時(shí)間過長(zhǎng),形成嚴(yán)重的開發(fā)瓶頸,必須利用工具的高級(jí)特性來克服這一障礙。

4.寄存器訪問機(jī)制必須對(duì)所有模塊和系統(tǒng)測(cè)試平臺(tái)一致。VMM RAL提供了合理的解決方案,消除了寄存器訪問的物理接口在模塊級(jí)與系統(tǒng)級(jí)之間改變時(shí)的所有問題。

5.引起故障的測(cè)試案例必須能夠再現(xiàn),以充分驗(yàn)證解決辦法有效性。

多層框架

測(cè)試平臺(tái)組件在不同層工作。圖2所示的分層架構(gòu)支持模塊到系統(tǒng)重用和系統(tǒng)級(jí)的即插即用功能。下面將從下至上描述各個(gè)不同的層。


圖2:分層架構(gòu)。

1. VMM寄存器抽象層

此層處理基于RAL的寄存器讀寫操作。RAL對(duì)于測(cè)試平臺(tái)從模塊到系統(tǒng)的重用起著重要的促進(jìn)作用。測(cè)試平臺(tái)獨(dú)立于物理總線協(xié)議。高級(jí)RAL交易轉(zhuǎn)化為RAL訪問層內(nèi)的物理層交易。物理層交易描述物理協(xié)議(如APB、AHB和AXI等)。物理層利用RAL訪問層提供的交易驅(qū)動(dòng)總線信號(hào)。

2. 系統(tǒng)組件層

此層管理所有系統(tǒng)組件,如DMA、存儲(chǔ)器和中斷控制器等。該層與軟件API相似,提供一套任務(wù)、對(duì)象、協(xié)議和原則用于系統(tǒng)管理。例如,請(qǐng)求n個(gè)數(shù)據(jù)項(xiàng)將轉(zhuǎn)換為適當(dāng)?shù)腄MA編程,利用所需數(shù)據(jù)初始化存儲(chǔ)器并處理DMA中斷。該層還增加了數(shù)據(jù)校驗(yàn)以驗(yàn)證數(shù)據(jù)路徑,并向外設(shè)層顯示中斷。

3. 外設(shè)層

此層管理模塊級(jí)子環(huán)境(subenv)。它還能同步系統(tǒng)事件,如中斷和利用模塊級(jí)子環(huán)境進(jìn)行配置等。

4. 測(cè)試層

此層利用VMM方案和多流方案發(fā)生器(MSSG)產(chǎn)生隨機(jī)交易。通過對(duì)外設(shè)屬性和系統(tǒng)配置應(yīng)用限制條件,能夠產(chǎn)生定向隨機(jī)方案。

設(shè)計(jì)方法

本部分闡述如何實(shí)現(xiàn)分層結(jié)構(gòu),同時(shí)討論對(duì)系統(tǒng)級(jí)驗(yàn)證有價(jià)值的其他內(nèi)容。

內(nèi)核無關(guān)的測(cè)試平臺(tái)

大部分SoC使用的內(nèi)核要么是經(jīng)過充分驗(yàn)證的,要么僅進(jìn)行了極少的更改。即使更改較大,其驗(yàn)證也需要與系統(tǒng)級(jí)驗(yàn)證完全不同的方法。因此,內(nèi)核驗(yàn)證應(yīng)與系統(tǒng)驗(yàn)證分開進(jìn)行。測(cè)試平臺(tái)取代內(nèi)核,直接驅(qū)動(dòng)到系統(tǒng)中,如圖3所示。這種方法可提供更強(qiáng)大的控制能力和更多的功能,并且無需更改便可支持模塊級(jí)VMM測(cè)試平臺(tái)。由于設(shè)計(jì)開銷減少,其仿真速度更快。它還支持生成覆蓋率分級(jí)的匯編測(cè)試,以及在實(shí)際內(nèi)核上運(yùn)行測(cè)試。


圖3 :BFM取代內(nèi)核。

從模塊級(jí)到系統(tǒng)級(jí)的基本類變化

基本類從vmm_data轉(zhuǎn)變?yōu)橄到y(tǒng)級(jí)基本類,如圖4所示。用于轉(zhuǎn)變的基本類是與外設(shè)和系統(tǒng)配置關(guān)系最密切的基本類,其參數(shù)能夠影響系統(tǒng)配置,包括外設(shè)方向和所有已使能的中斷等。系統(tǒng)特性現(xiàn)已嵌入此交易類中,換言之,系統(tǒng)層插入發(fā)生級(jí);編碼樣式如示例1所示。以下幾個(gè)優(yōu)點(diǎn)值得注意:


圖4 : 基本類變化。

示例1 : 外設(shè)基本類的編碼樣式。



1.可以將更多限制條件添加到隨機(jī)系統(tǒng)級(jí)類上,使外設(shè)模式與系統(tǒng)模式相關(guān)。因此,無需更改任何代碼,就能將同一組類同時(shí)用于模塊和系統(tǒng)測(cè)試平臺(tái)。

2.使用VMM數(shù)據(jù)宏確保類層級(jí)無縫改變。

3.唯一的peripheral_id識(shí)別系統(tǒng)內(nèi)的外設(shè)。

4.系統(tǒng)基本類中的寄存器功能和vmm_opts的使用確保當(dāng)中斷改變或焊盤引腳位置改變時(shí),無需更改代碼。因此,測(cè)試平臺(tái)能夠在不同項(xiàng)目之間高效移植,系統(tǒng)中測(cè)試平臺(tái)的多個(gè)實(shí)例也能得到有效支持。

集成和管理子環(huán)境

在傳統(tǒng)的VMM流程中,所有模塊級(jí)子環(huán)境都被添加到頂層環(huán)境內(nèi)部,然后從vmm_env調(diào)用subenv的配置、啟動(dòng)和停止等。這種流程會(huì)帶來以下問題:

1.大量子環(huán)境會(huì)導(dǎo)致頂層環(huán)境變得異常復(fù)雜。

2.所有子環(huán)境的初始化任務(wù)混在一起導(dǎo)致移植更加困難。

3.子環(huán)境與性能下降之間存在相關(guān)性。

與傳統(tǒng)流程相同,在新方法中模塊級(jí)子環(huán)境在頂層VMM環(huán)境內(nèi)分層次實(shí)例化,不同之處在于對(duì)子環(huán)境的管理由一個(gè)xactor接手。xactor產(chǎn)生于一個(gè)公共系統(tǒng)級(jí)類,它構(gòu)成外設(shè)層與系統(tǒng)組件層之間的接口層。 xactor分階段處理子環(huán)境,就像它是在模塊級(jí)一樣。此外,系統(tǒng)級(jí)任務(wù)從xactor內(nèi)部調(diào)用,以便配置外設(shè)所需的系統(tǒng)組件支持。此xactor內(nèi)接收的系統(tǒng)中斷通知經(jīng)由通知或函數(shù)/任務(wù)調(diào)用傳遞到模塊測(cè)試平臺(tái)。這種方法的優(yōu)勢(shì)在于:

1.頂層無需執(zhí)行子環(huán)境初始化任務(wù)。

2.使用VMM xactor迭代器可以實(shí)現(xiàn)即插即用功能。一旦一個(gè)xactor實(shí)例化,連接和共識(shí)(consensus)就會(huì)自動(dòng)添加。頂層針對(duì)實(shí)例化的唯一變化是只需調(diào)用xactor和子環(huán)境的構(gòu)建器。

3.子環(huán)境的整個(gè)階段處理完全在xactor內(nèi)部進(jìn)行,測(cè)試平臺(tái)的移植能力更強(qiáng), 。

示例2為用于實(shí)現(xiàn)外設(shè)xactor的代碼示例。

示例2 :IO xactor的實(shí)現(xiàn)。



下面的示例3說明添加IO到系統(tǒng)vmm_env如何大大簡(jiǎn)化,無需連接通道或啟動(dòng)/停止xactor,這些任務(wù)將由VMM xactor迭代器完成,迭代器會(huì)尋找系統(tǒng)xactor基本類的衍生類。

示例3: Xactor插入env中。



測(cè)試結(jié)束由系統(tǒng)狀態(tài)和外設(shè)狀態(tài)決定,外設(shè)狀態(tài)由子環(huán)境所傳遞的共識(shí)決定。結(jié)束測(cè)試之前,測(cè)試平臺(tái)會(huì)查看所有活動(dòng)組件的共識(shí)狀態(tài)。

指定交叉關(guān)系

在指定同一外設(shè)交易內(nèi)不同類型或模式的外設(shè)交易間關(guān)系上,使用VMM多流方案是一種有效的方法。如前所述,所有交易都產(chǎn)生自一個(gè)公共基本類,因此它們可以通過一個(gè)公共框架傳遞。一個(gè)路由器類(產(chǎn)生自vmm_broadcast)將交易路由至相應(yīng)的交易器,由其處理分組數(shù)據(jù)。該流程如圖5所示。


圖5:交易流程。

路由器回調(diào)函數(shù)也可以根據(jù)需要丟棄或修改分組數(shù)據(jù)。當(dāng)引腳通過多路復(fù)用方案由多個(gè)模塊共用時(shí),就需要進(jìn)行修改。這種情況下,可以丟棄引腳沖突的交易。由于路由器知曉所生成的交易,因此它可以決定僅針對(duì)那些在測(cè)試中處于活動(dòng)狀態(tài)的外設(shè)調(diào)用start_xactor(),從而避免不必要的線程。

功能覆蓋率

每個(gè)系統(tǒng)組件都會(huì)增加功能覆蓋率,這樣可以確保模塊與系統(tǒng)的功能覆蓋率之間有一個(gè)良好的交叉關(guān)系。由于模塊交易和xactor被重用,因此來自模塊級(jí)測(cè)試平臺(tái)的功能覆蓋率也可以在系統(tǒng)級(jí)重用。

流水線式RAL訪問

在多核系統(tǒng)中,任何一個(gè)內(nèi)核都可以訪問外設(shè)寄存器,并沒有一種直接的方法來指定在RAL讀寫期間外設(shè)在哪個(gè)內(nèi)核上工作。間接方法則是通過讀寫任務(wù)的data_id字段指定內(nèi)核,但其缺點(diǎn)是data_id的這種用法無法對(duì)來源不同的模塊級(jí)環(huán)境實(shí)施。

另一種解決辦法是將交易隨機(jī)映射到任一內(nèi)核,但是要求一個(gè)模塊的所有交易必須使用同一內(nèi)核接口。可以通過將內(nèi)核分配變?yōu)榉请S機(jī)方式進(jìn)行優(yōu)化 。然而,即便有多個(gè)接口可用,由于RAL訪問任務(wù)execute_single()一次只能接受一個(gè)交易,其效率仍然低下。如果啟用流水線式RAL,則所有接口可以同時(shí)使用,接口的使用將得到進(jìn)一步優(yōu)化。

使用VMM-MAM進(jìn)行存儲(chǔ)器管理

對(duì)于本身具有DMA引擎的IP模塊,必須直接配置系統(tǒng)存儲(chǔ)器,這將需要分配存儲(chǔ)器段。使用VMM存儲(chǔ)器分配管理器(MAM)進(jìn)行系統(tǒng)存儲(chǔ)器分配,可以防止試圖訪問存儲(chǔ)器的不同模塊發(fā)生沖突,并且有助于模塊到系統(tǒng)的重用。通過改變存儲(chǔ)器指針,模塊測(cè)試平臺(tái)可以訪問不同的系統(tǒng)存儲(chǔ)器,但同時(shí)仍然在系統(tǒng)級(jí)運(yùn)行。VMM-MAM還能分配具有所需存儲(chǔ)器對(duì)齊方式的隨機(jī)區(qū)域。

VMM錄制/回放

利用VMM錄制功能可以錄制交易,這有助于保存測(cè)試案例,即使測(cè)試平臺(tái)后來經(jīng)過多次變更,保存下來的測(cè)試案例仍然可以回放。如果沒有錄制,則在線程順序發(fā)生改變的情況下,測(cè)試可能無法利用種子再現(xiàn)相同的方案。

使用RAL回調(diào)函數(shù)進(jìn)行測(cè)試轉(zhuǎn)儲(chǔ)

通過附加RAL回調(diào)函數(shù),可以將動(dòng)態(tài)完成的配置打印輸出為匯編語言格式,這將生成所執(zhí)行測(cè)試的一個(gè)靜態(tài)版本。回調(diào)函數(shù)可以在配置開始之前插入,然后在配置完成時(shí)刪除,如下面示例4所示。

示例4 : RAL轉(zhuǎn)儲(chǔ)示例。

本文地址:http://m.qingdxww.cn/thread-79437-1-1.html     【打印本頁】

本站部分文章為轉(zhuǎn)載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé);文章版權(quán)歸原作者及原出處所有,如涉及作品內(nèi)容、版權(quán)和其它問題,我們將根據(jù)著作權(quán)人的要求,第一時(shí)間更正或刪除。
lrshaggy1984 發(fā)表于 2012-3-20 09:40:32
這么好的書啊
您需要登錄后才可以發(fā)表評(píng)論 登錄 | 立即注冊(cè)

廠商推薦

  • Microchip視頻專區(qū)
  • Dev Tool Bits——使用MPLAB® Discover瀏覽資源
  • Dev Tool Bits——使用條件軟件斷點(diǎn)宏來節(jié)省時(shí)間和空間
  • Dev Tool Bits——使用DVRT協(xié)議查看項(xiàng)目中的數(shù)據(jù)
  • Dev Tool Bits——使用MPLAB® Data Visualizer進(jìn)行功率監(jiān)視
  • 貿(mào)澤電子(Mouser)專區(qū)

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號(hào) | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 日韩免费一级 | 国产h视频免费观看 | 欧美在线一区二区三区精品 | 亚洲综合视频在线观看 | 在线观看麻豆精品国产不卡 | 欧美高清360 | 精品麻豆视频 | 欧美一级日韩一级亚洲一级 | 久久精品午夜 | 成人精品h高辣长篇小说 | 婷婷综合丁香 | 99re热这里只有精品18 | a三级毛片 | 在线观看日本网站 | 日韩成人在线观看视频 | 日本a免费观看 | www.色视频 | 久草久 | 大丈夫电视剧在线观看 | 四虎在线最新永久免费播放 | 91高清在线成人免费观看 | 黄片毛片一级片 | 久久99精品久久久久久秒播放器 | 四虎影永久在线观看精品 | 动作动漫在线观看免费网站 | 精品卡通动漫在线观看视频一区 | 亚洲特黄大黄一级毛片 | 国产福利在线免费 | 日韩av片免费播放 | 日韩欧美成末人一区二区三区 | 五十路亲子中出在线观看 | aaa一级黑人毛片 | 在线观看91精品国产入口 | 日韩高清在线不卡 | 天天综合日日噜噜噜 | 欧美日韩亚洲第一页 | 中文字幕日韩在线 | 亚洲成年人 | 欧美伊人网 | 国产精品伦理久久久久久 | 精品久久久久久久久久久 |