fpga
(field
-programmable gate array
),即現場可程式設計門陣列,這是我們在很多地方都看見的解釋
fpga
的名詞,但是到底是現場可程式設計門陣列呢?何時能用到現場可程式設計呢?今天我們看看怎麼實現
fpga
的現場可程式設計。
先假設一種應用場合:在某個場合中
fpga
內部硬體電路需要根據外部條件實時更改,有幾十種甚至上百種
fpga
模型選擇。每種模型使用
le都達到上萬個,這時候我們不可能直接把所有電路做在乙個工程中,這樣使用的
fpga
晶元容量太龐大,非常昂貴,而且電路膠合控制太複雜,這時候我們可以對每種
fpga
模型進行分別生成配置檔案,當根據實時狀態現場更新
fpga
電路。這樣就可以採用小容量的
fpga
實現,但是怎麼實現現在可程式設計呢?這時候
altera fpga的ps
fpp現在以
cycloneiii
器件來分析怎麼使用
ps模式更新
fpga
**。首先
fpga
ps模式,從資料手冊查到,連線
msel[3..0]
全部到地。即為選擇
ps3.3/3.0/2.5
的程式設計電壓。
如下圖所示,為
altera
官方提供的
ps由圖上可以看出ps5
個程式設計口,分別是:
1.conf_done
:程式設計資料完成指示腳;
2.nstatus
:程式設計狀態指示;
3.data[0]
:程式設計資料;
4.nconfig
:程式設計模式進入腳;
5.dclk
:程式設計時鐘腳;(注意:
cycloneiii dclk
程式設計時鐘最高為
133mhz
,而cycloneiii ls
最高程式設計時鐘為
100mhz
)程式設計時序如下:
從上圖可以看出整個程式設計時序非常簡單,直接輸入資料即可,但是細心的人發現了這裡還有個
init_done
管腳,當配置檔案全部匯入
fpga
後,fpga
內部程式設計控制模組還需要使用程式設計資料對整個
fpga
晶元電路進行修改,因此需要一段時間,如程式設計時序上的
tcd2um
,即為程式設計模式轉到使用者模式下的延時時長,
init_done
即為指示程式設計完成的管腳。由於
tcd2um
在每個器件都是有個時間範圍的,只需要我們在編寫控制時序時延時超過這個值即可,所以也可以省略掉
init_done
管腳使用。
如下圖所示即為
cycloneiii
在配置完成後進入使用者狀態下的時間長短。
可以看出時長在
300~650us
,因此設定自己控制時序時長在
700us
即可進行使用者操作。但是某些場合對時間要求非常高,不想白白等待
700us
,這個時候
init_done
即可作為判斷訊號,指示初始化完成。
查閱資料手冊得知,
init_done
在cycloneiii
系列晶元中處於
bank6
,並且和
io口處於共用狀態,怎麼使用呢?
在quartues->assignment->setting->....
如下圖所示,選取上
init_done io
作為程式設計指示
io即可在程式設計過程中得到需要的指示訊號。
以上步驟我們已經詳細講解了怎麼使用ps對
fpga
現場重配置。配置檔案到底是什麼呢?
sof?pof
?都不是,配置檔案為最原始的
rbf二進位制檔案。
採用quartues
檔案轉換把
sof轉換成
rbf即可。
上面可以看出龍捲風未對
fpp模式進行討論,但是可以參考
altera
硬體手冊,給出如下時序圖:
細心的讀者發現了,起始
fppps
ps資料位為1位、
fpp模式資料位為
8位,僅此而已。
FPGA配置啟動詳解系列(二) PS重配置
fpga field programmable gate array 即現場可程式設計門陣列,這是我們在很多地方都看見的解釋fpga的名詞,但是到底是現場可程式設計門陣列呢?何時能用到現場可程式設計呢?今天我們看看怎麼實現fpga的現場可程式設計。現在以cycloneiii器件來分析怎麼使用ps模式...
FPGA配置啟動詳解系列(二) PS重配置
fpga field programmable gate array 即現場可程式設計門陣列,這是我們在很多地方都看見的解釋fpga的名詞,但是到底是現場可程式設計門陣列呢?何時能用到現場可程式設計呢?今天我們看看怎麼實現fpga的現場可程式設計。現在以cycloneiii器件來分析怎麼使用ps模式...
LINUX(FC系列)啟動服務詳解
做為red hat linux的啟動來說,如果只是個人使用的話,只需要啟用以下服務,如果還在精減的話,只啟用network就可,這是fedora core 2啟動服務.acpid 提供高階電源管理。cpuspeed 可以提高系統執行效率。crond 執行例行性程式。iptables 防火牆。kudz...