時序約束

(1) clock

? ? Q1.1 什么是同步時鐘?

? ?? ?時鐘頻率是整倍數(shù),并且相互之間的相位是固定而且相差可預知的,才可以稱得上是同步時鐘。其他的都算異步時鐘。

? ?? ?比如,

? ?? ?5M,10M是同步

? ?? ?2M,3M一般算異步

? ?? ?一個時鐘,輸出到另一個芯片中,轉(zhuǎn)一圈后,以同樣的頻率返回到自己的芯片,因為無法確定時鐘在另一個芯片里面的latency,所以輸出的時鐘與輸入的時鐘算異步

? ?? ?一個時鐘進到2個PLL,就算那2個PLL的輸出頻率相同,一般也算是異步時鐘,除非你de-skew

? ? Q1.2 如何處理同步時鐘?

? ?? ?設計要求嚴格的公司,就算是同步時鐘,數(shù)據(jù)在同步時鐘間傳送時,依然要用meta-stability FF,可以set_false_path

? ?? ?如果放松要求,不用meta-stability FF,則同步時鐘之間是real path,做CTS時,同步時鐘要clock tree balance。

? ?? ?注意不同頻率的同步時鐘的最小時間間隔被用來檢查setup

? ?? ?如果上升下降沿混用的話,setup的時間間隔就只有半個時鐘周期了

? ? Q1.3 如何處理異步時鐘?

? ?? ? 很簡單,set_false_path

? ?? ???注意要from A to B,同時要from B to A

? ? Q1.4 如何定義時鐘?

? ?? ?create_clock 如果指定某個pin/port,就是實時鐘,如果沒有指定pin和port,就是虛擬時鐘

? ?? ?巧妙利用waveform選項可以做出不同波形的時鐘

? ?? ?被定義成時鐘的net,在綜合時,自動帶有ideal network和dont_touch的屬性。但是當它被用作data計算延遲時,ideal net的屬性會自動消失

? ?? ?時鐘會自動穿過邏輯單元,停在時序單元的時鐘端,所以用FF產(chǎn)生的分頻時鐘要再用create_generated_clock定義一次

? ? Q1.5 如何處理多選一時鐘?

? ?? ?在實際應用當中,如果這幾個時鐘不會同時出現(xiàn)的話,則在定義時鐘時,只選擇最快頻率的就可以了

? ?? ?如果是多個時鐘同時出現(xiàn),可以用set_case_analysis選一個,

? ?? ?也可以放它們?nèi)歼^去,但是在MUX后面把它們之間set_false_path

? ? Q1.6 巧妙定義時鐘

? ?? ?直接在分頻FF的Q端定義generated clock時,有時會把分頻FF的時序打掉,解決辦法是在分頻FF的Q端加一個時鐘buf,從那個buf的輸出端定義generated clock,從而保證分頻FF自身的時序完整

? ?? ?如果從source clock到generated clock之間有多條路徑,你希望PT用指定的一條路徑來計算時序的話,可以用set_case_analysis, set_disbale_timing 或者一級一級地定義generated clock來引導PT達到你的要求

? ?? ?分頻器時序約束問題

? ?? ?時序分析中同一時鐘的不同路徑問題

? ?? ?請教如下要求的clock在pt中應該怎么create

? ?? ?怎樣設set_case或者別的,才能讓pt選擇同一條clock path

? ? Q1.7 什么時候需要設置latency?

? ?? ?latency分為source latency 和 network latency 兩種。 source latency是源時鐘自帶的,network latency就是CTS后的clock tree insertion delay。

? ?? ?在綜合時,一般不需要latency,

? ?? ?除非,

? ?? ?已知不同clock帶有不同的source latency,并且它們之間有時序要求

? ?? ?預知不同clock會有不同的clock tree insertion delay,不想平衡它們,但是要滿足他們之間的時序要求

? ?? ?做完CTS后,要把network latency去掉

? ?? ?請問set_clock_latency 設太大會有什么不好

? ? Q1.8 如何設置uncertainty

? ?? ?clock uncertainty分為setup和hold,preCTS和postCTS幾種不同的情況

? ?? ?一般的處理原則是:

? ?? ?preCTS,setup: uncertainty = PLL jitter + 預估的clock skew

? ?? ?preCTS,hold: uncertainty = 預估的clock skew

? ?? ?postCTS,set_propagate_clock [all_clocks]

? ?? ?postCTS,setup: uncertainty = PLL jitter

? ?? ?postCTS,hold: uncertainty = 0

? ?? ?有時fundry要求hold uncertainty保留一定的量,這時就把那個保留量加到上面的公式中

? ?? ?sdc文件中對clk的uncertainty、transition、latency的設置

(2) IO端口的約束

? ? Q2.1 如何加IO端口的約束?

? ?? ?最普通的方法是

? ?? ?對輸入端,set_input_delay, set_driving_cell (也有用set_input_transition的,但是不多見)

? ?? ?對輸出端,set_output_delay,set_load

? ?? ?對時鐘端,set_clock_transition

? ?? ?dc綜合時的clock transition應該參考什么設定?

? ?? ?set_drive ,set_load

? ? Q2.2 哪些端口不需要約束?

? ?? ?靜態(tài)信號可以set_false_path,比如reset,test_mode,function_mode_select

? ?? ?不能真的什么約束都不加

? ? Q2.3 什么樣的reset信號可以set_false_path?

? ?? ?如果在工作時,reset信號有效時,時鐘信號不翻轉(zhuǎn),就可以set_false_path

