機(jī)電之家資源網(wǎng)
單片機(jī)首頁|單片機(jī)基礎(chǔ)|單片機(jī)應(yīng)用|單片機(jī)開發(fā)|單片機(jī)文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓(xùn)信息
贊助商
一種基于單片機(jī)的FPGA并行配置的實(shí)現(xiàn)
一種基于單片機(jī)的FPGA并行配置的實(shí)現(xiàn)
 更新時(shí)間:2008-8-18 10:26:45  點(diǎn)擊數(shù):18
【字體: 字體顏色

一種基于單片機(jī)的FPGA并行配置的實(shí)現(xiàn)
An Implement of FPGA Passive Parallel Configuration Base on MPU


解放軍電子工程學(xué)院 薛王偉 李小波
解放軍駐七八四廠軍代室 伍波
摘 要:討論了基于SRAM技術(shù)的FPGA可編程邏輯器件的配置方法,并以Altera公司FLEX 10K系列器件為例, 提出了一種利用單片機(jī)對可編程邏輯器件進(jìn)行被動(dòng)并行配置(PPA)方案。該方案速度快、簡單易行、便于實(shí)現(xiàn), 能在系統(tǒng)復(fù)位或上電時(shí)自動(dòng)對器件編程,有效的解決了基于SRAM的FPGA器件掉電易失性的問題。該方法可以廣泛應(yīng)用于很多領(lǐng)域。
關(guān)鍵詞: SRAM;FPGA;配置;單片機(jī);被動(dòng)并行

引言
---FPGA是可編程邏輯器件,經(jīng)常被用于設(shè)計(jì)專用集成電路(ASIC),并以其編程方便、集成度高、速度快、價(jià)格低等特點(diǎn)受到廣大電子設(shè)計(jì)人員的青睞。特別是Altera公司的嵌入式可編程邏輯器件FLEX 10K系列更是受到人們的重用。它是基于SRAM 查找表(LUT)結(jié)構(gòu)的FPGA器件,配置數(shù)據(jù)存儲(chǔ)在SRAM中。由于SRAM工藝的掉電易失性,所以每次系統(tǒng)上電時(shí),必須重新配置數(shù)據(jù),即ICR(In-Circuit Reconfigurability),只有在數(shù)據(jù)配置正確的情況下系統(tǒng)才能正常工作。所以選取什么配置方案也是設(shè)計(jì)者必須考慮的一個(gè)問題。在筆者參與研制的一種干擾系統(tǒng)中,采用被動(dòng)并行配置(PPA)方案,利用單片機(jī)(AT89C52)對FLEX10K系列的EPF10K10進(jìn)行在線并行配置,取得了良好效果。本文將對其實(shí)現(xiàn)方法予以介紹。

1 基于SRAM的可編程邏輯器件的配置方式及優(yōu)缺點(diǎn)
---對SRAM加載配置數(shù)據(jù)常常采用下載電纜的配置方式,這種方法簡單易行,只需直接將配置數(shù)據(jù)通過下載電纜由計(jì)算機(jī)下載至芯片,可以很方便地修改系統(tǒng)功能,因此被廣泛應(yīng)用在實(shí)際系統(tǒng)開發(fā)設(shè)計(jì)階段。但對于已經(jīng)設(shè)計(jì)完的應(yīng)用系統(tǒng),如果每次掉電后都要通過計(jì)算機(jī)下載配置會(huì)帶來很多不便。因此,如果在對系統(tǒng)重新上電時(shí),系統(tǒng)本身能自動(dòng)加載可編程邏輯器件的編程文件,從而對可編程邏輯器件進(jìn)行配置,這樣就省去了通過手工由下載電纜對器件配置的過程。該方法的前提是必須在應(yīng)用系統(tǒng)加上存儲(chǔ)器保存器件的編程文件,以供系統(tǒng)自動(dòng)加載時(shí)使用。方法的實(shí)現(xiàn)常用的有兩種,以Altera公司的FLEX 10K系列器件為例。
---一種是采用主動(dòng)配置的方法, 即在系統(tǒng)對SRAM加載配置數(shù)據(jù)時(shí), 由可編程邏輯器件自身控制整個(gè)配置過程。FLEX 10K系列常用的主動(dòng)配置是AS(主動(dòng)串行 )方式, 即將編程文件存放在Altera公司的EPC系列專用存儲(chǔ)器中,在芯片上電時(shí)由FLEX器件控制整個(gè)配置過程, 實(shí)現(xiàn)將編程文件串行地送到FLEX器件的DATA0腳進(jìn)行配置, 并在配置結(jié)束后自動(dòng)進(jìn)行器件的初始化過程, 并進(jìn)入用戶狀態(tài)。該方法簡單方便,不需要其他的外圍控制器, 由FLEX器件自身引導(dǎo)整個(gè)配置過程,但是必須采用專用存儲(chǔ)器放置配置數(shù)據(jù), 而對專用存儲(chǔ)器的編程也需要專用的編程硬件,相對說成本較高。
---另一種是采用被動(dòng)配置 (PS或PPA、PPS)的方式。編程文件可以放在通用程序存儲(chǔ)器中,如EPROM、EEPROM或FLASH中,在FLEX器件上電后,由芯片外部控制器自動(dòng)地從通用存儲(chǔ)器中讀出編程文件并送到FLEX器件進(jìn)行配置,數(shù)據(jù)傳送方式可以為串行,也可以為并行。串行傳送時(shí),即PS方式,配置數(shù)據(jù)送至FLEX的DATA0管腳;并行傳送時(shí),即PPA或PPS方式,配置數(shù)據(jù)送至FLEX器件的DATA0到DATA7腳。常用的外部控制器一般采用微控制器或CPU這樣的智能主機(jī),在采用微控制器配置時(shí),如采用MCS51單片機(jī),一般只使用一位寬的串行數(shù)據(jù)通道而不是字節(jié)寬的并行數(shù)據(jù)通道。該方法的優(yōu)點(diǎn)是不必采用Altera的專用存儲(chǔ)器,使用廉價(jià)的通用程序存儲(chǔ)器就可以實(shí)現(xiàn),這對需要大容量器件配置文件的場合,在降低成本上是非常有利的。該方法的另一個(gè)突出優(yōu)點(diǎn)是,可實(shí)現(xiàn)單系統(tǒng)多方案的配置。因?yàn)閿?shù)據(jù)的配置過程是通過外部智能控制器進(jìn)行的,所以可以根據(jù)需要,在通用存儲(chǔ)器中對單一系統(tǒng)存放多種功能的配置文件,再由外部控制器根據(jù)具體情況自動(dòng)選擇對芯片配置何種功能。這一優(yōu)點(diǎn)是其他任何一種配置方法所不具備的。下面將探討利用微處理器(AT89C52 )對FLEX 10K系列進(jìn)行PPA配置的方法。

