Synopsys設(shè)計(jì)約束

1. 設(shè)計(jì)約束

上一節(jié)描述了設(shè)計(jì)環(huán)境的約束:

https://mp.weixin.qq.com/s?__biz=Mzg4OTIwNzE4Mg==&mid=2247483754&idx=1&sn=cf8dc9f5649ecdf7a769d576a1339be5&chksm=cfee218bf899a89d6c7442adbf16c7d7093517d4dc7c0ff7913119ea3b7aca82741dd9e1fb86&token=1433471869&lang=zh_CN#rd?mp.weixin.qq.com

而設(shè)計(jì)約束描述了設(shè)計(jì)目標(biāo),它們可包括時(shí)序或面積約束。不實(shí)際的規(guī)范會(huì)導(dǎo)致面積增大、功耗增加和/或時(shí)序惡化,所以設(shè)計(jì)人員必須指定實(shí)際的約束。

create_clock命令用于定義有特定周期和波形的時(shí)鐘對(duì)象。-period選項(xiàng)定義時(shí)鐘周期,而-waveform選項(xiàng)控制時(shí)鐘的占空比和起始邊沿。這個(gè)命令用于引腳或端口對(duì)象類型。

下例指定端口CLK為“時(shí)鐘”類型,其周期為40ns,占空比為50%。時(shí)鐘正邊沿開(kāi)始于0ms,下降邊沿發(fā)生在20ns。通過(guò)改變下降沿值,可改變時(shí)鐘占空比。

create_clock -period 40 -waveform [list 0 20] CLK

create_generated_clock命令用于設(shè)計(jì)內(nèi)部生成的時(shí)鐘,可以描述作為主時(shí)鐘函數(shù)的分頻/倍頻時(shí)鐘。

create_generated_clock -name <clock name>

-source <clock source>

-divide_by <factor> | multiply_by <factor>

set_dont_touch_network是一個(gè)非常有用的命令,通常用于時(shí)鐘網(wǎng)絡(luò)的復(fù)位。這個(gè)命令用于在時(shí)鐘引腳或端口上設(shè)置dont_touch屬性。注意設(shè)置這一屬性也會(huì)阻止DC為滿足DRC而緩沖連線。此外,任何與被設(shè)置為“dont_touch”的連線相接觸的門也將繼承dont_touch屬性。

set_dont_touch用于在current_design、單元、引用或連線上設(shè)置dont_touch屬性。這一命令經(jīng)常用于模塊的層次化編譯過(guò)程中,它也能用于阻止DC推斷工藝庫(kù)中的某種類型單元。

例:

set_dont_touch current_design

set_dont_touch [get_cells subs]

set_dont_touch [get_nets gated_rst]

set_dont_use命令通常設(shè)置在.synopsys_dc.setup環(huán)境文件中,這一命令有助于從工藝庫(kù)中剔除用戶不愿DC推斷的某類單元。

set_input_delay指定相對(duì)于時(shí)鐘的信號(hào)輸入到達(dá)時(shí)間。它用于輸入端口,指定在時(shí)鐘沿后數(shù)據(jù)穩(wěn)定所需的時(shí)間。設(shè)計(jì)的時(shí)序規(guī)范通常包括這樣的信息,如輸入信號(hào)的建立/保持時(shí)間要求。如果給定設(shè)計(jì)的頂層時(shí)序規(guī)范,也可通過(guò)用自頂向下的編譯方法或設(shè)計(jì)預(yù)算方法提取出子模塊的這些信息。

dc_shell > set_input_delay -max 23.0 -clock CLK {data_in}

dc_shell > set_input_delay -min 0.0 -clock CLK {data_in}

在下圖中,相對(duì)于占空比為50%,周期為30ns的時(shí)鐘信號(hào)CLK,為信號(hào)data_in指定了23ns的最大輸入延時(shí)約束和0ns的最小輸入延時(shí)約束。換言之,輸入信號(hào)data_in的建立時(shí)間要求為7ns,而保持時(shí)間要求為0ns。

set_output_delay命令用于在輸出端口定義在時(shí)鐘邊沿到來(lái)之前數(shù)據(jù)有效所需時(shí)間。

dc_shell > set_output_delay -max 19.0 -clock CLK {data_out}

set_clock_latency命令用于定義在綜合時(shí)估計(jì)的時(shí)鐘插入延遲,這主要用于布圖前綜合和時(shí)序分析。所估計(jì)的延遲值是時(shí)鐘樹(shù)網(wǎng)絡(luò)插入(在布圖階段)產(chǎn)生的延遲的近似值。

dc_shell > set_clock_latency 3.0 [get_clocks CLK]

set_clock_uncertainty命令讓用戶定義時(shí)鐘扭曲(clock skew)信息。

dc_shell > set_clock_uncertainty -setup 0.5 -hold 0.23 [get_clocks CLK]

set_clock_transition命令用于進(jìn)行布圖前綜合和時(shí)序分析。這個(gè)命令使DC對(duì)時(shí)鐘端口或引腳使用指定的轉(zhuǎn)換值。

set_propagated_clock用于當(dāng)設(shè)計(jì)已完成時(shí)鐘樹(shù)網(wǎng)絡(luò)插入的布圖后階段。在這種情況下,將使用傳統(tǒng)的延遲計(jì)算方法求出延時(shí)。

2. 高級(jí)約束

