<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 > 設計應用 > 可配置系統級驗證環(huán)境加速SoC開(kāi)發(fā)

可配置系統級驗證環(huán)境加速SoC開(kāi)發(fā)

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

利用嵌入式硅IP可以縮短設計所需的開(kāi)發(fā)時(shí)間,這已成為眾所公認的事實(shí)。但要從完工后的整個(gè)系統角度出發(fā),整合及驗證來(lái)自多家廠(chǎng)商的元件,需要相當的時(shí)間和努力,然而它們卻常被忽略。這會(huì )對嵌入式軟件開(kāi)發(fā)人員造成額外負擔,因為他們需要的外圍和接口以及處理器的精確模型,才能在設計投片之前,針對正在開(kāi)發(fā)的,迅速完成應用固件的測試及除錯。如果SoC平臺以可配置處理器和外圍IP為基礎,這些IP又來(lái)自多家供貨商,這種情形就更加重要,因為設計人員必須確認在特定配置下,每個(gè)元件的功能不會(huì )影響到其它元件的工作。
除此之外,可配置SoC的研發(fā)人員也需要一個(gè)強健可靠的協(xié)同仿真和軟/硬件協(xié)同驗證環(huán)境,以及能對最終形式的SoC設計進(jìn)行仿真的可配置測試平臺方法。這類(lèi)方法或環(huán)境為研發(fā)人員提供并行處理能力,例如當此環(huán)境同時(shí)執行錯誤檢查、測試覆蓋率分析,及在實(shí)際條件下進(jìn)行系統性能分析時(shí),工程師可執行測試程序,對它們進(jìn)行調試,或當外設收發(fā)數據時(shí),在處理器上執行典型應用。

