FPGA配置方式


 

首先介紹下AS、PS、JTAG三種模式的區別。

AS模式: 燒到FPGA的配置芯片里保存的,FPGA器件每次上電時,作為控制器從配置器件EPCS主動發出讀取數據信號,從而把EPCS的數據讀入FPGA中,實現對FPGA的編程,該方法適用於不需要經常升級的場合;

PS模式:EPCS作為控制器件,把FPGA當做存儲器,把數據寫人到FPGA中,實現對FPGA的編程。可以采用微控制器(單片機、ARM等)或者CPLD,該模式可以實現對FPGA在線可編程,升級方便;

JTAG:直接燒到FPGA里面的,由於是SRAM,斷電后要重燒,適用於調試;

.pof文件可以通過AS方式下載;

.sof文件或者轉換的.jic可以通過JTAG方式下載。

usb blaster下載線支持以上三種模式。(http://baike.baidu.com/link?url=qmMniuXETFfL3zzXWhJYCDzAA4x0nVTKfkMGYMg7laPPhYqiYrY8ydGkibSYgf3PFlS-76m2C-istSaQtw5iCK

     FPGA在正常工作時,它的配置數據存儲在SRAM中,加電時須重新下載。在實驗系統中,通常用計算機或控制器進行調試,因此可以使用PS。在實用系統中,多數情況下必須由FPGA主動引導配置操作過程,這時FPGA將主動從外圍專用存儲芯片中獲得配置數據,而此芯片中fpga配置信息是用普通編程器將設計所得的pof格式的文件燒錄進去。

1. JATG模式

     JTAG接口是一個業界標准接口,主要用於芯片測試等功能。altera FPGA基本上都可以支持JTAG命令來配置FPGA的方式,而且JTAG配置方式比其他任何方式優先級都高。JTAG接口有4個必需的信號TDI, TDO, TMS和TCK以及1個可選信號TRST構成,其中:

. TDI,用於測試數據的輸入;

. TDO,用於測試數據的輸出;

. TMS,模式控制管腳,決定JTAG電路內部的TAP狀態機的跳變;

. TCK,測試時鍾,其他信號線都必須與之同步;

. TRST,可選,如果JTAG電路不用,可以講其連到GND。

用戶可以使用altera的下載電纜,也可以使用微處理器等智能設備從JTAG接口設置FPGA。nCONFIG、MESL和DCLK信號都是用在其他配置方式下。如果只用JTAG配置,則需要將nCONFIG拉高,將MSEL拉成支持JTAG的任一方式,並將DCLK拉成高或低的固定電平。

FPGA和10針插座連接圖:

 

2. AS(主動串行)模式

     由FPGA器件引導配置操作過程,它控制着外部存儲器和初始化過程,EPCS系列.如EPCS1,EPCS4配置器件專供AS模式,目前只支持 Stratix II 和Cyclone系列。使用Altera串行配置器件來完成。Cyclone器件處於主動地位,配置器件處於從屬地位。配置數據通過DATA0引腳送入 FPGA。配置數據被同步在DCLK輸入上,1個時鍾周期傳送1位數據。

AS配置器件是一種非易失性、基於flash存儲器的存儲器,用戶可以使用altera的ByteBlaster II加載電纜、altera的“altera programming unit”或者第三方的編程器來對配置芯片進行編程。它與FPGA的接口為以下簡單的4個信號線:

.  串行時鍾輸入(DCLK):是在配置模式下FPGA內部的振盪器(oscillator)產生的,在配置完成后,該振盪器將被關掉。工作時鍾在20MHz左右,而fast AS方式下(stratix II和cyclone II支持該種配置方式),DCLK時鍾工作在40MHz左右,在altera的主動串行配置芯片中,只有EPCS16和EPCS64的DCLK可以支持到40MHz,EPCS1和EPCS4只能支持20MHz。

. AS控制信號輸入(ASDI);

. 片選信號(nCS);

. 串行數據輸出(DATA)。

FPGA和串口配置芯片連接圖:

image

 

FPGA、串口配置芯片和10針插座連接圖1:

FPGA、串口配置芯片和10針插座連接圖2:

3. PS(被動串行)模式

      PS(被動串行)則由外部計算機或控制器控制配置過程,是使用最多的一種配置方式。。所有altera FPGA都支持這種配置模式。通過altera 的下載電纜、加強型配置器件(EPC16,EPC8,EPC4)等配置器件或智能主機(如微處理器和CPLD)來完成,在PS配置期間,配置數據從外部儲存部件(這些存儲器可以是altera配置器件或單板上的其他flash器件),通過DATA0引腳送入FPGA。配置數據在DCLK上升沿鎖存,1個時鍾周期傳送1位數據。

與FPGA的信號接口:

. DCLK(配置時鍾);

. DATA0(配置數據);

. nCONFIG(配置命令);

. nSTATUS(狀態信號);

. CONF_DONE(配置完成指示)。

     在PS方式下,FPGA處於完全被動的地位。FPGA接收配置時鍾、配置命令和配置數據,給出配置的狀態信號以及配置完成指示信號等。PS配置可以使用altera的配置器件(EPC1、EPC4等),可以使用系統中的微處理器,也可以使用單板上的CPLD,或者altera的下載電纜,不管配置的數據源從哪里來,只要可以模擬出FPGA需要的配置時序來,將配置數據寫入FPGA就可以。

在上電以后,FPGA會在nCONFIG管腳上檢測到一個從低到高的跳變沿,因此可以自動啟動配置過程。

image

image

 

 

(1)根據模式的不同,MSEL有不同的設置

(2)配置芯片EPCS16存儲大小為16Mbits=2MB.

(3)實驗室的板子的配置方式JAG方式和“AS方式”,但是沒有AS配置口,將SOF文件轉換我JIC文件,利用JATG將配置文件下載到配置芯片中。所以,可以把這種方式叫做偽AS模式。

       串口配置芯片EPCS16的4個引腳(DATA、DCLK、nCS和ASDI)與FPGA相連即可,JTAG口連接方式按上文所述即可。MSEL只有三位,配置為010(AS模式),這里按照AS模式連        接。

這種利用JTAG將配置文件下載配置芯片的方式如下所示:

 

通過serial flash loader design將JTAG interface和AS interface聯系起來。詳見C3手冊“Programming Serial Configuration Devices In-System Using the JTAG Interface”部分。當然,也可以將AS和JTAG都保留,詳見“Combining JTAG and Active Serial Configuration Schemes”部分。

image

 

有以下問題:

1. JTAG口4腳和6腳的連接不理解。4腳按手冊說法如下,那么應該是VCCA(模擬),而不是設計中的VCC(數字)。學習FPGA電源設計!

   而6腳按手冊說法如下,那么應該是不連接吧,設計中連了VCC。

2. 雖然nCONFIG、nSTATUS、CONFIG_DONE與外部ARM連接,但是DATA[0]、DCLK沒有和ARM相連,所以項目中PS模式通過ARM配置FPGA不行,不知這樣連接是否可以實現AS模式的遠程更新??

答:應該是存在設計問題。

參考資料:http://bbs.ednchina.com/BLOG_ARTICLE_1796890.HTMhttp://blog.sina.com.cn/s/blog_7d1e2bb101016w1n.html

ARM動態配置FPGA:http://wenku.baidu.com/link?url=iB6WRAIZ5G32fJERWgiC4VBQt5Wg5fohFy9AWCPMJaUqIqhpPcjWtcgxdM3G580_Xi9lLrtYzWUBcXnOm-jc04NM884mEdO0pAAEdcJGP7C


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM