時序分析基本概念介紹——SDC概述
今天我們要介紹的時序概念是設計約束檔案SDC. 全稱Synopsys design constraints. SDC是一個設計中至關重要的一個檔案。它對電路的時序,面積,功耗進行約束,它是設計的命脈,決定了晶片是否滿足設計要求的規範。Timing工程師在release sdc時必須非常小心,一個錯誤的false path或者case constant就有可能導致整塊晶片不工作。
Timing Constraint 為使用者所給定,用來檢驗設計電路時序的準則。我們在做STA前首先要了解各種約束是做什麼的。
Timing Constraint按照它們的用途,大致分為以下幾類:
(1)描述晶片的工作速度,即時鐘的頻率,包括create_clock,create_generated_clock
(2)描述晶片的邊界約束,包括set_input_delay, set_output_delay等
(3)描述晶片的一些設計違反rule(DRV),包括set_max_fanout,set_max_capacitance, set_max_transition等
(4)描述設計中一些特殊的路徑,包括set_false_path,set_multicycle_path等
(5)描述設計中一些需要禁止的timing arc,例如set_disable_timing
需要注意的是,設計的不同階段我們使用的sdc都有所不同(當然,有的公司比較強大,會有一套golden sdc)。比如說,綜合時由於模型的粗糙,我們會選擇過約sdc,將時鐘頻率設得更高一些;CTS之前,由於skew的不確定性,通常我們也會加大uncertainty;還有signoff tool與PR工具correlation問題,margin的設定也會不一樣。
那我們如何去合理定義一個設計的sdc呢?
這是一項非常有難度的工作,其實常用的sdc命令就以下幾條,但要準確運用他們可不容易。
clock相關:
create_clock
create_generated_clock
set_clock_uncertainty
set_clock_groups
set_input_delay
set_output_delay
系統介面相關:
set_input_transition
set_load
set_driving_cell
時序特例相關:
set_false_path
set_multicycle_path
邏輯賦值相關:
set_case_analysis
接下來幾篇文章會分別介紹這些命令
還有一個最重要的前提條件是:我們必須要儘早有一張結構清晰的clock結構圖。而且是越早做越好。clock結構最好是讓前端設計人員給你,當然也可以通過cad軟體自己去畫一張。這邊介紹一個比較好用的綠色小軟體TinyCad. 簡單易學~~
也可以通過Verdi來trace電路結構,這也是很方便的,只需要讀入設計的網表就行
好了,今天就大致介紹一下sdc的基本概念,以後會分別介紹幾個重要的sdc命令。