所需技術(shù)
IP供應商提供已驗證的IP,某些廠(chǎng)商甚至提供工具及驗證套件,以將其IP整合到客戶(hù)的最終系統,并對整合結果進(jìn)行驗證。但是卻沒(méi)有廠(chǎng)商提供靈活的、可擴充的系統級功能驗證環(huán)境-這是SoC開(kāi)發(fā)流程的一部分;也沒(méi)有廠(chǎng)商提供能在單一集成環(huán)境中執行的軟硬件協(xié)同驗證。理論上,系統級驗證環(huán)境應該把所需的仿真工作和運行時(shí)間降至最低,并使設計人員充分管理復雜系統的相互作用,執行實(shí)際軟件并確保很高的測試覆蓋率。
絕大多數廠(chǎng)商的IP驗證策略是單獨對每個(gè)方塊進(jìn)行測試,而且使用的測試配置也不同于其它IP塊。系統測試僅限于基礎系統內各個(gè)方塊的相互作用,包括處理器IP、內存IP、外設IP和公共系統總線(xiàn)。絕大多數測試都屬于一般性測試,并只側重于系統的某些方面。它們不會(huì )采用偽隨機激勵(stimulus),也不會(huì )利用參考模型來(lái)支持靈活的檢測技術(shù),只有IP買(mǎi)方或是為了推出新產(chǎn)品的供貨商,才會(huì )利用部份周期執行回歸測試。此外,沒(méi)有簡(jiǎn)單方法可用來(lái)試驗可配置處理器和外設IP所支持的各種配置;測試方塊間復雜的相互作用情況;分析硬件及軟件性能;或讓用戶(hù)利用同一仿真平臺開(kāi)發(fā)及測試應用程序。
傳統的系統級驗證解決方案利用Verilog之類(lèi)的硬件描述語(yǔ)言來(lái)開(kāi)發(fā)測試平臺。但是以硬件描述語(yǔ)言為基礎的測試平臺不具備可移植性,這使工程師必須重新開(kāi)發(fā)測試平臺和測試內容,才能在最終系統上驗證IP。此外,這種平臺也缺乏靈活性,無(wú)論系統何時(shí)被修改都要求很多繁雜的變化。據估計,開(kāi)發(fā)大型而復雜的SoC時(shí),驗證會(huì )占用70%或更多的時(shí)間,因為環(huán)境模型的建立、測試平臺的設計以及測試內容的撰寫(xiě)都需要很多時(shí)間。雖然進(jìn)行這些測試只需要幾個(gè)小時(shí),但測試平臺和測試內容的開(kāi)發(fā)卻需要幾個(gè)月的時(shí)間。另外,傳統方法使實(shí)時(shí)檢查以及驗證程序代碼的重復使用性變得非常困難,這些以硬件描述語(yǔ)言為基礎的環(huán)境也不適合固件研發(fā)人員,他們需要嵌入式軟件工具、快速的處理器執行模型 (每秒最高執行1百萬(wàn)個(gè)指令) 以及一套軟件方法,以便控制測試流程和測試平臺實(shí)用程序 (testbench utilities)。
一套較好的系統級驗證環(huán)境若以固件研發(fā)人員為支持對象,那么它應包含集成式硬件/軟件仿真及調試環(huán)境,并允許此環(huán)境通過(guò)實(shí)際界面,連接至控制SoC的測試平臺以及最終測試環(huán)境內的其它任何組件。這個(gè)測試平臺可以是簡(jiǎn)單的內存總線(xiàn)監視程序,也可以是復雜的分組業(yè)務(wù)生成程序。要對可配置IP進(jìn)行適當測試,測試平臺及其模型也必須可配置,以便適應客戶(hù)的應用需求。對于固件或應用軟件來(lái)說(shuō),這種完整的系統級環(huán)境是一種系統內驗證模型或測試平臺。舉例來(lái)說(shuō),它能測試以10/100 Mbps速率通過(guò)以太網(wǎng)接口與外部系統進(jìn)行數據收發(fā)的處理器,同時(shí)對另一個(gè)必須執行實(shí)時(shí)操作系統和協(xié)議棧的應用進(jìn)行測試。因此,開(kāi)發(fā)環(huán)境必須包含一組測試平臺實(shí)用程序來(lái)執行硬件檢查和診斷,這將使程序庫和測試程序變得很簡(jiǎn)單,并能嵌入應用軟件。
此時(shí)所需要的是一套驗證方法,讓SoC設計人員能驗證硬件IP,同時(shí)提供平臺來(lái)仿真開(kāi)發(fā)人員的軟件IP。測試方法通常包含定向測試,它們會(huì )順序測試不同功能,但驗證技術(shù)的最新趨勢包括:
* 隨機產(chǎn)生的系統事件或錯誤插入,它們能和處理器及外圍的測試程序同時(shí)執行,以便仿真實(shí)際的激勵;
* 自動(dòng)產(chǎn)生的自我檢查測試,并使用參考模型和評分表 (scoreboard) 技術(shù),因此,不需在測試代碼中嵌入這些功能;
* 特定IP的系統級驗證事件,無(wú)論這些IP是由使用者自行開(kāi)發(fā)或來(lái)自IP供應商,這些驗證事件都能重復用于整個(gè)SoC。
最適合可配置SoC IP的系統級驗證環(huán)境應能夠:
* 支持處理器和外設的并行處理,進(jìn)而把硬件及軟件協(xié)同仿真環(huán)境和測試平臺集成在一起;
* 由IP供貨商設計成使用者能夠共享和擴充的公用環(huán)境;
* 使用者不必購買(mǎi)昂貴的測試平臺設計工具;
* 允許使用者選擇特定的IP配置以及配合這些配置的仿真;
* 同時(shí)提供定向測試和隨機測試的匯編程序碼,以及隨機性的外圍數據流量;
* 提供覆蓋率監測和報告,顯示IP被測試的程度;
* 可重復用于整個(gè)SoC和相關(guān)固件的驗證;
* 提供實(shí)用程序以并行測量硬件和軟件性能;
* 可以運行和驗證應用程序代碼。