以上和之前的一節(jié)主要介紹的是常用約束。下面介紹的是額外的一些設(shè)計(jì)約束,包括指定虛假路徑、多周期路徑、最大和最小延遲等。此外,還討論了為額外優(yōu)化而組合時(shí)序關(guān)鍵路徑的過(guò)程。

set_false_path用于指示DC忽視某一路徑的時(shí)序或優(yōu)化。確定設(shè)計(jì)中的虛假路徑是關(guān)鍵,否則會(huì)迫使DC優(yōu)化所有路徑,關(guān)鍵時(shí)序路徑可能受到不利的影響。

用于這一命令的有效起點(diǎn)和終點(diǎn)分別是輸入端口或時(shí)序元件的時(shí)鐘引腳和輸出端口或時(shí)序元件的數(shù)據(jù)引腳。另外可使用-through進(jìn)一步明確某一路徑。

dc_shell > set_false_path -from in1 -through U1/Z -to out1

set_multicycle_path用于告知DC通過(guò)某一路徑到達(dá)其終點(diǎn)所需的時(shí)鐘周期數(shù)。DC自動(dòng)假定所有路徑都是單周期路徑,同時(shí)不必為了獲取時(shí)序而試圖優(yōu)化多周期段。

set_max_delay定義某一路徑按照時(shí)間單位所需的最大延遲。通常它用于只包含組合邏輯的模塊。然而,它也用于約束多個(gè)具有不同頻率時(shí)鐘驅(qū)動(dòng)的模塊。

雖然Synopsys建議每個(gè)模塊只定義一個(gè)時(shí)鐘,而在某些情況下一個(gè)模塊可包含多個(gè)時(shí)鐘,每個(gè)時(shí)鐘具有不同的頻率。為了約束這種模塊,通常可用create_clock和set_dont_touch_network命令來(lái)定義模塊中的所有時(shí)鐘。然而信號(hào)相對(duì)于每個(gè)時(shí)鐘的輸入延時(shí)賦值會(huì)變得很冗長(zhǎng)。為避免這一情況,另一種方法就是用通用的方法定義第一個(gè)時(shí)鐘,而通過(guò)set_max_delay命令約束其他時(shí)鐘:

dc_shell > set_max_delay 0 -from CLK2 -to [all_registers -clock_pins]

set_min_delay是與set_max_delay相對(duì)的命令,它用于定義某一路徑按照時(shí)間單位所需的最小延遲。

dc_shell > set_min_delay 3 -from [all_inputs] -to [all_outputs]

group_path命令用于將設(shè)計(jì)中的時(shí)序關(guān)鍵路徑綁定到一起以進(jìn)行代價(jià)函數(shù)計(jì)算。組合能使組合路徑優(yōu)先于其他路徑。這一命令有不同的選項(xiàng),包括關(guān)鍵范圍和權(quán)重的規(guī)范。

dc_shell > group_path -to [list out1 out2] -name group1

——添加太多組合對(duì)編譯時(shí)間有顯著的影響,因此只作為最后的手段使用;

——這一命令有可能增加設(shè)計(jì)中最差違例路徑的延遲,這是由于DC使設(shè)計(jì)中的組合路徑優(yōu)先于其他路徑。為改善整個(gè)代價(jià)函數(shù),DC將盡力優(yōu)化組合路徑,然而可能惡化另一組的最差違例的時(shí)序。

參考文獻(xiàn):

https://book.douban.com/subject/2150040/

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,835評(píng)論 6 534
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,676評(píng)論 3 419
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人,你說(shuō)我怎么就攤上這事。” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 176,730評(píng)論 0 380
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書人閱讀 63,118評(píng)論 1 314
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 71,873評(píng)論 6 410
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 55,266評(píng)論 1 324
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,330評(píng)論 3 443
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書人閱讀 42,482評(píng)論 0 289
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,036評(píng)論 1 335
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 40,846評(píng)論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 43,025評(píng)論 1 371
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,575評(píng)論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,279評(píng)論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 34,684評(píng)論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 35,953評(píng)論 1 289
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 51,751評(píng)論 3 394
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 48,016評(píng)論 2 375

推薦閱讀更多精彩內(nèi)容

  • 以下三個(gè)是最經(jīng)常被問(wèn)到的,基本上屬于介紹性的題目,無(wú)所謂正確答案,在我看來(lái),這些不算真正的問(wèn)題。 Discuss ...
    蜀湘情緣閱讀 6,219評(píng)論 0 8
  • Verilog基本電路設(shè)計(jì)之一:單bit跨時(shí)鐘域同步 (帖子鏈接:bbs.eetop.cn/thread-6054...
  • 教程一:視頻截圖(Tutorial 01: Making Screencaps) 首先我們需要了解視頻文件的一些基...
    90后的思維閱讀 4,733評(píng)論 0 3
  • 來(lái)源:FPGA 時(shí)鐘設(shè)計(jì) 1 —— 時(shí)鐘資源總結(jié) 關(guān)于一款芯片,最權(quán)威、最新的資料當(dāng)然是廠家的官方文件。很多大牛都...
    暗夜望月閱讀 3,577評(píng)論 0 2
  • 來(lái)源:系統(tǒng)時(shí)序基礎(chǔ)理論 對(duì)于系統(tǒng)設(shè)計(jì)工程師來(lái)說(shuō),時(shí)序問(wèn)題在設(shè)計(jì)中是至關(guān)重要的,尤其是隨著時(shí)鐘頻率的提高,留給數(shù)據(jù)傳...
    暗夜望月閱讀 2,743評(píng)論 0 2