0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

淺談DC綜合工具的工作流程

芯司機(jī) ? 來源:芯司機(jī) ? 2023-06-19 15:47 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

引言

電路設(shè)計自動化的時代,綜合工具的作用不言而喻,通過綜合,設(shè)計人員能夠獲得自己所設(shè)計模塊的規(guī)模、時序性能和關(guān)鍵路徑等有用信息,進(jìn)而指導(dǎo)自己優(yōu)化設(shè)計結(jié)構(gòu)。本文就來說說綜合工具DC工作的全流程,希望對設(shè)計人員和DC的初級使用者有所啟發(fā)。

DC (Design compiler) 是Synopsys 公司綜合核心工具,內(nèi)嵌六種工具:DC Explorer、HDL Compiler、Library Compiler 、Power Compiler,DFT Compiler and DFTMAX 和Design Vision,在綜合的不同階段DC調(diào)用相應(yīng)的工具實現(xiàn)所需的功能。DC包含以下功能技術(shù):DC Expert,DC Ultra 和DC Graphical。DC Expert 能夠進(jìn)行功耗、面積和時序的優(yōu)化,采用線性負(fù)載模型計算延時;DC Ultra所采用的優(yōu)化算法也更先進(jìn),且DC Ultra提供拓計算技術(shù),即在拓?fù)淠J较虏徊捎镁€性負(fù)載模型而是采用Synopsys的布局優(yōu)化技術(shù),以保證綜合結(jié)果和最終物理設(shè)計更好的相關(guān)性;DC Graphical具有DC Expert和DC ultra 所有特性,并且能夠優(yōu)化multicorner-multimode 設(shè)計、減少布線擁堵和進(jìn)行初步floorplan。

DC Expert:啟動命令dc_shell,綜合命令compile。

DC Ultra:拓?fù)淠J絾用頳c_shell -topo,綜合命令complie_ultra。

DC Graphical:啟動命令dc_shell -topo,綜合命令complie_ultra -spg。

Synopsys對綜合的定義十分形象Synthesis=Translation + Logic Optimization +Gate Mapping,這正好表示出使用DC綜合的過程,將RTL設(shè)計translate成GTECH門級網(wǎng)表,再根據(jù)施加的約束對電路優(yōu)化并向特定工藝庫映射。本文力求解釋清楚綜合過程,不涉及具體綜合腳本和施加約束方法。

DC是調(diào)用HDL Compiler來將讀取的設(shè)計轉(zhuǎn)換成不依賴于工藝的GTECH門級網(wǎng)表的。這里需要說明的是GTECH網(wǎng)表中不僅僅只有與非門、異或門這種門電路符號,還有時序器件符號SEQGEN,如果設(shè)計中使用加、減、乘和比較等運(yùn)算,GTECH會將其提取出來并用以帶有OP標(biāo)識的符號表示,這方便后續(xù)進(jìn)行高級別電路優(yōu)化;另外,設(shè)計中避免不了使用選擇邏輯,如不特別聲明,DC在這一階段對選擇邏輯用SELECT_OP表示,且在后續(xù)的映射階段并不一定將SELECT_OP映射成多路選擇器,而是采用與非門電路來實現(xiàn)其功能,如果想要映射成多路選擇器,那么需要在RTL中聲明synopsys infer_mux。

接下來DC根據(jù)綜合人員設(shè)置的約束對GTECH網(wǎng)表進(jìn)行優(yōu)化,可分為組合優(yōu)化和時序優(yōu)化。

組合邏輯優(yōu)化是先對組合邏輯設(shè)計進(jìn)行工藝無關(guān)的邏輯級優(yōu)化,從GTECH門電路提取出布爾表達(dá)式集合,這樣可以對通過對布爾表達(dá)式的化簡和變形實現(xiàn)對電路結(jié)構(gòu)的化簡和變形;

再向工藝庫映射,映射的過程中根據(jù)速度和面積的目標(biāo)選擇適合的電路結(jié)構(gòu);

最后在對工藝依賴的門電路進(jìn)行門級優(yōu)化,這一階段DC主要進(jìn)行延時優(yōu)化、功耗優(yōu)化、DRC修正和面積優(yōu)化。

時序優(yōu)化分為兩步,第一步向工藝庫中的時序器件進(jìn)行映射,此時組合邏輯還沒有完成映射,也就沒有具體的延時信息,時序器件的選擇也不就不是最優(yōu)的,時序優(yōu)化是在映射后進(jìn)行的,且進(jìn)行時序器件替換時是將時序電路附近的組合邏輯一起考量的。

具體來說DC的優(yōu)化流程是如圖1所示的12步完成的,其中星號表示 DC Expert不支持。

