FPGA編程語言為何叫硬件描述語言?硬件即FPGA硬件,硬件描述語言,也就自然地告訴我們可以通過語言來描述FPGA內(nèi)部硬件。如:用y=a&b來描述一個2輸入的與門,用PLL來描述類似外部時鐘管理芯片。因此,要想學好FPGA,你得用硬件的思維方式來編寫代碼,注重FPGA的系統(tǒng)結(jié)構(gòu)設計,好的系統(tǒng)結(jié)構(gòu)設計會帶來質(zhì)的飛躍,這就告訴我們RTL Coding其實是硬件結(jié)構(gòu)設計,而非基于處理器架構(gòu)的C語言程序開發(fā),好的RTL Coding就是好的硬件結(jié)構(gòu)。2.FPGA設計是做串并操作的時序設計?FPGA內(nèi)部硬件之間的通信為多對多節(jié)點通信,不僅存在無先后順序的并行邏輯,而且還存在先后順序的串行邏輯,這和CPU基于指令的順序執(zhí)行邏輯完全不同,我們需要嚴格控制設計中各個信號之間的時間關系,以滿足最終的時間上的需求,即時序要求。
因此,F(xiàn)PGA設計就是針對既有串行操作,又有并行操作的時序設計,即FPGA串并操作的時序設計。3.FPGA串并操作,該如何理解?a.執(zhí)行完A后再執(zhí)行B;b.A和B之間并行執(zhí)行,且沒有關聯(lián);c.A和B之間并行執(zhí)行,且開始時有先后順序,即串行邏輯;d.FPGA的復雜系統(tǒng)包含上述多種靈活組合,設計時需多多琢磨思考,合理設計。4.FPGA內(nèi)部最基本硬件結(jié)構(gòu)LUT,你理解嗎?LUT的原理很簡單,就是把各種可能的結(jié)果存起來標個號,每次根據(jù)輸入的號來輸出結(jié)果。如:一位加法器有4種可能輸入對應3種結(jié)果,就只需要做一張表格,把所有的輸入和輸出一一對應即可。
圖1 LUT實現(xiàn)方式
理解了LUT原理,我們可以用相同的思想來實現(xiàn)DDS、簡單乘法、簡單三角函數(shù)等,有時可以大大省資源,因為畢竟FPGA最終都是有多個LUT級聯(lián)+Reg+其它 來實現(xiàn)各種復雜的硬件電路。
5.FPGA設計關鍵在于結(jié)構(gòu)的設計,你同意嗎?a.首先,清楚FPGA的內(nèi)部結(jié)構(gòu),基本結(jié)構(gòu)為LUT;
b.然后,按照功能、時鐘域、串并操作、數(shù)據(jù)流和控制流來綜合考慮系統(tǒng)的結(jié)構(gòu);
c.最后,根據(jù)面積、速度和功耗來不斷優(yōu)化系統(tǒng)結(jié)構(gòu),設計出最合理的系統(tǒng)結(jié)構(gòu)。
-
FPGA
+關注
關注
1650文章
22205瀏覽量
626858 -
硬件
+關注
關注
11文章
3532瀏覽量
68400 -
時序
+關注
關注
5文章
401瀏覽量
38506
原文標題:FPGA的幾點總結(jié),你同意嗎?
文章出處:【微信號:FPGAer_Club,微信公眾號:FPGAer俱樂部】歡迎添加關注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
fpga時序分析案例 調(diào)試FPGA經(jīng)驗總結(jié)

FPGA學習總結(jié)[經(jīng)典推薦]
FPGA的幾點總結(jié),你同意嗎?
對于PCB設計重要線信號處理,應該注意哪幾點?
為什么大量的人會覺得FPGA難學?精選資料推薦
增量型拉線位移傳感器的幾點注意事
FPGA學習總結(jié)[經(jīng)典推薦]
學習FPGA需要注意的幾個重要問題
LabVIEW FPGA 的重要性及應用

Xilinx 7 系列FPGA中的Serdes總結(jié)
ACTEL-FPGA獨特的幾點優(yōu)勢

總結(jié)SMT貼片加工中有幾點最容易發(fā)生問題的封裝
采用FPGA實現(xiàn)醫(yī)療成像總結(jié)

評論