楊婉
摘 要:目前絕大部分FPGA都是用SRAM構(gòu)成邏輯函數(shù)發(fā)生器,因此需要外加專用配置芯片。上電時,由這個專用配置芯片把數(shù)據(jù)加載到FPGA中,然后FPGA就可以正常工作。本文采用STC深圳宏晶公司單片機(jī)12C5A60S2以PS模式對Altera公司的FLEX6000系列芯片EPF6016進(jìn)行配置,軟件采用MAX+PLUS II。
關(guān)鍵詞:FPGA 單片機(jī) SRAM
中圖分類號:TP27 文獻(xiàn)標(biāo)識碼:A 文章編號:1672-3791(2014)06(a)-0011-01
1 12C5A60S2的功能特點(diǎn)
12C5A60S2器件采用高性能的靜態(tài)80C51設(shè)計(jì),可編程。芯片為1時鐘模式,其最大工作頻率為35 MHz。此芯片包含60 KB的Flash程序存儲器、1024字節(jié)RAM、32個I/O口、3個16位定時/計(jì)數(shù)器、6中斷源-4中斷優(yōu)先級-嵌套的中斷結(jié)構(gòu)、2個增強(qiáng)型UART。它頻率范圍寬,具有空閑模式和掉電模式兩種節(jié)電模式。12C5A60S2的Flash存儲器可在板編程ISP,EPF6016芯片的配置信息可存儲于12C5A60S2的Flash存儲器中,也可采用外配串行EEPROM 24C512使用更加方便。
2 配置原理和配置文件
FPGA的加載主要通過被動串行加載模式,主動串行加載模式,被動并行加載模式和邊界掃描加載模式。所有的FPGA芯片都有三個或四個加載模式配置管腳,通過配置來選取不同的加載模式。FPGA的配置文件在MAX+PLUS II編譯時自動生成。用12C5A60S2來配置FPGA,需將引導(dǎo)配置代碼(.hex文件)和FPGA的配置數(shù)據(jù)(.hex文件)一起通過編程器寫入12C5A60S2或通過編程器將數(shù)據(jù)寫入24C512經(jīng)由單片機(jī)對FPGA進(jìn)行編程。
本硬件設(shè)計(jì)不適用單片機(jī)的RXD,TXD管腳,轉(zhuǎn)而使用任意I/O,可留出RXD,TXD做串口通訊之用,F(xiàn)PGA配置信息存儲在外配24C512中,如此可通過更換24C512芯片,變化FPGA的芯片功能。
3 軟件設(shè)計(jì)
下面給出用匯編語言編寫的程序(核心內(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é)語
用12C5A60S2單片機(jī)外配24C512串行EEROM來配置FPGA,較之于EPC1441PC8配置芯片,具有經(jīng)濟(jì),可重復(fù)編程的優(yōu)點(diǎn)。同時由于單片機(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)見嵌入式培訓(xùn)中心.FPGA應(yīng)用開發(fā)入門與典型實(shí)例[M].人民郵電出版社,2008(7).endprint