采用ATmega32單片機(jī)對FPGA進(jìn)行配置
Altera公司的ACEX、FLEX等系列的FPGA芯片應(yīng)用廣泛,但其FPGA基于SRAM結(jié)構(gòu),決定電路邏輯功能的編程數(shù)據(jù)存儲于SRAM中。
由于SRAM的易失性,每次上電時必須重新把編程數(shù)據(jù)裝載到SRAM中,這一過程就是FPGA的配置過程。FPGA的配置分為主動式和被動式。在主動模式下,F(xiàn)PGA上電后主動將配置數(shù)據(jù)從專用的EPROM(如EPC1,EPC2等)加載到SRAM中。被動模式下,F(xiàn)PGA為從屬器件,由相應(yīng)的控制電路或微處理器控制配置過程,包括通過下載電纜由計算機(jī)控制配置和單片機(jī)模擬配置時序配置。其中,專用的EPROM價格高,可編程次數(shù)少,而計算機(jī)配置在現(xiàn)場應(yīng)用中又很不現(xiàn)實,因此本文提出一種基于AVR單片機(jī)的被動配置方式。由于AVR系列單片機(jī)的內(nèi)嵌閃存的容量為8~128kB,可容納中小規(guī)模(10萬門以下)FPGA的配置文件并進(jìn)行配置,另外還可實現(xiàn)多任務(wù)配置。以下將以FLEX10K10為例,介紹單片機(jī)對FPGA的雙任務(wù)配置。
ATmega系列單片機(jī)
ATMEL公司的ATmega系列單片機(jī)根據(jù)片內(nèi)閃存的大小分為ATmega8、ATmega32、ATmega128等。本設(shè)計采用的是ATmega32,該單片機(jī)片內(nèi)含16K×16共32KB的片內(nèi)可編程ROM,可擦寫10 000次,能裝載2萬門以內(nèi)FPGA的配置數(shù)據(jù),最高性能可達(dá)16MIPS,可在最短的時間內(nèi)完成FPGA的配置。如需要配置門數(shù)更高的FPGA,可采用MEGA128。
硬件電路設(shè)計
ATmega32內(nèi)含32KB的閃存,F(xiàn)PGA為FLEX10K10,其配置文件的大小為15KB,因此該方案可實現(xiàn)雙任務(wù)配置。硬件連接上,采用單片機(jī)配置模式時,須將FLEX10K10的MESL0、MESL1、nCE接地,同時將nCONFIG、DCLK、DATA0、nSTATUS、CONF_DONE分別與MEGA32的PA0~PA4相連。MEGA32的I/O口均是可編程的,根據(jù)需要將PA0、PA1、PA2設(shè)置為輸出口,PA3、PA4設(shè)置為輸入口。另外,需在單片機(jī)的PB0、PB1上連接兩個按鍵以選擇配置任務(wù)。具體電路如圖1所示。
圖1 硬件原理框圖
配置方式
Altera公司FPGA器件的配置方式主要有AS(主動串行方式)、PS(被動串行方式)、PPS(被動并行同步方式)、PPA(被動并行方式)和JTAG(邊界掃描方式),使用單片機(jī)對FPGA進(jìn)行配置主要是采用單片機(jī)來模擬PS方式的時序,以實現(xiàn)FPGA器件的配置。
被動串行方式的工作過程如下:配置時需要五個引腳,其中nCONFIG、DCLK、DATA0為單片機(jī)的輸出引腳,nSTATUS、CONF_DONE為單片機(jī)的輸入引腳。系統(tǒng)上電后,由單片機(jī)使nCONFIG上產(chǎn)生一個大于8μs的負(fù)脈沖,F(xiàn)PGA檢測到nCONFIG的下降沿后將啟動配置過程,nSTATUS和CONF_DONE隨之拉低。nCONFIG抬高1μs內(nèi),nSTATUS抬高,配置數(shù)據(jù)從DATA0上由低位到高位依次送出,當(dāng)所有配置數(shù)據(jù)全部送出后,CONF_DONE被抬高,當(dāng)MCU檢測到這一變化后即結(jié)束配置過程。隨后,DCLK必須再提供幾個周期的時鐘(對于FLEX10K需要10個周期)以供FPGA正確完成初始化,進(jìn)入用戶模式。若配置過程出錯,nSTATUS將被拉低,MCU重新啟動配置過程。其配置時序如圖2所示。
圖2 被動串行配置時序圖
相關(guān)推薦
技術(shù)專區(qū)
- FPGA
- DSP
- MCU
- 示波器
- 步進(jìn)電機(jī)
- Zigbee
- LabVIEW
- Arduino
- RFID
- NFC
- STM32
- Protel
- GPS
- MSP430
- Multisim
- 濾波器
- CAN總線
- 開關(guān)電源
- 單片機(jī)
- PCB
- USB
- ARM
- CPLD
- 連接器
- MEMS
- CMOS
- MIPS
- EMC
- EDA
- ROM
- 陀螺儀
- VHDL
- 比較器
- Verilog
- 穩(wěn)壓電源
- RAM
- AVR
- 傳感器
- 可控硅
- IGBT
- 嵌入式開發(fā)
- 逆變器
- Quartus
- RS-232
- Cyclone
- 電位器
- 電機(jī)控制
- 藍(lán)牙
- PLC
- PWM
- 汽車電子
- 轉(zhuǎn)換器
- 電源管理
- 信號放大器
評論