FPGA配置啟動詳解系列(二)——PS重配置


     FPGAFieldProgrammable Gate Array),即現場可編程門陣列,這是我們在很多地方都看見的解釋FPGA的名詞,但是到底是現場可編程門陣列呢?何時能用到現場可編程呢?今天我們看看怎么實現FPGA的現場可編程。

     先假設一種應用場合:在某個場合中FPGA內部硬件電路需要根據外部條件實時更改,有幾十種甚至上百種FPGA模型選擇。每種模型使用LE都達到上萬個,這時候我們不可能直接把所有電路做在一個工程中,這樣使用的FPGA芯片容量太龐大,非常昂貴,而且電路膠合控制太復雜,這時候我們可以對每種FPGA模型進行分別生成配置文件,當根據實時狀態現場更新FPGA電路。這樣就可以采用小容量的FPGA實現,但是怎么實現現在可編程呢?這時候ALTERA FPGAPS模式下載和FPP模式下載就有用了。

     現在以cycloneIII器件來分析怎么使用PS模式更新FPGA代碼。

     首先FPGA下載配置模式應該要選擇PS模式,從數據手冊查到,連接MSEL[3..0]全部到地。即為選擇PS模式下載,並且支持3.3/3.0/2.5的編程電壓。

clip_image002

    

     如下圖所示,為ALTERA官方提供的PS模式下載示意電路:

clip_image004

     由圖上可以看出PS模式下載編程文件,只需要5個編程口,分別是:

     1.CONF_DONE:編程數據完成指示腳;

     2.nSTATUS     編程狀態指示;

     3.DATA[0]      編程數據;

     4.nCONFIG     編程模式進入腳;

     5.DCLK           編程時鍾腳;(注意:cycloneIII DCLK編程時鍾最高為133Mhz,而cycloneIII LS最高編程時鍾為100Mhz

     編程時序如下:

clip_image006

     從上圖可以看出整個編程時序非常簡單,直接輸入數據即可,但是細心的人發現了這里還有個INIT_DONE管腳,當配置文件全部導入FPGA后,FPGA內部編程控制模塊還需要使用編程數據對整個FPGA芯片電路進行修改,因此需要一段時間,如編程時序上的Tcd2um,即為編程模式轉到用戶模式下的延時時長,INIT_DONE即為指示編程完成的管腳。由於Tcd2um在每個器件都是有個時間范圍的,只需要我們在編寫控制時序時延時超過這個值即可,所以也可以省略掉INIT_DONE管腳使用。

 

     如下圖所示即為cycloneIII在配置完成后進入用戶狀態下的時間長短。

clip_image008

     可以看出時長在300~650us,因此設置自己控制時序時長在700us即可進行用戶操作。但是某些場合對時間要求非常高,不想白白等待700us,這個時候INIT_DONE即可作為判斷信號,指示初始化完成。

     查閱數據手冊得知,INIT_DONEcycloneIII系列芯片中處於BANK6,並且和IO口處於共用狀態,怎么使用呢?

clip_image010

clip_image012  

     Quartues->Assignment->Setting->....如下圖所示,選取上INIT_DONE IO作為編程指示IO即可在編程過程中得到需要的指示信號。

clip_image014

 

     以上步驟我們已經詳細講解了怎么使用PSFPGA現場重配置。配置文件到底是什么呢?SOF?POF?都不是,配置文件為最原始的RBF二進制文件。

     采用Quartues文件轉換把SOF轉換成RBF即可。

 

     上面可以看出龍卷風未對FPP模式進行討論,但是可以參考ALTERA硬件手冊,給出如下時序圖:

clip_image016

     細心的讀者發現了,起始FPP下載模式和PS下載模式完全一樣,指示PS數據位為1位、FPP模式數據位為8位,僅此而已。



 

 


免責聲明!

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



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