一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

五點(diǎn)技巧助你DC應(yīng)用進(jìn)階

芯司機(jī) ? 來(lái)源:芯司機(jī) ? 2023-06-25 16:46 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

引言

之前在《一文讓你理解DC綜合全過(guò)程!》中,和大家分享了DC映射和優(yōu)化流程,接下來(lái)本文針對(duì)如何寫(xiě)DC綜合腳本提出五點(diǎn)建議。如果您是DC新手,那么您會(huì)發(fā)現(xiàn)這幾點(diǎn)建議很是實(shí)用;如果您是DC老手,由于工具版本的更新,可能增加了您未曾注意的功能,希望本文的分享能對(duì)您有所幫助。

一 、使用set_auto_disable_drc_nets命令使時(shí)鐘網(wǎng)絡(luò)免于設(shè)計(jì)規(guī)則檢查

DC會(huì)自動(dòng)通過(guò)插入 buffer或者 resizing單元的方式進(jìn)行設(shè)計(jì)規(guī)則違例修正,不過(guò)時(shí)鐘常值和scan是比較特殊的net,綜合人員可以使用set_auto_disable_drc_nets命令來(lái)聲明不對(duì)這些特殊nets進(jìn)行設(shè)計(jì)規(guī)則違例修正。-default為默認(rèn)選項(xiàng),默認(rèn)情況下時(shí)鐘和常值是被disable的,不過(guò)scan并未disable,可以使用該命令帶-all選項(xiàng),將三者都 disable,或者分別帶-on_clock_network、-constant和-scan來(lái)分別設(shè)置。需要說(shuō)明的是-clock和-on_clock_network 有些差別,建議使用-on_clock_network,具體差別如圖1所示,虛線是被disable的時(shí)鐘線,-clock保證了對(duì)連接到觸發(fā)器的時(shí)鐘線,不會(huì)進(jìn)行DRC檢查,-on_clock_network是對(duì)時(shí)鐘網(wǎng)絡(luò)disable DRC,經(jīng)過(guò)組合邏輯再供給到觸發(fā)的時(shí)鐘也不會(huì)被DRC檢查

52e971ee-117b-11ee-962d-dac502259ad0.jpg

圖 1

二 、使用set_clock_groups命令來(lái)約束多時(shí)鐘設(shè)計(jì)

基本所有的多時(shí)鐘設(shè)計(jì)中都有時(shí)鐘切換電路,兩個(gè)或者多個(gè)時(shí)鐘輸入到時(shí)鐘切換模塊,輸出被選擇的一個(gè)時(shí)鐘。時(shí)鐘切換電路的電路結(jié)構(gòu)在《你不可不知的——時(shí)鐘切換電路》中做了詳細(xì)介紹,需知DC中時(shí)鐘屬性是可以穿過(guò)任何組合邏輯的,假設(shè)在時(shí)鐘切換模塊前已經(jīng)用create_clock聲明了兩個(gè)時(shí)鐘,這兩個(gè)時(shí)鐘經(jīng)過(guò)時(shí)鐘切換模塊時(shí)穿過(guò)的都是組合單元,那么該模塊的輸出端口也是有兩個(gè)時(shí)鐘穿過(guò)的。面對(duì)這種情況,傳統(tǒng)的做法是使用set_case_analysis來(lái)做功能選擇,比如用于測(cè)試的掃描時(shí)鐘和功能時(shí)鐘間的切換,這一命令就很有效。但是面對(duì)如圖2所示的情況,使用set_case_analysis命令,便人為的選定了自認(rèn)為時(shí)序最緊的情況,比如在CLK1和CLK2中選擇了頻率更高的CLK1,在CLK3和CLK4中選擇了頻率更高的CLK3,但是可能實(shí)際上CLK1到CLK4比CLK1到CLK3時(shí)序更緊張。這時(shí),使用如下命令,只告訴DC時(shí)鐘間的關(guān)系,讓DC自己分析更穩(wěn)妥。

方式一:

create_clock -name CLK1 -period 5[get_ports CLK1]

create_clock-name CLK2 -period 10 [get_ports CLK2]

create_clock-name CLK3 -period 15 [get_ports CLK3]

create_clock -nameCLK4 -period 20 [get_ports CLK4]

set_false_path –from [get_clocksCLK1] –to [get_clocks CLK2]

set_false_path–from [get_clocks CLK2] –to [get_clocks CLK1]

set_false_path–from [get_clocks CLK3] –to [get_clocks CLK4]