1)如果使用compile_ ultra,默認(rèn)首先自動進(jìn)行ungroup操作,ungroup操作會將設(shè)計展平,展平設(shè)計必然會對內(nèi)部信號重命名,這一操作會為后仿調(diào)試帶來困難,所以建議先關(guān)閉這一功能,首次綜合compile_ultra –no_auto_ungroup后,如果時序確實很緊張再打開這一功能,或者使用set_ungroup命令來實現(xiàn)局部ungroup操作。

2)high-level optimization是在時序和面積的約束下進(jìn)行的資源提取和共享。如果使用DC Ultra工具,那么還可以對 datapath進(jìn)行加減等運(yùn)算operator進(jìn)行提取優(yōu)化。

3)Multiplexer Mapping and Optimization,即將組合邏輯中多路選擇標(biāo)識首先映射成單個多路選擇器或者多路選擇樹,且為了能夠共享多路選擇樹、減少面積,DC會重新調(diào)整選擇信號的順序。

4)Sequential Mapping階段,DC將 SEQGEN代表的時序單元映射到 target Library中實際的時序器件。

5)Structuring and Mapping,即將設(shè)計中可以析出的子函數(shù)或者說子表達(dá)式作為中間變量,通過復(fù)用多次使用的中間變量可以減少面積,并將組合邏輯對工藝庫進(jìn)行映射。

6)Automatic uniquification,這個操作相當(dāng)于綜合人員使用了uniquify命令,該命令通過對多次例化的子設(shè)計進(jìn)行復(fù)制和重命名的方式,實現(xiàn)每一個instance都有唯一設(shè)計與之對應(yīng),從而解決同一子設(shè)計多次例化問題。

7)implementing Synthetic Parts,在高級別優(yōu)化階段,類似+或者*這樣的operator將其用一個抽象符號代表,稱為Synthetic Part,此時將這些 Synthetic Part映射為具體不同結(jié)構(gòu)的加法器或者乘法器等。

8)timing-driven combinational optimization,此步驟DC對關(guān)鍵路徑再次進(jìn)行重構(gòu),即增加總變量和復(fù)制中間變量等操作來提升速度,并且對關(guān)鍵路徑再次進(jìn)行operator的Implementing,比如將串行加法器替換為行波進(jìn)位加法器。

9)Register Retiming,該步驟僅DC Ultra支持,該操作簡單說就是對寄存器的移位、合并或者拆散復(fù)制等操作來減少違例。如果使用 optimize registers命令,那么寄存器的 retiming 更適合 pipelined designs;如果在 compile_ultra命令后帶- retime選項,DC會自動進(jìn)行局部 retiming操作,這更適合通用的non- pipeline design。

10)Delay and Leakage Optimization這一步驟,DC試圖修復(fù)延時違例,DC再次對關(guān)鍵路徑的電路結(jié)構(gòu)進(jìn)行評估,如果不滿足約束,那么再次進(jìn)行結(jié)構(gòu)選擇并進(jìn)行替換;至于leakage優(yōu)化,DC是將非關(guān)鍵路徑的庫單元替換為庫中l(wèi)eakage更低的單元,比如選擇庫中高閾值電壓單元。

11)Design Rule Fixing,DC 通過插入buffer或者 resize gate進(jìn)行設(shè)計規(guī)則違例修正。

12)Area Optimization,此過程DC 默認(rèn)是在不影響延時性能進(jìn)行的。如果使用DC Ultra工具,綜合人員可以使用 compile_ultra 命令后,再施加optimize_ netlist -area命令,在不影響時序性能的前提下進(jìn)一步提升面積優(yōu)化效果。

wKgaomSQCBeAOO-wAABWC2x6EiI987.png

四、總結(jié)

另外,如果想要獲得更好的QoR,從RTL code中提取數(shù)據(jù)路徑塊是十分重要,設(shè)計人員可以在compile_ultra前使用analyze_datapath_extraction命令來查看設(shè)計中算術(shù)內(nèi)容并得到設(shè)計建議反饋。若想以html格式顯示報告,帶-html選項即可,HTML格式文件里面可以直接鏈接到RTL代碼,便于檢閱和修改。有時候觀測一下設(shè)計的最小面積和時序性能的極限很有意義,不加任何約束,compile_ultral會綜合出面積最小的情況;使用set_cost_priority -delay命令,將延時優(yōu)化的優(yōu)先級提前到DRC優(yōu)先級前,可觀測設(shè)計時序性能的極限。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 電路設(shè)計
    +關(guān)注

    關(guān)注

    6705

    文章

    2536

    瀏覽量

    214409
  • HDL
    HDL
    +關(guān)注

    關(guān)注

    8

    文章

    330

    瀏覽量

    47994
  • DC
    DC
    +關(guān)注

    關(guān)注

    10

    文章

    3684

    瀏覽量

    681623
  • RTL
    RTL
    +關(guān)注

    關(guān)注

    1

    文章

    389

    瀏覽量

    60992
  • 時序
    +關(guān)注

    關(guān)注

    5

    文章

    397

    瀏覽量

    37916

