FPGA系統設計黃金法則
FPGA系統設計是工程師每天工作都會用到的軟體,那麼下面的FPGA系統設計黃金法則對工程師來說是很有必要掌握的。一起來看看吧!
一.面積與速度的平衡互換原則
這裡的面積指的是FPGA的晶片資源,包括邏輯資源和I/O資源等;這裡的速度指的是FPGA工作的最高頻率(和DSP或者ARM不同,FPGA設計的工作頻率是不固定的,而是和設計本身的延遲緊密相連)。 在實際設計中,使用最小的面積設計出最高的速度是每一個開發者追求的目標,但是“魚和熊掌不可兼得”,取捨之間展示了一個開發者的智慧。
1.速度換面積
速度優勢可以換取面積的節約。面積越小,就意味著可以用更低的成本來實現產品的功能。速度換面積的原則在一些較複雜的演算法設計中常常會用到。在這些演算法設計中,流水線設計常常是必須用到的技術。在流水線的設計中,這些被重複使用但是使用次數不同的模組將會佔用大量的FPGA資源。對FPGA的設計技術進行改造,將被重複使用的演算法模組提煉出最小的複用單元,並利用這個最小的高速代替原設計中被重複使用但次數不同的模組。當然,在改造的'過程中必然會增加一些其他的資源來實現這個代替的過程。但是隻要速度具有優勢,那麼增加的這部分邏輯依然能夠實現降低面積提高速度的目的。
可以看到,速度換面積的關鍵是高速基本單元的複用。
2.面積換速度
在這種方法中面積的複製可以換取速度的提高。支援的速度越高,就意味著可以實現更高的產品效能。一些注重產品效能的應用領域可以採用並行處理技術,實現面積換速度。
二.硬體可實現原則
FPGA設計通常會使用HDL語言,比如Verilog HDL或者VHDL。當採用HDL語言來描述一個硬體電路功能的時候,一定要確保程式碼描述的電路是硬體可實現的。
Verilog HDL語言的語法與C語言很相似,但是它們之間有著本質的區別。C語言是基於過程的高階語言,編譯後可以在CPU上執行。而Verilog HDL語言描述的本身就是硬體結構,編譯後是硬體電路。因此,有些語句在C語言的環境中應用是沒有問題的,但是在HDL語言環境下就會導致結果不正確或者不理想。如:
for(i=0;i<16;i++)
DoSomething();
在C語言中執行沒有任何問題,但是在Verilog HDL的環境下編譯就會導致綜合後的資源嚴重浪費。
三.同步設計原則
同步電路和非同步電路是FPGA設計的兩種基本電路結構形式。
非同步電路的最大缺點是會產生毛刺。同步設計的核心電路是由各種觸發器構成的。這類電路的任何輸出都是在某個時鐘的邊沿驅動觸發器產生的。所以,同步設計可以很好地避免毛刺的產生。
-
C語言程式基礎練習題帶答案
C語言傳遞引數均是以值傳遞(passbyvalue),另外也可以傳遞指標(apointerpassedbyvalue)。下面是小編為大家搜尋整理的C語言專項訓練題,希望能給大家帶來幫助!更多精彩內容請及時關注我們應屆畢業生考試網!單選題1).下列關於識別符號的說法中錯誤的是A.合法的識別符號...
-
C語言在螢幕中顯示內容
C語言你瞭解多少呢?你知道C語言在螢幕中顯示內容是什麼樣的嗎?歡迎大家閱讀!更多相關資訊請關注相關欄目!我們有兩種方式從計算機獲得資訊:一是看螢幕上的文字、圖片、視訊等,二是聽從喇叭發出來的聲音。讓喇叭發出聲音目前還比較麻煩,我們先來看看如何在螢幕上顯示一...
-
C語言基礎迴圈結構
引導語:迴圈結構可以減少源程式重複書寫的工作量,用來描述重複執行某段演算法的問題,這是程式設計中最能發揮計算機特長的程式結構。以下是本站小編分享給大家的C語言迴圈結構,歡迎閱讀學習!1.1for迴圈結構迴圈語句的一般表示式是:for(表示式1;表示式2;表示式3)語句2....
-
C語言猴子吃桃問題
猴子第一天摘了若干個桃子,當即吃了一半,還不解饞,又多吃了一個;第二天,吃剩下的桃子的一半,還不過癮,又多吃了一個;以後每天都吃前一天剩下的一半多一個,到第10天想再吃時,只剩下一個桃子了。問第一天共摘了多少個桃子?分析:1)設x1為前一天桃子數,設x2為第二天桃子數,則:x...