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