基于DSP的SoC芯片的FPGA驗(yàn)證方法
3.1 DSP 核的驗(yàn)證
通過CCS界面對(duì)DSP內(nèi)部寄存器進(jìn)行讀寫操作并在CCS界面觀測DSP內(nèi)部寄存器的變化實(shí)現(xiàn)驗(yàn)證DSP的功能。分別對(duì)DSP內(nèi)部 的Timer、GPIO、中斷寄存器等進(jìn)行讀寫及功能驗(yàn)證,并通過DSP控制其他各類寄存器以驗(yàn)證DSP核的正確性。
3.2 EMIF及片上儲(chǔ)存設(shè)備的驗(yàn)證
利用DSP能夠正確讀寫片上存儲(chǔ)器設(shè)備及支持各類讀寫操作,對(duì)片上存儲(chǔ)設(shè)備進(jìn)行驗(yàn)證。為了驗(yàn)證EMIF接口,在FPGA工程里對(duì)EMIF I/O 口進(jìn)行綁定約束使其與SRAM存儲(chǔ)器子板進(jìn)行正確的連接,通過DSP對(duì)EMIF空間寄存器的控制,使DSP能夠正確地對(duì)連接在EMIF外的SRAM進(jìn)行各類型的讀寫操作,可驗(yàn)證EMIF接口設(shè)計(jì)。
本SoC系統(tǒng)中設(shè)計(jì)的EMFI接口模塊可以連接4個(gè)外部存儲(chǔ)空間CE0~CE3。通過ISE工具使用 XILINX V6芯片的FPGA IP core例化4個(gè)寬度為32bit、深度為64的SRAM,并且將它們連接到CE0~CE3空間接口上。在CCS中,初始化CE0~CE3空間接口,對(duì)各空間前16個(gè)地址寫數(shù)據(jù),之后對(duì)這些地址進(jìn)行讀操作。執(zhí)行單步調(diào)試命令,可以成功讀取CE0~CE3空間地址里面寫入的數(shù)據(jù)。DSP核指令代碼,首先配置全局控制寄存器,選擇DSP提供的系統(tǒng)時(shí)鐘,指令代碼寫全局控制寄存器:*(int*)0x4000a000 = 0x00000000;配置CE0~CE3時(shí)鐘寄存器和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;
對(duì)各空間前16個(gè)地址寫數(shù)據(jù),之后對(duì)這些地址進(jìn)行讀操作的DSP核指令代碼:
for(i=0;i16;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;i16;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)證
通過DSP操作控制看門狗邏輯模塊寄存器,看門狗能夠正確運(yùn)行,并能夠正確影響復(fù)位模塊以驗(yàn)證看門狗IP模塊。通過DSP正確操作CPI等寄存器,使CPI模塊產(chǎn)生中斷送至DSP,并且DSP能夠正確響應(yīng)中斷信號(hào)進(jìn)行及時(shí)處理。為了可方便驗(yàn)證CPI功能,此SoC驗(yàn)證CPI模塊把PWM產(chǎn)生波輸入到CPI模塊,配置CPI捕獲模式,當(dāng)CPI模塊輸入有變化時(shí),進(jìn)行捕獲產(chǎn)生中斷。當(dāng)發(fā)生中斷時(shí)CPI_INT為高電平,當(dāng)DSP處理后會(huì)變?yōu)榈碗娖叫盘?hào)。驗(yàn)證方法原理如圖4
圖4 驗(yàn)證CPI模塊原理框圖
在ChipScope中正確設(shè)置觸發(fā)條件并可以通過FPGA編程器及JTAG傳送到PC主機(jī),可觀察其邏輯波形的正確性。下圖5可以看車CPI_INT6從高電平到低電平的轉(zhuǎn)化,可說明DSP對(duì)CPI中斷事件進(jìn)行了處理,并正確相應(yīng)外部中斷??沈?yàn)證正確設(shè)置CCS配置IP模塊寄存器后,IP硬件模塊能夠正常運(yùn)行。
圖5 CPI中斷事件
3.4 PWM、SPI、CAN、UART等外設(shè)模塊
通過控制內(nèi)部寄存器,能夠產(chǎn)生正確的PWM波,分別在示波器及ChipScope上對(duì)一些信號(hào)進(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功能。
4 結(jié)論
本文基于一個(gè)DSP處理器控制的SOC芯片的開發(fā)與驗(yàn)證項(xiàng)目為基礎(chǔ)。介紹了關(guān)于FPGA的軟硬件協(xié)同驗(yàn)證方法及過程,搭建FPGA驗(yàn)證硬件平臺(tái)及軟件平臺(tái)環(huán)境, 并通過軟硬件協(xié)同驗(yàn)證, 在線驗(yàn)證調(diào)試SOC系統(tǒng)中邏輯及功能設(shè)計(jì), 并對(duì)每個(gè)功能模塊進(jìn)行了驗(yàn)證分析。通過CCS輸入控制DSP程序進(jìn)而控制SOC系統(tǒng)及內(nèi)部IP模塊,具有可觀測性及實(shí)時(shí)性,結(jié)果表明通過FPGA軟硬件協(xié)同驗(yàn)證系統(tǒng)可以對(duì)目標(biāo)SOC芯片進(jìn)行功能驗(yàn)證及性能評(píng)估??s短了基于SoC芯片的應(yīng)用系統(tǒng)的開發(fā)時(shí)間,提高流片成功率。整個(gè)驗(yàn)證平臺(tái)及方法具有較高的可靠性。
評(píng)論