邏輯綜合的含義是什么?
綜合(Logic Synthesize)是指將HDL語言、原理圖等設(shè)計輸入翻譯成由與、或、非門等基本邏輯單元組成的門級連接(網(wǎng)表),并根據(jù)設(shè)計目標(biāo)與要求(約束條件)優(yōu)化所生成的邏輯連接,輸出門級網(wǎng)表文件。RTL級綜合指將RTL級源代碼翻譯并優(yōu)化為門級網(wǎng)表。
RTL級設(shè)計的基本要素和步驟是什么
時鐘域描述:描述所使用的所有時鐘,時鐘之間的主從與派生關(guān)系,時鐘域之間的轉(zhuǎn)換。
時序邏輯描述(寄存器描述):根據(jù)時鐘沿的變換,描述寄存器之間的數(shù)據(jù)傳輸方式。
組合邏輯描述:描述電平敏感信號的邏輯組合方式與邏輯功能。 書中推薦的設(shè)計步驟。
功能定義與模塊劃分:根據(jù)系統(tǒng)功能的定義和模塊劃分準(zhǔn)則劃分各個功能模塊。
定義所有模塊的接口:首先清晰定義每個模塊的接口,完成每個模塊的信號列表,這種思路與Modular Design(模塊化設(shè)計方法)一致,利于模塊重用、調(diào)試、修改。
設(shè)計時鐘域:根據(jù)設(shè)計的時鐘復(fù)雜程度定義時鐘之間的派生關(guān)系,分析設(shè)計中有哪些時鐘域,是否存在異步時鐘域之間的數(shù)據(jù)交換;對于PLD器件設(shè)計,還需要確認(rèn)全局時鐘是否使用PLL/DLL完成時鐘的分頻、倍頻、移相等功能,哪些時鐘使用全局時鐘資源布線,哪些時鐘使用第二全局時鐘資源布線;全局時鐘的特點(diǎn)是:幾乎沒有Clock Skew(時鐘傾斜),有一定的Clock Delay(時鐘延遲),驅(qū)動能力最強(qiáng);第二全局時鐘的特點(diǎn)是:有較小的Clock Shew,較小的Clock Delay,時鐘驅(qū)動能力較強(qiáng)。
考慮設(shè)計的關(guān)鍵路徑:關(guān)鍵路徑是指設(shè)計中時序要求最難以滿足的路徑,設(shè)計的時序要求主要體現(xiàn)在頻率、建立時間、保持時間等時序指標(biāo)上,;在設(shè)計初期,設(shè)計者可以根據(jù)系統(tǒng)的頻率要求,粗略的分析出設(shè)計的時序難點(diǎn)(如最高頻率路徑、計數(shù)器的最低位、包含復(fù)雜組合邏輯的時序路徑等),通過一些時序優(yōu)化手段(如Pipeline、Retiming、邏輯復(fù)制等)從代碼上緩解設(shè)計的時序壓力,這種方法比依靠綜合與布線工具的自動優(yōu)化有效的多。
頂層設(shè)計:RTL設(shè)計推薦使用自頂而下的設(shè)計方法,因為這種設(shè)計方法與模塊規(guī)劃的順序一致,而且更有利于進(jìn)行Modular Design,可以并行開展設(shè)計工作,提高模塊復(fù)用率。
FSM設(shè)計:FSM是邏輯設(shè)計最重要的內(nèi)容之一。
時序邏輯設(shè)計:首先根據(jù)時鐘域規(guī)劃好寄存器組,然后描述各個寄存器組之間的數(shù)據(jù)傳輸方式。
組合邏輯設(shè)計:一般來說,大段的組合邏輯最好與時序邏輯分開描述,這樣更有利于時序約束和時序分析,使綜合器和布局布線器達(dá)到更好的優(yōu)化效果。
常用的復(fù)位方式有哪些
同步復(fù)位:當(dāng)時鐘上升沿檢測到復(fù)位信號,執(zhí)行復(fù)位操作(有效的時鐘沿是前提)。always @ ( posedge clk )。優(yōu)點(diǎn):有利于仿真器的仿真;可以使所設(shè)計的系統(tǒng)成為 100% 的同步時序電路,有利于時序分析,而且可綜合出較高的 Fmax;由于只在時鐘有效電平到來時才有效,所以可以濾除高于時鐘頻率的復(fù)位毛刺。缺點(diǎn):復(fù)位信號的有效時長必須大于時鐘周期,才能真正被系統(tǒng)識別并完成復(fù)位任務(wù)。同時還要考慮諸如 clk skew 、組合邏輯路徑延時 、復(fù)位延時等因素(所以復(fù)位信號有時需要脈沖展寬,用以保證時鐘有效期間有足夠的復(fù)位寬度);由于大多數(shù)的邏輯器件的目標(biāo)庫內(nèi)的 DFF 都只有異步復(fù)位端口,所以,倘若采用同步復(fù)位的話,綜合器就會在寄存器的數(shù)據(jù)輸入端口插入組合邏輯,這樣就會一方面額外增加FPGA內(nèi)部的邏輯資源,另一方面也增加了相應(yīng)的組合邏輯門時延。
異步復(fù)位它是指無論時鐘沿是否到來,只要復(fù)位信號有效,就對系統(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è)計相對簡單;異步復(fù)位信號識別方便(電路在任何情況下都能復(fù)位而不管是否有時鐘出現(xiàn))。缺點(diǎn):最大的問題在于它屬于異步邏輯,問題出現(xiàn)在復(fù)位釋放時,而不是有效時,如果復(fù)位釋放接近時鐘有效沿,則觸發(fā)器的輸出可能進(jìn)入亞穩(wěn)態(tài)(此時 clk 檢測到的 rst_n 的狀態(tài)就會是一個亞穩(wěn)態(tài),即是0是1是不確定的),從而導(dǎo)致復(fù)位失敗??赡芤驗樵肼暬蛘呙淘斐商摷購?fù)位信號(比如以前的游戲機(jī)玩到一半突然復(fù)位)(注意:時鐘端口、清零和置位端口對毛刺信號十分敏感,任何一點(diǎn)毛刺都可能會使系統(tǒng)出錯,因此判斷邏輯電路中是否存在冒險以及如何避免冒險是設(shè)計人員必須要考慮的問題);靜態(tài)時序分析比較困難。對于 DFT設(shè)計,如果復(fù)位信號不是直接來自于 I/O 引腳,在 DFT 掃描和測試時,復(fù)位信號必須被禁止,因此需要額外的同步電路。
為什么推薦使用異步復(fù)位同步釋放
推薦的復(fù)位電路設(shè)計方式是異步復(fù)位,同步釋放。同步釋放的意思就是在正式進(jìn)入func模式時在寄存器前面多打一拍,這樣可以規(guī)避亞穩(wěn)態(tài)風(fēng)險。異步復(fù)位就是復(fù)位信號可以直接不受時鐘信號影響,在任意時刻只要是低電平就能復(fù)位,即復(fù)位信號不需要和時鐘同步。同步釋放讓復(fù)位信號取消的時候,必須跟時鐘信號同步,即剛好跟時鐘同沿。
復(fù)位的主要目的是使芯片電路進(jìn)入一個已知的,確定的狀態(tài)。主要是觸發(fā)器進(jìn)入確定的狀態(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建模
此級別的建模使用編程語句和運(yùn)算符表示數(shù)字功能。RTL模型是功能模型,不包含有關(guān)如何在硅中實(shí)現(xiàn)該功能的詳細(xì)信息。由于這種抽象,復(fù)雜的數(shù)字功能可以比在詳細(xì)的門級更快速、更簡潔地建模。RTL模型的仿真速度也大大快于門級和開關(guān)級模型,這使得驗證更大、更復(fù)雜的設(shè)計成為可能。
例如二選一選擇器的RTL模型:
對應(yīng)的門級電路是:
-
寄存器
+關(guān)注
關(guān)注
31文章
5372瀏覽量
121306 -
HDL
+關(guān)注
關(guān)注
8文章
328瀏覽量
47482 -
RTL
+關(guān)注
關(guān)注
1文章
385瀏覽量
59990 -
復(fù)位電路
+關(guān)注
關(guān)注
13文章
322瀏覽量
44730 -
時序邏輯
+關(guān)注
關(guān)注
0文章
39瀏覽量
9194
發(fā)布評論請先 登錄
相關(guān)推薦
評論