基于BFM測試和調(diào)試的Zynq SoC設(shè)計步驟及架構(gòu)詳解_第1頁
基于BFM測試和調(diào)試的Zynq SoC設(shè)計步驟及架構(gòu)詳解_第2頁
基于BFM測試和調(diào)試的Zynq SoC設(shè)計步驟及架構(gòu)詳解_第3頁
基于BFM測試和調(diào)試的Zynq SoC設(shè)計步驟及架構(gòu)詳解_第4頁
基于BFM測試和調(diào)試的Zynq SoC設(shè)計步驟及架構(gòu)詳解_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

基于BFM測試和調(diào)試的ZynqSoC設(shè)計步驟及架構(gòu)詳解AXI總線功能建??珊喕痁ynq-7000AllProgrammableSoC組件及子系統(tǒng)的驗證工作。本文以賽靈思工具鏈為基礎(chǔ),通過逐步指導(dǎo)實例,詳細(xì)介紹了該驗證方法。賽靈思在ZynqTM-7000AllProgrammableSoC中內(nèi)置了功能強(qiáng)大的雙核ARM?Cortex?A9處理器,能讓用戶使用單個芯片即可構(gòu)建自己的高性能片上系統(tǒng)。這樣軟件工程師可以充分利用包括GNU/Linux在內(nèi)的豐富的ARM軟件生態(tài)系統(tǒng),而硬件設(shè)計人員則可以在可編程邏輯架構(gòu)中添加協(xié)處理器和數(shù)字信號處理功能。現(xiàn)在的問題在于驗證和調(diào)試這樣的片上系統(tǒng),尤其是軟硬件之間的接口。例如,接口一邊受器件驅(qū)動器控制,一邊受中斷服務(wù)程序控制。隨著ARMCPU的問世,高級微控制器總線架構(gòu)(AMBA?)以及更為重要的高級可擴(kuò)展接口(AXI)已成為連接FPGA內(nèi)部各組件的事實標(biāo)準(zhǔn)。AXI并非傳統(tǒng)意義上的總線,而是使用交叉開關(guān)矩陣和仲裁,在多個主從機(jī)模塊間實現(xiàn)基于事務(wù)的互聯(lián)。AXI有三種類型,分別是AXI4(常規(guī)類型)、AXI4-Lite和AXI4-Stream。賽靈思ISE?14.2版本和Vivado?2012.2版本設(shè)計工具套件配套提供v1.06aAXI互聯(lián)功能,同時可與AXI3和AXI4相兼容。總線功能建模(BFM)是一種非常適用于片上系統(tǒng)設(shè)計的電子系統(tǒng)級驗證方法。BFM的價值在于能夠抽象總線互聯(lián)并提供高級API,以實現(xiàn)用于激勵RTL模塊的測試平臺,從而幫助用戶節(jié)省寶貴的時間。BFM可幫助設(shè)計人員驗證與Zynq-7000器件的處理系統(tǒng)相連接的RTL模塊。在賽靈思ISim這樣的RTL仿真器內(nèi)部運(yùn)行時,BFM可幫助用戶按照自下而上的設(shè)計流程,一次驗證一個或多個模塊。賽靈思與Cadence通力合作,提供了一種在業(yè)經(jīng)驗證的行業(yè)標(biāo)準(zhǔn)基礎(chǔ)上構(gòu)建的驗證環(huán)境(AXIBFM)。AXIBFM已經(jīng)投入市場將近兩年時間,近期已升級到2.1版本。下面深入了解這種強(qiáng)大的系統(tǒng)級驗證方法及采用這種方法所涉及的步驟。首先列出構(gòu)建一個能夠工作的BFM驗證環(huán)境所需的工具和組件,其中包括一個能夠為使用BFM的新手提供幫助的文檔列表。然后介紹使用AXIBFM驗證RTL模塊的驗證流程。工程師掌握這種方法最好的方式就是參考實例,所以最后本文將一步一步地介紹使用賽靈思ISE設(shè)計環(huán)境的詳細(xì)情況。本文選擇的實例是一個由一個AXI4主模塊和一個連接BRAM的存儲控制器組成的簡單設(shè)計,可作為下一個BFM驗證項目的起點(diǎn)。這個實例可通過下列網(wǎng)址,從MissingLinkElectronics的開發(fā)人員專區(qū)下載:。使用步驟總線功能模型(BFM)能夠顯著降低SoC設(shè)計驗證階段的工作量。這種方法可幫助您直接將RTL模塊作為一個被測器件(DUT)連接到BFM,激勵并核對高抽象層面上DUT的響應(yīng),整個過程無需探究AXI互聯(lián)的細(xì)節(jié)。賽靈思和Cadence共同推出的AXIBFM的一大主要優(yōu)勢在于可以避免開發(fā)用于匹配AXI4-LiteIP接口(IPIF)的代碼,也無需手動編寫RTL模塊測試臺。AXIBFM緊密集成在FPGA設(shè)計環(huán)境中。使用賽靈思PlatformStudio(XPS)就可為嵌入式系統(tǒng)生成頂層HDL,并為BFM仿真項目生成大部分必備文件。XPS還可免除為DUT正確連線的負(fù)擔(dān)。您可使用“fush.sh”腳本將BFM項目與賽靈思ISim集成在一起,完成最終測試程序的編寫。DUT由一個或多個構(gòu)成RTL模塊的VHDL或Verilog文件組成。RTL模塊的AXI4接口(可以是AXI4、AXI4-Stream或AXI4-Lite)通過Verilog“Testbench.v”內(nèi)部的AXIBFM連接,然后與頂層設(shè)計文件“Test.v”中的測試程序合并。該測試程序用于驅(qū)動和檢查DUT。這樣做的好處在于可以不探究AXI4的所有細(xì)節(jié)。用戶可以使用分區(qū)在功能API和通道API兩個抽象層面上的簡便易用、豐富多樣的API編寫自己的測試程序。這種API采用的是VerilogHDL語言。不過很快就可以發(fā)現(xiàn),這種API不僅適合HDL設(shè)計人員,而且也非常適用于有固件或驅(qū)動程序開發(fā)經(jīng)驗的軟件工程師。甚至更好的是,由于AXIBFM完全理解AXI4、AXI4-Lite和AXI4-Stream協(xié)議,它會執(zhí)行額外的檢查,而且在仿真過程中,可以看到一旦RTL模塊“誤解”AXI4,就會發(fā)出告警。這個過程能夠在很大程度上幫助用戶成長為AXI4專家。AXIBFM環(huán)境不局限于驗證單個RTL模塊,而且能夠高效地驗證多個模塊。因此建議使用AXIBFM驗證組件、子系統(tǒng)乃至整個片上系統(tǒng),并且使用AXIBFM進(jìn)行回歸測試。但是需要提醒一下的是,在所有復(fù)雜的驗證項目中,往往出現(xiàn)“只見樹木,不見森林”的情況,所以應(yīng)該和同事共同核查(或自己核查)仿真過程中測試的功能與硬件中使用的功能是否相同。AXI4BFM和XPSAXI4BFM不僅可用于驗證單個RTL模塊內(nèi)核的總線接口,也適用于仿真整個嵌入式設(shè)計的總線事務(wù)。AXIBFM為AXI3、AXI4、AXI3-Lite、AXI4-Lite和AXI4-Streaming主從模塊提供模型。根據(jù)不同類型的RTL模塊的需要,可定制不同的AXI接口。雖然常規(guī)的AXI3和AXI4接口是基于突發(fā)模式,可允許使用不同的數(shù)據(jù)寬度和亂序事務(wù)處理,對只有來自軟件的寄存器式訪問的較簡單RTL模塊,AXI3-Lite版本足以使用。用于處理面向信息流的數(shù)據(jù)(比如來自攝像頭接口的視頻數(shù)據(jù))的硬件,往往采用AXI-Stream協(xié)議,因這種協(xié)議與常規(guī)的AXI接口相比,更適合管理流數(shù)據(jù)的特征。不過本文介紹的實例的重點(diǎn)是常規(guī)AXI4接口以及AXI4總線的BFM的使用。在XPS中使用其它類型的AXI接口測試RTL模塊的工作流程完全一樣,讀者可將本文的介紹當(dāng)作使用這些接口進(jìn)行測試的指南。下面將展示如何在XPS里設(shè)置BFM,從而有效地生成HDL代碼,用于實例化DUT和BFM,并在她們之間建立互連。這種方法可以最大限度地減輕手動編寫互聯(lián)HDL代碼的工作量,這種工作極為耗時。生成的測試系統(tǒng)由待測試的外設(shè)和提供總線激勵的BFM共同組成。這樣,使用BFM主模塊,就可以仿真系統(tǒng)中總線主設(shè)備一般會發(fā)起的總線傳輸,然后檢查連接的RTL從模塊,看是否行為正確。另一方面,可以使用從BFM驗證采用AXI主接口的RTL模塊的行為正確與否。在本文接下來的內(nèi)容中,將創(chuàng)建一個由一個從模塊和一個AXI4MasterBFM組成的簡單系統(tǒng),后者用于為從模塊提供激勵。AXI4架構(gòu)簡介在開始介紹實例之前,先簡單了解一下AXI4總線架構(gòu),有關(guān)詳細(xì)介紹請參閱AXI總線規(guī)范。[2]AXI4總線系統(tǒng)分為五個獨(dú)立的事務(wù)通道:寫地址通道、寫數(shù)據(jù)通道、寫響應(yīng)通道、讀地址通道和讀數(shù)據(jù)通道。地址通道除了傳輸實際的源地址或目標(biāo)地址外,還傳輸發(fā)生在相關(guān)數(shù)據(jù)通道上的突發(fā)傳輸?shù)念愋托畔?。信息的?nèi)容包括突發(fā)的傳輸數(shù)量、數(shù)據(jù)的大小和突發(fā)的ID。對每一次突發(fā),從模塊都會利用經(jīng)地址通道傳輸?shù)腎D向主模塊發(fā)送響應(yīng),通知主模塊本次事務(wù)處理是否成功。在這五條通道上,由READY和VALID握手信號對來控制實際的數(shù)據(jù)傳輸。正如這兩個信號的名稱意義所示,當(dāng)總線上的數(shù)據(jù)有效時,發(fā)送側(cè)斷言VALID。當(dāng)接收側(cè)做好接收數(shù)據(jù)的準(zhǔn)備時,接收側(cè)斷言READY。實際的事務(wù)處理發(fā)生在總線時鐘的上升沿,此時READY和VALID都處于高電平。在自行實現(xiàn)對AXI總線的訪問時,務(wù)必記住VALID信號的斷言不能取決于READY信號,否則會陷入死鎖。在XPS中創(chuàng)建簡單測試系統(tǒng)現(xiàn)在我們已經(jīng)對AXI4總線系統(tǒng)有了基本的理解,可以開始在XPS中創(chuàng)建簡單測試系統(tǒng)了,并觀察BFM和AXI總線的行為。這個系統(tǒng)由一個AXI4MasterBFM、一個BlockRAM控制器、一個BlockRAM和一個用于連接所有組件的AXI互聯(lián)組成。下面是創(chuàng)建這個AXIBFM實例所需的工具列表:?賽靈思ISE14.2版本或更高版本,配備XPS14.2版本?賽靈思ISim(14.2版本)?AXIBFM的許可證密鑰(部件號碼DO-AXI-BFM)?賽靈思DS824,“AXIBFM2.1版本”(替代賽靈思UG783)?賽靈思DS768,“LogiCORETMIPAXI互聯(lián)(1.06a版本)”?AXIBFM實例項目,網(wǎng)址:和用XPS創(chuàng)建任何新的嵌入式設(shè)計一樣,先從創(chuàng)建一個新的空白項目開始,將其命名為“bfm_system”。不過這里沒有使用MicroBlaze?處理器或Zynq-7000AllProgrammableSoC,而是實例化一個AXI4MasterBFM,用于在AXI4總線上發(fā)起事務(wù)處理任務(wù)??梢栽赬PS中IP內(nèi)核樹的驗證節(jié)點(diǎn)上找到AXI4MasterBFM。下面添加一個在“BusandBridge”分類下的AXI4InterconnectIP,再添加一個AXIBRAMController和一個相關(guān)聯(lián)的BlockRAM,你可以在XPSIP標(biāo)簽中“MemoryandMemoryController”分類下找到這兩個IP。在XPS的Bus視圖中將這些IP組件相互連接,讓系統(tǒng)看上去與圖2所示的一樣。在XPS的Ports標(biāo)簽中,將AXI互聯(lián)的時鐘和復(fù)位端口配置成external,將BRAM控制器和MasterBFM的時鐘端口也連接到外部時鐘端口。可讓AXIBRAM控制器的“ECC_Interrupt”和“ECC_UE”端口保持未連接,因為不需要使用ECC功能。設(shè)置時鐘端口的頻率為100MHz。最終系統(tǒng)應(yīng)和圖3所示的一樣。接下來在XPS的Addresses標(biāo)簽中設(shè)置BRAM控制器的地址范圍。這樣還可以確定BRAM模塊的大小。這里創(chuàng)建一個32K的BlockRAM,起始地址為0x00000000?,F(xiàn)在基本系統(tǒng)設(shè)置已經(jīng)完成,點(diǎn)擊工具條左邊的“GenerateHDLFiles”就可以讓XPS生成HDL代碼。這樣可以在XPS項目文件夾中創(chuàng)建一個名為Simulation的目錄。如果想在XPS中修改系統(tǒng),重新生成HDL代碼,務(wù)必將手工添加到文件夾中的文件進(jìn)行備份,否則XPS在生成仿真文件時,這些文件將被完全覆蓋。在Simulation文件夾中名為“behaviorial”的文件夾里,我們可以找到與XPS設(shè)計名字完全相同的Verilog或者VHDL文件(根據(jù)配置設(shè)置中選擇的語言),該文件名為“bfm_system.vhd”。這就是我們系統(tǒng)的頂層,其中包含剛剛在XPS中實現(xiàn)的所有實例化組件和連接。運(yùn)行仿真根據(jù)AXIBFM說明書的建議,應(yīng)在提供了時鐘和復(fù)位信號的測試頂層模塊中例化該系統(tǒng),再從獨(dú)立的測試模塊發(fā)起AXI總線上的事務(wù)處理任務(wù)。(這種方法的結(jié)構(gòu)見圖1所示)。在總線上發(fā)起事務(wù)處理的方法是從AXIBFMAPI調(diào)用對應(yīng)的Verilog任務(wù)。API分為通道層和功能層。使用通道層API可在不同的通道上發(fā)起傳輸,比如讀地址和寫地址通道,這樣我們就能單獨(dú)控制寫突發(fā)或者讀突發(fā)的每一個階段。使用功能層API可方便地啟動整個數(shù)據(jù)傳輸,比如讀突發(fā)或者寫突發(fā)。另外功能層API還提供可改變BFM設(shè)置的Verilog功能,比如修改ISim控制臺上的輸出冗余。DS824詳細(xì)介紹了該API,并提供一個編程人員參考。使用Verilog的“。”運(yùn)算符,通過引用BFM實例,在測試程序中調(diào)用API的函數(shù)和任務(wù)。圖4就是這種函數(shù)調(diào)用的例子。完整的代碼包含在與本文配套的項目包中,并提供shell腳本,用于編譯實例并運(yùn)行ISim查看波形。請閱讀項目包中的README.txt文件了解如何使用該腳本。運(yùn)行該腳本即可打開ISim主窗口。加載ISim中的“axi_waveforms.wcfg”文件,仿真系統(tǒng)15微秒,即可查看AXI總線各通道上的信號。測試程序首先對BlockRAM發(fā)起256個32位字符組成的寫突發(fā),然后讀回數(shù)據(jù)。通過搜索上升時鐘沿(在寫地址通道,s_axi_awready和s_axi_awvalid信號同時處于高電平),我們可以看到用于描述突發(fā)流向的信息被發(fā)送給BlockRAM控制器。主機(jī)通過斷言s_axi_wlast信號為突發(fā)的最后一個字符做上標(biāo)簽。跟隨寫突發(fā),從模塊——即這里的BlockRAM控制器——會通過寫響應(yīng)通道(圖5)發(fā)出事務(wù)處理成功的信號??舍槍ψx突發(fā)檢查相同的結(jié)構(gòu)。描

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論