張躍玲,張磊,汪健,王鎮(zhèn)
(1.北方通用電子集團(tuán)有限公司 微電子部,蘇州 215163;2.63963部隊(duì))
?
張躍玲1,張磊2,汪健1,王鎮(zhèn)1
(1.北方通用電子集團(tuán)有限公司 微電子部,蘇州 215163;2.63963部隊(duì))
摘要:設(shè)計(jì)了一種基于FPGA的驗(yàn)證平臺及有效的SoC驗(yàn)證方法,介紹了此FPGA驗(yàn)證軟硬件平臺及軟硬件協(xié)同驗(yàn)證架構(gòu),討論和分析了利用FPGA軟硬件協(xié)同系統(tǒng)驗(yàn)證SoC系統(tǒng)的過程和方法。利用此軟硬件協(xié)同驗(yàn)證技術(shù)方法,驗(yàn)證了SoC系統(tǒng)、DSP指令、硬件IP等。實(shí)驗(yàn)證明,此FPGA驗(yàn)證平臺能夠驗(yàn)證SoC設(shè)計(jì),提高了設(shè)計(jì)效率。
關(guān)鍵詞:DSP;SoC系統(tǒng);FPGA平臺;驗(yàn)證技術(shù)
引言
隨著集成電路技術(shù)的發(fā)展以及EDA 設(shè)計(jì)水平的迅速提高, 基于IP(Intellectual Property) 進(jìn)行SoC(System on Chip)芯片設(shè)計(jì)的能力和技術(shù)得到了大大的提高。在一些應(yīng)用中,需要處理的數(shù)據(jù)量不斷增大,并且處理時間也要縮短,數(shù)據(jù)運(yùn)算更加復(fù)雜,內(nèi)嵌DSP核處理器的SoC技術(shù)能夠縮短處理時間并能進(jìn)行大數(shù)據(jù)量的處理,提高可靠性,縮小體積,降低功耗。因此本文研究一種基于DSP的SoC芯片的FPGA驗(yàn)證方法,并將整個系統(tǒng)包括DSP處理器、片上總線、ASIC、內(nèi)存模塊、I/O 外圍設(shè)備及其他IP模塊集成到一個芯片中。而在復(fù)雜的內(nèi)嵌DSP核的SoC 芯片的系統(tǒng)設(shè)計(jì)中, 為了保證SoC芯片設(shè)計(jì)的正確性, 驗(yàn)證工作變得越來越重要, 也更加復(fù)雜。FPGA驗(yàn)證是復(fù)雜芯片和SoC芯片設(shè)計(jì)驗(yàn)證的一種有效手段,可以彌補(bǔ)軟件模擬仿真的不足,減少驗(yàn)證時間,檢驗(yàn)SoC的設(shè)計(jì)是否實(shí)現(xiàn)了設(shè)計(jì)規(guī)范確定的功能,從而提高SoC芯片流片成功率。
1基于DSP核控制的SoC系統(tǒng)
本文設(shè)計(jì)的SoC系統(tǒng)采用國內(nèi)自主研發(fā)DSP核,主要包括: DSP處理器核、片上AXI總線、PWM、事件捕獲器、看門狗控制、中斷控制器、復(fù)位管理、存儲模塊、I/O以及其他外設(shè)(UART、CAN、SPI等)模塊。這些模塊與DSP核之間通過AXI總線連接,進(jìn)行數(shù)據(jù)通信。AMBA AXI的總線協(xié)議具有高性能、支持高頻傳輸、高速亞微型系統(tǒng)互連的特征,為主從結(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)結(jié)構(gòu)框圖
2SoC系統(tǒng)的FPGA驗(yàn)證平臺
FPGA驗(yàn)證平臺用于SoC芯片驗(yàn)證,可以對大規(guī)模SoC系統(tǒng)的設(shè)計(jì)進(jìn)行快速準(zhǔn)確的實(shí)時驗(yàn)證,根據(jù)不同SoC規(guī)模容量,采用不同的FPGA硬件資源,硬件平臺建設(shè)也有所不同。由于FPGA具有靜態(tài)可編程和在線動態(tài)重構(gòu)特性,能夠使硬件功能電路同軟件程序一樣方便修改,使得FPGA驗(yàn)證修改十分方便、實(shí)時性好,還可以縮短開發(fā)周期、降低開發(fā)成本。FPGA具有的這些特點(diǎn)使其成為通用的SoC功能驗(yàn)證的器件,為SoC的系統(tǒng)原型驗(yàn)證提供了一個非常合適的平臺。目前FPGA已經(jīng)從系統(tǒng)集成、系統(tǒng)存儲、系統(tǒng)時鐘和系統(tǒng)接口4個方面滿足了SoC芯片驗(yàn)證的要求,為快速系統(tǒng)原型驗(yàn)證提供了一個非常合適的平臺。本文的FPGA驗(yàn)證平臺采用Xilinx Virtex-6 LX760器件,是建立在Xilinx Virtex6 FPGA板上的軟硬件聯(lián)合驗(yàn)證系統(tǒng),并用ISE13.3進(jìn)行綜合和布局布線。另外,此FPGA硬件驗(yàn)證平臺包括支持DSP程序下載的JTAG接口。
2.1FPGA硬件平臺搭建
硬件平臺搭建主要使用了兩個Xilinx Virtex-6 LX760 FPGA器件,具有15.2M個邏輯門。Virtex-6 LX760面向高端應(yīng)用,具有更多的時鐘和存儲資源,而且能夠支持更快的速度。通過分析,所選擇FPAG能夠滿足此SoC驗(yàn)證使用,為了實(shí)現(xiàn)通用性,該FPGA硬件驗(yàn)證平臺采用了子板和母板相結(jié)合的方式。在母板上設(shè)置有通用的FPGA芯片、相應(yīng)的PROM、系統(tǒng)全局時鐘的選擇和配置模塊、系統(tǒng)復(fù)位邏輯、FPGA芯片下載接口、與子板連接的connector接口等模塊。子板根據(jù)驗(yàn)證需求,配置了JTAG調(diào)試子板,以提供DSP仿真器連接的調(diào)試接口。另外還設(shè)計(jì)配置了驗(yàn)證EMIF訪問外部存儲設(shè)備通路的SRAM存儲器子板。為了方便測試和驗(yàn)證EMIF接口功能,在這兩類測試子板上,都設(shè)有關(guān)鍵信號的測試探測點(diǎn),以方便測試一些基礎(chǔ)的時鐘、復(fù)位信號以及其他探測信號。
2.2FPGA軟件環(huán)境搭建
在SoC 設(shè)計(jì)中,經(jīng)常會使用一些硬IP 核(如PLL、SRAM、ADC、USB transceiver 等),而在采用FPGA驗(yàn)證技術(shù)驗(yàn)證ASIC及SoC設(shè)計(jì)的過程中,需要做ASIC設(shè)計(jì)原碼的轉(zhuǎn)換,所以首先需要對SoC進(jìn)行修改,以適合FPGA的開發(fā)環(huán)境。如門控的處理,添加PLL對所需要的時鐘進(jìn)行適當(dāng)?shù)姆?倍頻,存儲單元RAM、FIFO的替換,修改子模塊配置,特殊單元的處理等。還要根據(jù)特定的硬件平臺增加FPGA 相關(guān)時序Timing的約束和I/O引腳的指定約束,并搭建一個能夠自動仿真和驗(yàn)證的環(huán)境。在FPGA驗(yàn)證過程中主要使用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)行優(yōu)化仍不能滿足時序要求,則根據(jù)違反時序信息查找關(guān)鍵路徑,對RTL設(shè)計(jì)代碼進(jìn)行修改優(yōu)化。
FPGA驗(yàn)證軟件除了需要上述提到的綜合布局布線的軟件環(huán)境ISE13.3外,還需要FPGA內(nèi)部信號在線調(diào)試工具Chipscope,即時抓取一些內(nèi)部邏輯信號,分析內(nèi)部邏輯正確與否。在驗(yàn)證調(diào)試階段,還需要DSP核下載調(diào)試軟件CCS3.3,以編寫控制處理器核DSP運(yùn)行軟件的測試程序。
2.3軟硬件協(xié)同驗(yàn)證系統(tǒng)
FPGA驗(yàn)證SoC系統(tǒng)方法是軟硬件協(xié)同仿真和驗(yàn)證,并搭建軟硬件協(xié)同驗(yàn)證平臺系統(tǒng)。實(shí)現(xiàn)的基礎(chǔ)條件是能夠滿足工作要求的FPGA硬件平臺,以及有力的設(shè)計(jì)描述及編譯工具等軟件環(huán)境。而基于DSP控制的SoC驗(yàn)證系統(tǒng)還需要DSP軟件程序開發(fā)環(huán)境及下載通路等。
2.3.1FPGA軟硬件協(xié)同驗(yàn)證架構(gòu)
FPGA驗(yàn)證是為了實(shí)現(xiàn)和驗(yàn)證SoC芯片在實(shí)際硬件環(huán)境下的功能和運(yùn)行工作情況。針對本文提出的基于DSP的SoC系統(tǒng),搭建能夠?qū)崿F(xiàn)和驗(yàn)證其DSP程序指令及內(nèi)部電路工作的軟硬件協(xié)同驗(yàn)證系統(tǒng)平臺。建立的FPGA軟硬件協(xié)同驗(yàn)證系統(tǒng)的基本架構(gòu)如圖2所示。
其中包括FPGA原型驗(yàn)證需要的Xilinx Virtex-6芯片的FPGA驗(yàn)證母板、支持下載bit文件及驗(yàn)證調(diào)試過程中需要的Xilinx FPGA編程器及下載線、能夠支持正確下載DSP激勵測試程序的DSP-JTAG調(diào)試子板、支持DSP芯片的仿真器、安裝有TI CCS軟件和 ISE13.3,以軟件及支持DSP芯片驅(qū)動的計(jì)算機(jī)。
圖2 FPGA軟硬件協(xié)同驗(yàn)證系統(tǒng)的基本架構(gòu)
2.3.2驗(yàn)證過程
軟硬件協(xié)同驗(yàn)證過程分以下幾個步驟:
① 首先把要驗(yàn)證的SoC系統(tǒng)由ISE13.3自動綜合及布局布線實(shí)現(xiàn)后生成相應(yīng)的FPGA位流文件,經(jīng)JTAG下載至構(gòu)建的FPGA驗(yàn)證系統(tǒng)中的FPGA芯片或?qū)?yīng)的PROM中。
② 通過微機(jī)CCS開發(fā)界面編寫控制內(nèi)部DSP核運(yùn)行的程序,完成程序啟動初始化、測試激勵程序編譯、開發(fā)驗(yàn)證IP及系統(tǒng)需要的程序。
③ 通過DSP仿真器以實(shí)時的方式進(jìn)行軟硬件協(xié)同驗(yàn)證過程中的管理控制,通過編寫及測試程序的加載、運(yùn)行、調(diào)試,實(shí)現(xiàn)對DSP核單步操作、連續(xù)運(yùn)行等;通過設(shè)置正確中斷服務(wù)程序、設(shè)置斷點(diǎn)、觀測DSP核內(nèi)部寄存器及SoC配置寄存器值等分析DSP核運(yùn)行及操作IP情況。
④ 通過不同的控制程序驅(qū)動運(yùn)行相應(yīng)功能IP模塊及整個系統(tǒng)工作運(yùn)行,驗(yàn)證IP功能及不同IP之間的交互和總線競爭。
在驗(yàn)證過程中可以根據(jù)IP功能及SoC系統(tǒng)特性使用示波器觀測引腳信號,利用Chipscope軟件抓取內(nèi)部信號來判斷邏輯關(guān)系及系統(tǒng)運(yùn)行的準(zhǔn)確性,驗(yàn)證DSP核、SoC系統(tǒng)及相應(yīng)IP功能;驗(yàn)證系統(tǒng)各模塊間的相互操作、片上系統(tǒng)內(nèi)的數(shù)據(jù)相互流通功能;驗(yàn)證所有IP集合協(xié)同運(yùn)行情況;驗(yàn)證整個系統(tǒng)的正確性。具體驗(yàn)證流程圖可參見圖3。
3SoC系統(tǒng)及IP模塊功能驗(yàn)證
對SoC系統(tǒng)及內(nèi)部IP功能模塊進(jìn)行驗(yàn)證,需要首先驗(yàn)證FPGA軟件平臺及硬件平臺的正確性,才能在CCS環(huán)境下編寫控制DSP的程序以驗(yàn)證SoC系統(tǒng)設(shè)計(jì)及各個功能模塊的正確性。CCS編程器與FPGA硬件平臺連接正確后,可通過下載編寫控制DSP內(nèi)核的程序,驗(yàn)證DSP運(yùn)行正確性,并通過編寫控制其他IP邏輯模塊驗(yàn)證SoC系統(tǒng)內(nèi)部交互及IP邏輯設(shè)計(jì)。其中主要進(jìn)行了下面幾種功能模塊劃分及其驗(yàn)證,通過驗(yàn)證功能模塊也進(jìn)一步驗(yàn)證了SoC系統(tǒng)及片上總線等設(shè)計(jì)的正確性。
3.1DSP核的驗(yàn)證
通過CCS開發(fā)界面對DSP內(nèi)部寄存器進(jìn)行讀寫操作并觀測DSP內(nèi)部寄存器的變化以實(shí)現(xiàn)驗(yàn)證DSP的功能,分別對DSP內(nèi)部的Timer、GPIO、中斷寄存器等進(jìn)行讀寫及功能驗(yàn)證,并通過DSP控制其他各類寄存器以驗(yàn)證DSP核的正確性。
3.2EMIF及片上儲存設(shè)備的驗(yàn)證
利用DSP能夠正確讀寫片上存儲器設(shè)備及支持各類讀寫操作,對片上存儲設(shè)備進(jìn)行驗(yàn)證。為了驗(yàn)證EMIF接口,在FPGA工程里對EMIF I/O口進(jìn)行綁定約束使其與SRAM存儲器子板進(jìn)行正確的連接,通過DSP對EMIF空間寄存器的控制,使DSP能夠正確地對連接在EMIF外的SRAM進(jìn)行各類型的讀寫操作,可驗(yàn)證EMIF接口設(shè)計(jì)。
圖3 基于DSP的SoC系統(tǒng)的FPGA驗(yàn)證流程圖
本SoC系統(tǒng)中設(shè)計(jì)的EMFI接口模塊可以連接4個外部存儲空間CE0~CE3。通過ISE工具使用Xilinx Virtex-6芯片的FPGA IP core例化4個寬度為32位、深度為64位的SRAM,并且將它們連接到CE0~CE3空間接口上。在CCS中,初始化CE0~CE3空間接口,對各空間前16個地址寫數(shù)據(jù),之后對這些地址進(jìn)行讀操作。執(zhí)行單步調(diào)試命令,可以成功讀取CE0~CE3空間地址里面寫入的數(shù)據(jù)。DSP核指令代碼,首先配置全局控制寄存器,選擇DSP提供的系統(tǒng)時鐘,指令代碼寫全局控制寄存器:
*(int*)0x4000a000 = 0x00000000
配置CE0~CE3時鐘寄存器和空間寄存器:
*(int*)0x4000a004=0x00000004;*(int*)0x4000a008=0x00000006;
*(int*)0x4000a00C=0x00000008;*(int*)0x4000a010=0x0000000a;
*(int*)0x4000a014=0xffffffe6;*(int*)0x4000a018=0x1091c226;
*(int*)0x4000a01c=0x30d5c846;*(int*)0x4000a020=0x2251c736;
對各空間前16個地址寫數(shù)據(jù),之后對這些地址進(jìn)行讀操作的DSP核指令代碼:
for(i=0;i<16;i++){
*(int*)(0xC0060000+4*i) = (0x00000600+i);
*(int*)(0xD0060000+4*i) = (0x00000700+i);
*(int*)(0xE0060000+4*i) = (0x00000800+i);
*(int*)(0xF0060000+4*i) = (0x00000900+i);
}
for(i=0;i<16;i++)
{
temp_data = *(int*)(0xC0060000+4*i);
temp_data = *(int*)(0xD0060000+4*i);
temp_data = *(int*)(0xE0060000+4*i);
temp_data = *(int*)(0xF0060000+4*i);
}
運(yùn)行DSP核指令代碼,觀察CE0~CE3寄存器的值,能夠成功進(jìn)行讀寫,驗(yàn)證了EMIF的正確性。
3.3事件捕獲、看門狗等功能模塊的驗(yàn)證
圖4 驗(yàn)證CPI模塊原理框圖
通過DSP操作控制看門狗邏輯模塊寄存器,看門狗能夠正確運(yùn)行,并能夠正確影響復(fù)位模塊以驗(yàn)證看門狗IP模塊。通過DSP正確操作CPI等寄存器,使CPI模塊產(chǎn)生中斷并發(fā)送至DSP,DSP能夠正確響應(yīng)中斷信號進(jìn)行及時處理。為了方便驗(yàn)證CPI功能,此SoC驗(yàn)證CPI模塊把PWM產(chǎn)生波輸入到CPI模塊,配置CPI捕獲模式,當(dāng)CPI模塊輸入有變化時,進(jìn)行捕獲產(chǎn)生中斷。當(dāng)發(fā)生中斷時,CPI_INT為高電平,當(dāng)DSP處理后會變?yōu)榈碗娖叫盘?。?yàn)證方法原理如圖4所示。
在Chipscope中正確設(shè)置觸發(fā)條件并通過FPGA編程器及JTAG傳送到PC主機(jī),可觀察其邏輯波形的正確性。CPI中斷事件圖略——編者注,可以看出,CPI_INT6從高電平到低電平的轉(zhuǎn)換,可說明DSP對CPI中斷事件進(jìn)行了處理,并正確響應(yīng)外部中斷??沈?yàn)證正確設(shè)置CCS配置IP模塊寄存器后,IP硬件模塊能夠正常運(yùn)行。
3.4PWM、SPI、CAN、UART等外設(shè)模塊
通過控制內(nèi)部寄存器,能夠產(chǎn)生正確的PWM波,分別在示波器及Chipscope上對一些信號進(jìn)行采集及觀測分析,驗(yàn)證其正確性,驗(yàn)證方法和驗(yàn)證CPI、EMIF相同。測試驗(yàn)證結(jié)果表明其功能正確。其中結(jié)合示波器測試PWM波,驗(yàn)證PWM設(shè)計(jì)的正確性,另外還使用相同方法驗(yàn)證SPI、CAN、UART等各IP功能的正確性。
結(jié)語
本文以一個DSP處理器控制的SoC芯片的開發(fā)與驗(yàn)證項(xiàng)目為例,介紹了關(guān)于FPGA的軟硬件協(xié)同驗(yàn)證方法及過程,搭建FPGA驗(yàn)證硬件平臺及軟件平臺環(huán)境, 并通過軟硬件協(xié)同驗(yàn)證, 在線驗(yàn)證調(diào)試SoC系統(tǒng)中邏輯及功能設(shè)計(jì), 并對每個功能模塊進(jìn)行了驗(yàn)證分析。通過CCS輸入控制DSP程序進(jìn)而控制SoC系統(tǒng)及內(nèi)部IP模塊,具有可觀測性及實(shí)時性,實(shí)驗(yàn)結(jié)果表明,通過FPGA軟硬件協(xié)同驗(yàn)證系統(tǒng)可以對目標(biāo)SoC芯片進(jìn)行功能驗(yàn)證及性能評估,縮短了基于SoC芯片的應(yīng)用系統(tǒng)的開發(fā)時間,提高了流片成功率,整個驗(yàn)證平臺及方法具有較高的可靠性。
編者注:本文為期刊縮略版,全文見本刊網(wǎng)站www.mesnet.com.cn。
參考文獻(xiàn)
[1] 李輝,李平.一種嵌入式DSP 核的設(shè)計(jì)及FPGA驗(yàn)證[J].微電子學(xué),2008,38(2):302-305.
[2] 王國章,須自明,劉戰(zhàn),等.SoC芯片驗(yàn)證技術(shù)的研究[J].微計(jì)算機(jī)信息,2007,23(23):132-133.
[3] 豐玉田,付宇卓,趙峰.大規(guī)模SoC 設(shè)計(jì)中的高效FPGA驗(yàn)證技術(shù)的研究與實(shí)現(xiàn)[J].電子技術(shù)應(yīng)用,2006,32(2):110-113.
[4] 李建昌,趙博生,鮑勝榮.基于ARM7TDMI 的SoC 芯片的FPGA 驗(yàn)證平臺設(shè)計(jì)[J].電子工程師,2004,30(9):6-9.
[5] 虞致國,魏敬和.基于FPGA的ARM SoC原型驗(yàn)證平臺設(shè)計(jì)[J].電子與封裝,2007,7(5):25-28.
[6] 劉朝,萬培元,于忠臣.基于ARM7TDMI的SoC芯片的原型驗(yàn)證[J].數(shù)字技術(shù)與應(yīng)用,2013(12):73-75.
張躍玲(設(shè)計(jì)師),主要從事數(shù)字集成電路設(shè)計(jì)。
(責(zé)任編輯:薛士然收修改稿日期:2015-10-09)
Zhang Yueling1,Zhang Lei2,Wang Jian1,Wang Zhen1
(1.R&D Center in Suzhou,Northern General Electronics Group Co., Ltd.,Suzhou 215163,China;2.63963 Troops)
Abstract:A FPGA verification platform is designed and an effective verification way of SoC is introduced.The basic scheme of the FPGA verification system is shown,and the software and hardware verification platform is introduced.The verification process and method are discussed.Due to the software and hardware co-verification technique,it can verify the SoC system design,the DSP statement,the hardware IP and etc.The experiment results show that the verification platform can verify the SoC design and improve the design efficiency.
Key words:DSP;SoC system;FPGA platform;verification technique
中圖分類號:TN492
文獻(xiàn)標(biāo)識碼:A