數字電路設計之需要注意的幾個點

2020-12-14 電子產品世界

  這是一個在邏輯設計中注意事項列表,由此引起的錯誤常使得設計不可靠或速度較慢,為了提高設計性能和提高速度的可靠性,必須確定設計通過所有的這些檢查。

本文引用地址:http://www.eepw.com.cn/article/201711/371640.htm

  可靠性

  1. 為時鐘信號選用全局時鐘緩衝器BUFG!

  不選用全局時鐘緩衝器的時鐘將會引入偏差。

  2. 只用一個時鐘沿來寄存數據

  使用時鐘的兩個沿是不可靠的,因為時鐘的某沿或者兩個沿會漂移。如果時鐘有漂移而且你只使用了時鐘的一個沿,你就降低了時鐘邊沿漂移的風險。這個問題可以這樣來解決:就是允許CLKDLL自動糾正時鐘的佔空比,以達百分之五十的佔空比。否則強烈建議只使用一個時鐘沿。

  3. 除了用CLKDLL或DCM產生的時鐘外不要在內部產生時鐘

  這包括產生門控時鐘和分頻時鐘。作為替代,可以建立時鐘使能或使用CLKDLL或DCM來產生不同的時鐘信號。對於一個純同步設計,建議在任何可能的情況下只使用一個時鐘。

  4. 不要在內部產生異步的控制信號(例如復位信號或者置位信號)

  內部產生的異步控制信號會產生毛刺,作為替代,可以產生一個同步的復位/置位信號。要比需要作用的時刻提前一個時鐘周期進行這個異步信號的同步。

  5. 不要使用沒有相位關係的多個時鐘

  也許並不總能避免這個條件,在這些情況下確定已使用了適當的同步電路來跨越時鐘域,並已適當地約束了跨越時鐘域的路徑。

  6. 不要使用內部鎖存器

  內部鎖存器會混淆時序,而且常常會引入另外的時鐘信號。內部鎖存器在透明門打開時可以被看成是組合邏輯,但在門被鎖存時可以被看成是同步元件,這將會混淆時序分析。內部鎖存器常常會引入門控時鐘,門控時鐘會產生毛刺使得設計變得不可靠。

  性能

  1. 邏輯級的時延不要超過時序預算的百分之五十

  每個路徑邏輯級時延可以在邏輯級時序報告或布局後時序報告中找到,詳細分析了每個路徑之後,時序分析器將生成每個路徑時延的統計量,檢查一下總共的邏輯級時延,確保不超過時序預算的百分之五十。

  2. IOB 寄存器

  IOB寄存器提供了最快的時鐘到輸出和輸入到時鐘的時延。首先,有一些限制。

  對於輸入寄存器在從管腳到寄存器間不能有組合邏輯存在。對於輸出寄存器,在寄存器和管腳之間也不能有組合邏輯存在。對於三態輸出,在IOB中的所有的寄存器必須使用同一個時鐘信號和復位信號,而且IOB三態寄存器必須低電平有效才能放到IOB中(三態緩衝器低電平有效,所以在寄存器和三態緩衝器之間不需要一個反相器)。

  必須使軟體能夠選用IOB寄存器,可以設置全局實現選項:為輸入、輸出或輸入輸出選擇IOB寄存器。預設值為關 off。

  你也可在綜合工具或在用戶約束文件UCF中設定,使得能夠使用IOB寄存器。句法為: INST IOB = 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自帶Core generate

  Core generate針對 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或者synplify pro等綜合工具的綜合選項來進行控制。

  15. 利用四種全局約束來對設計進行全局的約束

  周期(對每個時鐘),輸入偏移、輸出偏移、管腳到管腳的時間。也許會有針對多周期路徑、失敗路徑和關鍵路徑的其它約束,但是必須從這四個全局約束開始。

