FPGA配置方式的基本知識(shí)?
FPGA配置粗略可以分為主動(dòng)和被動(dòng)兩種。主動(dòng)加載是指由FPGA控制配置流程,被動(dòng)加載是指FPGA僅僅被動(dòng)接收配置數(shù)據(jù)。
最常見(jiàn)的被動(dòng)配置模式就是JTAG下載bit文件。此模式下,主動(dòng)發(fā)起操作的設(shè)備是計(jì)算機(jī),數(shù)據(jù)通路是JTAG,F(xiàn)PGA會(huì)被動(dòng)接收數(shù)據(jù),根據(jù)需要的操作來(lái)進(jìn)行更新FPGA配置。而上位機(jī)如何獲取配置數(shù)據(jù)就非常靈活了,可能是本地運(yùn)行EDA工具生成的,也可以是網(wǎng)絡(luò)/USB存儲(chǔ)設(shè)備獲取的。
主動(dòng)配置就是FPGA在配置過(guò)程中處于主導(dǎo)地位,主動(dòng)發(fā)起對(duì)Flash的讀寫(xiě),獲取配置信息進(jìn)行配置。
具體配置方式可分為三種:AS、PS和JTAG。首先我們先基本的了解以下這三種方式的區(qū)別與特點(diǎn)。
AS模式:
燒到FPGA的配置芯片里保存的,F(xiàn)PGA器件每次上電時(shí),作為控制器從配置器件EPCS主動(dòng)發(fā)出讀取數(shù)據(jù)信號(hào),從而把EPCS的數(shù)據(jù)讀入FPGA中,實(shí)現(xiàn)對(duì)FPGA的編程,該方法適用于不需要經(jīng)常升級(jí)的場(chǎng)合;
PS模式:
EPCS作為控制器件,把FPGA當(dāng)做存儲(chǔ)器,把數(shù)據(jù)寫(xiě)人到FPGA中,實(shí)現(xiàn)對(duì)FPGA的編程??梢圆捎梦⒖刂破?單片機(jī)、ARM等)或者CPLD,該模式可以實(shí)現(xiàn)對(duì)FPGA在線可編程,升級(jí)方便;
JTAG模式:
直接燒到FPGA里面的,由于是SRAM,斷電后要重?zé)m用于調(diào)試。
一、JATG模式
JTAG接口是一個(gè)業(yè)界標(biāo)準(zhǔn)接口,主要用于芯片測(cè)試等功能。altera FPGA基本上都可以支持JTAG命令來(lái)配置FPGA的方式,而且JTAG配置方式比其他任何方式優(yōu)先級(jí)都高。JTAG接口有4個(gè)必需的信號(hào)TDI, TDO, TMS和TCK以及1個(gè)可選信號(hào)TRST構(gòu)成,其中:
TDI:用于測(cè)試數(shù)據(jù)的輸入;
TDO:用于測(cè)試數(shù)據(jù)的輸出;
TMS:模式控制管腳,決定JTAG電路內(nèi)部的TAP狀態(tài)機(jī)的跳變;
TCK:測(cè)試時(shí)鐘,其他信號(hào)線都必須與之同步;
TRST:可選,如果JTAG電路不用,可以講其連到GND。
FPGA和10針插座連接圖:
用戶可以使用altera的下載電纜,也可以使用微處理器等智能設(shè)備從JTAG接口設(shè)置FPGA。nCONFIG、MESL和DCLK信號(hào)都是用在其他配置方式下。如果只用JTAG配置,則需要將nCONFIG拉高,將MSEL拉成支持JTAG的任一方式,并將DCLK拉成高或低的固定電平。
二、AS模式
AS配置器件是一種非易失性、基于flash存儲(chǔ)器的存儲(chǔ)器,用戶可以使用altera的ByteBlaster II加載電纜、altera的“altera programming unit”或者第三方的編程器來(lái)對(duì)配置芯片進(jìn)行編程。它與FPGA的接口為以下簡(jiǎn)單的4個(gè)信號(hào)線:
DCLK:
串行時(shí)鐘輸入,是在配置模式下FPGA內(nèi)部的振蕩器(oscillator)產(chǎn)生的,在配置完成后,該振蕩器將被關(guān)掉。工作時(shí)鐘在20MHz左右,而fast AS方式下(stratix II和cyclone II支持該種配置方式),DCLK時(shí)鐘工作在40MHz左右,在altera的主動(dòng)串行配置芯片中,只有EPCS16和EPCS64的DCLK可以支持到40MHz,EPCS1和EPCS4只能支持20MHz。
ASDI:
AS控制信號(hào)輸入;
nCS:
片選信號(hào);
DATA:
串行數(shù)據(jù)輸出。
FPGA和串口配置芯片連接圖:
由FPGA器件引導(dǎo)配置操作過(guò)程,它控制著外部存儲(chǔ)器和初始化過(guò)程,EPCS系列.如EPCS1,EPCS4配置器件專供AS模式,目前只支持 Stratix II 和Cyclone系列。使用Altera串行配置器件來(lái)完成。Cyclone器件處于主動(dòng)地位,配置器件處于從屬地位。配置數(shù)據(jù)通過(guò)DATA0引腳送入 FPGA。配置數(shù)據(jù)被同步在DCLK輸入上,1個(gè)時(shí)鐘周期傳送1位數(shù)據(jù)。
三、PS模式
PS(被動(dòng)串行)則由外部計(jì)算機(jī)或控制器控制配置過(guò)程,是使用最多的一種配置方式。。所有altera FPGA都支持這種配置模式。通過(guò)altera 的下載電纜、加強(qiáng)型配置器件(EPC16,EPC8,EPC4)等配置器件或智能主機(jī)(如微處理器和CPLD)來(lái)完成,在PS配置期間,配置數(shù)據(jù)從外部?jī)?chǔ)存部件(這些存儲(chǔ)器可以是altera配置器件或單板上的其他flash器件),通過(guò)DATA0引腳送入FPGA。配置數(shù)據(jù)在DCLK上升沿鎖存,1個(gè)時(shí)鐘周期傳送1位數(shù)據(jù)。
與FPGA的信號(hào)接口:
●DCLK(配置時(shí)鐘);
●DATA0(配置數(shù)據(jù));
●nCONFIG(配置命令);
●nSTATUS(狀態(tài)信號(hào));
●CONF_DONE(配置完成指示)。
FPGA和串口配置芯片連接圖:
在PS方式下,F(xiàn)PGA處于完全被動(dòng)的地位。FPGA接收配置時(shí)鐘、配置命令和配置數(shù)據(jù),給出配置的狀態(tài)信號(hào)以及配置完成指示信號(hào)等。PS配置可以使用altera的配置器件(EPC1、EPC4等),可以使用系統(tǒng)中的微處理器,也可以使用單板上的CPLD,或者altera的下載電纜,不管配置的數(shù)據(jù)源從哪里來(lái),只要可以模擬出FPGA需要的配置時(shí)序來(lái),將配置數(shù)據(jù)寫(xiě)入FPGA就可以。
在上電以后,FPGA會(huì)在nCONFIG管腳上檢測(cè)到一個(gè)從低到高的跳變沿,因此可以自動(dòng)啟動(dòng)配置過(guò)程。
(1)根據(jù)模式的不同,MSEL有不同的設(shè)置。
(2)配置芯片EPCS16存儲(chǔ)大小為16Mbits=2MB.
(3)實(shí)驗(yàn)室的板子的配置方式JAG方式和“AS方式”,但是沒(méi)有AS配置口,將SOF文件轉(zhuǎn)換我JIC文件,利用JATG將配置文件下載到配置芯片中。所以,可以把這種方式叫做偽AS模式。
(4)串口配置芯片EPCS16的4個(gè)引腳(DATA、DCLK、nCS和ASDI)與FPGA相連即可,JTAG口連接方式按上文所述即可。MSEL只有三位,配置為010(AS模式),這里按照AS模式連接。