2 一種基于AT89C52對FELX 10K系列的PPA配置方案
2.1硬件電路設(shè)計(jì)
---AT89C52對EPF10K10并行配置的硬件電路示意圖如圖1所示。經(jīng)MAX+PLUS II編譯生成的配置文件(.sof)通過格式轉(zhuǎn)換成為rbf格式的文件,被存儲(chǔ)在圖中所示的存儲(chǔ)器中。當(dāng)使用PPA配置方式時(shí),需要將MSEL1和MSEL0鎖定為高電平。為了不使DCLK出現(xiàn)不確定信號,必須將其經(jīng)過1kΩ電阻上拉到Vcc。在采用PPA配置方式時(shí),nCS和CS兩個(gè)片選信號只需用一個(gè)。因此,如果采用其中一個(gè)作為片選信號時(shí),另一個(gè)必須將其直接置為有效位。如果選用CS作片選信號來控制配置時(shí),nCS必須接地。如果選用nCS作片選信號來控制配置時(shí),CS必須接高電平。本實(shí)例中采用后者。nRS為讀選通輸入信號,低輸入時(shí)引導(dǎo)FLEX10K將RDYnBSY信號置于DATA7引腳。當(dāng)nRS不用時(shí),必須將其置為高。nCE為FLEX10K器件的使能輸入,nCE為低時(shí)使能配置過程,而且為單片配置時(shí),nCE必須始終為低。由于本實(shí)例為單片配置,故將nCE直接接地。然后將EPF10K10的nCONFIG、CONF_DONE、nSTATUS、RDYnBSY分別接到AT89C52的P1.7、P1.4、P1.5、P1.3引腳上。DATA[7..0]接到AT89C52的P07~P00。nWS為寫選通輸入,由低到高的跳變時(shí)鎖存DATA[7..0]引腳上的字節(jié)數(shù)據(jù)。要注意的是,nSTATUS和CONF_DONE引腳由于是雙向漏極開路端口,所以在作輸出使用時(shí),應(yīng)該經(jīng)過1kΩ的電阻上拉到Vcc。
2.2軟件設(shè)計(jì)
2.2.1 配置原理
---PPA配置方式的下載時(shí)序如圖2所示,由圖可以看出PPA模式的工作過程如下。

