楊婉
摘 要:目前絕大部分FPGA都是用SRAM構(gòu)成邏輯函數(shù)發(fā)生器,因此需要外加專(zhuān)用配置芯片。上電時(shí),由這個(gè)專(zhuān)用配置芯片把數(shù)據(jù)加載到FPGA中,然后FPGA就可以正常工作。本文采用STC深圳宏晶公司單片機(jī)12C5A60S2以PS模式對(duì)Altera公司的FLEX6000系列芯片EPF6016進(jìn)行配置,軟件采用MAX+PLUS II。
關(guān)鍵詞:FPGA 單片機(jī) SRAM
中圖分類(lèi)號(hào):TP27 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-3791(2014)06(a)-0011-01
1 12C5A60S2的功能特點(diǎn)
12C5A60S2器件采用高性能的靜態(tài)80C51設(shè)計(jì),可編程。芯片為1時(shí)鐘模式,其最大工作頻率為35 MHz。此芯片包含60 KB的Flash程序存儲(chǔ)器、1024字節(jié)RAM、32個(gè)I/O口、3個(gè)16位定時(shí)/計(jì)數(shù)器、6中斷源-4中斷優(yōu)先級(jí)-嵌套的中斷結(jié)構(gòu)、2個(gè)增強(qiáng)型UART。它頻率范圍寬,具有空閑模式和掉電模式兩種節(jié)電模式。12C5A60S2的Flash存儲(chǔ)器可在板編程ISP,EPF6016芯片的配置信息可存儲(chǔ)于12C5A60S2的Flash存儲(chǔ)器中,也可采用外配串行EEPROM 24C512使用更加方便。
2 配置原理和配置文件
FPGA的加載主要通過(guò)被動(dòng)串行加載模式,主動(dòng)串行加載模式,被動(dòng)并行加載模式和邊界掃描加載模式。所有的FPGA芯片都有三個(gè)或四個(gè)加載模式配置管腳,通過(guò)配置來(lái)選取不同的加載模式。FPGA的配置文件在MAX+PLUS II編譯時(shí)自動(dòng)生成。用12C5A60S2來(lái)配置FPGA,需將引導(dǎo)配置代碼(.hex文件)和FPGA的配置數(shù)據(jù)(.hex文件)一起通過(guò)編程器寫(xiě)入12C5A60S2或通過(guò)編程器將數(shù)據(jù)寫(xiě)入24C512經(jīng)由單片機(jī)對(duì)FPGA進(jìn)行編程。
本硬件設(shè)計(jì)不適用單片機(jī)的RXD,TXD管腳,轉(zhuǎn)而使用任意I/O,可留出RXD,TXD做串口通訊之用,F(xiàn)PGA配置信息存儲(chǔ)在外配24C512中,如此可通過(guò)更換24C512芯片,變化FPGA的芯片功能。
3 軟件設(shè)計(jì)
下面給出用匯編語(yǔ)言編寫(xiě)的程序(核心內(nèi)容):
NSTATUS BIT P1.0 CONFIG-DONE BIT P1.1 ADATA BIT P3.2
DCLK BIT P3.3 NCONFIG BIT P3. SDA BIT P1.6
SCL BIT P1.7 INDI BIT P1.3 LED-LAMP BIT P3.1
ORG 0000H; MEMORY RESET SETB SDA;
MEMORY RESET SETB SCL MOV R0,#10H
XLK: CLR SCL NOP NOP SETB SCL NOP DJNZ R0,XLK
ALK: CLR SCL NOP NOP SETB SCL; GIVE A RISING TO EEPROM NOP NOP JB SDA,SLK; IT IS SATISFIED FOR SDA=1
WHEN SCL=1 LJMP ALK
;INITIAL TO READ EEPROM, PREPARE TO RANDOM READ ONE WORDS
CNTER:LCALL START
MOV A,#10100010B; SHIFT OUT DEVICE ADDRESS WRITE
LCALL SHOUT
LOKED:JZ LOKED; IF IT IS ZERO THE PROGRAMME WILL STOP HERE
DEC A
MOV 30H,A; SAVE THE COUNTER VALUE TO RAM 30H
;WRITE BACK THE DECREASED VALUE
MOV DPTR,#0FFF0H
MOV B,A
LCALL WRITE
INI: CLR P1.2
CLR DCLK
CLR ADATA
CLR P3.5
SETB SCL
MOV R0,#10H
XAA: CLR SCL
NOP
NOP
SETB SCL
NOP
DJNZ R0,XAA
AGA: CLR SCL
NOP
NOP
SETB SCL; GIVE A RISING TO EEPROM
NOP
NOP
JB SDA,SAT; IT IS SATISFIED FOR SDA=1 WHEN SCL=1
LJMP AGA
SAT: LCALL START; NOW RESET FINISHED
;WHEN SCL=1 GIVE SDA A FALLING EDGE
;START CONDITION HAS FINISHED
;EXIT WITH SDA=0 SCL=0
; INITIAL TO READ EEPROM, PREPARE TO SEQUENCIAL READ
MOV A,#10100010B; SHIFT OUT DEVICE ADDRESS WRITE
LCALL SHOUT
MOV A,#00H; HIGH BYTE ADDRESS
LCALL SHOUT
MOV A,#00H; LOW BYTE ADDRESS
LCALL SHOUT; THIS IS DUMMY WRITE
………………………………………………………………………….
SERSD:RRC A
MOV ADATA,C; LSB PRESENT FIRST BIT 0
SETB DCLK
CLR DCLK
RRC A
SETB DCLK
………………………………………………………………………….
CLR DCLK
RET END
4 結(jié)語(yǔ)
用12C5A60S2單片機(jī)外配24C512串行EEROM來(lái)配置FPGA,較之于EPC1441PC8配置芯片,具有經(jīng)濟(jì),可重復(fù)編程的優(yōu)點(diǎn)。同時(shí)由于單片機(jī)可加入按鍵,通訊接口等功能,可在不斷電的情況下實(shí)現(xiàn)在線的重配及參數(shù)修改,增強(qiáng)了系統(tǒng)功能。FPGA的高速性和單片機(jī)的智能性達(dá)到完美結(jié)合。
參考文獻(xiàn)
[1] 楊曉慧,楊旭.FPGA系統(tǒng)設(shè)計(jì)與實(shí)例[M].人民郵電出版社,2010(1).
[2] 華清遠(yuǎn)見(jiàn)嵌入式培訓(xùn)中心.FPGA應(yīng)用開(kāi)發(fā)入門(mén)與典型實(shí)例[M].人民郵電出版社,2008(7).endprint