? ?? ?如果reset信號動作時,時鐘也有動作的話,就不能set_false_path

? ? Q2.4 像reset那樣的high fanout信號需要設定為ideal net嗎?

? ?? ?如果是false path的話,可以設為ideal net

? ?? ?一般不需要設為ideal net,讓DC加入buffer tree后,有利于估算功耗和面積

? ? Q2.5 如果有一組輸出信號,需要他們之間對齊,但是不太在乎有多大的延遲,這時應該如何約束?

? ?? ?如果有輸出時鐘的話,在那個輸出時鐘端口定義一個generated_clock,其它信號的output_delay都相對于這個generated_clock而定。只要有max和min,就可以把所有信號卡在一個范圍之內(nèi)

? ?? ?如果沒有輸出時鐘的話,用set_output_delay -reference_pin

? ? Q2.6 如何計算input和output delay?

? ?? ?如果是block的input和output delay,可以預先分配,比如輸出端,輸入端各1/3,中間的連接1/3

? ?? ?block的端口最好都flop-in,flop-out

? ?? ?如果是chip IO,要度其他芯片的IO時序和電路板上面的延遲,比較麻煩

? ?? ?set_input_delay的時間設置

(3) DRV

? ?? ?DRV有時也加DRC,與物理檢測的DRC不是一個概念

? ?? ?DRV包括,

? ?? ?set_max_transition??與工藝相關,65nm的話,在0.6ns左右

? ?? ?set_max_fanout??與工藝相關,一般在12~20之間

? ?? ?set_max_capacitance

? ?? ?set_max_power

? ?? ?set_max_area


(4) false path,multicycle path

? ? Q4.1 什么情況下需要set_false_path?

? ?? ?異步時鐘之間,

? ?? ?到meta-stability 的第一個FF路徑,

? ?? ?靜態(tài)信號

? ? Q4.2 何時會用到multicycle_path?

? ?? ?太長的path,

? ?? ?不會每個周期都變的信號

? ?? ?注意:在RTL中,前端一定要多周期工作一次的功能

? ?? ?一般set_multicycle_path -setup <n周期>

? ?? ?要同時寫set_multicycle_path -hold <n-1周期>

(5) wire load model

? ?? ?wire load model是一種簡單地根據(jù)fanout來估算wire delay的方法,在綜合時,一般根據(jù)設計的大小選擇對應的WLM

? ?? ?有時也會用zero wire load model,這時的clock period要相應減小15~25%,或者clock uncertainty增加15~25%

? ?? ?set_wire_load_model 兩種模式top和enclosed到底有什么區(qū)別?

? ?? ?更加準確的計算wire delay的方法是DC topo和RC physical,

? ?? ?他們在綜合時會粗略地做個place,然后根據(jù)距離來計算延遲

(6) clock gating

? ? Q6.1 如何加clock gating?

? ?? ?局部的clock gating在綜合時,會自動加進去。加clock gating后,不但會減小功耗,還會改善時序,因為本來到D端的邏輯,一部分被移到CK端了,簡化了D端的邏輯

? ?? ?整個block的clock gating,一般直接在RTL里面加,因為DC沒有那么聰明

? ? Q6.2 需要對clock gating加什么特別的約束嗎?

? ?? ?如果使用標準庫里面的ICG單元,不需要附加任何特別的約束,前后端的工具都認得它

? ?? ?如果用latch+and自己搭的clock gating,你要對那個and單元set_disable_clock_gating_check,還要告訴后端,一定把latch和and擺在一起

? ?? ?一般只在沒有動態(tài)切換時鐘時,才可以用一個and/or做clock gating,這時也要set_disable_clock_gating_check

? ?? ?clock gating cell約束

? ?? ?某個domain的clk通過gating關斷重啟后,對這個domain做復位有沒有必要?

(7) case_analysis

? ? set_case_analysis可以強制某個node為0/1

? ? 這個0/1會沿著純邏輯組合單元向前傳送,如果沒有特別設定的話,會停在時序單元上

? ? 注意,只是是向前傳,不會向左右2邊和向后傳

? ? 舉例:

? ? 如果設在輸出端上,那么所有fanin端都會被強制為0/1

? ? 如果只設在某個輸入端上,與之相連的輸出端和其他輸入端都不受影響

(8) ideal net/network

? ? ideal_net只作用于這條net

? ? ideal_network會把這個屬性傳送下去

? ? clock net自動帶有ideal net屬性

? ? 其他net,何時需要設定ideal net?

原文鏈接:https://blog.csdn.net/u014703817/article/details/53705038

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

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

  • https://my.oschina.net/u/4583591/blog/4455472 完整視頻鏈接:鏈接: ...
    非魚知樂閱讀 7,896評論 0 1
  • 以下三個是最經(jīng)常被問到的,基本上屬于介紹性的題目,無所謂正確答案,在我看來,這些不算真正的問題。 Discuss ...
    蜀湘情緣閱讀 6,219評論 0 8
  • 1. 設計約束 上一節(jié)描述了設計環(huán)境的約束: https://mp.weixin.qq.com/s?__biz=M...
    我喜歡唱跳rap打籃球閱讀 1,663評論 0 1
  • 原貼如下,寫的很好,轉(zhuǎn)載備查!http://bbs.eetop.cn/thread-636337-1-1.html...
    airland閱讀 3,220評論 0 2
  • 表情是什么,我認為表情就是表現(xiàn)出來的情緒。表情可以傳達很多信息。高興了當然就笑了,難過就哭了。兩者是相互影響密不可...
    Persistenc_6aea閱讀 125,540評論 2 7