原文標(biāo)題:一文讓你理解DC綜合全過程!

文章出處:【微信號:芯司機(jī),微信公眾號:芯司機(jī)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 0人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    幫忙分析下這個設(shè)計的工作流程

    你好我是單片機(jī)學(xué)習(xí)的菜鳥能不能幫我分析一下一下設(shè)計的工作流程各個器件的工作原理
    發(fā)表于 12-07 11:06

    AndroidWifi工作流程

    AndroidWifi工作流程
    發(fā)表于 11-02 10:52

    AndroidWifi工作流程

    AndroidWifi工作流程
    發(fā)表于 09-25 11:17

    AndroidWifi工作流程

    AndroidWifi工作流程
    發(fā)表于 11-08 09:07

    Simulink是什么?Simulink的工作流程是怎樣進(jìn)行的?

    Simulink是什么?Simulink有哪些功能?如何去使用Simulink?Simulink的工作流程是怎樣進(jìn)行的?
    發(fā)表于 07-09 06:16

    AS068工作流程是怎樣的?

    AS068工作流程是怎樣的?
    發(fā)表于 12-07 08:02

    測試工程師工作流程有哪些

    測試工程師的工作流程,與公司的整體工作流程,項目的測試要求等因素相關(guān)。本文主要討論測試工程師的一般工作流程
    的頭像 發(fā)表于 10-03 16:56 ?8082次閱讀

    雷電的4K工作流程

    在4K的雷電工作流程
    的頭像 發(fā)表于 05-31 11:20 ?2806次閱讀

    英特爾圖形性能分析器(GPA)的Windows DirectX工作流程分析

    Seth為英特爾圖形性能分析提供了Windows DirectX工作流程。 了解基本的GPA工作流程或刷新您對不同工具的了解。
    的頭像 發(fā)表于 11-07 06:55 ?3614次閱讀

    KiCad的工作流程解析

    KiCad與其它PCB設(shè)計軟件的功能基本一致,只是其工作流程與有些設(shè)計工具存在的主要不同在于原理圖的元器件符號庫和PCB的封裝庫是分開的,在創(chuàng)建原理圖的時候可以不用考慮使用的元器件的封裝,直到開始做PCB布局布線的時候才會為元器件分配封裝。
    發(fā)表于 08-16 15:10 ?3767次閱讀
    KiCad的<b class='flag-5'>工作流程</b>解析

    如何將機(jī)械設(shè)計工作流程集成到電氣設(shè)計工具中?

    在今天的PCB設(shè)計過程中,您需要能夠?qū)C(jī)械設(shè)計工作流程集成到電氣設(shè)計工具中。繼續(xù)閱讀以了解如何在足跡中輕松創(chuàng)建3D組件主體。
    的頭像 發(fā)表于 07-23 14:50 ?2833次閱讀

    工作流程圖怎么用?有哪些繪制工作流程圖的軟件

    工作流程圖是清晰地展示工作中各個環(huán)節(jié)的流程圖圖示,主要用于工作活動和效率的管理。工作流程圖這種圖示方法具有直觀描述性、簡潔性、可操作性和指導(dǎo)
    的頭像 發(fā)表于 07-28 14:22 ?3918次閱讀

    機(jī)器視覺系統(tǒng)的組成及工作流程

    機(jī)器視覺系統(tǒng)的組成及工作流程介紹。
    發(fā)表于 04-19 15:24 ?16次下載

    淺談無刷電機(jī)的工作流程

    上一期的芝識課堂,我們跟大家一起分析了無刷電機(jī)的四個功能單元,并詳細(xì)分析了PWM和逆變器單元的工作情況,今天我們繼續(xù)來熟悉無刷電機(jī)工作流程中另外兩個重要的部分——轉(zhuǎn)子位置檢測和波形驅(qū)動。
    的頭像 發(fā)表于 11-12 13:46 ?1184次閱讀
    <b class='flag-5'>淺談</b>無刷電機(jī)的<b class='flag-5'>工作流程</b>

    NX CAD軟件:數(shù)字化工作流程解決方案(CAD工作流程)

    NXCAD——數(shù)字化工作流程解決方案(CAD工作流程)使用西門子領(lǐng)先的產(chǎn)品設(shè)計軟件NXCAD加速執(zhí)行基于工作流程的解決方案。我們在了解行業(yè)需求方面累積了多年的經(jīng)驗,并據(jù)此針對各個行業(yè)的具體需求提供
    的頭像 發(fā)表于 02-06 18:15 ?411次閱讀
    NX CAD軟件:數(shù)字化<b class='flag-5'>工作流程</b>解決方案(CAD<b class='flag-5'>工作流程</b>)

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會員交流學(xué)習(xí)
    • 獲取您個性化的科技前沿技術(shù)信息
    • 參加活動獲取豐厚的禮品