相關焦點

  • 數字電路之數字集成電路IC
    在上一期《數字電路之如雷貫耳的「邏輯電路」》中我們了解了基本的邏輯電路,本期將講解數字IC的基礎和組合電路。本文引用地址:http://www.eepw.com.cn/article/201710/368897.htm  什麼是數字集成電路IC?
  • 數字鐘實驗電路的設計與仿真
    摘要:基於Multisim 10軟體對數字鐘電路進行設計和仿真。採用555定時器產生秒時鐘信號,用時鐘信號驅動計數電路進行計數,將計數結果進行解碼,最終在LED數碼管上以數字的形式顯示時、分、秒時間。
  • 數字時鐘設計電路圖匯總(七款數字時鐘電路圖)
    打開APP 數字時鐘設計電路圖匯總(七款數字時鐘電路圖) 發表於 2018-01-26 11:14:30 其中復位電路具有上電自動復位,和手動復位功能。由P2控制三極體驅動數碼管,P0口做數據輸出口。   數字時鐘設計電路圖(二)   校「時」和校「分」的校準電路是相同的,現以校「分」電路來說明時間的校準。
  • 數字電路之如雷貫耳的「邏輯電路」
    比方說模擬和數字就相當於實數與整數的關係。實數可以表示直線上的每一個點,就象是模擬,而整數只能表示直線上的特定點,就象是數字。 於是,我們把處理連續信息的 —— 模擬信號的電路稱作"模擬電路",把處理離散信息 —— 數位訊號的電路稱作"數字電路"。
  • Verilog RTL數字電路設計
    Verilog語言從C語言中繼承了多種操作符和結構,與C語言相比最大的特點是並行性 ,主要用於從算法級、RTL級、門級、開關級四個層面對數字系統進行建模。什麼是硬體描述語言?顧名思義就是描述硬體的語言,它用文本的形式來描述電子系統硬體結構和行為,是一種用形式化方法來描述數字電路和系統的語言。
  • 數字電路的特點是什麼
    用數位訊號完成對數字量進行算術運算和邏輯運算的電路稱為數字電路,或數字系統。由於它具有邏輯運算和邏輯處理功能,所以又稱數字邏輯電路。現代的數字電路由半導體工藝製成的若干數字集成器件構造而成。邏輯門是數字邏輯電路的基本單元。存儲器是用來存儲二進位數據的數字電路。從整體上看,數字電路可以分為組合邏輯電路和時序邏輯電路兩大類。
  • 學習模擬電路設計應該注意的12個問題
    模擬電路的設計是工程師們最頭疼、但也是最致命的設計部分!我們將模擬電路設計中應該注意的問題進行了總結,與大家共享。本文引用地址:http://www.eepw.com.cn/article/201606/293184.htm  (1)為了獲得具有良好穩定性的反饋電路,通常要求在反饋環外面使用一個小電阻或扼流圈給容性負載提供一個緩衝。  (2)積分反饋電路通常需要一個小電阻(約 560 歐)與每個大於 10pF 的積分電容串聯。
  • 數字電路中顯示解碼器的設計分析
    也就是說,無論顯示解碼器選用何種形式(文字、數字、符號)、何種方式(共陰極還是共陽極)的顯示器,也不論其顯示什麼樣的內容,只要它顯示結果的個數相同(這兩者都是要顯示4個數字),那麼所設計解碼器輸入變量就一樣,即輸出結果N=4,4=22=2n,所以輸入變量為n=2。
  • 數字電路中抑制EMI的方法介紹
    EMI的危害表現為降低傳輸信號質量,對電路或設備造成幹擾甚至破壞,使設備不能滿足電磁兼容標準所規定的技術指標要求。 為抑制EMI,數字電路的EMI設計應按下列原則進行: ●根據相關EMC/EMI技術規範,將指標分解到單板電路,分級控制。 ●從EMI的三要素即幹擾源、能量耦合途徑和敏感系統這三個方面來控制,使電路有平坦的頻響,保證電路正常、穩定工作。
  • 談談射頻電路設計及經驗
    RF電路設計的常見問題  1、數字電路模塊和模擬電路模塊之間的幹擾  如果模擬電路(射頻)和數字電路單獨工作,可能各自工作良好。但是,一旦將二者放在同一塊電路板上,使用同一個電源一起工作,整個系統很可能就不穩定。這主要是因為數位訊號頻繁地在地和正電源(>3 V)之間擺動,而且周期特別短,常常是納秒級的。
  • 模擬和數字電路原來還有這幾個區別
    電路的設計、維修、維護靈活方便,隨著集成電路技術的高速發展,數字邏輯電路的集成度越來越高,集成電路塊的功能隨著小規模集成電路(SSI)、中規模集成電路(MSI)、大規模集成電路(LSI)、超大規模集成電路(VLSI)的發展也從元件級、器件級、部件級、板卡級上升到系統級。電路的設計組成只需採用一些標準的集成電路塊單元連接而成。
  • pcb layout電路設計的方法及主要事項解析
    ,不但會設計數字電路,還要有能力搞定模擬電路和pcb layout等。現在我來說下在這種既含有數字電路和模擬電路的板子中的pcb layout必須注意的事項。 在這種具有AD電路的板子中,一般分為兩種情況: a、數字電路和低頻模擬電路(通常是聲音設計電路和射頻電路) b、數字電路和模擬電路中的高功率馬達電路和繼電器電路。
  • 基於Multisim的數字鐘實驗電路的設計與仿真
    在電子技術實驗教學中,構建學生的電路設計理念,提高學生的電路設計數字鐘電路的設計和仿真,涉及模擬電子技術、數字電子技術等多方面知識,能夠體現實驗者的理論功底和設計水平,是電子設計和仿真教學的典型案例。文中採用了555 定時器電路、計數電路、解碼電路、顯示電路和時鐘校正電路,來實現該電路。
  • RF電路和數字電路如何在同塊PCB上和諧相處
    因此,在包含RF(或其他模擬) 電路的PCB 板上的電源線布線必須比在普通數字電路板上布線更加仔細,應避免採用自動布線。同時也應注意到,微控制器(或其他數字電路) 會在每個內部時鐘周期內短時間突然吸入大部分電流,這是由於現代微控制器都採用CMOS 工藝設計。
  • 高速數字電路設計通關五部曲(五):時域串擾測量法
    開始之前,還是先去溫習下上節內容,串擾(戳下方題目連結即可跳轉):高速數字電路設計通關五部曲(四):串擾PCB設計師之所以關心串擾這一現象,是因為串擾可能造成以下性能方面的問題:>噪聲電平升高>有害尖峰毛刺>數據邊沿抖動>意外的信號反射
  • 電子人必備基礎知識:數字電路之組合邏輯電路
    作為電子人,關於數字電路的基礎知識是大家必須要掌握的,對學習PCB設計的電子人來說,同樣也是如此。今天,板兒妹主要來和大家介紹數字電路中的組合邏輯電路。關於組合邏輯電路用數位訊號完成對數字量進行算術運算和邏輯運算的電路稱為數字電路,或數字系統。由於它具有邏輯運算和邏輯處理功能,所以又稱數字邏輯電路。
  • 超實用70個問答的高頻PCB電路設計(一)
    21、電路板 DEBUG 應從那幾個方面著手?  就數字電路而言,首先先依序確定三件事情: 1. 確認所有電源值的大小均達到設計所需。有些多重電源的系統可能會要求某些電源之間起來的順序與快慢有某種規範。 2. 確認所有時鐘信號頻率都工作正常且信號邊緣上沒有非單調(non-monotonic)的問題。3. 確認 reset 信號是否達到規範要求。
  • 數字電路中顯示解碼器設計的分析與研究
    關鍵詞:解碼器;驅動器;顯示器設計;輸入變量;輸出變量 顯示解碼器是數字電子技術組合邏輯電路中一個很重要的器件,在數字電子技術應用中不可缺少,特別是在信息技術數位化的今天,其應用越來越廣泛,但在組織開展科技創新和電子設計製作競賽活動中,學生在設計製作搶答器、記分器、記時器等電子產品時,總是對如何準確設計出符合功能要求的顯示解碼器胸中無數
  • 數字溫度計應用電路原理圖
    而如果將熱電偶產生的熱電動勢轉換成數位訊號後由單片機進行數據處理,並通過液晶來顯示其溫度結果,這種方法反應迅速,測量精度高,功耗小,顯示直觀。因此,由熱電偶、A/D轉換電路、單片機和液晶模塊組成的數字式低功耗高精度溫度計可以代替各種機械式溫度計來完成特殊情況下的溫度測控工作,且便於實現小型化設計。
  • 從EMC角度考慮常用電路設計及PCB設計
    需要注意的是,如自行設計濾波電路,Y電容不可設計在輸入端,也不可雙端都加Y電容。 浪湧設計一般採用壓敏電阻。差模可根據電源輸入耐壓選取;共模需要電源輸入耐壓和產品耐壓測試綜合考慮。 當浪湧能量大時,也可考慮壓敏電阻(或TVS)與放電管組合設計。