一、面積與速度的平衡互換原則
這里的面積指的是 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 設計的兩種基本電路結構形式。
異步電路的最大缺點是會產生毛刺。同步設計的核心電路是由各種觸發器構成的。這類電路的任何輸出都是在某個時鐘的邊沿驅動觸發器產生的。所以,同步設計可以很好地避免毛刺的產生。
審核編輯黃宇
-
FPGA
+關注
關注
1630文章
21759瀏覽量
604291 -
芯片
+關注
關注
456文章
50950瀏覽量
424729 -
電路
+關注
關注
172文章
5936瀏覽量
172481 -
同步
+關注
關注
0文章
89瀏覽量
19198
發布評論請先 登錄
相關推薦
評論