1. FPGA編程語言爲什麼叫硬件描述語言?
硬件即FPGA硬件,硬件描述語言,也就天然地告訴咱們能夠經過語言來描述FPGA內部硬件。如:用y=a&b來描述一個2輸入的與門,用PLL來描述相似外部時鐘管理芯片。
所以,要想學好FPGA,你得用硬件的思惟方式來編寫代碼,注重FPGA的系統結構設計,好的系統結構設計會帶來質的飛躍,這就告訴咱們RTL Coding實際上是硬件結構設計,而非基於處理器架構的C語言程序開發,好的RTL Coding就是好的硬件結構。
2. FPGA設計是作串並操做的時序設計?
FPGA內部硬件之間的通訊爲多對多節點通訊,不只存在無前後順序的並行邏輯,並且還存在前後順序的串行邏輯,這和CPU基於指令的順序執行邏輯徹底不一樣,嵌入式物聯網等系統學習企鵝意義氣嗚嗚吧久零就易,咱們須要嚴格控制設計中各個信號之間的時間關係,以知足最終的時間上的需求,即時序要求。編程
所以,FPGA設計就是針對既有串行操做,又有並行操做的時序設計,即FPGA串並操做的時序設計。
3. FPGA串並操做,該如何理解?
a.執行完A後再執行B;
b.A和B之間並行執行,且沒有關聯;
c.A和B之間並行執行,且開始時有前後順序,即串行邏輯;
d.FPGA的複雜系統包含上述多種靈活組合,設計時需多多琢磨思考,合理設計。
4. FPGA內部最基本硬件結構LUT,你理解嗎?
LUT的原理很簡單,就是把各類可能的結果存起來標個號,每次根據輸入的號來輸出結果。如:一位加法器有4種可能輸入對應3種結果,就只須要作一張表格,把全部的輸入和輸出一一對應便可。架構
理解了LUT原理,咱們能夠用相同的思想來實現DDS、簡單乘法、簡單三角函數等,有時能夠大大省資源,由於畢竟FPGA最終都是有多個LUT級聯+Reg+其它 來實現各類複雜的硬件電路。編程語言
5. FPGA設計關鍵在於結構的設計,你贊成嗎?
a.首先,清楚FPGA的內部結構,基本結構爲LUT;函數
b.而後,按照功能、時鐘域、串並操做、數據流和控制流來綜合考慮系統的結構;學習
c.最後 ,根據面積、速度和功耗來不斷優化系統結構,設計出最合理的系統結構。優化