1 引言
隨著FPGA技術(shù)的不斷發(fā)展和EDA工具軟件的完善,在FPGA芯片上實現(xiàn)的各種復(fù)雜算法和構(gòu)建SOPC系統(tǒng)成為研究的熱點。在很多科研和教學(xué)開展的實驗中,都需要為大規(guī)模FPGA芯片提供高速的計算機(jī)接口以及各種功能部件模塊。目前市場上有不少FPGA實驗系統(tǒng),但由于受目標(biāo)芯片容量、接口、功能部件模塊等方面的限制無法滿足科研和教學(xué)需要。針對研究項目以及對參與項目研究學(xué)生培訓(xùn)的需求,我們設(shè)計了一套通用的FPGA實驗系統(tǒng),該實驗系統(tǒng)以大規(guī)模FPGA芯片為核心,帶有通用的計算機(jī)接口以及豐富的板上功能擴(kuò)展部件,能較好地滿足我們項目研究的需求,并可用于產(chǎn)品開發(fā)的原型驗證、IC 前端設(shè)計驗證,IP核驗證以及EDA課程實驗教學(xué)等,同時也可作為高速多通道邏輯分析儀使用。
2 實驗系統(tǒng)的設(shè)計思想
為使實驗系統(tǒng)達(dá)到通用性的目的,系統(tǒng)上的FPGA芯片應(yīng)可通過PCI、USB、串行、RJ45(網(wǎng)絡(luò))和計算機(jī)交換數(shù)據(jù),并擴(kuò)展FLASH、SRAM、SDRAM、JTAG、AS/PS口以及配置芯片等功能部件。為滿足學(xué)生研究和實驗的需要,我們把卡上的FPGA剩余IO引腳擴(kuò)展到一塊教學(xué)實驗用板中,教學(xué)實驗板帶有A/D、D/A、LCD、數(shù)碼管、發(fā)光二極管、時鐘系統(tǒng)、鍵盤、VGA、PS/2、RAM/ROM、單片機(jī)等實驗功能模塊。

圖1:FPGA實驗系統(tǒng)的整體框圖
3 系統(tǒng)的軟硬件設(shè)計
本實驗系統(tǒng)有多種計算機(jī)接口,都采用了成熟的接口芯片,驅(qū)動程序由芯片廠家提供,直接調(diào)用其上的接口函數(shù)實現(xiàn)計算機(jī)和實驗系統(tǒng)的數(shù)據(jù)傳輸。RS232接口設(shè)計中用一塊LTC1386CS芯片實現(xiàn)電平轉(zhuǎn)換后TXD、RXD信號直接連接到FPGA的IO引腳,USB接口芯片用ISP1581BD,PCI橋接芯片用PLX9054,網(wǎng)絡(luò)接口芯片用LAN91C111,由于這些接口及相關(guān)程序的設(shè)計方法有很多共同的地方,因此我們主要介紹PC接口部分中的PCI-FPGA的設(shè)計。
3.1 PCI-FPGA硬件設(shè)計
PCI-FPGA部分的電源包括3.3V和1.5V兩種電壓,1.5V(VCORE)用于EP1S20F672的內(nèi)核電源(VCCINT),除此之外其它電源都由3.3V(VIO)提供。3.3V電源直接從PCI插槽獲取,1.5V電源則通過凌特公司的LT1764AEQ-1.5穩(wěn)壓芯片獲得。PCI插槽部分的設(shè)計主要是如圖2所示把對應(yīng)信號和9054連接好,另外還需注意把PRSNT1#和PRSNT2中的至少一個接地,目的是讓主機(jī)認(rèn)出本PCI設(shè)備的存在。工作模式用C模式,配置芯片用的SPROM 93CS66,配置信息參照廠家推薦[1]。