set_false_path–from [get_clocks CLK4] –to [get_clocks CLK3]

方式二:

create_clock -name CLK1-period 5 [get_ports CLK1]

create_clock-name CLK2 -period 10 [get_ports CLK2]

create_clock-name CLK3 -period 15 [get_ports CLK3]

create_clock -nameCLK4 -period 20 [get_ports CLK4]

set_clock_groups –logically_exclusive–group CLK1 –group CLK2

set_clock_groups–logically_exclusive –group CLK3 –group CLK4

方式一和方式二的作用等價(jià),但顯然,使用set_clock_groups命令來(lái)描述時(shí)鐘關(guān)系的方式二更簡(jiǎn)便。其實(shí),除了選項(xiàng)–logically_exclusive,該命令還可以帶-phsically_exclusive和-asynchronous選項(xiàng),這三個(gè)選項(xiàng)都可以表述聲明的時(shí)鐘組間的時(shí)序路徑間是沒(méi)有約束檢查的。不同點(diǎn)在于: 1)-asynchronous選項(xiàng)表示聲明的時(shí)鐘組的組間關(guān)系是異步的,異步關(guān)系的時(shí)鐘在芯片正常工作時(shí)物理上是可以同時(shí)存在的; 2)–logically_exclusive和-phsically_exclusive選項(xiàng)在DC中作用是相同的,–logically_exclusive選項(xiàng)表示的是聲明的時(shí)鐘組的組間關(guān)系是邏輯獨(dú)立、物理可共存的,而-phsically_exclusive選項(xiàng)表示的是聲明的時(shí)鐘組的組間關(guān)系是物理獨(dú)立的,如圖2所示,沒(méi)有信號(hào)是跨CLK1傳遞到CLK2域的,但是CLK1和CLK2是在電路中共存的。這點(diǎn)不同在PT做信號(hào)完整性分析時(shí)是有影響的,-phsically_exclusive較–logically_exclusive樂(lè)觀,而-asynchronous最悲觀。

52faa3ec-117b-11ee-962d-dac502259ad0.jpg

圖2


另外,set_clock_groups只帶一個(gè)-group選項(xiàng)的用法也很常見(jiàn),比如:set_clock_groups–phsically_exclusive –group scan_clk,這表示DFT掃描測(cè)試時(shí)鐘scan_clk與其他所有時(shí)鐘物理上不共存。其實(shí)掃描時(shí)鐘和功能時(shí)鐘的關(guān)系也是異步的,而使用-asynchronous選項(xiàng)對(duì)PT的影響要比實(shí)際悲觀,故而對(duì)于既是物理互斥也是異步的情況,應(yīng)使用選項(xiàng)-phsically_exclusive。事實(shí)上,圖2示例的時(shí)鐘數(shù)目少、電路結(jié)構(gòu)簡(jiǎn)單,而實(shí)際電路中時(shí)鐘選擇和電路結(jié)構(gòu)復(fù)雜的多,這時(shí)候使用命令set_clock_groups描述時(shí)鐘關(guān)系,優(yōu)勢(shì)更為明顯。事實(shí)上,掃描模式與功能模式不同時(shí)存在,且時(shí)鐘頻率差距甚大,掃描時(shí)鐘與功能時(shí)鐘的切換使用命令 set case analysis足以。
對(duì)圖2進(jìn)一步分析,時(shí)鐘切換電路U1前有兩個(gè)時(shí)鐘CLK1和CLK2,圖中沒(méi)有信號(hào)跨越這兩個(gè)時(shí)鐘域,那么這兩個(gè)時(shí)鐘是邏輯獨(dú)立、物理共存的。那如果有信號(hào)跨越這兩個(gè)時(shí)鐘域傳輸?shù)脑挘珻LK1和CLK2便不再是邏輯獨(dú)立的了,可是U1的輸出端口Z后的時(shí)鐘,仍然是物理獨(dú)立的,事實(shí)上,這種情況更為普遍。下面的約束也更為合適:


create_clock -name CLK1 -period 5[get_ports CLK1]

create_clock-name CLK2 -period 10 [get_ports CLK2]

create_clock-name CLK3 -period 15 [get_ports CLK3]

create_clock -nameCLK4 -period 20 [get_ports CLK4]

create_generated_clock–name G_CLK1 divide_by 1 –source [get_pins U1/A] [get_pins U1/Z] –combinational

create_generated_clock–name G_CLK2 divide_by 1 –source [get_pins U1/B] [get_pins U1/Z] –combinational–add

set_clock_groups –phisically_exclusive –group G_CLK1 –group G_CLK2

create_generated_clock–name G_CLK3] divide_by 1 –source [get_pins U2/A] [get_pins U2/Z]-combinational

create_generated_clock–name G_CLK4] divide_by 1 –source [get_pins U1/B] [get_pins U2/Z] –combinational–add

set_clock_groups –phisically_exclusive –group G_CLK3 –group G_CLK4

還有一種常見(jiàn)的情況是,時(shí)鐘經(jīng)過(guò)分頻模塊分出多個(gè)分頻時(shí)鐘,然后多個(gè)分頻時(shí)鐘經(jīng)過(guò)時(shí)鐘切換電路選擇輸出,而且分頻電路中常有小數(shù)分頻,比如1.5分頻,且如果有信號(hào)從1.5分頻時(shí)鐘域傳到未分頻的時(shí)鐘域,這時(shí)候最緊的時(shí)鐘約束應(yīng)是半個(gè)時(shí)鐘周期,那么綜合人員需要跟設(shè)計(jì)人員確認(rèn)電路中絕無(wú)這種工作情況的可能,才能使用set_case_analysis來(lái)選擇未分頻時(shí)鐘對(duì)后續(xù)電路約束。而電路是多個(gè)設(shè)計(jì)人員分別對(duì)各自模塊設(shè)計(jì)的,假設(shè)和溝通常常容易出錯(cuò),這時(shí)候如果在分頻模塊的輸出端口產(chǎn)生兩個(gè)物理獨(dú)立的generated時(shí)鐘,那么DC工具會(huì)給出分析結(jié)果。善用命令 set_clock_groups描述時(shí)鐘關(guān)系,優(yōu)勢(shì)確實(shí)很明顯。

三 、面對(duì)pad-limitted設(shè)計(jì),可調(diào)節(jié)變量placer_max_cell_density_threshold進(jìn)行迭代

現(xiàn)在 synopsys建議使用SPG流程,該流程和后端有更好的匹配和關(guān)聯(lián)。如果綜合人員所面臨的設(shè)計(jì)是 pad-limitted,那么在第二次綜合流程中可以聲明一個(gè)最小單元密度,這讓 core有更好的利用率百分比,也就是讓DC圍繞著核更密集的排布單元和連線。 set_app_var placer_max_cell_density_threshold0. 7; # In DC/ICC set_app_options -nameplace.coarse. max _density -value 0.7; # In ICC ll 注意:如果在non-spg流程中,DC使用了上訴命令需要在ICC中也使用,在spg流程中ICC 會(huì)略過(guò)這一步驟,可以不在ICC中做同樣的命令設(shè)置。如果不對(duì)placer_ max_cell_density_threshold設(shè)置,DC默認(rèn)其為50%,在執(zhí)行了compile_ultra命令后,DC會(huì)對(duì)這個(gè)值重新計(jì)算,并將重新計(jì)算的值覆蓋默認(rèn)值。綜合人員可以查看這個(gè)值,并可以將這個(gè)值設(shè)置為重新計(jì)算值和1之間的中間值,進(jìn)而指導(dǎo)DC下一次綜合。

四、盡量使用高閾值電壓庫(kù)綜合,時(shí)序?qū)嵲跓o(wú)法收斂時(shí),使用多閾值電壓庫(kù)來(lái)綜合

泄露功耗與工藝和閾值電壓有關(guān),閾值電壓越大,泄露功耗越低,但是器件速度越慢。DC EXPERT 需要通過(guò)命令set_leakage_optimization true 聲明,而DC Ultra會(huì)自動(dòng)進(jìn)行泄露功耗優(yōu)化,為了不影響時(shí)序性能,DC會(huì)默認(rèn)對(duì)非關(guān)鍵路徑進(jìn)行功耗優(yōu)化。若采用了多閾值電壓庫(kù),DC 會(huì)自動(dòng)對(duì)非關(guān)鍵時(shí)序路徑,用高閾值電壓?jiǎn)卧鎿Q低閾值電壓?jiǎn)卧?;綜合人員可以使用set_multi_vth_constraint 命令來(lái)聲明設(shè)計(jì)所允許使用的低閾值電壓?jiǎn)卧陌俜直?,并通過(guò)從5%到10%,開(kāi)始逐步提升低閾值電壓?jiǎn)卧及俜直?,直到時(shí)序符合要求為止。在使用命令set_multi_vth_constraint時(shí),帶-type soft選項(xiàng),DC會(huì)在保證時(shí)序的前提下,進(jìn)行功行功耗優(yōu)化;另外,在計(jì)算低閾值電壓?jiǎn)卧及俜直鹊臅r(shí)候,并沒(méi)有算進(jìn)黑盒子,如果欲將黑盒子也算進(jìn)來(lái),使用-include_blackboxes選項(xiàng)。 一般工藝廠提供的工藝庫(kù)都是已經(jīng)根據(jù)閾值電壓的不同對(duì)庫(kù)單元進(jìn)行了分組的,如果沒(méi)有分組的話,多閾值電壓庫(kù)可以使用set_attribute命令對(duì)庫(kù)屬性進(jìn)行設(shè)置,從而將多閾值電壓庫(kù)中的不同單元根據(jù)閾值電壓的不同進(jìn)行分組。

