隨著系統(tǒng)級芯片技術(shù)的出現(xiàn),,設(shè)計規(guī)模正變得越來越大,,因而變得非常復(fù)雜,同時上市時間也變得更加苛刻,。通常RTL已經(jīng)不足以擔(dān)當(dāng)這一新的角色,。上述這些因素正驅(qū)使設(shè)計師開發(fā)新的方法學(xué),用于復(fù)雜IP(硬件和軟件)以及復(fù)雜系統(tǒng)的驗證,。ST公司建立了一個設(shè)計流,,它從高級抽象開始,易于將模型寫入IP的精密周期或RTL模型中,。當(dāng)轉(zhuǎn)入低級抽象時,,建模變得復(fù)雜,,故IP驗證也復(fù)雜。我們的方案最適合于這種應(yīng)用場景,,因為它允許人們在各地相似的環(huán)境中運行相同的測試平臺和測試場景,,因而允許在整個開發(fā)周期里高效地復(fù)用所有的測試范例和環(huán)境。
在半導(dǎo)體領(lǐng)域,,開發(fā)產(chǎn)品的第一步就是以高級抽象開發(fā)規(guī)范的模型,,通常用C/C++來實現(xiàn)。這里,,SystemC和C++庫提供了很大幫助,。它簡化了共存的硬件和軟件設(shè)計的概念化。再加上實現(xiàn)事務(wù)級模型間對口連接的TLM傳送庫,,SystemC加速了整個驗證過程,。另一個重要方面是所有不同抽象架構(gòu)中經(jīng)過增強的可移植性。同一測試配置可以無縫地用于不同抽象級的設(shè)計,。
本文將討論一種此類的方法學(xué),。最終的目標(biāo)是設(shè)計和實現(xiàn)UWB MAC(媒體訪問層)IP。出于架構(gòu)開發(fā)的目的,,決定用SystemC來實現(xiàn)整個IP,。還開發(fā)了抽象級具有不同程度變化的不同架構(gòu)。所付出的努力比較少,,最后得到的仿真速度很快,,軟件的實際編寫也可以在設(shè)計周期非常早的階段開始。該IP的RTL結(jié)果被移植到了SPEAr系列的FPGA中,。除了ARM內(nèi)核和相應(yīng)的一系列IP,,SPEAr還提供一個可配置邏輯塊,這為用戶在實現(xiàn)其邏輯功能時提供了無與倫比的靈活性,。從而縮短了上市時間,,同樣也實現(xiàn)了空前的成本節(jié)省。
設(shè)計開發(fā)方法學(xué)
圖1所示的該方法學(xué)實現(xiàn)了開發(fā)的內(nèi)核中的事務(wù)級建模(TLM),。TLM是一種對數(shù)字系統(tǒng)進行建模的高級方案,,這里將模塊之間的具體通信與功能單元或通信架構(gòu)的具體實現(xiàn)分離開。把總線或FIFO這類通信機制模型化成信道,,用SystemC接口類將這些信道提供給模塊和部件,。這些信道模型的信令接口功能將取代事務(wù)請求,這將減少具體的低級信息交換,。
圖1:IP開發(fā)方法學(xué)流程,。
在事務(wù)級建模時,
* 更加注重數(shù)據(jù)轉(zhuǎn)移的功能-即轉(zhuǎn)移的是什么數(shù)據(jù),從那里來,,到那里去
* 不太關(guān)注實際的實現(xiàn)-即不太關(guān)注數(shù)據(jù)轉(zhuǎn)移所用的實際協(xié)議
該方案使得系統(tǒng)設(shè)計師的實驗變得更加容易,,例如,可以利用不同的總線架構(gòu)(所有都支持公共的抽象接口),,不一定需要對與任意總線進行交互的模型進行重新編碼,,只要這些模型能夠通過公用接口與總線進行交互即可。
在我們的方法中,,起始點是對整個功能系統(tǒng)平臺進行建模,。這是利用SystemC并通過sc fifo接口實現(xiàn)的。為了描述通信接口間的數(shù)據(jù)流,,采用了各種架構(gòu),。這些架構(gòu)基本上都是協(xié)議需要遵守的參數(shù)和幀格式信息,。圍繞IP創(chuàng)建了一個測試環(huán)境,,環(huán)境中開發(fā)了測試平臺,來傳輸分別來自兩側(cè)的輸入,,即發(fā)送和接收,。在這兩種范例中,利用這種配置產(chǎn)生了預(yù)期的結(jié)果或參考,。在抽象層,,與平臺一起使用來進行修改,快速并有效地做試驗時將變得很容易,,不過精度會降低一些,。
圖中所示為用于開發(fā)中下一級輸入的配置平臺。這里的核心思想是確定系統(tǒng)的瓶頸并執(zhí)行軟硬件劃分,。該方案在進行軟硬件劃分方面是有效并安全的,,因為平臺提供能夠用來識別出整個系統(tǒng)瓶頸的原始統(tǒng)計信息。該階段中,,實現(xiàn)了IP的功能模型,,使其具備了具體的接口,并嵌入了功能性,。而在軟硬件劃分階段將對該方法學(xué)中所用的方案進行具體化,。附加到該平臺上的另一個是DMA-PL080的TLM模型,下一步是用MAC HW RTL替代整個MAC HW SystemC功能模型,,如圖2所示,。整個周邊環(huán)境是一樣的,因此測試注入與其他步驟中的注入一樣,。與之前環(huán)境的變化是采用了負責(zé)到信號變換的事務(wù)處理適配器,。由于該系統(tǒng)基于ARM,適配器的書寫必須遵從信號級AHB總線接口,。實際上,,該平臺將相同的環(huán)境表征為現(xiàn)實系統(tǒng),,不過與此同時,開始面對仿真性能方面的問題,。顯然,,我們還不能用該配置來執(zhí)行廣泛的調(diào)試/驗證,不過可以運行簡單的測試(具有較短的仿真時間),。
由于在當(dāng)前仿真環(huán)境中發(fā)現(xiàn)瓶頸,,我們對基于硬件模擬XTREME服務(wù)器的平臺進行評估,該平臺基本提供了硬件所需的FPGA塊,,并提供了軟件與整個環(huán)境的無縫集成,。基于XTREME服務(wù)器中早期平臺的移植只需要很少工作量,,并且相對于基于ncsim的仿真環(huán)境,,實現(xiàn)了5倍的仿真速度。很顯然,,這使得我們能夠調(diào)試并執(zhí)行VHDL RTL設(shè)計的驗證,,否則將會浪費過多時間。同時,,基于Xtreme服務(wù)器的平臺還提供了同等調(diào)試能力,。
硬件/軟件劃分
系統(tǒng)中軟硬件劃分決策是最為重要的一個方面。之所以硬件/軟件劃分變得如此關(guān)鍵,,是因為如下一些因素,,如系統(tǒng)的實時處理需求,應(yīng)用軟件的存儲限制以及其他因素,。許多時候,,設(shè)計開發(fā)階段一些決策依賴于直覺判斷或者先前的經(jīng)驗。但當(dāng)某些事情發(fā)生錯誤時這將蘊含一個風(fēng)險,。隨著系統(tǒng)復(fù)雜度以及流片成本的增加,,這種決策方法可能會鑄成大錯。強調(diào)需要一種有助于實現(xiàn)更好軟硬件劃分決策的方法學(xué)具有許多原因,。
在UWB MAC系統(tǒng)開發(fā)范例中,,具有很多必須很好遵守的時間約束,這是因為應(yīng)用層完全依賴于空中——即來自射頻天線的全局廣播定時,。實現(xiàn)決策的方案建立在我們從具體的系統(tǒng)級平臺的執(zhí)行中所獲取的經(jīng)驗,。我們能夠分析流水線數(shù)據(jù)通道中的數(shù)據(jù)流,能夠有效地發(fā)現(xiàn)它們是否將對系統(tǒng)構(gòu)成任何瓶頸,。通常,,當(dāng)系統(tǒng)中的數(shù)據(jù)流發(fā)送時,數(shù)據(jù)幀必須從MAC發(fā)送到PHY,而對于接收,,所產(chǎn)生的數(shù)據(jù)幀則從PHY到MAC,,并存入到存儲器中由軟件進行進一步的分析。在仿真場景分析過程中,,能夠識別出是否需要在硬件中進行一些協(xié)議解析以采取及時的措施,。
圖2:系統(tǒng)中著重硬件支持需求的應(yīng)用場景。
圖2中詳細給出了一個決策范例,。根據(jù)協(xié)議的需求,,接收數(shù)據(jù)中有一個控制包,它通知下次發(fā)送事件的通用定時,,即何時發(fā)送下一個數(shù)據(jù)包,。考慮到MAC硬件是一個典型的數(shù)據(jù)通道,,并將控制幀傳送到存儲器中,,軟件對控制幀進行處理并決定打開發(fā)送窗口。在發(fā)送窗口打開出現(xiàn)問題時,,用這種方案就能發(fā)現(xiàn)瓶頸,。系統(tǒng)平臺結(jié)果被用來確認(rèn)這一理解,,于是能夠做出更好決策來實現(xiàn)效率更高的系統(tǒng),。圖3中的另一個場景顯示了軟硬件劃分后的結(jié)果。
第一個范例中,,當(dāng)軟件處理控制幀時,,全局定時如下:
窗口編程時間=T+t RP +tPM+tintr+tsw_lat>T+texp,故在系統(tǒng)中,,SW沒有對及時打開發(fā)送窗口的指令進行編程,。
在第二個范例中,當(dāng)MAC HW處理控制幀時,,全局定時為:
窗口編程時間=T+tprg_winexp,,故系統(tǒng)中,HW對及時打開發(fā)送窗口的指令進行編程,。
與此同時,,現(xiàn)有的SPEAr板起到了很大的幫助作用,因為在板上測出了AES-CCM引擎的性能,。因此能夠推斷出硬件中存在AES-CCM,,因為AES-CCM軟件算法給不出所需要的性能。
挑戰(zhàn)
被測設(shè)計(DUT)或被測單元(UUT)的測試對任何設(shè)計方法學(xué)來說都是最關(guān)注的一個方面,。在開發(fā)的初始階段,,即架構(gòu)評估階段,必須需要一個高性能的性能仿真環(huán)境。具有行為功能TLM平臺能夠滿足這一需求,,并對將要執(zhí)行的功能進行功能檢查,。當(dāng)進入到低級抽象設(shè)計階段時,仿真性能大大降低,,這成為有效驗證IP的一個問題,。
軟硬件的系統(tǒng)級仿真與軟硬件的協(xié)同仿真一塊進行。ST有自己的平臺,,這是一個包含硬件(RTL)的混合平臺,,軟件利用SystemC書寫(見圖2)。該平臺的瓶頸是環(huán)境中所引入IP的RTL,,而且注意到這將大大地降低性能,。正如預(yù)期,這是所遇到的約束,,而且對是否能夠比主仿真運行更快的可能性進行了評估,。該方案基于Xtreme服務(wù)器硬件仿真,使得運行速度至少要比NCSIM仿真快10倍,。
圖3:配有軟件的Xtreme服務(wù)器配置,。
圖3所示的該技術(shù)對第一次仿真特別實用,不需要任何有關(guān)環(huán)境配置方面的工作量,。其概念是在Xtreme的FPGA中運行RTL IP,。開始時,引入的時鐘為軟件時鐘,,但結(jié)果相當(dāng)可喜,,還簡化了RTL的系統(tǒng)驗證和調(diào)試。配置過程中,,整個仿真環(huán)境是類似的,,僅有的改變是用VHDL RTL IP替代SysC IP。試驗結(jié)果是仿真速度快了10倍,。因此,,Xtreme服務(wù)器平臺滿足了RTL驗證/調(diào)試所用平臺的需求。最重要的方面是具有與ncsim同等水平的調(diào)適能力,。還提供了與SystemC環(huán)境的無縫集成,。
調(diào)試功能
硬件方面的一個更具挑戰(zhàn)性的問題是調(diào)試。當(dāng)自檢失敗時,,就需要一個相關(guān)的測試范例,。為了驗證該測試范例,在檢查失敗原因時必須檢查所有的主要信號,。所以需要對信號進行存放,,驗證,,從而找出具體的原因。利用基于XTREME服務(wù)器的平臺可以很容易地執(zhí)行所有這些功能,,無須額外的工作量,。通過將實際硬件移入獨立的FPGA,可以很容易地改善仿真速度,,不過這種方法提供的調(diào)試功能較少,。因此,基于XTREME服務(wù)器的平臺不僅改善了仿真速度,,還能提供非常好的調(diào)試功能,。圖5給出了分析結(jié)果。
圖4:A)不同平臺上的仿真性能,。B)不同平臺上的調(diào)試復(fù)雜性,。
FPGA建模
該功能驗證方法學(xué)中的下一步是對設(shè)計進行實時測試。雖然以高級抽象對硬件進行建模能提供高速仿真,,但無法對軟硬件集成中存在的潛在問題進行放大,。同樣,利用實際激勵在FPGA上運行設(shè)計能夠?qū)崿F(xiàn)詳盡得多的和更實際的功能覆蓋,,還能實現(xiàn)與軟件的早期集成,。
圖5:一種普通的SPEAr (SPEArHead) SoC架構(gòu)。
SPEAr(結(jié)構(gòu)化的處理增強架構(gòu))提供一個強大的數(shù)字引擎,,能夠以很少的時間和很少投資提供特殊的用戶功能(圖6),。該SoC系列具有大量的功能,包括外設(shè),,連通性選擇,,以及允許采用定制IP,,從而有助于縮短上市時間,。SPEAr采用一個或兩個先進的ARM926處理內(nèi)核,帶16k(數(shù)據(jù))和16k(指令)高速緩存,,主頻為333MHz(最壞條件),。它還提供600,000門(與ASIC等效)的嵌入式可配置邏輯,還配有支持DDR/DDR2存儲器的存儲器接口,,以及一個大型的連通性IP(知識產(chǎn)權(quán))系列,。這種強大的配置為當(dāng)今的設(shè)計提供了一站式解決方案,同時,,通過利用板上能夠映射SPEAr內(nèi)部可配置邏輯塊的FPGA,,可以將時間和資源需求最小化。
目標(biāo)IP(UWB-MAC)被分入兩塊SPEAr板:MAC RTL被分入一塊板,,而將PHY仿真代碼分到另一塊中,。利用一塊仿效MAC-PHY接口的連接板將這兩塊板連接到一起,。利用PC上的軟件并通過各自的以太網(wǎng)接口來控制這兩塊板。板上的FPGA有三個接口,,分別為AHB,,DMA和中斷。
定制邏輯(本例中為MAC RTL和PHY Emu)與膠合邏輯(連接三個接口所需的邏輯)一道被成功地移植進FPGA,。先前開發(fā)的軟件在帶有SPEAr的ARM平臺上得到成功的運行,。集成了相同的測試套件,結(jié)果顯示,,功能性與其他架構(gòu)的結(jié)果一致,。