一.麵積與(yu) 速度的平衡互換原則
這裏的麵積指的是FPGA的芯片資源,包括邏輯資源和I/O資源等;這裏的速度指的是FPGA工作的最高頻率(和DSP或者ARM不同,FPGA設計的工作頻率是不固定的,而是和設計本身的延遲緊密相連)。 在實際設計中,使用最小的麵積設計出最高的速度是每一個(ge) 開發者追求的目標,但是“魚和熊掌不可兼得”,取舍之間展示了一個(ge) 開發者的智慧。
1.速度換麵積
速度優(you) 勢可以換取麵積的節約。麵積越小,就意味著可以用更低的成本來實現產(chan) 品的功能。速度換麵積的原則在一些較複雜的算法設計中常常會(hui) 用到。在這些算法設計中,流水線設計常常是必須用到的技術。在流水線的設計中,這些被重複使用但是使用次數不同的模塊將會(hui) 占用大量的FPGA資源。對FPGA的設計技術進行改造,將被重複使用的算法模塊提煉出最小的複用單元,並利用這個(ge) 最小的高速代替原設計中被重複使用但次數不同的模塊。當然,在改造的過程中必然會(hui) 增加一些其他的資源來實現這個(ge) 代替的過程。但是隻要速度具有優(you) 勢,那麽(me) 增加的這部分邏輯依然能夠實現降低麵積提高速度的目的。
可以看到,速度換麵積的關(guan) 鍵是高速基本單元的複用。
2.麵積換速度
在這種方法中麵積的複製可以換取速度的提高。支持的速度越高,就意味著可以實現更高的產(chan) 品性能。一些注重產(chan) 品性能的應用領域可以采用並行處理技術,實現麵積換速度。
二.硬件可實現原則
FPGA設計通常會(hui) 使用HDL語言,比如Verilog HDL或者VHDL。當采用HDL語言來描述一個(ge) 硬件電路功能的時候,一定要確保代碼描述的電路是硬件可實現的。
Verilog HDL語言的語法與(yu) C語言很相似,但是它們(men) 之間有著本質的區別。C語言是基於(yu) 過程的高級語言,編譯後可以在CPU上運行。而Verilog HDL語言描述的本身就是硬件結構,編譯後是硬件電路。因此,有些語句在C語言的環境中應用是沒有問題的,但是在HDL語言環境下就會(hui) 導致結果不正確或者不理想。如:
for(i=0;i<16;i++)
DoSomething();
在C語言中運行沒有任何問題,但是在Verilog HDL的環境下編譯就會(hui) 導致綜合後的資源嚴(yan) 重浪費。
三. 同步設計原則
同步電路和異步電路是FPGA設計的兩(liang) 種基本電路結構形式。
異步電路的最大缺點是會(hui) 產(chan) 生毛刺。同步設計的核心電路是由各種觸發器構成的。這類電路的任何輸出都是在某個(ge) 時鍾的邊沿驅動觸發器產(chan) 生的。所以,同步設計可以很好地避免毛刺的產(chan) 生。
轉載請注明出處。







相關文章
熱門資訊
精彩導讀



















關注我們

