邏輯綜合的含義是什么?
綜合(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í)電路是: