<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 電源與新能源 > 設計應用 > 基于DSP的SoC芯片的FPGA驗證方法

基于DSP的SoC芯片的FPGA驗證方法

作者: 時(shí)間:2018-08-13 來(lái)源:網(wǎng)絡(luò ) 收藏

本文引用地址:http://dyxdggzs.com/article/201808/386477.htm

3.1 DSP 核的驗證

通過(guò)CCS界面對DSP內部寄存器進(jìn)行讀寫(xiě)操作并在CCS界面觀(guān)測DSP內部寄存器的變化實(shí)現驗證DSP的功能。分別對DSP內部 的Timer、GPIO、中斷寄存器等進(jìn)行讀寫(xiě)及功能驗證,并通過(guò)DSP其他各類(lèi)寄存器以驗證DSP核的正確性。

3.2 EMIF及片上儲存設備的驗證

利用DSP能夠正確讀寫(xiě)片上存儲器設備及支持各類(lèi)讀寫(xiě)操作,對片上存儲設備進(jìn)行驗證。為了驗證EMIF接口,在工程里對EMIF I/O 口進(jìn)行綁定約束使其與SRAM存儲器子板進(jìn)行正確的連接,通過(guò)DSP對EMIF空間寄存器的,使DSP能夠正確地對連接在EMIF外的SRAM進(jìn)行各類(lèi)型的讀寫(xiě)操作,可驗證EMIF接口設計。

本SoC系統中設計的EMFI接口模塊可以連接4個(gè)外部存儲空間CE0~CE3。通過(guò)ISE工具使用 XILINX V6芯片的 IP core例化4個(gè)寬度為32bit、深度為64的SRAM,并且將它們連接到CE0~CE3空間接口上。在CCS中,初始化CE0~CE3空間接口,對各空間前16個(gè)地址寫(xiě)數據,之后對這些地址進(jìn)行讀操作。執行單步調試命令,可以成功讀取CE0~CE3空間地址里面寫(xiě)入的數據。DSP核指令代碼,首先配置全局寄存器,選擇DSP提供的系統時(shí)鐘,指令代碼寫(xiě)全局控制寄存器:*(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;

對各空間前16個(gè)地址寫(xiě)數據,之后對這些地址進(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);

}

運行DSP核指令代碼,觀(guān)察CE0~CE3寄存器的值,能夠成功進(jìn)行讀寫(xiě),驗證EMIF正確。

3.3 事件捕獲、看門(mén)狗等功能模塊的驗證

通過(guò)DSP操作控制看門(mén)狗邏輯模塊寄存器,看門(mén)狗能夠正確運行,并能夠正確影響復位模塊以驗證看門(mén)狗IP模塊。通過(guò)DSP正確操作CPI等寄存器,使CPI模塊產(chǎn)生中斷送至DSP,并且DSP能夠正確響應中斷信號進(jìn)行及時(shí)處理。為了可方便驗證CPI功能,此SoC驗證CPI模塊把PWM產(chǎn)生波輸入到CPI模塊,配置CPI捕獲模式,當CPI模塊輸入有變化時(shí),進(jìn)行捕獲產(chǎn)生中斷。當發(fā)生中斷時(shí)CPI_INT為高電平,當DSP處理后會(huì )變?yōu)榈碗娖叫盘?。驗證方法原理如圖4

圖4 驗證CPI模塊原理框圖

在ChipScope中正確設置觸發(fā)條件并可以通過(guò)編程器及JTAG傳送到PC主機,可觀(guān)察其邏輯波形的正確性。下圖5可以看車(chē)CPI_INT6從高電平到低電平的轉化,可說(shuō)明DSP對CPI中斷事件進(jìn)行了處理,并正確相應外部中斷??沈炞C正確設置CCS配置IP模塊寄存器后,IP硬件模塊能夠正常運行。

圖5 CPI中斷事件

3.4 PWM、SPI、CAN、UART等外設模塊

通過(guò)控制內部寄存器,能夠產(chǎn)生正確的PWM波,分別在示波器及ChipScope上對一些信號進(jìn)行采取及觀(guān)測分析,驗證其正確性。驗證方法和如上驗證CPI、EMIF相同。測試驗證結果表明其功能正確。其中結合示波器測試PWM波,驗證PWM設計正確性。另外使用相同方法驗證SPI、CAN、UART等各IP功能。

4 結論

本文基于一個(gè)DSP處理器控制的SOC芯片的開(kāi)發(fā)與驗證項目為基礎。介紹了關(guān)于FPGA的軟硬件協(xié)同驗證方法及過(guò)程,搭建FPGA驗證硬件平臺及軟件平臺環(huán)境, 并通過(guò)軟硬件協(xié)同驗證, 在線(xiàn)驗證調試SOC系統中邏輯及功能設計, 并對每個(gè)功能模塊進(jìn)行了驗證分析。通過(guò)CCS輸入控制DSP程序進(jìn)而控制SOC系統及內部IP模塊,具有可觀(guān)測性及實(shí)時(shí)性,結果表明通過(guò)FPGA軟硬件協(xié)同驗證系統可以對目標SOC芯片進(jìn)行功能驗證及性能評估??s短了基于SoC芯片的應用系統的開(kāi)發(fā)時(shí)間,提高流片成功率。整個(gè)驗證平臺及方法具有較高的可靠性。


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: 控制 FPGA

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>