新聞中心

EEPW首頁 > 測試測量 > 設(shè)計應(yīng)用 > 基于SoPC的FPGA在線測試方法

基于SoPC的FPGA在線測試方法

作者: 時間:2011-11-09 來源:網(wǎng)絡(luò) 收藏
4 數(shù)據(jù)傳輸?shù)腘iosⅡ控制

  4.1 DMA控制器的操作

  Altera公司為DMA控制器提供了硬件抽象層(HAL)接口函數(shù),使用這些函數(shù)編程需要注意的地方主要有2點:一是要考慮到Cache數(shù)據(jù)的一致性問題,在調(diào)用發(fā)送/接收函數(shù)之前需要調(diào)用相關(guān)函數(shù)清除數(shù)據(jù)Cache中的內(nèi)容;另外一個需要注意的地方是DMA控制器的alt_dma_txchan _send()函數(shù)以及alt_dma_rxchan_prepare()函數(shù)的第3個參數(shù)表示的是請求DMA控制器發(fā)送/接收的字節(jié)數(shù),而不是字或者雙字、四字數(shù)。

  4.2 Host-Base File System

  Altera公司提供的Host-Base File System組件可以使正在目標板上執(zhí)行的程序讀/寫存儲在主機上的文件,文件的數(shù)據(jù)是NiosⅡIDE通過Altera下載線纜與目標板進行數(shù)據(jù)交互的。目標板上的程序可以使用ANSIC標準庫函數(shù)如fopen、fread等函數(shù)來進行文件的操作,用戶使用Host-Base File System前必須先在NtosII IDE工程中添加這個軟件組件,而且只能運行在Debug模式下。另外,對于上傳至PC的測試數(shù)據(jù),也可以使用設(shè)置標準輸入/輸出信息存放于主機上的某個文件(在NiosⅡIDE/Run/Run…/Common下指定)而繞開Host-BaseFile System,但是對于主機文件數(shù)據(jù)下載給目標板的情況,對文件的操作必須添加這個組件。

  4.3 測試數(shù)據(jù)讀、寫控制

  當需要采集測試數(shù)據(jù)時,首先在FPGA內(nèi)部用硬件語言編寫模塊把測試數(shù)據(jù)存入DMA讀從外設(shè)的FIFO,然后DMA讀從外設(shè)產(chǎn)生中斷請求,NiosⅡ接到中斷請求后,首先查看中斷產(chǎn)生的原因是FIFO寫滿還是數(shù)據(jù)包結(jié)束。若中斷原因是數(shù)據(jù)包結(jié)束,則NiosⅡ讀DMA讀從外設(shè)的usedw寄存器獲取FIFO已使用字數(shù),并把這個值作為DMA控制器的傳輸長度發(fā)起DMA傳輸;若是FIFO寫滿,則發(fā)起固定長度(如FIFO深度)的DMA讀傳輸,DMA傳輸完畢后用ANSIC標準函數(shù)fwrite()把數(shù)據(jù)寫入PC機的數(shù)據(jù)文件。

  對于存儲在PC機上的數(shù)據(jù)激勵文件,NiosⅡIDE首先通過ANSIC標準函數(shù)fread()讀入NiosⅡ的數(shù)據(jù)存儲器,在查詢DMA寫從外設(shè)中FIFO未滿時,把數(shù)據(jù)寫入外部的FIFO,完成數(shù)據(jù)激勵文件的傳輸。

  5 系統(tǒng)驗證

  5.1 系統(tǒng)測試條件

  本次測試中FPGA芯片為Altera公司的CycloneIII EP3C120F484C8,系統(tǒng)時鐘為50 MHz,使用的JTAG傳輸線纜為USB Blaster,NiosⅡ為經(jīng)濟模式,自定義DMA讀、寫外設(shè)內(nèi)部FIFO均為2 K×16 b,NiosⅡ數(shù)據(jù)存儲器On-Chip RAM大小為60 KB,使用Host-Base File System組件,在NiosⅡ工程屬性中選中“Reduced device drivers”,經(jīng)過NiosⅡIDE編譯后代碼占用程序存儲空間為50 KB。

  5.2 測試數(shù)據(jù)傳輸測試

  在FPGlA目標系統(tǒng)測試數(shù)據(jù)上傳至PC的測試中,在FPGA內(nèi)部用verilog語言編寫了一個數(shù)據(jù)源模塊,數(shù)據(jù)源輸出為2~8 000的計數(shù)值,數(shù)據(jù)寬度為16位,在數(shù)據(jù)8 000輸出時,數(shù)據(jù)包結(jié)束信號有效,這樣既可以驗證FIFO滿中斷的情況又可以驗證數(shù)據(jù)包結(jié)束中斷的情況。測試數(shù)據(jù)源首、尾部的SignalTapⅡ測試波形如圖4所示。在NiosⅡIDE,通過把pritnf()函數(shù)輸出的調(diào)試信息自動存放到一個文本文件中,刪去首、尾的調(diào)試信息即得到有效數(shù)據(jù)文件。文本文件數(shù)據(jù)結(jié)果如圖5所示,其中數(shù)字后面的小黑塊代表換行符,從結(jié)果看,此方法實現(xiàn)了測試數(shù)據(jù)的正確上傳(注:由于測試數(shù)據(jù)太長,文中只給出數(shù)據(jù)的首部和尾部的截圖)。

  

  5.3 激勵數(shù)據(jù)傳輸測試

  在激勵數(shù)據(jù)傳輸測試時激勵數(shù)據(jù)為存儲于PC機上的計數(shù)值為1~2048二進制流文件,數(shù)據(jù)寬度為16位,通過加入Host-Base File System組件調(diào)用fopen()與fread()函數(shù)完成數(shù)據(jù)的讀出,當查詢DMA寫從設(shè)備未滿時發(fā)起DMA傳輸,圖6是外部邏輯讀DMA寫從設(shè)備中FIFO的Signal Tap II測試波形圖。從圖中的結(jié)果看,數(shù)據(jù)讀出為1~2 048,實現(xiàn)了激勵數(shù)據(jù)的正確下載。

  

  6 結(jié)語

  本文提出了一種基于方法,這種在線測試方法可以把存儲在FPGA片上FIFO的測試數(shù)據(jù)通過JTAG接口上傳至PC機并寫入文件,也可以把存儲在PC機上的激勵文件通過JTAG接口下載到FPGA的片上FIFO。相比Altera已有的在線測試方法,此方法采用DMA操作,具有較高的數(shù)據(jù)吞吐量;采用NiosⅡ控制測試/激勵數(shù)據(jù)的傳輸,無需手動操作;采集過程的控制由C語言編寫,簡單易用;使用PC機上的激勵文件或者把測試數(shù)據(jù)存儲為PC機上的文件,可以使用其它分析工具(如Matlab)產(chǎn)生激勵文件或者對測試數(shù)據(jù)文件進行分析;另外,此方法對測試數(shù)據(jù)的采樣深度沒有限制。因此,這種在線測試方法具有廣泛的應(yīng)用前景。


上一頁 1 2 下一頁

關(guān)鍵詞: SoPC FPGA在線測試

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