專利名稱:一種快速、大容量的fpga聯(lián)機(jī)測(cè)試裝置的制作方法
技術(shù)領(lǐng)域:
本實(shí)用新型涉及聯(lián)機(jī)測(cè)試技術(shù)領(lǐng)域,具體的說(shuō)是一種快速、大容量的
FPGA聯(lián)機(jī)測(cè)試裝置。
背景技術(shù):
隨著FPGA設(shè)計(jì)規(guī)模的增大,基于測(cè)試向量仿真的傳統(tǒng)驗(yàn)證方法其復(fù) 雜度也呈指數(shù)上升,建立一種全面而有效的驗(yàn)證方法是非常迫切的。目前 的FPGA驗(yàn)證通常是針對(duì)具體應(yīng)用設(shè)計(jì)一塊開發(fā)板,然后利用按鍵控制提 供輸入信號(hào),用LED顯示測(cè)試結(jié)果。這樣的驗(yàn)證方法具有很大的局限性和 不可靠性。如果采用邏輯分析儀,則在設(shè)計(jì)時(shí)就要求FPGA和PCB設(shè)計(jì)人 員保留一定數(shù)量的FPGA管腳作為測(cè)試管腳,然后用邏輯分析儀的探頭連 接到這些測(cè)試腳,設(shè)定觸發(fā)條件,進(jìn)行觀測(cè)。這個(gè)過(guò)程比較復(fù)雜,靈活性 差,儀器的連線也比較麻煩。此外,邏輯分析儀造價(jià)高昂,每個(gè)單位不可 能大量采購(gòu),在研發(fā)高峰期間如果協(xié)調(diào)不過(guò)來(lái)就會(huì)影響進(jìn)度。鑒于此, Xilinx公司推出了一款ChipSc叩e Pro(在線邏輯分析儀)軟件,可以利用 FPGA內(nèi)部未使用的的BlockRAM,根據(jù)用戶設(shè)定的觸發(fā)條件將信號(hào)實(shí)時(shí)地 保存到這些BlockRAM中,然后通過(guò)JTAG 口傳送的計(jì)算機(jī),最后在計(jì)算機(jī) 屏幕上顯示出時(shí)序波形。但是FPGA內(nèi)部的BlockRAM資源有限,觀測(cè)信號(hào) 的數(shù)量和存儲(chǔ)深度都受其影響,而且JTAG 口與PC機(jī)的USB 口或并口相連, 傳輸速度有限。
實(shí)用新型內(nèi)容
本實(shí)用新型的目的是設(shè)計(jì)一種不再需要借助邏輯分析儀、真正實(shí)現(xiàn)了
通過(guò)PC機(jī)可以實(shí)現(xiàn)FPGA的整個(gè)開發(fā)、驗(yàn)證流程的一種快速、大容量的FPGA 聯(lián)機(jī)測(cè)試裝置。
本實(shí)用新型一種快速、大容量的FPGA聯(lián)機(jī)測(cè)試裝置,包括盒體l, 盒體l內(nèi)的電路板上裝有PCI接口、兩款Xilinx公司的Spartan-3系列 FPGA芯片和兩款FIFO芯片實(shí)現(xiàn)了 FPGA的聯(lián)機(jī)測(cè)試驗(yàn)證功能;其中FPGA1 實(shí)現(xiàn)PCI控制器功能和數(shù)據(jù)處理功能,F(xiàn)IFO芯片完成數(shù)據(jù)的緩存,被測(cè)試 的邏輯電路下載到FPGA2中;另外,板上還設(shè)計(jì)有SDRAM、 RS-232串口、 8個(gè)七段數(shù)碼顯示管、8個(gè)撥碼開關(guān)、8個(gè)LED顯示、8個(gè)按鈕以及擴(kuò)展測(cè) 試接口資源;由于FPGA的管腳有限,8個(gè)七段數(shù)碼顯示管、8個(gè)撥碼開關(guān) 和SDRAM的16位數(shù)據(jù)線通過(guò)16位的切換開關(guān)分時(shí)共用;擴(kuò)展測(cè)試接口具 有雙重功能, 一方面可以作為擴(kuò)展接口,具有40位的擴(kuò)展接口功能,還 有時(shí)鐘和電源接口與子板相連;另一方面它與SDRAM的接口共用,可以作 為SDRAM的測(cè)試口,通過(guò)邏輯分析儀來(lái)觀測(cè)物理驗(yàn)證的輸出波形,同時(shí)與 聯(lián)機(jī)測(cè)試方案中PC機(jī)的SDRAM的物理驗(yàn)證波形進(jìn)行比較。
FPGA聯(lián)機(jī)測(cè)試系統(tǒng)的目的是在FPGA上開發(fā)IP時(shí),將FPGA的物理驗(yàn) 證移到PC機(jī)上實(shí)現(xiàn),不再需要借助邏輯分析儀。這樣真正實(shí)現(xiàn)了通過(guò)PC 機(jī)可以實(shí)現(xiàn)FPGA的整個(gè)開發(fā)、驗(yàn)證流程。其原理包括三個(gè)功能模塊
1.仿真、驗(yàn)證環(huán)境模塊
該模塊提供測(cè)試激勵(lì)數(shù)據(jù),仿真波形的存儲(chǔ)、顯示、分析;因此,必 須包括一個(gè)使用簡(jiǎn)單而功能完備的人機(jī)交換界面,完成測(cè)試參數(shù)的輸入,
激勵(lì)數(shù)據(jù)的處理,測(cè)試結(jié)果的獲取以及與第三方仿真工具軟件的連接等; 測(cè)試結(jié)果直接利用仿真工具軟件進(jìn)行波形分析、比較、存儲(chǔ);該模塊的工 具軟件運(yùn)行在工作PC機(jī)上。
2. PCI控制器模塊
該模塊的功能是完成測(cè)試數(shù)據(jù)的傳輸;主要有兩種類型的操作10 讀寫操作和存儲(chǔ)器讀寫操作;10讀寫操作的功能是寫入測(cè)試配置參數(shù)和讀 取測(cè)試過(guò)程中的狀態(tài)寄存器,通過(guò)狀態(tài)寄存器了解測(cè)試過(guò)程的中間狀態(tài), 并根據(jù)當(dāng)前狀態(tài)發(fā)送下一步操作命令;存儲(chǔ)器寫操作完成測(cè)試激勵(lì)數(shù)據(jù)的 寫入,存儲(chǔ)器讀操作完成測(cè)試結(jié)果的讀取。
3. 數(shù)據(jù)的處理控制模塊
由于FPGA的速率大于PCI的速率,測(cè)試的輸入激勵(lì)數(shù)據(jù)和輸出結(jié)果 在PCI傳輸前必須先緩存;因此,該模塊的功能主要完成激勵(lì)數(shù)據(jù)和測(cè)試 輸出數(shù)據(jù)的緩存,激勵(lì)數(shù)據(jù)波形的還原,測(cè)試激勵(lì)與被測(cè)IP接口的對(duì)應(yīng), 測(cè)試輸出波形到數(shù)據(jù)的轉(zhuǎn)換;
軟件平臺(tái)主要完成測(cè)試激勵(lì)數(shù)據(jù)生成和了波形顯示的方法;用 Verilog HDL語(yǔ)言描述仿真激勵(lì),可以構(gòu)建出任意變化的波形,在激勵(lì)文 件中引入一個(gè)采樣時(shí)鐘,運(yùn)行一定的采樣時(shí)間,就能夠記錄一組激勵(lì)數(shù)據(jù), 而且可以保存在文本文件中;軟件平臺(tái)通過(guò)PCI接口的寫入函數(shù)可以把激 勵(lì)數(shù)據(jù)傳送到開發(fā)板的輸入FIFO中,然后觸發(fā)測(cè)試流程,得到測(cè)試結(jié)果, 保存在開發(fā)板的輸出FIFO中;軟件平臺(tái)通過(guò)PCI接口的讀取函數(shù)從輸出 FIFO中接收數(shù)據(jù),保存在PC主機(jī)的硬盤上,然后調(diào)用Mentor Graphics
公司的Modelsim將數(shù)據(jù)還原成相應(yīng)的仿真波形,并行進(jìn)行結(jié)果分析和比較。
因此,整個(gè)測(cè)試系統(tǒng)的工作流程如下
(1) 激勵(lì)數(shù)據(jù)從PC主機(jī)通過(guò)PCI接口傳送到FPGA1;
(2) 在FPGA1里將PCI接口接收的數(shù)據(jù)保存在輸入FIFO中;
(3) 觸發(fā)測(cè)試過(guò)程,將輸入FIFO中的數(shù)據(jù)轉(zhuǎn)換為激勵(lì)信號(hào),送入FPGA2
驅(qū)動(dòng)被測(cè)試電路;
(4) 將被測(cè)試電路的輸出即FPGA2輸出數(shù)據(jù)保存在輸出FIFO中;
(5) 最后PC機(jī)通過(guò)PCI接口讀取輸出FIFO的數(shù)據(jù),保存在硬盤上。 作為緩存激勵(lì)數(shù)據(jù)的FIFO容量總是有限,當(dāng)測(cè)試激勵(lì)的數(shù)據(jù)量超出
了 FIFO的容量時(shí),必須采用分頁(yè)機(jī)制來(lái)傳輸;每頁(yè)的大小等于FIFO的容 量;具體操作過(guò)程如圖3:
1) 當(dāng)PCI傳送的激勵(lì)數(shù)據(jù)大小等于FIFO容量時(shí),發(fā)一次I/0讀操作, 告訴硬件平臺(tái)己經(jīng)發(fā)送完一頁(yè)測(cè)試激勵(lì);同時(shí)PCI進(jìn)行存儲(chǔ)器讀掃 描操作;
2) 硬件平臺(tái)在收到I/0讀操作后,就啟動(dòng)電路測(cè)試功能,并將被測(cè)電 路的輸出數(shù)據(jù)保存在輸出FIFO中,當(dāng)測(cè)試完成后,硬件平臺(tái)對(duì)狀 態(tài)標(biāo)志寄存器寫測(cè)試結(jié)束標(biāo)志信號(hào);
3) PCI在讀到標(biāo)志信號(hào)后,啟動(dòng)存儲(chǔ)器讀操作讀出輸出FIFO中的數(shù) 據(jù),并將其保存在一個(gè)數(shù)據(jù)文件中;
4) 軟件平臺(tái)在讀完輸出FIFO數(shù)據(jù)后,開始第二頁(yè)激勵(lì)的數(shù)據(jù)傳輸。
反復(fù)進(jìn)行l(wèi))、 2)和3)操作,每次讀出的數(shù)據(jù)都按順序保存在同一 數(shù)據(jù)文件中,直到所有激勵(lì)測(cè)試完為止。 本實(shí)用新型一種快速、大容量的FPGA聯(lián)機(jī)測(cè)試裝置的優(yōu)點(diǎn)是用獨(dú) 立的FIFO芯片存儲(chǔ)數(shù)據(jù),可以選擇較大的容量,性能更高;通過(guò)PCI接 口傳輸數(shù)據(jù),速度比串口或并口都要高的多;提供32根采樣信號(hào),在FPGA 設(shè)計(jì)中只需要把相應(yīng)的引腳映射在這些管腳上就可以觀測(cè),非常靈活;此 外,仿真波形調(diào)用Mentor Gr鄰hics公司的Modelsim工具軟件顯示,直 觀高效;PC主機(jī)應(yīng)用軟件進(jìn)行一些功能開發(fā),易于操作。
圖1為FPGA聯(lián)機(jī)測(cè)試裝置的原理圖。
圖2為FPGA聯(lián)機(jī)測(cè)試裝置的結(jié)構(gòu)示意圖。
圖3為大數(shù)據(jù)量測(cè)試傳輸流程圖。
圖4為FPGA聯(lián)機(jī)測(cè)試裝置的外形圖。
具體實(shí)施方式
一、測(cè)試板設(shè)計(jì)
根據(jù)工程大小,選擇合適的FPGA芯片, 一般選擇當(dāng)前主流芯片。 圖4、圖5的電路原理圖,對(duì)于實(shí)現(xiàn)待測(cè)模塊的第二款FPGA即FPGA2, 在其周邊還設(shè)計(jì)有基本的測(cè)試電路,如按鈕、開關(guān)、LED顯示、數(shù)碼管顯 示、SDRAM、擴(kuò)展接口等;其主要部件為32位PCI接口, FPGA1, FPGA2, 輸入FIF0,輸出FIF0; FPGA1內(nèi)部嵌入PCI局部總線控制器,其中32根 I/O引腳與32位PCI接口的數(shù)據(jù)線相連;FPGA1中另有32根I/O引腳與
輸入FIFO的數(shù)據(jù)輸入引腳相連;FPGA2中有32根I/O引腳與輸入FIFO 的數(shù)據(jù)輸出引腳相連;FPGA2中另有32根I/O引腳與輸出FIFO的數(shù)據(jù)輸 入引腳相連;輸出FIFO的32位輸出數(shù)據(jù)線與FPGA1的另外32根I/O引 腳相連;由此形成一個(gè)完整的數(shù)據(jù)流。
開發(fā)板使用100MHz基準(zhǔn)時(shí)鐘,單片F(xiàn)IFO存儲(chǔ)空間具有32位寬度, 32K位深度,工作電壓3.3V (±10%);控制邏輯模塊綜合后裝載于FPGA1 中。
開發(fā)板安裝在PC主機(jī)的PCI插槽上,利用WinDriver軟件輔助開發(fā) PCI局部總線控制器的驅(qū)動(dòng)程序;針對(duì)PCI接口的操作,主要用到4個(gè)函 數(shù),即32位存儲(chǔ)器讀,32位存儲(chǔ)器寫,I/O空間讀,I/O空間寫;通過(guò) 32位存儲(chǔ)器寫函數(shù)把激勵(lì)數(shù)據(jù)傳送到開發(fā)板的輸入FIFO,通過(guò)32位存儲(chǔ) 器讀函數(shù)把輸出FIFO中的測(cè)試結(jié)果數(shù)據(jù)讀取出來(lái),保存在硬盤上;而1/0 函數(shù)主要用來(lái)控制開發(fā)板上測(cè)試流程的開啟。 二、 PC主機(jī)端應(yīng)用軟件的開發(fā)
軟件測(cè)試平臺(tái)開發(fā)涉及到的功能并不復(fù)雜,以文件操作為主,因此采 用Microsoft Visual Basic 6.0開發(fā)環(huán)境足以實(shí)現(xiàn)全部功能,而且開發(fā) 周期短,界面美觀,圖5為軟件測(cè)試平臺(tái)界面圖。
(l)在Verilog HDL測(cè)試激勵(lì)文件中添加代碼提取激勵(lì)數(shù)據(jù);
以用戶測(cè)試激勵(lì)文件為藍(lán)本(假設(shè)文件名為top—tb.v),構(gòu)建一個(gè)新 的文件(添加后綴—user用以區(qū)別,則文件名為top—tb—user.v),在里面 添加代碼,主要實(shí)現(xiàn)兩個(gè)功能, 一個(gè)是控制"激勵(lì)采樣數(shù)據(jù)保存文件"的
開啟和關(guān)閉, 一個(gè)是控制數(shù)據(jù)采樣。
通常的新文件的結(jié)構(gòu)如下 〃定義時(shí)間精度 、timescale lns/100ps
〃激勵(lì)模塊的名稱 module top—tb;
〃定義一個(gè)文件號(hào) integer Mon—Out—File;
〃創(chuàng)建文本文件
initial
begin
Mon—Out—File = $fopen ("激勵(lì)采樣數(shù)據(jù)文件");
end
#總體采樣時(shí)間 $fclose (Mon_0ut_File); #10 $stop;
〃將激勵(lì)信號(hào)流以16進(jìn)制方式保存在文件中
always #20 $fdisplay(Mon—Out—File, 〃%H〃, {激勵(lì)信號(hào)1, 2,});
(2) 人性化設(shè)計(jì);
用戶選取的采樣信號(hào), 一定是在激勵(lì)文件內(nèi)部有聲明的,應(yīng)用軟件應(yīng) 實(shí)現(xiàn)預(yù)先提取,羅列出來(lái)供用戶選擇的功能,這樣就可以免除用戶手工輸 入的麻煩;通過(guò)Verilog語(yǔ)法中信號(hào)名聲明的關(guān)鍵字判斷,很容易實(shí)現(xiàn)信 號(hào)名的提取;這是軟件的優(yōu)勢(shì)體現(xiàn),邏輯分析儀中硬件采集時(shí)無(wú)法做到,
只能靠手工輸入。
從細(xì)節(jié)上擴(kuò)展一下,用戶提取出來(lái)的信號(hào)名序列,可以在后臺(tái)以臨時(shí) 文件的方式保存在硬盤上,這樣,用戶選擇信號(hào)名序列時(shí),也可以從文件 里面調(diào)用;同時(shí),信號(hào)名添加、刪除、順序調(diào)整,在Microsoft VB6.0開 發(fā)環(huán)境里面很容易實(shí)現(xiàn)。
(3) 利用測(cè)試結(jié)果數(shù)據(jù)構(gòu)建Verilog HDL文件,用于波形顯示; 應(yīng)用軟件通過(guò)驅(qū)動(dòng)函數(shù)從評(píng)估板PCI總線讀取數(shù)據(jù),以16進(jìn)制格式
保存在文件中;現(xiàn)在采樣時(shí)間間隔已知,采樣數(shù)據(jù)已知,對(duì)應(yīng)信號(hào)名已知, 即可通過(guò)應(yīng)用軟件構(gòu)建一個(gè)Verilog HDL描述的仿真文件。
關(guān)鍵部分結(jié)構(gòu)如下 initial begin
#20 (data[4..0], rst, en, clk,we, addre [7 ()], datain [7:0]} = 25'h00000bb;
#20 {data[4:0] , rst, en, clk, we, addre [7:0], datain [7:0]} 25'h00000bb;
tt20 (data[4:0], rst, en, clk, we, addre [7:0], datain[7:0]} 25,h00200bb;
#20 (data[4:0], rst, en, clk, we, addre[7:0], datain[7:0B = 25'hl9ea524;
#20 {data[4:0],rst,en,clk,we,addre[7:0],datain[7:0]} = 25'hl9ea524; #20 $stop;
end
(4)調(diào)用Mentor Graphics公司的Modelsim軟件顯示波形。 Microsoft VB6. 0開發(fā)環(huán)境提供一個(gè)0penProc函數(shù)調(diào)用外部可執(zhí)行 程序,只要以命令行的方式提供可執(zhí)行文件的路徑、文件名以及執(zhí)行參數(shù) 即可;我們使用Menter Graphics公司的ModelSim仿真軟件,并且引入 ModelSim特定的委托執(zhí)行文件(top—test, do),可以直接啟動(dòng)仿真運(yùn)行并 展示仿真波形窗口。 Do文件內(nèi)容如下
抑NOTE: Do not edit this file. 抑
vlib work
vlog -reportprogress 300 —work work result-v
vsim _t 100ps -lib work top—test
view wave
add wave氺
view structure
view signals
run —all。
權(quán)利要求1、一種快速、大容量的FPGA聯(lián)機(jī)測(cè)試裝置,包括盒體(1),其特征在于盒體(1)內(nèi)的電路板上裝有PCI接口、兩款Xilinx公司的Spartan-3系列FPGA芯片和兩款FIFO芯片,板上還有SDRAM、RS-232串口、8個(gè)七段數(shù)碼顯示管、8個(gè)撥碼開關(guān)、8個(gè)LED顯示、8個(gè)按鈕以及擴(kuò)展測(cè)試接口資源;由于FPGA的管腳有限,8個(gè)七段數(shù)碼顯示管、8個(gè)撥碼開關(guān)和SDRAM的16位數(shù)據(jù)線通過(guò)16位的切換開關(guān)分時(shí)共用。
專利摘要一種快速、大容量的FPGA聯(lián)機(jī)測(cè)試裝置,包括盒體(1),盒體(1)內(nèi)的電路板上裝有PCI接口、兩款Xilinx公司的Spartan-3系列FPGA芯片和兩款FIFO芯片,板上還有SDRAM、RS-232串口、8個(gè)七段數(shù)碼顯示管、8個(gè)撥碼開關(guān)、8個(gè)LED顯示、8個(gè)按鈕以及擴(kuò)展測(cè)試接口資源;由于FPGA的管腳有限,8個(gè)七段數(shù)碼顯示管、8個(gè)撥碼開關(guān)和SDRAM的16位數(shù)據(jù)線通過(guò)16位的切換開關(guān)分時(shí)共用。優(yōu)點(diǎn)是用獨(dú)立的FIFO芯片存儲(chǔ)數(shù)據(jù),可以選擇較大的容量,性能更高;通過(guò)PCI接口傳輸數(shù)據(jù),速度比串口或并口都要高得多。
文檔編號(hào)G06F17/50GK201212997SQ20082006819
公開日2009年3月25日 申請(qǐng)日期2008年6月30日 優(yōu)先權(quán)日2008年6月30日
發(fā)明者煒 劉, 方湘艷, 威 韓 申請(qǐng)人:中國(guó)船舶重工集團(tuán)公司第七〇九研究所