系統級協(xié)同驗證/仿真環(huán)境
雖然理想的系統級驗證環(huán)境很容易轉換至原型開(kāi)發(fā)環(huán)境,但并不適合用來(lái)建立產(chǎn)品原型。盡管如此,它還是能大幅減少原型測試和調試工作,加快產(chǎn)品的上市時(shí)間。
International公司執行廣泛的系統級驗證配置和測試,其主要目的是對包含 IP的系統進(jìn)行驗證,確保它們的功能正常,并且滿(mǎn)足客戶(hù)的系統要求,進(jìn)而節省開(kāi)發(fā)時(shí)間。提供的系統級驗證環(huán)境(見(jiàn)圖1)包括:
* 一套基于Synopsys的Vera測試平臺語(yǔ)言的測試平臺;
*由基本系統配置組成的待測器件;
* ARC的MetaWare工具鏈,可利用指令集仿真器 (ISS) 取代處理器的RTL程序代碼。
這套系統級驗證環(huán)境把處理器驗證環(huán)境和數據流驗證環(huán)境這兩個(gè)不同的環(huán)境結合在一起(見(jiàn)圖2),以提供復雜的系統互動(dòng),同時(shí)在系統級并行驗證ARC可擴展式處理器核心、外設數據流以及可選擇的ARC系統配置。這兩種環(huán)境具有不同的特性和需求,處理器驗證環(huán)境專(zhuān)注于指令執行流程、分支、條件、中斷和跳躍,外設數據流環(huán)境則以系統內的數據傳送為主。
外設數據流程也可配置,以便支持相同外設或不同外設的組合。利用協(xié)同仿真ISS模型,或與CPU的RTL模型相連的ISS調試器,即可同時(shí)從MetaWare調試環(huán)境以及硬件描述語(yǔ)言仿真器環(huán)境對系統進(jìn)行調試。
使用者可以設定這套系統級驗證環(huán)境,使其支持ARC工具所能建立的各類(lèi)系統。這套驗證環(huán)境的架構也經(jīng)過(guò)特別設計,能在系統級執行硬件和軟件檢查,將分組數據送入系統,執行一系列復雜指令,檢查系統相互作用的情況;它還包含一系列功能測試,例如特定配置的置信度測試 (confidence test)。不同類(lèi)型的登錄信息可對執行的測試進(jìn)行補充,為使用者提供配置狀態(tài)、指令執行、總線(xiàn)數據傳輸、總線(xiàn)利用率統計以及總線(xiàn)協(xié)議違規的監測。
這套系統級驗證策略還可提供一套靈活的基礎設施,使設計人員不需要了解測試平臺的實(shí)施細節,即可快速確認和執行用戶(hù)定義的測試方案。一組文本文件可對基本系統測試參數進(jìn)行控制,每個(gè)測試順序都成為在處理器上面執行測試程序,其優(yōu)點(diǎn)是,只需一個(gè)測試文件,即可控制處理器指令和外設指令的產(chǎn)生。
在此環(huán)境中運行的典型測試或應用程序代碼包括可配置中斷向量表、可配置中斷服務(wù)例程、包含外設初始化例程的主程序、以及測試順序例程或應用事件。測試代碼也包含最后清理階段 (clean-up phase),系統的統計信息就是在此階段搜集的。測試代碼的主程序還包含偽隨機指令發(fā)生器,它會(huì )協(xié)助產(chǎn)生測試激勵和匯編程序。ARC的指令集仿真器可做為參考模型,用于處理器隨機指令執行的功能檢查,它還能做為協(xié)同仿真模型的基礎。
這套系統級驗證環(huán)境和測試結構的開(kāi)發(fā)已考慮面向目標型方法和可重用性,讓工程師在自己的測試環(huán)境內,擴充部分或全部的測試平臺組件及測試內容。開(kāi)發(fā)應用程序時(shí),工程師可以選擇協(xié)同仿真環(huán)境,以便利用ISS處理器模型迅速執行指令。利用這套系統級驗證環(huán)境的靈活性,工程師還能選擇內存映像方式以及硬件和軟件仿真的多種同步模式。這套系統級驗證也能作為一組驗證實(shí)用程序,這對固件開(kāi)發(fā)人員很有用:只需在測試程序代碼中插入簡(jiǎn)單的API調用程序,即可從應用程序內調用測試平臺??稍跍y試平臺產(chǎn)生復雜的外設分組數據業(yè)務(wù),然后由處理器調用這些API進(jìn)行排序,使得處理器只需較少的cpu周期,即可完成某些動(dòng)作的執行,例如發(fā)送一個(gè)輸入以太網(wǎng)分組。以RTL作業(yè)和平臺互動(dòng)為目標的測試序列則是通過(guò)軟件API來(lái)執行,每個(gè)API都能以多種形式提供給設計人員使用,例如匯編語(yǔ)言宏、C/C++或測試平臺驗證語(yǔ)言的擴展。系統級驗證環(huán)境還為工程師提供了一組測試文件,使他們更容易控制基本測試參數。

