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

2022-05-13 18:48:14 字數 2546 閱讀 4753

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...