• 正文
    • RTL級設(shè)計的基本要素和步驟是什么
    • 常用的復(fù)位方式有哪些
    • 為什么推薦使用異步復(fù)位同步釋放
    • 什么是RTL建模
  • 相關(guān)推薦
申請入駐 產(chǎn)業(yè)圖譜

筆記 | RTL概念和RTL建模

2023/02/28
2082
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

邏輯綜合的含義是什么?

綜合(Logic Synthesize)是指將HDL語言、原理圖等設(shè)計輸入翻譯成由與、或、非門等基本邏輯單元組成的門級連接(網(wǎng)表),并根據(jù)設(shè)計目標與要求(約束條件)優(yōu)化所生成的邏輯連接,輸出門級網(wǎng)表文件。RTL級綜合指將RTL級源代碼翻譯并優(yōu)化為門級網(wǎng)表。

RTL級設(shè)計的基本要素和步驟是什么

時鐘域描述:描述所使用的所有時鐘,時鐘之間的主從與派生關(guān)系,時鐘域之間的轉(zhuǎn)換。

時序邏輯描述(寄存器描述):根據(jù)時鐘沿的變換,描述寄存器之間的數(shù)據(jù)傳輸方式。

組合邏輯描述:描述電平敏感信號的邏輯組合方式與邏輯功能。?書中推薦的設(shè)計步驟。

功能定義與模塊劃分:根據(jù)系統(tǒng)功能的定義和模塊劃分準則劃分各個功能模塊。

定義所有模塊的接口:首先清晰定義每個模塊的接口,完成每個模塊的信號列表,這種思路與Modular Design(模塊化設(shè)計方法)一致,利于模塊重用、調(diào)試、修改。

設(shè)計時鐘域:根據(jù)設(shè)計的時鐘復(fù)雜程度定義時鐘之間的派生關(guān)系,分析設(shè)計中有哪些時鐘域,是否存在異步時鐘域之間的數(shù)據(jù)交換;對于PLD器件設(shè)計,還需要確認全局時鐘是否使用PLL/DLL完成時鐘的分頻、倍頻、移相等功能,哪些時鐘使用全局時鐘資源布線,哪些時鐘使用第二全局時鐘資源布線;全局時鐘的特點是:幾乎沒有Clock Skew(時鐘傾斜),有一定的Clock Delay(時鐘延遲),驅(qū)動能力最強;第二全局時鐘的特點是:有較小的Clock Shew,較小的Clock Delay,時鐘驅(qū)動能力較強。

考慮設(shè)計的關(guān)鍵路徑:關(guān)鍵路徑是指設(shè)計中時序要求最難以滿足的路徑,設(shè)計的時序要求主要體現(xiàn)在頻率、建立時間、保持時間等時序指標上,;在設(shè)計初期,設(shè)計者可以根據(jù)系統(tǒng)的頻率要求,粗略的分析出設(shè)計的時序難點(如最高頻率路徑、計數(shù)器的最低位、包含復(fù)雜組合邏輯的時序路徑等),通過一些時序優(yōu)化手段(如Pipeline、Retiming、邏輯復(fù)制等)從代碼上緩解設(shè)計的時序壓力,這種方法比依靠綜合與布線工具的自動優(yōu)化有效的多。

頂層設(shè)計:RTL設(shè)計推薦使用自頂而下的設(shè)計方法,因為這種設(shè)計方法與模塊規(guī)劃的順序一致,而且更有利于進行Modular Design,可以并行開展設(shè)計工作,提高模塊復(fù)用率。

FSM設(shè)計:FSM是邏輯設(shè)計最重要的內(nèi)容之一。

時序邏輯設(shè)計:首先根據(jù)時鐘域規(guī)劃好寄存器組,然后描述各個寄存器組之間的數(shù)據(jù)傳輸方式。

組合邏輯設(shè)計:一般來說,大段的組合邏輯最好與時序邏輯分開描述,這樣更有利于時序約束和時序分析,使綜合器和布局布線器達到更好的優(yōu)化效果。

常用的復(fù)位方式有哪些