(1)啟動(dòng)配置
---在nCONFIG引腳上產(chǎn)生1個(gè)低脈沖,等待nSTATUS回應(yīng)1個(gè)低脈沖以及CONF_DONE變低。在nCONFIG跳高后4μs內(nèi)nSTATUS也跳高,表明FPGA可以配置了。
(2)配置過程
---在對FPGA進(jìn)行配置時(shí),單片機(jī)將8位的配置數(shù)據(jù)放在FPGA器件的數(shù)據(jù)端,并且給nWS一個(gè)負(fù)脈沖,在nWS的上升沿,FPGA器件將該字節(jié)配置數(shù)據(jù)鎖存,然后,FPGA器件驅(qū)動(dòng)RDYnBSY為低,表明它正在處理該字節(jié)信息,配置過程可以通過nCS或CS引腳暫停。當(dāng)RDYnBSY為低電平時(shí),FLEX 10K器件利用其內(nèi)部振蕩器(其頻率一般為10MHz)在其內(nèi)部將每一字節(jié)的配置數(shù)據(jù)串行化。當(dāng)FLEX 10K器件準(zhǔn)備接收下一個(gè)配置數(shù)據(jù)時(shí),就使RDYnBSY變高,而單片機(jī)檢測該高電平信號,決定是否送出下一字節(jié)的數(shù)據(jù)。這一過程一直持續(xù)到全部數(shù)據(jù)配置完成。在配置過程中,系統(tǒng)需要進(jìn)行實(shí)時(shí)監(jiān)測,一旦出現(xiàn)錯(cuò)誤,nSTATUS將被拉低,系統(tǒng)必須能識(shí)別這個(gè)信號,并重新啟動(dòng)配置過程。
(3)結(jié)束配置
---配置數(shù)據(jù)全部正確寫入芯片內(nèi)部后,器件釋放CONF_DONE,由外部將其拉高,如果單片機(jī)檢測到這個(gè)信號,則表明配置成功,否則,則要對其重新配置。
2.2.2 配置軟件設(shè)計(jì)
---(1) 程序流程圖如圖3所示。
---(2) 部分asm語言如下。
---首先按照電路圖的連接單片機(jī)和FPGA的管腳:
nCONFIG EQU P1.7
nSTATUS EQU P1.5
RDYnBSY EQU P1.3
CONF_DONE EQU P1.4
以下是將數(shù)據(jù)進(jìn)行配置的子程序:
COFIG: MOV DPTR,#0000H
CLR nCONFIG
ACALL DELAY2; 延時(shí)約為15μs
JB nSTATUS,COFIG; 檢測FPGA是否響應(yīng)置低位
SETB nCONFIG; FPGA響應(yīng)置低位后,將nCONFIG置高位
JUDGE: JB nSTATUS,COFIG2; 等待FPGA是否響應(yīng)置高位,然后準(zhǔn)備進(jìn)行配置
LJMP JUDGE
COFIG2: ACALL DELAY1
LJMP SEND_DATA
READY_DATA1:JNB nSTATUS,COFIG
SEND_DATA: MOVX A,@DPTR ;讀取數(shù)據(jù)
PUSH DPH
PUSH DPL
MOV DPTR,#7FFFH;讀入FPGA地址(根據(jù)硬件電路設(shè)定)
JNB RDYnBSY,$ ;判斷RDYnBSY的狀態(tài)
MOVX @DPTR,A;配置數(shù)據(jù)
POP DPL
POP DPH
INC DPTR
DELAY1: NOP
NOP
NOP
NOP
NOP
RET;延時(shí)子程序,延時(shí)約為5μs
DELAY2: MOV R1,#08H
DJNZ R1,$
RET;延時(shí)子程序,延時(shí)約為15μs
END1: END

3 結(jié)束語
---這種PPA配置模式為并行配置,其配置速度快,且配置時(shí)鐘由FPGA內(nèi)部產(chǎn)生,不需如(PS)配置模式要外加配置時(shí)鐘加以控制,故其更有利于在線實(shí)現(xiàn)。FLEX 10K器件配置好后,通過復(fù)位可進(jìn)行在線重新配置,裝入新數(shù)據(jù)。由于重新配置時(shí)間短,系統(tǒng)工作過程中可以實(shí)時(shí)改變配置。此外,在用單片機(jī)完成配置之后,FPGA就可以獨(dú)立的實(shí)現(xiàn)功能了,這時(shí)我們還可以將單片機(jī)用作其他功能。比如,當(dāng)FPGA需要的原始數(shù)據(jù)進(jìn)行邏輯運(yùn)算時(shí),我們可用單片機(jī)向其I/O端口發(fā)送,效果也十分不錯(cuò)。
---雖然上面介紹的配置控制電路是為配置Altera公司FLEX 10K系列的FPGA器件而設(shè)計(jì)的,但稍加修改也適用于其他系列的器件,故其具有一定的通用性。

[1] [2]  下一頁
  • 上一篇: LED的自適應(yīng)背光設(shè)計(jì)
  • 下一篇: 藍(lán)牙測試模式實(shí)現(xiàn)及其物理層觀測
  • 發(fā)表評論   告訴好友   打印此文  收藏此頁  關(guān)閉窗口  返回頂部
    熱點(diǎn)文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機(jī)電之家 | 會(huì)員助手 | 免費(fèi)鏈接

    點(diǎn)擊這里給我發(fā)消息66821730(技術(shù)支持)點(diǎn)擊這里給我發(fā)消息66821730(廣告投放) 點(diǎn)擊這里給我發(fā)消息41031197(編輯) 點(diǎn)擊這里給我發(fā)消息58733127(審核)
    本站提供的機(jī)電設(shè)備,機(jī)電供求等信息由機(jī)電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實(shí)性、準(zhǔn)確性和合法性。
    機(jī)電之家對此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請聯(lián)系機(jī)電之家,機(jī)電之家將及時(shí)作出處理。
    Copyright 2007 機(jī)電之家 Inc All Rights Reserved.機(jī)電之家-由機(jī)電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機(jī)電一體化學(xué)會(huì)
    中國行業(yè)電子商務(wù)100強(qiáng)網(wǎng)站

    網(wǎng)站經(jīng)營許可證:浙B2-20080178-1