3.2 PCI接口軟固件及測試結(jié)果
9054的SDK(軟件開發(fā)套件)提供9054的驅(qū)動程序和各種9054的接口訪問函數(shù),在此基礎(chǔ)上我們開發(fā)了幾個應(yīng)用程序接口函數(shù)(調(diào)用失敗返回0,否則返回非0):
int OpenSGLDMAChannel_0(HANDLE hDevice); //打開傳輸通道
int CloseSGLDMAChannel_0(HANDLE hDevice); //關(guān)閉傳輸通道
int SglDma_Transfer( //用Dma方式傳輸數(shù)據(jù)
HANDLE hDevice, //設(shè)備號
U8 *sendDmaBuffer, //傳輸緩沖區(qū)首地址
U32 LocalAddress, //局部總線首地址
U32 DataLength, //數(shù)據(jù)塊長度
unsigned int direction //0: PC to Card; 1: Card to Pc );
int Single_ReadWrite( //用單字節(jié)方式傳輸數(shù)據(jù)
HANDLE hDevice,
U8 *pdata,
int datalength,
DWORD localaddress,
unsigned int direction //0: PC to Card; 1: Card to Pc );
9054局部總線中LHOLDA和READY是輸入信號(如圖3),其余都為輸出。當(dāng)9054向局部總線寫時,LHOLD信號由低轉(zhuǎn)高, LHOLDA應(yīng)由低轉(zhuǎn)高以響應(yīng)9054,9054輸出ADS為低電平時表示LA上已經(jīng)出現(xiàn)有效地址,當(dāng)READY為低電平時,LD上每個周期傳輸一個數(shù)據(jù)。當(dāng)傳輸?shù)阶詈笠粋€數(shù)據(jù)時9054輸出BLAST一個周期的低電平,接著LHOLD變?yōu)榈碗娖剑萀HOLDA也變低則一次DMA傳輸結(jié)束。
我們按以上所述設(shè)計并加工了PCI卡,利用FPGA片上的RAM作為輸入和輸出FIFO,局部總線時鐘為50MHz,主機(jī)把內(nèi)存中的數(shù)據(jù)通過DMA傳輸方式把數(shù)據(jù)寫入FPGA上的FIFO中。FIFO的深度為1KByte時PCI的傳輸速度為360Mbps,當(dāng)FIFO的深度為100Kbytes時,其傳輸速度達(dá)到916Mbps。
4 實驗系統(tǒng)的應(yīng)用
實驗系統(tǒng)接口部分研制成功后,主要起以下作用。
4.1 邏輯分析儀
以9054局部總線調(diào)試為例,本實驗系統(tǒng)(EP1S20F672C7)可作邏輯分析儀使用。首先用VHDL按9054局部總線時序設(shè)計好傳輸數(shù)據(jù)控制器并綜合,接著用QuartusII5.0建立SignalTap文件并設(shè)置監(jiān)測信號及觸發(fā)條件,編譯下載到FPGA中,然后便可進(jìn)行邏輯分析。以ADS上升沿作為觸發(fā)條件,BLAST上升沿作為結(jié)束條件,對地址線LA[31:0]、數(shù)據(jù)線LD[31:0]、ADS、LW/R、LHOLD、LHOLDA、READY、BLAST等70路數(shù)據(jù)DMA傳輸時進(jìn)行邏輯分析,其結(jié)果如圖3所示。
根據(jù)綜合結(jié)果,作為邏輯分析儀,本系統(tǒng)支持最高頻率超過220MHz,可對從預(yù)留的128個IO口輸入的數(shù)據(jù)進(jìn)行邏輯分析,存儲深度超過1.6Mbits。除可通過QuartusII5.0提供的SignalTap功能對信號分析處理外,也可以把從IO口接收到的數(shù)據(jù)通過PCI或USB接口傳輸給主機(jī),然后通過主機(jī)編程[3]實現(xiàn)對數(shù)據(jù)的分析處理。

4.2 密碼協(xié)處理器
本實驗系統(tǒng)作為密碼算法協(xié)處理器使用的邏輯框圖如圖4所示。以用3DES對一段長消息加密為例,主機(jī)分別將控制、模式和密鑰等數(shù)據(jù)送到協(xié)處理器的指定寄存器中,接著把明文送到FIFO中,然后待協(xié)處理器處理好數(shù)據(jù)后接收結(jié)果。協(xié)處理器根據(jù)控制、模式等設(shè)定,把FIFO中的32位數(shù)據(jù)轉(zhuǎn)換成分組塊,然后啟動密碼運算模塊,處理完一個分組塊后再把結(jié)果轉(zhuǎn)換并寫到FIFO中,并設(shè)置狀態(tài)寄存器,一直到所有數(shù)據(jù)處理完畢。

由于受到PCI接口傳輸速率的限制,作為協(xié)處理器本實驗系統(tǒng)的最大處理速度低于460Mbps(數(shù)據(jù)進(jìn)和出)。通過對3DES、AES、SHA1等算法的研究與實現(xiàn),本實驗系統(tǒng)可作為超過400Mbps的協(xié)處理器,用于GF(2163)上ECC點乘則可超過3400次/S。
4.3 LEON核的驗證
Leon CPU核[4]是公開源代碼的32位RISC嵌入式處理器,完全實現(xiàn)了SPARC V8指令體系,可以根據(jù)用戶的需要對其功能進(jìn)行剪裁。該處理器由可綜合的VHDL代碼描述,可在FPGA中實現(xiàn),并且已經(jīng)成功流片30次以上。其性能、功耗及配套工具雖比不上MIPS和ARM,但0.85MIPS/MHz的處理速度(Dhrystone2.1測試平臺),對嵌入式Linux, eCos, Thumbpod(java), SnapGear等多種嵌入式操作系統(tǒng)的支持,免費獲取VHDL源代碼與其配套的交叉編譯工具、主機(jī)調(diào)試工具以及嵌入式操作系統(tǒng)是其優(yōu)勢所在。
在我們的實驗中Leon2 CPU核使用9830個LE,系統(tǒng)時鐘頻率達(dá)到40MHz以上。
責(zé)任編輯:gt
電子發(fā)燒友App















評論