設計范例
以消費類(lèi)電子產(chǎn)品,如PDA及其嵌入式應用為例,說(shuō)明設計人員如何利用ARC的系統級驗證環(huán)境,將應用移植到多個(gè)硬件平臺,同時(shí)將硬件和軟件功能分開(kāi)。典型系統分為三層:一個(gè)應用層,一個(gè)或多個(gè)協(xié)議層,和一個(gè)物理層。
設計一個(gè)消費類(lèi)電子應用,將它從某個(gè)物理實(shí)現轉到另一個(gè)物理實(shí)現,并確保它的功能正常,此過(guò)程的主要工作在于修改固件。舉例來(lái)說(shuō),從包含MAC物理層的PDA轉到另一部同時(shí)包含MAC以及USB或無(wú)線(xiàn)局域網(wǎng)物理層的PDA,這個(gè)過(guò)程就需要將應用移植,使它能在不同的協(xié)議層工作。同樣必要的是在搜集數據的最終環(huán)境內,對于性能分析的能力。例如,如果某個(gè)RAM復制例程的最初設計目標是作為軟件初始化程序的一部分,那么最重要的事就是確定此例程能否在新的物理層所要求的時(shí)間內完成工作,這個(gè)結果將決定是否需要利用硬件執行這個(gè)例程,而不是處理器執行。只要可以確定這個(gè)例程能在所要求的時(shí)間內完成工作,就能節省開(kāi)發(fā)RAM復制硬件所需的時(shí)間和努力。
為了展開(kāi)設計工作,研發(fā)工程師必須先規劃PDA硬件架構。假設用戶(hù)選擇ARC所提供的硬件配置,設計應包含處理器、內存子系統和兩個(gè)物理連接:用來(lái)連接至網(wǎng)絡(luò )的MAC,以及將PDA連接至PC或手機的USB。即使采用這種固定的系統劃分方式,使用者仍可選擇某些硬件以差異化最終配置。例如內存:儲存開(kāi)機程序的ROM容量、系統內存的種類(lèi) (閃存或SRAM) 和數據RAM的容量。某些性能分析對于確定最終系統配置的速度也是很必要的,這包括選擇時(shí)鐘頻率以及為系統增加數據高速緩存。核心處理器、USB和MAC的配置也需注意,以便在最后的邏輯門(mén)數目和最佳性能之間取得平衡。在這個(gè)階段,系統級驗證環(huán)境可確認系統工作符合預期要求,測試平臺實(shí)用程序則用來(lái)分析內存數據傳輸、總線(xiàn)負載以及總線(xiàn)仲裁延遲時(shí)間。使用者也能利用MAC應答器確定業(yè)務(wù)量,并仿真10/100Mbps半雙工或全雙工分組業(yè)務(wù),并且設定外部USB的工作模式為全速或高速,以便將這些業(yè)務(wù)量傳給系統。簡(jiǎn)單的系統級驗證測試可確認硬件在新配置的工作是否正常,這個(gè)環(huán)境還提供多個(gè)實(shí)用程序,控制這類(lèi)外部業(yè)務(wù)量,并且監測總線(xiàn)協(xié)議的違規情形以及分組等待時(shí)間。
確定硬件配置和仿真流量負載可以提供適當的系統功能覆蓋,研發(fā)人員僅須利用系統級驗證環(huán)境執行協(xié)同仿真,即可分析硬件和軟件之間的互操作性。固件或軟件工程師可利用這個(gè)環(huán)境測試新的應用功能,ISS和軟件調試工具則會(huì )提供其它有用信息,除了代碼配置數據以及高速緩存的命中和故障外,還包括執行這些功能時(shí),硬件所需的中斷服務(wù)時(shí)間。清楚某些功能所需的執行時(shí)間,即可避免發(fā)生系統錯誤,例如不完全的數據傳送或分組數據丟失。
系統級驗證環(huán)境也能用來(lái)執行完整的應用程序,驗證新的PDA設計和物理連接層是否正常工作。另外,它還能將協(xié)議錯誤加入目標系統,以便了解系統會(huì )如何反應以及如何恢復。

結語(yǔ)
隨著(zhù)產(chǎn)品壽命周期不斷縮短,SoC的系統級協(xié)同驗證和協(xié)同仿真環(huán)境必須繼續加強硬件和軟件環(huán)境的整合。這種整合應該把更多個(gè)原型環(huán)境元素加入系統級驗證環(huán)境,以便增加驗證精度和系統性能。因此,隨著(zhù)仿真在系統級驗證中的不斷增加,原型環(huán)境和系統級驗證環(huán)境之間的界限也會(huì )轉變?!?/P>



關(guān)鍵詞: ARC SoC ASIC

評論


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