加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
    • RTL級(jí)設(shè)計(jì)的基本要素和步驟是什么
    • 常用的復(fù)位方式有哪些
    • 為什么推薦使用異步復(fù)位同步釋放
    • 什么是RTL建模
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

筆記 | RTL概念和RTL建模

2023/02/28
2587
閱讀需 9 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

邏輯綜合的含義是什么?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

什么是RTL建模

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

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

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

 

相關(guān)推薦

電子產(chǎn)業(yè)圖譜

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

微信公眾號(hào)