Library-level attribute: defaultthreshold voltage_group:string; Library-cell-level attributestring; 綜合人員可以使用analyze_library–multi_vth 命令來(lái)獲得各個(gè)閾值電壓組的時(shí)序和泄露功耗信息。綜合完成后,可以使用report_threshhold_voltage_group 命令,報(bào)告設(shè)計(jì)中低閾值電壓?jiǎn)卧急惹闆r。

五、使用set_app_var compile_timing_high_effort true 命令獲得更好的時(shí)序QoR

在第二次綜合時(shí)使用compile_ultra –timing_high_effort_script 是大家很熟悉的方式了,不過(guò)其中的開(kāi)關(guān)選項(xiàng)-timing_high_effort_script目前在DC 優(yōu)化過(guò)程中已經(jīng)不起作用了,若希望DC 花費(fèi)更多資源在時(shí)序優(yōu)化上,那么可使用命令set_app_var compile_timing_high_effort true來(lái)獲得更好的時(shí)序QoR。需要說(shuō)明的是,該變量的設(shè)置只在Design compiler topographical模式下有效,即需要用compile_ultra -spg 命令進(jìn)行綜合優(yōu)化。

以上幾點(diǎn)純是個(gè)人建議,寫(xiě)DC腳本的最終目的是設(shè)置合理的約束來(lái)指導(dǎo)DC更好的優(yōu)化電路,每個(gè)人都有自己的習(xí)慣和綜合策略,歡迎大家多多交流心得體會(huì)。

審核編輯:湯梓紅

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

    關(guān)注

    11

    文章

    1900

    瀏覽量

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

    關(guān)注

    10

    文章

    3684

    瀏覽量

    681874
  • 觸發(fā)器
    +關(guān)注

    關(guān)注

    14

    文章

    2039

    瀏覽量

    62135
  • 切換電路
    +關(guān)注

    關(guān)注

    0

    文章

    30

    瀏覽量

    9602

