時間:2020-09-07 16:29:23 來源:信盈達 作者:信盈達
1. 面積與速度的平衡與互換
這里的面積指一個設計消耗FPGA/CPLD的邏輯資源的數量,對于FPGA可以用消耗的FF(觸發器)和LUT(查找表)來衡量,更一般的衡量方式可以用設計所占的等價邏輯
速度指設計在芯片上穩定運行所能達到的最高頻率,這個頻率由設計的時序狀況來決定,以及設計滿足的時鐘要求:PAD to PAD time 、Clock Setup Time、Clock Hold Time、Clock-to-Output Delay等眾多時序特征量密切相關。
面積和速度這兩個指標貫穿FPGA/CPLD設計的時鐘,是設計質量的評價的終極標準 —— 面積和速度是一對對立統一的矛盾體。
要求一個同時具備設計面積最小、運行頻率最高是不現實的。更科學的設計目標應該是在滿足設計時序要求(包括對設計頻率的要求)的前提下,占用最小的芯片面積。或者在所規定的面積下,是設計的時序余量更大、頻率跑的更高。這兩種目標充分體現了面積和速度的平衡的思想。
2. 硬件原則
硬件原則主要針對HDL代碼編寫而言:Verilog是采用了C語言形式的硬件的抽象,它的本質作用在于描述硬件,它的最終實現結果是芯片內部的實際電路。所以評判一段HDL代碼的優劣的最終標準是:其描述并實現的硬件電路的性能,包括面積和速度兩個方面。
初學者片面追求代碼的整潔、簡短,是錯誤的,是與HDL的標準背道而馳的。正確的編碼方法,首先要做到對所需實現的硬件電路胸有成竹,對該部分的硬件的結構和連接十分清晰,然后再用適當的HDL語句表達出來即可。
3. 系統原則
系統原則包含兩個層次的含義:更高層面上看,是一個硬件系統,一塊單板如何進行模塊花費和任務分配,什么樣的算法和功能適合放在FPGA里面實現,什么樣的算法和功能適合放在DSP/CPU里面實現,以及FPGA的規模估算數據接口設計等。具體到FPGA設計就要對設計的全局有個宏觀上的合理安排,比如時鐘域、模塊復用、約束、面積、速度等問題,在系統上模塊的優化最為重要。
比如FPGA一般觸發器資源豐富,CPLD的組合邏輯資源更加豐富。FPGA/CPLD一般是由底層可編程硬件單元、BRAM、布線資源、可配置IO單元、時鐘資源等構成。
一般的FPGA系統規劃的簡化流程
4. 同步設計原則
異步電路的邏輯核心是用組合邏輯電路實現,比如異步的FIFO/RAM讀寫信號,地址譯碼等電路。電路的主要信號、輸出信號等并不依賴于任何一個時鐘性信號,不是由時鐘信號驅動FF產生的。異步時序電路的最大缺點是容易產生毛刺,在布局布線后仿真和用邏輯分析儀觀測實際信號時,這種毛刺尤其明顯。
同步時序電路的核心邏輯用各種各樣的觸發器實現,電路的主要信號、輸出信號都是由某個時鐘沿驅動觸發器產生出來的。同步時序電路可以很好的避免毛刺,布局布線后仿真,和用邏輯分析儀采樣實際工作信號都沒有毛刺。
5. 乒乓操作
“ 乒乓操作 ” 是一個常常應用于數據流控制的處理技巧,
6. 串并轉換設計技巧
串并轉換是 FPGA 設計的一個重要技巧,它是數據流處理的常用手段,也是面積與速度互換思想的直接體現。串并轉換的實現方法多種多樣,根據數據的排序和數量的要求,可以選用寄存器、 RAM 等實現。
7. 流水線操作設計思想
首先需要聲明的是,這里所講述的流水線是指一種處理流程和順序操作的設計思想,并非 FPGA 、 ASIC 設計中優化時序所用的 “Pipelining” 。
流水線處理是高速設計中的一個常用設計手段。如果某個設計的處理流程分為若干步驟,而且整個數據處理是 “ 單流向 ” 的,即沒有反饋或者迭代運算,前一個步驟的輸出是下一個步驟的輸入,則可以考慮采用流水線設計方法來提高系統的工作頻率。
8. 數據接口的同步方法
數據接口的同步是 FPGA/CPLD 設計的一個常見問題,也是一個重點和難點,很多設計不穩定都是源于數據接口的同步有問題。在電路圖設計階段,一些工程師手工加入 BUFT 或者非門調整數據延遲,從而保證本級模塊的時鐘對上級模塊數據的建立、保持時間要求。
還有一些工程師為了有穩定的采樣,生成了很多相差 90 度的時鐘信號,時而用正沿打一下數據,時而用負沿打一下數據,用以調整數據的采樣位置。這兩種做法都十分不可取,因為一旦芯片更新換代或者移植到其它芯片 組的芯片上,采樣實現必須重新設計。而且,這兩種做法造成電路實現的余量不夠,一旦外界條件變換 ( 比如溫度升高 ) ,采樣時序就有可能完全紊亂,造成電路癱瘓。
想轉行互聯網,卻又不知道如何選擇,一直很迷茫、躊躇,現在不必再擔憂,26門熱門互聯網技術免費試聽5天,你可以先試聽,再決定!
前往信盈達官網,咨詢課程、學習、就業、薪資等相關問題。
免費領取試聽卡
申請已經提交
老師會馬上給您安排試聽課程!
申請出錯了
您可以加老師QQ:914865590報名咨詢!