同步復(fù)位:當時鐘上升沿檢測到復(fù)位信號,執(zhí)行復(fù)位操作(有效的時鐘沿是前提)。always @ ( posedge clk )。優(yōu)點:有利于仿真器的仿真;可以使所設(shè)計的系統(tǒng)成為 100%?的同步時序電路,有利于時序分析,而且可綜合出較高的 Fmax;由于只在時鐘有效電平到來時才有效,所以可以濾除高于時鐘頻率的復(fù)位毛刺。缺點:復(fù)位信號的有效時長必須大于時鐘周期,才能真正被系統(tǒng)識別并完成復(fù)位任務(wù)。同時還要考慮諸如 clk skew 、組合邏輯路徑延時?、復(fù)位延時等因素(所以復(fù)位信號有時需要脈沖展寬,用以保證時鐘有效期間有足夠的復(fù)位寬度);由于大多數(shù)的邏輯器件的目標庫內(nèi)的 DFF 都只有異步復(fù)位端口,所以,倘若采用同步復(fù)位的話,綜合器就會在寄存器的數(shù)據(jù)輸入端口插入組合邏輯,這樣就會一方面額外增加FPGA內(nèi)部的邏輯資源,另一方面也增加了相應(yīng)的組合邏輯門時延。

異步復(fù)位它是指無論時鐘沿是否到來,只要復(fù)位信號有效,就對系統(tǒng)進行復(fù)位。always @ ( posedge clk or negedge rst_n );優(yōu)點:大多數(shù)目標器件庫的 DFF 都有異步復(fù)位端口,那么該觸發(fā)器的復(fù)位端口就不需要額外的組合邏輯,這樣就可以節(jié)省資源;設(shè)計相對簡單;異步復(fù)位信號識別方便(電路在任何情況下都能復(fù)位而不管是否有時鐘出現(xiàn))。缺點:最大的問題在于它屬于異步邏輯,問題出現(xiàn)在復(fù)位釋放時,而不是有效時,如果復(fù)位釋放接近時鐘有效沿,則觸發(fā)器的輸出可能進入亞穩(wěn)態(tài)(此時 clk 檢測到的 rst_n 的狀態(tài)就會是一個亞穩(wěn)態(tài),即是0是1是不確定的),從而導(dǎo)致復(fù)位失敗??赡芤驗樵肼暬蛘呙淘斐商摷購?fù)位信號(比如以前的游戲機玩到一半突然復(fù)位)(注意:時鐘端口、清零和置位端口對毛刺信號十分敏感,任何一點毛刺都可能會使系統(tǒng)出錯,因此判斷邏輯電路中是否存在冒險以及如何避免冒險是設(shè)計人員必須要考慮的問題);靜態(tài)時序分析比較困難。對于 DFT設(shè)計,如果復(fù)位信號不是直接來自于 I/O 引腳,在 DFT 掃描和測試時,復(fù)位信號必須被禁止,因此需要額外的同步電路。

為什么推薦使用異步復(fù)位同步釋放

推薦的復(fù)位電路設(shè)計方式是異步復(fù)位,同步釋放。同步釋放的意思就是在正式進入func模式時在寄存器前面多打一拍,這樣可以規(guī)避亞穩(wěn)態(tài)風險。異步復(fù)位就是復(fù)位信號可以直接不受時鐘信號影響,在任意時刻只要是低電平就能復(fù)位,即復(fù)位信號不需要和時鐘同步。同步釋放讓復(fù)位信號取消的時候,必須跟時鐘信號同步,即剛好跟時鐘同沿。

復(fù)位的主要目的是使芯片電路進入一個已知的,確定的狀態(tài)。主要是觸發(fā)器進入確定的狀態(tài)。在一般情況下,芯片中的每個觸發(fā)器都應(yīng)該是可復(fù)位的。

recovery time即恢復(fù)時間,撤銷復(fù)位時,恢復(fù)到非復(fù)位狀態(tài)的電平必須在時鐘有效沿來臨之前的一段時間到來,才能保證時鐘能有效恢復(fù)到非復(fù)位狀態(tài),此段時間為recovery time。類似于同步時鐘的setup time。這個針對是本周期的RD的“恢復(fù)到非復(fù)位狀態(tài)的電平”。

什么是RTL建模

此級別的建模使用編程語句和運算符表示數(shù)字功能。RTL模型是功能模型,不包含有關(guān)如何在硅中實現(xiàn)該功能的詳細信息。由于這種抽象,復(fù)雜的數(shù)字功能可以比在詳細的門級更快速、更簡潔地建模。RTL模型的仿真速度也大大快于門級和開關(guān)級模型,這使得驗證更大、更復(fù)雜的設(shè)計成為可能。

例如二選一選擇器的RTL模型:

對應(yīng)的門級電路是:

 

相關(guān)推薦

登錄即可解鎖
  • 海量技術(shù)文章
  • 設(shè)計資源下載
  • 產(chǎn)業(yè)鏈客戶資源
  • 寫文章/發(fā)需求
立即登錄

前華為海思工程師;與非網(wǎng)2022年度影響力創(chuàng)作者;IC技術(shù)圈成員。

微信公眾號