原文標(biāo)題:五點(diǎn)Tips助你DC應(yīng)用進(jìn)階

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

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    【shell腳本進(jìn)階】幾個(gè)常用的shell進(jìn)階腳本

    【shell腳本進(jìn)階】幾個(gè)常用的shell進(jìn)階腳本
    的頭像 發(fā)表于 09-19 08:59 ?2316次閱讀
    【shell腳本<b class='flag-5'>進(jìn)階</b>】幾個(gè)常用的shell<b class='flag-5'>進(jìn)階</b>腳本

    負(fù)載點(diǎn)DC-DC轉(zhuǎn)換器解決電壓精度、效率和延遲問(wèn)題

    為什么使用DC-DC轉(zhuǎn)換器應(yīng)盡可能靠近負(fù)載的負(fù)載點(diǎn)(POL)電源?
    發(fā)表于 11-26 14:14 ?7305次閱讀
    負(fù)載<b class='flag-5'>點(diǎn)</b><b class='flag-5'>DC-DC</b>轉(zhuǎn)換器解決電壓精度、效率和延遲問(wèn)題

    Altium Designer PCB設(shè)計(jì)高級(jí)進(jìn)階

    對(duì)PCB設(shè)計(jì)的高級(jí)進(jìn)階的內(nèi)容進(jìn)行相關(guān)的介紹 純分享貼,有需要可以直接下載附件獲取完整資料! (如果內(nèi)容有幫助可以關(guān)注、點(diǎn)贊、評(píng)論支持一下哦~)
    發(fā)表于 04-27 16:40

    選擇最佳的DC/DC轉(zhuǎn)換器的大秘訣

    為1.5V或更高,因此適合于至少有兩節(jié)電池的應(yīng)用。最佳選擇是:電感式DC/DC變換器。、產(chǎn)生的噪聲①電感式DC/DC轉(zhuǎn)換器:電感式
    發(fā)表于 03-25 16:31

    負(fù)載點(diǎn)DC/DC電源模塊

    一個(gè)新的選擇:負(fù)載點(diǎn)DC/DC電源模塊。這些模塊結(jié)合了實(shí)現(xiàn)即插即用(plug-and-play)解決方案所需的大部分或全部組件,可以取代多達(dá)40個(gè)不同的組件。這樣就簡(jiǎn)化了集成并加速了設(shè)計(jì),同時(shí)可減少
    發(fā)表于 05-13 14:11

    編程實(shí)戰(zhàn)!C++快遞入門與進(jìn)階!

    論壇VIP(5個(gè))、課程優(yōu)惠卷(8張)幫助你更快進(jìn)階!更有實(shí)物獎(jiǎng)勵(lì)十周年文化衫(3件)和相關(guān)書(shū)籍(5本 )!現(xiàn)在凡是報(bào)名本次直播課程,掃下方二維碼進(jìn)群,在朋友圈轉(zhuǎn)發(fā)本次直播的海報(bào),保留四小時(shí)以上,便可
    發(fā)表于 08-09 16:21

    電源發(fā)展的點(diǎn)概念介紹

    電源發(fā)展的點(diǎn)概念
    發(fā)表于 02-25 08:08

    關(guān)于單片機(jī)串口編程進(jìn)階的知識(shí)點(diǎn)不看肯定后悔

    關(guān)于單片機(jī)串口編程進(jìn)階的知識(shí)點(diǎn)不看肯定后悔
    發(fā)表于 06-16 09:00

    【直播回顧】Hello HarmonyOS進(jìn)階課程第課——原子化服務(wù)

    由HDE李洋老師主講的Hello HarmonyOS進(jìn)階系列應(yīng)用篇第課《原子化服務(wù)》, 已于6月1日晚上 19 點(diǎn)在HarmonyOS社群內(nèi)成功舉行。本節(jié)課李洋老師帶領(lǐng)大家了解HarmonyOS
    發(fā)表于 06-02 11:42

    黑客攻防入門與進(jìn)階ddd

    黑客攻防入門與進(jìn)階ddd黑客攻防入門與進(jìn)階ddd
    發(fā)表于 02-23 15:45 ?9次下載

    vi/vim使用進(jìn)階

    vi/vim使用進(jìn)階
    發(fā)表于 10-29 11:00 ?28次下載
    vi/vim使用<b class='flag-5'>進(jìn)階</b>

    FPGA進(jìn)階教程:DDS的設(shè)計(jì)與實(shí)現(xiàn)

    小梅哥:FPGA進(jìn)階教程
    的頭像 發(fā)表于 08-30 06:01 ?3221次閱讀
    FPGA<b class='flag-5'>進(jìn)階</b>教程:DDS的設(shè)計(jì)與實(shí)現(xiàn)

    10大法則助你輕松搞定DC/DC電源轉(zhuǎn)換方案

    10大法則助你輕松搞定DC/DC電源轉(zhuǎn)換方案。
    發(fā)表于 06-03 16:33 ?7次下載

    點(diǎn)云濾波與匹配進(jìn)階干貨收藏

    之前作者專門為點(diǎn)云匹配寫(xiě)了幾篇博客,但是我們發(fā)現(xiàn)最近幾年有更多的新方法已經(jīng)在不斷地被使用。 同時(shí)之前有些內(nèi)容也沒(méi)有很好的概括,所以這里我們將作為一篇進(jìn)階文章來(lái)介紹這些方法的使用。
    的頭像 發(fā)表于 11-06 11:03 ?1367次閱讀

    RK3568驅(qū)動(dòng)指南|驅(qū)動(dòng)基礎(chǔ)進(jìn)階篇-進(jìn)階8 內(nèi)核運(yùn)行ko文件總結(jié)

    RK3568驅(qū)動(dòng)指南|驅(qū)動(dòng)基礎(chǔ)進(jìn)階篇-進(jìn)階8 內(nèi)核運(yùn)行ko文件總結(jié)
    的頭像 發(fā)表于 01-31 14:58 ?1582次閱讀
    RK3568驅(qū)動(dòng)指南|驅(qū)動(dòng)基礎(chǔ)<b class='flag-5'>進(jìn)階</b>篇-<b class='flag-5'>進(jìn)階</b>8 內(nèi)核運(yùn)行ko文件總結(jié)