數(shù)字電路設(shè)計之需要注意的幾個點
這是一個在邏輯設(shè)計中注意事項列表,由此引起的錯誤常使得設(shè)計不可靠或速度較慢,為了提高設(shè)計性能和提高速度的可靠性,必須確定設(shè)計通過所有的這些檢查。
可靠性
1. 為時鐘信號選用全局時鐘緩沖器BUFG!
不選用全局時鐘緩沖器的時鐘將會引入偏差。
2. 只用一個時鐘沿來寄存數(shù)據(jù)
使用時鐘的兩個沿是不可靠的,因為時鐘的某沿或者兩個沿會漂移。如果時鐘有漂移而且你只使用了時鐘的一個沿,你就降低了時鐘邊沿漂移的風(fēng)險。這個問題可以這樣來解決:就是允許CLKDLL自動糾正時鐘的占空比,以達(dá)百分之五十的占空比。否則強烈建議只使用一個時鐘沿。
3. 除了用CLKDLL或DCM產(chǎn)生的時鐘外不要在內(nèi)部產(chǎn)生時鐘
這包括產(chǎn)生門控時鐘和分頻時鐘。作為替代,可以建立時鐘使能或使用CLKDLL或DCM來產(chǎn)生不同的時鐘信號。對于一個純同步設(shè)計,建議在任何可能的情況下只使用一個時鐘。
4. 不要在內(nèi)部產(chǎn)生異步的控制信號(例如復(fù)位信號或者置位信號)
內(nèi)部產(chǎn)生的異步控制信號會產(chǎn)生毛刺,作為替代,可以產(chǎn)生一個同步的復(fù)位/置位信號。要比需要作用的時刻提前一個時鐘周期進(jìn)行這個異步信號的同步。
5. 不要使用沒有相位關(guān)系的多個時鐘
也許并不總能避免這個條件,在這些情況下確定已使用了適當(dāng)?shù)耐诫娐穪砜缭綍r鐘域,并已適當(dāng)?shù)丶s束了跨越時鐘域的路徑。
6. 不要使用內(nèi)部鎖存器
內(nèi)部鎖存器會混淆時序,而且常常會引入另外的時鐘信號。內(nèi)部鎖存器在透明門打開時可以被看成是組合邏輯,但在門被鎖存時可以被看成是同步元件,這將會混淆時序分析。內(nèi)部鎖存器常常會引入門控時鐘,門控時鐘會產(chǎn)生毛刺使得設(shè)計變得不可靠。
性能
1. 邏輯級的時延不要超過時序預(yù)算的百分之五十
每個路徑邏輯級時延可以在邏輯級時序報告或布局后時序報告中找到,詳細(xì)分析了每個路徑之后,時序分析器將生成每個路徑時延的統(tǒng)計量,檢查一下總共的邏輯級時延,確保不超過時序預(yù)算的百分之五十。
2. IOB 寄存器
IOB寄存器提供了最快的時鐘到輸出和輸入到時鐘的時延。首先,有一些限制。
對于輸入寄存器在從管腳到寄存器間不能有組合邏輯存在。對于輸出寄存器,在寄存器和管腳之間也不能有組合邏輯存在。對于三態(tài)輸出,在IOB中的所有的寄存器必須使用同一個時鐘信號和復(fù)位信號,而且IOB三態(tài)寄存器必須低電平有效才能放到IOB中(三態(tài)緩沖器低電平有效,所以在寄存器和三態(tài)緩沖器之間不需要一個反相器)。
必須使軟件能夠選用IOB寄存器,可以設(shè)置全局實現(xiàn)選項:為輸入、輸出或輸入輸出選擇IOB寄存器。缺省值為關(guān) off。
你也可在綜合工具或在用戶約束文件UCF中設(shè)定,使得能夠使用IOB寄存器。句法為: INST IOB = TRUE;
3. 對于關(guān)鍵的輸出選擇快速轉(zhuǎn)換速率
可以為LVCMOS和LVTTL電平選擇轉(zhuǎn)換速率,快速的轉(zhuǎn)換速率會降低輸出時延,但會增加地彈,所以必須在仔細(xì)考慮的基礎(chǔ)之上選擇快速轉(zhuǎn)換速率。
4. 流水邏輯
如果你的設(shè)計允許增加延遲,對組合邏輯采用流水操作可以提高性能。在Xilinx的FPGA中有大量的寄存器,對每一個四輸入LUT有一個對應(yīng)的寄存器,在犧牲延遲的情況下,利用這些寄存器可以增加數(shù)據(jù)吞吐量。
5. 為四輸入的LUT結(jié)構(gòu)進(jìn)行代碼優(yōu)化
記住每一個查找表可以建立一個四輸入的組合邏輯函數(shù)。如果需要更大的功能,可根據(jù)“四輸入組合邏輯”這個特性,分析、優(yōu)化實現(xiàn)該功能所需的查找表的數(shù)目。
6. 使用Case語句而不是if-then-else語句
復(fù)雜的if-then-else語句通常會生成優(yōu)先級譯碼邏輯,這將會增加這些路徑上的組合時延(現(xiàn)在大部分綜合工具,可以把if-else的優(yōu)先級邏輯層次打平)。用來產(chǎn)生復(fù)雜邏輯的Case語句通常會生成不會有太多時延的并行邏輯。對于Verilog,可以使用約束parallel_case。
7. 多用Xilinx自帶Core generate
Core generate針對 Xilinx的結(jié)構(gòu)進(jìn)行了優(yōu)化,許多塊都可以允許用戶配置,包括大小、寬度和流水延遲。查看設(shè)計中的關(guān)鍵路徑,是否可以在核生成器中產(chǎn)生一個核來提高關(guān)鍵路徑性能。避免由代碼來推斷,又麻煩,又不可靠。
8. FSM的設(shè)計限制在一個層次中
為了允許綜合工具完全優(yōu)化FSM,它必須在它自己的塊中優(yōu)化。如果不是這樣的話,這將使得綜合工具將FSM邏輯和它周圍的邏輯一起優(yōu)化。FSM不能包括任何的算術(shù)邏輯、數(shù)據(jù)通路邏輯或者其它與狀態(tài)機不相關(guān)的組合邏輯。
9. 使用兩個進(jìn)程或always塊的有限狀態(tài)機
下一個狀態(tài)和輸出譯碼邏輯必須放在獨立的進(jìn)程或always塊中,這將不允許綜合工具在輸出和下一個狀態(tài)譯碼邏輯之間共享資源。便于代碼維護(hù)。
10. 使用一位有效編碼(one-hot、gray)FSM
一位有效編碼通常會在富含寄存器的FPGA中提供最高性能的狀態(tài)機。
11. 為每一個葉級(leaf-level)塊提供寄存輸出
葉級塊是可以推論的邏輯塊,而結(jié)構(gòu)級(structural-level)的塊僅例化較底層的塊,這樣就建立了層次。如果葉級塊是寄存輸出,則可使綜合工具保留層次。這可使分析這些代碼的靜態(tài)時序變得比較容易。對module與module之間的邊界信號(用時鐘同步)進(jìn)行寄存輸出,可以使得各個塊之間有確定的同步時序關(guān)系。
12. 不同的計數(shù)器風(fēng)格
二進(jìn)制計數(shù)器是非常慢的。如果二進(jìn)制計數(shù)器是關(guān)鍵路徑,可以考慮使用不同風(fēng)格的計數(shù)器LFSR、Pre-scalar或Johnson。
13. 設(shè)計必須被層次化的分成不同的功能塊
首先是較頂層的功能塊,然后是較底層的塊,也應(yīng)該包括特定技術(shù)的塊。設(shè)計層次化使得設(shè)計更可讀、更易調(diào)試、更易復(fù)用。
14. 高扇出網(wǎng)絡(luò)需要復(fù)制寄存器
可以通過XST或者synplify pro等綜合工具的綜合選項來進(jìn)行控制。
15. 利用四種全局約束來對設(shè)計進(jìn)行全局的約束
周期(對每個時鐘),輸入偏移、輸出偏移、管腳到管腳的時間。也許會有針對多周期路徑、失敗路徑和關(guān)鍵路徑的其它約束,但是必須從這四個全局約束開始。
關(guān)鍵詞: 數(shù)字電路
您可能也感興趣:
今日熱點
為您推薦
保險業(yè)去年原保費收入微降0.79% 健康險業(yè)務(wù)增長3.36%
銀保監(jiān)會:嚴(yán)防銀行保險資金被用于盲目“加杠桿”,強化金融反壟斷
保險打工人年終獎多數(shù)和上年持平或下降,怎樣發(fā)才合理?
更多
- 長三角區(qū)域協(xié)同創(chuàng)新指數(shù)年均增速達(dá)9.54% 成果共用指標(biāo)增幅最大
- 大興機場臨空區(qū)設(shè)立國際創(chuàng)新中心 助力外資企業(yè)順利“走進(jìn)來”
- 湖南發(fā)布“創(chuàng)新十條” 幫助企業(yè)紓困增效、激發(fā)創(chuàng)新活力
- 科技部和浙江發(fā)布《創(chuàng)新行動方案》 構(gòu)建高標(biāo)準(zhǔn)技術(shù)要素市場...
- 蕪湖釋放創(chuàng)新“N次方”效應(yīng) 數(shù)字賦能驅(qū)動產(chǎn)業(yè)升級
- 重慶:激發(fā)人才創(chuàng)新活力,到2025年創(chuàng)新要素活躍度顯著增強
- 西寧加快知識產(chǎn)權(quán)強市建設(shè)步伐 去年兌現(xiàn)資助資金200萬元
- 無錫錫山區(qū)全面啟動實施“雙招雙引” 引進(jìn)高端創(chuàng)新資源
排行
最近更新
- 數(shù)字電路設(shè)計之需要注意的幾個點
- 變壓器常見參數(shù)總匯
- 功率放大電路用途詳解
- 變壓器工作原理
- “收心”指南 讓身心和春天一同“復(fù)蘇”
- 派盾:Meter.io跨鏈橋遭遇黑客攻擊,損失約430萬美元
- 小酌怡情?酒精就是這樣讓人衰老的
- 缺牙增加癡呆風(fēng)險?是真的
- 沒事多照照鏡子幫你減肥
- 不是所有糖友 都適合運動
- 國家衛(wèi)健委:2月5日新增新冠肺炎確診病例43例 其中本土病例13例
- 哪些是人民幣貶值受益龍頭股?2021人民幣貶值受益龍頭股一覽
- 農(nóng)林牧漁概念股龍頭有哪些,農(nóng)林牧漁板塊股票一覽
- 水泥板塊龍頭股票有哪些?水泥股票一覽
- 石墨烯相關(guān)上市公司有哪些?石墨烯上市公司龍頭一覽
- 11月5日新股申購指南:恒光股份申購代碼301118 發(fā)行價格22.70元/股
- 蓄電池容量的計算方法
- 如何識別串聯(lián)電路和并聯(lián)電路
- IP協(xié)議是什么
- 最全面的二極管知識解讀
- 一文了解康寧大猩猩玻璃的前世今生
- 委內(nèi)瑞拉政府批準(zhǔn)對加密貨幣和外幣交易征收新的稅收
- MetaMask以太坊連接默認(rèn)提供商Infura宕機
- 智能手表概念股票有哪些?智能手表受益股一覽表2020
- 稀土行業(yè)股票有哪些?稀土概念股一覽
- 錸礦上市公司有哪些?錸礦概念股一覽表
- 光伏產(chǎn)業(yè)股票有哪些股?(2021/11/15)
- 2019春節(jié)股市休市安排 春節(jié)股市放假幾天?什么時候開市
- 比重計原理
- 軟磁材料基礎(chǔ)知識連載(一)