基于DSP的SoC芯片的FPGA驗證方法
引 言
本文引用地址:http://2s4d.com/article/201808/386477.htmDSP 技術(shù)廣泛地應(yīng)用于數(shù)字信號處理領(lǐng)域, 它或者以獨立的器件形式在系統(tǒng)中出現(xiàn), 或者以IP 核的形式嵌入SoC系統(tǒng)中。而隨著集成電路技術(shù)的發(fā)展以及EDA 設(shè)計水平的迅速提高, 基于IP( Intellectual Property) 進(jìn)行SoC(System on Chip)芯片設(shè)計的能力和技術(shù)得到了大大的提高。在一些應(yīng)用方面,需要處理的數(shù)據(jù)量不斷增大以及數(shù)據(jù)處理時間縮短,數(shù)據(jù)運算更加復(fù)雜,內(nèi)嵌DSP核處理器的SoC技術(shù)能夠提高處理時間精確性并能進(jìn)行大數(shù)據(jù)量的處理,提高可靠性, 縮小體積,降低功耗。因此本論文設(shè)計研究一種基于DSP的SoC芯片的FPGA驗證方法,并將整個系統(tǒng)包括DSP處理器、片上總線、ASIC、內(nèi)存模塊和I/O 外圍設(shè)備及其他IP模塊集成到一個芯片中。 而在復(fù)雜的內(nèi)嵌DSP核的SoC 芯片的系統(tǒng)設(shè)計中, 為了保證SoC芯片設(shè)計的正確性, 驗證工作變得越來越重要, 也更加復(fù)雜。FPGA驗證是復(fù)雜芯片和SoC芯片設(shè)計驗證的一種有效手段,可以彌補軟件模擬仿真的不足,減少驗證時間,檢驗SoC的設(shè)計是否實現(xiàn)了設(shè)計規(guī)范確定的功能,從而提高SoC芯片流片成功率。
1 基于DSP核控制的SoC系統(tǒng)
本論文設(shè)計的SoC系統(tǒng)采用國內(nèi)自主研發(fā)DSP核 ,而基于DSP設(shè)計的SoC系統(tǒng)主要包括: DSP 處理器核、片上AXI總線、PWM、事件捕獲器、看門狗控制、中斷控制器、復(fù)位管理、存儲模塊、I/O及其他外設(shè)UART、CAN、SPI等模塊。這些模塊與DSP核之間通過AXI總線連接,進(jìn)行數(shù)據(jù)通信。AMBA AXI的總線協(xié)議具有高性能、支持高頻傳輸、高速亞微型系統(tǒng)互連的特征。AXI協(xié)議是主從結(jié)構(gòu)的,一切觸發(fā)都由主設(shè)備發(fā)起。核間通信總線采用實際SoC系統(tǒng)中應(yīng)用最多的AXI總線結(jié)構(gòu),比較靈活,可滿足對帶寬需求高低不同的各種IP。
基于DSP的SOC系統(tǒng)結(jié)構(gòu)框圖如圖1所示。
圖1 基于DSP的SOC系統(tǒng)架構(gòu)
2 SoC系統(tǒng)的FPGA驗證平臺
FPGA驗證平臺用于SoC芯片驗證,對于大規(guī)模SoC系統(tǒng)的設(shè)計進(jìn)行快速準(zhǔn)確地實時驗證,根據(jù)不同SoC規(guī)模容量,采用不同的FPGA硬件資源,硬件平臺建設(shè)有所不同。由于FPGA具有靜態(tài)可編程和在線動態(tài)重構(gòu)特性,能夠使硬件的功能電路同軟件程序一樣方便修改,使得FPGA驗證修改十分便利易操作,實時性較好;還可以縮短開發(fā)周期,節(jié)約時間,降低開發(fā)成本;FPGA具有的這些特點使得FPGA成為通用的SoC功能驗證的器件,為SoC的系統(tǒng)原型驗證提供了一個非常合適的平臺。FPGA器件在SoC驗證設(shè)計中的應(yīng)用越來越廣泛。目前FPGA已經(jīng)從系統(tǒng)集成、系統(tǒng)存儲、系統(tǒng)時鐘和系統(tǒng)接口四個方面滿足了SoC芯片驗證的要求,為SoC芯片的快速系統(tǒng)原型驗證提供了一個非常合適的平臺。此基于DSP的SoC系統(tǒng)的FPGA驗證平臺采用Xilinx Virtex-6 LX760器件,是建立在Xilinx Virtex6 FPGA板上的軟硬件聯(lián)合驗證系統(tǒng),并用ISE13.3進(jìn)行綜合和布局布線。另外此FPGA硬件驗證平臺包括支持DSP程序下載的JTAG通路及接口。
2.1 FPGA 硬件平臺建設(shè)
關(guān)于硬件平臺搭建主要使用了兩顆Xilinx Virtex-6 LX760 FPGA器件,雙FPGA Virtex-6核具有15.2M 邏輯門的邏輯資源。Virtex-6 LX760是面向于高端應(yīng)用,具有更多的時鐘和存儲資源,而且能夠支持運行更快的速度。通過分析所選擇FPAG具備資源滿足此SoC驗證使用,為了實現(xiàn)通用性,該FPGA硬件驗證平臺采用了子板和母板相結(jié)合的方式。在母板上設(shè)置有通用的FPGA芯片,相應(yīng)的PROM,系統(tǒng)全局時鐘的選擇和配置模塊,系統(tǒng)復(fù)位邏輯,F(xiàn)PGA芯片下載通路,與子板連接的connector接口等模塊。子板根據(jù)基于DSP的SoC系統(tǒng)驗證需求,該FPGA硬件平臺設(shè)計的子卡配置了JTAG調(diào)試子板,以提供DSP仿真器連接的調(diào)試接口通路。另外還設(shè)計配置了驗證EMIF訪問外部存儲設(shè)備通路的SRAM存儲器子板。為了方便測試和驗證EMIF接口功能,在這兩類測試子板上,都設(shè)有關(guān)鍵信號的測試探測點,以方便測試一些基礎(chǔ)的時鐘、復(fù)位信號及其他探測信號。
2.2 FPGA 軟件環(huán)境建設(shè)
在SoC 設(shè)計中,經(jīng)常會使用一些硬IP 核,如PLL、SRAM、ADC、USB transceiver 等,而在采用FPGA驗證技術(shù)驗證ASIC及SoC設(shè)計過程中,需要做ASIC的設(shè)計原碼的轉(zhuǎn)換。所以首先需要對SoC進(jìn)行修改,以適合FPGA的開發(fā)環(huán)境。如門控的處理,添加PLL對所需要的時鐘進(jìn)行適當(dāng)?shù)姆?倍頻,存儲單元RAM、FIFO的替換,修改子模塊配置,特殊單元的處理等。還要根據(jù)特定的硬件平臺增加FPGA 相關(guān)的時序Timing的約束和IO引腳的指定約束,并搭建一個能夠自動仿真和驗證的環(huán)境。在此FPGA驗證過程中主要使用ISE13.3內(nèi)置綜合工具或?qū)S镁C合工具對RTL進(jìn)行編譯、綜合,生成網(wǎng)表。生成的網(wǎng)表以生成bit文件,包括優(yōu)化、適配、bit文件生成等。進(jìn)行靜態(tài)時序分析,檢查是否滿足預(yù)定的時鐘頻率要求,若不能滿足,則重新進(jìn)行綜合編譯優(yōu)化如果多次進(jìn)行仍不能滿足時序要求,則根據(jù)違反時序信息查找關(guān)鍵路徑對RTL設(shè)計代碼進(jìn)行修改優(yōu)化。
基于DSP控制的SoC系統(tǒng)的FPGA驗證軟件除了需要上述提到的綜合布局布線的軟件環(huán)境ISE13.3外,還需要FPGA內(nèi)部信號在線調(diào)試工具Chipscope,即時抓取一些內(nèi)部邏輯信號分析內(nèi)部邏輯正確與否。在驗證調(diào)試階段,還需要DSP核下載調(diào)試軟件CCS3.3以編寫控制處理器核DSP執(zhí)行運行的軟件測試程序。
2.3 軟硬件協(xié)同驗證系統(tǒng)
FPGA驗證SoC系統(tǒng)方法是軟硬件協(xié)同仿真和驗證,并搭建軟硬件協(xié)同驗證平臺系統(tǒng)。基于FPGA的SoC驗證系統(tǒng),即硬件平臺和軟件環(huán)境結(jié)合的驗證系統(tǒng),已經(jīng)成為SoC設(shè)計驗證流程中的重要方法和技術(shù)手段。實現(xiàn)的基礎(chǔ)條件常常是需要上述提出的能夠滿足工作要求的FPGA硬件平臺,以及有力的設(shè)計描述及編譯工具等軟件環(huán)境。而基于DSP控制的SoC驗證系統(tǒng)還需要DSP軟件程序開發(fā)環(huán)境及下載通路等。
2.3.1 FPGA軟硬件協(xié)同驗證架構(gòu)
FPGA驗證是使設(shè)計的SoC系統(tǒng)及IP模塊硬件化,通過實現(xiàn)在具體的FPGA驗證平臺上運行及驗證,具體化設(shè)計研發(fā)的SoC系統(tǒng)及IP電路,彌補軟件仿真存在的差距。為了驗證的完整性與可靠性,采用FPGA硬件平臺和軟件環(huán)境建設(shè)的軟硬件協(xié)調(diào)驗證方法。
FPGA驗證是為了實現(xiàn)和驗證SoC芯片在實際硬件環(huán)境下的功能和運行工作情況。針對基于本文設(shè)計提出的基于DSP的SoC系統(tǒng),搭建能夠?qū)崿F(xiàn)和驗證其DSP程序指令及內(nèi)部電路工作的軟硬件驗證系統(tǒng)平臺。建立的FPGA軟硬件協(xié)同驗證系統(tǒng)的基本架構(gòu)如圖3所示。其中包括FPGA原型驗證需要的XILINX V6芯片的FPGA驗證母板、支持下載bit位文件及驗證調(diào)試過程中需要的XILINX FPGA 編程器及下載線、能夠支持正確下載DSP激勵測試程序的DSP-JTAG調(diào)試子板、支持DSP芯片的仿真器、安裝有TI CCS軟件和 ISE13.3 軟件及支持DSP芯片驅(qū)動的微機。
圖2 FPGA軟硬件協(xié)同驗證系統(tǒng)的基本架構(gòu)
2.3.2 驗證過程
軟硬件協(xié)同驗證過程分以下幾個步驟(1)首先把要驗證的SoC系統(tǒng)經(jīng)由ISE13.3自動綜合及布局布線實現(xiàn)后生成相應(yīng)的FPGA位流文件經(jīng)JTAG下載線下載至構(gòu)建的FPGA驗證系統(tǒng)中的FPGA芯片或?qū)?yīng)的PROM中。(2)通過微機CCS 界面編寫控制內(nèi)部DSP核運行的程序,完成程序啟動初始化、測試激勵程序編譯,及開發(fā)驗證IP及系統(tǒng)需要的程序。(3)并通過DSP仿真器以實時的方式進(jìn)行軟硬件協(xié)同驗證過程中的管理控制,通過編寫及測試程序的加載、運行、調(diào)試,實現(xiàn)對DSP核進(jìn)行的單步操作、連續(xù)運行等操作;通過設(shè)置正確中斷服務(wù)程序、設(shè)置斷點、觀測DSP核內(nèi)部寄存器及SoC配置寄存器值等分析DSP核運行及操作IP情況(4)透過不同的控制程序驅(qū)動運行相應(yīng)功能IP模塊及整個系統(tǒng)工作運行,驗證IP功能及不同IP之間的交互和總線競爭。在驗證過程中可以根據(jù)IP功能及SoC系統(tǒng)特性使用示波器觀測引腳信號,使用ChipScope軟件抓取內(nèi)部信號來判斷邏輯關(guān)系及系統(tǒng)運行的準(zhǔn)確性。驗證DSP核、SoC系統(tǒng)及相應(yīng)IP功能;驗證系統(tǒng)各模塊間的相互操作、片上系統(tǒng)內(nèi)的數(shù)據(jù)相互流通功能;驗證所有IP集合協(xié)同運行情況;驗證整個系統(tǒng)。具體驗證流程圖可參見圖3
圖3 基于DSP的SoC系統(tǒng)的FPGA驗證流程圖
3 SoC系統(tǒng)及IP模塊功能驗證
對SoC系統(tǒng)及內(nèi)部IP功能模塊進(jìn)行驗證,需要首先驗證FPGA軟件平臺及硬件平臺正確性,才能在CCS環(huán)境下編寫控制DSP處理器的程序以驗證SoC系統(tǒng)設(shè)計及各個功能模塊的正確性。通過CCS編程器與FPGA硬件平臺連接正確后,可通過下載編寫控制DSP內(nèi)核的程序,驗證DSP運行正確性,并通過編寫控制其他IP邏輯模塊驗證SoC系統(tǒng)內(nèi)部交互及IP邏輯設(shè)計。其中主要進(jìn)行了下面幾種功能模塊劃分及其驗證,通過驗證功能模塊也進(jìn)一步驗證SoC系統(tǒng)及片上總線等設(shè)計的正確性。
評論