數字電路設計之需要注意的幾個點
這是一個在邏輯設計中注意事項列表,由此引起的錯誤常使得設計不可靠或速度較慢,為了提高設計性能和提高速度的可靠性,必須確定設計通過所有的這些檢查。
可靠性
1.為時鐘信號選用全局時鐘緩沖器BUFG!
不選用全局時鐘緩沖器的時鐘將會引入偏差。
2.只用一個時鐘沿來寄存數據
使用時鐘的兩個沿是不可靠的,因為時鐘的某沿或者兩個沿會漂移。如果時鐘有漂移而且你只使用了時鐘的一個沿,你就降低了時鐘邊沿漂移的風險。這個問題可以這樣來解決:就是允許CLKDLL自動糾正時鐘的占空比,以達百分之五十的占空比。否則強烈建議只使用一個時鐘沿。
3.除了用CLKDLL或DCM產生的時鐘外不要在內部產生時鐘
這包括產生門控時鐘和分頻時鐘。作為替代,可以建立時鐘使能或使用CLKDLL或DCM來產生不同的時鐘信號。對于一個純同步設計,建議在任何可能的情況下只使用一個時鐘。
4.不要在內部產生異步的控制信號(例如復位信號或者置位信號)
內部產生的異步控制信號會產生毛刺,作為替代,可以產生一個同步的復位/置位信號。要比需要作用的時刻提前一個時鐘周期進行這個異步信號的同步。
5.不要使用沒有相位關系的多個時鐘
也許并不總能避免這個條件,在這些情況下確定已使用了適當的同步電路來跨越時鐘域,并已適當地約束了跨越時鐘域的路徑。
6.不要使用內部鎖存器
內部鎖存器會混淆時序,而且常常會引入另外的時鐘信號。內部鎖存器在透明門打開時可以被看成是組合邏輯,但在門被鎖存時可以被看成是同步元件,這將會混淆時序分析。內部鎖存器常常會引入門控時鐘,門控時鐘會產生毛刺使得設計變得不可靠。
性能
1.邏輯級的時延不要超過時序預算的百分之五十
每個路徑邏輯級時延可以在邏輯級時序報告或布局后時序報告中找到,詳細分析了每個路徑之后,時序分析器將生成每個路徑時延的統計量,檢查一下總共的邏輯級時延,確保不超過時序預算的百分之五十。
2.IOB寄存器
IOB寄存器提供了最快的時鐘到輸出和輸入到時鐘的時延。首先,有一些限制。
對于輸入寄存器在從管腳到寄存器間不能有組合邏輯存在。對于輸出寄存器,在寄存器和管腳之間也不能有組合邏輯存在。對于三態輸出,在IOB中的所有的寄存器必須使用同一個時鐘信號和復位信號,而且IOB三態寄存器必須低電平有效才能放到IOB中(三態緩沖器低電平有效,所以在寄存器和三態緩沖器之間不需要一個反相器)。
必須使軟件能夠選用IOB寄存器,可以設置全局實現選項:為輸入、輸出或輸入輸出選擇IOB寄存器。缺省值為關off。
你也可在綜合工具或在用戶約束文件UCF中設定,使得能夠使用IOB寄存器。句法為:INSTIOB=TRUE;
3.對于關鍵的輸出選擇快速轉換速率
可以為LVCMOS和LVTTL電平選擇轉換速率,快速的轉換速率會降低輸出時延,但會增加地彈,所以必須在仔細考慮的基礎之上選擇快速轉換速率。
4.流水邏輯
如果你的設計允許增加延遲,對組合邏輯采用流水操作可以提高性能。在Xilinx的FPGA中有大量的寄存器,對每一個四輸入LUT有一個對應的寄存器,在犧牲延遲的情況下,利用這些寄存器可以增加數據吞吐量。
5.為四輸入的LUT結構進行代碼優化
記住每一個查找表可以建立一個四輸入的組合邏輯函數。如果需要更大的功能,可根據“四輸入組合邏輯”這個特性,分析、優化實現該功能所需的查找表的數目。
6.使用Case語句而不是if-then-else語句
復雜的if-then-else語句通常會生成優先級譯碼邏輯,這將會增加這些路徑上的組合時延(現在大部分綜合工具,可以把if-else的優先級邏輯層次打平)。用來產生復雜邏輯的Case語句通常會生成不會有太多時延的并行邏輯。對于Verilog,可以使用約束parallel_case。
7.多用Xilinx自帶Coregenerate
Coregenerate針對Xilinx的結構進行了優化,許多塊都可以允許用戶配置,包括大小、寬度和流水延遲。查看設計中的關鍵路徑,是否可以在核生成器中產生一個核來提高關鍵路徑性能。避免由代碼來推斷,又麻煩,又不可靠。
8.FSM的設計限制在一個層次中
為了允許綜合工具完全優化FSM,它必須在它自己的塊中優化。如果不是這樣的話,這將使得綜合工具將FSM邏輯和它周圍的邏輯一起優化。FSM不能包括任何的算術邏輯、數據通路邏輯或者其它與狀態機不相關的組合邏輯。
9.使用兩個進程或always塊的有限狀態機
下一個狀態和輸出譯碼邏輯必須放在獨立的進程或always塊中,這將不允許綜合工具在輸出和下一個狀態譯碼邏輯之間共享資源。便于代碼維護。
10.使用一位有效編碼(one-hot、gray)FSM
一位有效編碼通常會在富含寄存器的FPGA中提供最高性能的狀態機。
11.為每一個葉級(leaf-level)塊提供寄存輸出
葉級塊是可以推論的邏輯塊,而結構級(structural-level)的塊僅例化較底層的塊,這樣就建立了層次。如果葉級塊是寄存輸出,則可使綜合工具保留層次。這可使分析這些代碼的靜態時序變得比較容易。對module與module之間的邊界信號(用時鐘同步)進行寄存輸出,可以使得各個塊之間有確定的同步時序關系。
12.不同的計數器風格
二進制計數器是非常慢的。如果二進制計數器是關鍵路徑,可以考慮使用不同風格的計數器LFSR、Pre-scalar或Johnson。
13.設計必須被層次化的分成不同的功能塊
首先是較頂層的功能塊,然后是較底層的塊,也應該包括特定技術的塊。設計層次化使得設計更可讀、更易調試、更易復用。
14.高扇出網絡需要復制寄存器
可以通過XST或者synplifypro等綜合工具的綜合選項來進行控制。
15.利用四種全局約束來對設計進行全局的約束
周期(對每個時鐘),輸入偏移、輸出偏移、管腳到管腳的時間。也許會有針對多周期路徑、失敗路徑和關鍵路徑的其它約束,但是必須從這四個全局約束開始。
關鍵詞: 數字電路
您可能也感興趣:
為您推薦
隔離險受不少年輕人推崇 不僅看理賠條款還要看免責條款
北京發布社保對賬單公告 4月起可查詢電子版個人繳費信息
廣東啟動車險市場專項整治行動 保護消費者合法權益
排行
最近更新
- 數字電路設計之需要注意的幾個點
- 多地爭創區域科技創新中心 增強城市核心競爭力
- 艾拉物聯對話熙悅科技王韋茜:搭建“更親善的老人養護網”
- 河北省鋼鐵去產能成果持續提升 主體裝備水平顯著提高
- 達州市達川區總工會開展春季消防安全知識培訓
- 系統性糾錯能力
- 打望“開往春天的列車”,請收下這份安全提醒
- 千萬不要得罪一個女內勤……
- 重慶城科副校長郭建禮一行到原秀科技、瀚荃電子科技參觀考察
- 走進盧氏看連翹——河南盧氏縣連翹產業帶動鄉村振興
- 我為群眾辦實事 | 危險!女子誤入隧道,摩巡隊員的這一波操...
- 自貿區芙蓉區塊民企人才職稱初任有了“綠色通道”
- 財聯社3月11日電,MSCI將俄羅斯證券從公司債券指數中剔除。
- 快救救美國國債流動性吧!華爾街在QE結束后拉響新警報
- 河北:顯著增加海洋科技投入 打造海洋經濟發展新格局
- 創新研發高通量芯片技術,JASMINER實現區塊鏈芯片大突破
- 武漢2月份新建住宅價格環比跌0.03% 二手住宅價格環比漲0.02%
- 倫敦金屬交易所:鎳期貨交易周五不會恢復 周二波動構成系統...
- 中國建筑前2月新簽合同總額同比增長1.5% 地產銷售額同比減少40.3%
- 上海2月份新建住宅價格環比上漲0.23% 樣本價格中位數42250元/m2
- 龍湖集團前2月權益合同銷售130.7億元 單月新增1地塊
- 國家衛健委:3月10日新增新冠肺炎確診病例555例 其中本土病例...
- 河北計劃推廣可復制的“時間銀行”模式 推動養老自愿服務常態化
- 天津將打好七大戰役 打造國際消費中心城市重要承載區
- 春季過敏性鼻炎高發 做好這五項預防可減少鼻炎發病率
- 進口奶粉品牌眾多,新晉寶媽給娃選了荷蘭奶粉美素佳兒
- 孫宇晨:高度重視合規 被FBI調查純屬造謠
- 中建土木西南公司開展三八國際勞動婦女節主題活動
- 打個噴嚏差地失明?高度近視的人要當心視網膜脫離
- 多家自主車企發布出海規劃和產品 新能源汽車備受青睞