基于SoPC的FPGA在線測試方法
本文提出了一種基于SoPC的FPGA在線測試方法,是對現(xiàn)有FPGA在線測試方法的一種有效的補充。
1 在線測試數(shù)據(jù)操作流程
基于SoPC的FPGA在線測試方法的數(shù)據(jù)操作流程如圖1所示。如果用戶需要采集FPGA的測試數(shù)據(jù)并且上傳至PC機,則用戶首先要將被測試數(shù)據(jù)寫入DMA讀從外設,然后系統(tǒng)自動啟動DMA控制器,將數(shù)據(jù)送入Nios II的數(shù)據(jù)存儲器。再由JTAG UART控制器經(jīng)JTAG接口上傳至Nios II IDE(NiosⅡIntegrated Development Environment,Nios II開發(fā)環(huán)境),Nios II IDE將接收到的數(shù)據(jù)寫入測量數(shù)據(jù)存儲文件,從而完成了FPGA測試數(shù)據(jù)的上傳。如果用戶需要將PC機中的激勵數(shù)據(jù)文件下載至FPGA,則系統(tǒng)首先在Nios II IDE中通過Host-Based File System讀出激勵文件數(shù)據(jù),然后由JTAG接口經(jīng)JTAG UART控制器下載至Nios II處理器的數(shù)據(jù)存儲器,Nios II發(fā)起DMA寫傳輸把數(shù)據(jù)從數(shù)據(jù)存儲器搬運至DMA寫從外設并寫入FPGA片上FIFO,從而完成了激勵數(shù)據(jù)的下載。
2 SoPC平臺架構
SoPC系統(tǒng)部件組成見圖2,系統(tǒng)包括Nios II處理器、On-Chip RAM、JTAG UART、EPCS控制器,SYSID、定時器、DMA讀控制器dma_0、DMA寫控制器dam_1,以及自定義DMA讀從外設fifo_control與自定義DMA寫從外設ext_rdfifo_controller。NiosⅡ的復位地址為EPCS控制器,異常地址為On_ChipRAM。DMA讀控制器的讀主端口連接至自定義DMA讀從外設,寫主端口連接至On-Chip RAM,DMA寫控制器的讀主端口連接至On-Chip RAM,寫主端口連接至自定義DMA寫從外設。系統(tǒng)的JTAG UART主要實現(xiàn)JTAG接口的控制,使FPGA能夠通過JTAG接口與PC機進行通信。
3 DMA讀、寫從外設的設計
測試數(shù)據(jù)在DMA控制器讀數(shù)據(jù)之前是存儲在片上FIFO的,而激勵數(shù)據(jù)是通過DMA控制器寫入片上FIFO的。然而DMA控制器數(shù)據(jù)讀、寫主端口采用的是Avalon存儲器映射接口(Avalon Memory Mapped Interface,Avalon-MM接口),不能直接對FIFO進行操作,Altera公司也沒有提供相應的控制器核,需要用戶自己開發(fā)DMA讀從外設用于控制FIFO把測試數(shù)據(jù)傳送給DMA控制器,以及DMA寫從外設用于控制FIFO接收DMA控制器的激勵數(shù)據(jù)。本文開發(fā)的DMA讀從外設模塊結構框圖如圖3所示。
DMA讀從外設包括了3個端口,即控制從端口、DMA從端口以及FIFO寫端口。DMA讀從外設的控制從端口包括3個寄存器,分別是狀態(tài)寄存器status、控制寄存器control、FIFO已使用字數(shù)寄存器usedw。NiosⅡ通過讀/寫這些寄存器獲取此外設的狀態(tài)以及實現(xiàn)對此外設的控制。另外,控制端口還包含了中斷接口用于此外設向NiosⅡ發(fā)起中斷請求。DMA讀從外設產(chǎn)生中斷請求有2種情況:一是內(nèi)部FIFO寫滿;二是收到外部測試數(shù)據(jù)的包結束信號。此時,即使FIFO未寫滿,DMA讀從外設也會發(fā)起中斷請求,從而實現(xiàn)采集的測試數(shù)據(jù)的立即傳輸。DMA從端口采用帶流控制信號的AvalonMM總線,用于實現(xiàn)DMA控制器的測試數(shù)據(jù)讀操作;管道接口是測試數(shù)據(jù)寫入此外設的FIFO接口,包括數(shù)據(jù)總線、寫有效信號和一些狀態(tài)信號(如FIFO寫滿信號等)。DMA寫從外設的結構與DMA讀從外設類似,只是沒有中斷請求信號,這里不再詳述。
評論