SDC設計限制(2)——信号相關限制
作者:夏風喃喃
參考:綜合與時序分析的設計限制 —— Synopsys設計限制(SDC)實用指南
文章目錄
- SDC設計限制(2)——信号相關限制
-
- 一. 端口延遲(外部延遲)
-
- 1.1 set_input_delay
- 1.2 set_output_delay
- 二. 完整的端口限制
-
- 2.1 set_drive(驅動電阻)
- 2.2 set_driving_cell(驅動單元)
- 2.3 set_input_transition(輸入過渡)
- 2.4 set_port_fanout_number(扇出數)
- 2.5 set_fanout_load(扇出負載)
- 2.6 set_load(負載)
一. 端口延遲(外部延遲)
1.1 set_input_delay
set_input_delay
[-clock clock_name] #指定參考時鐘,如-clock CLK
[-clock_fall] #參考時鐘是下降沿觸發時打開
[-level_sensitive] #啟動元器件為鎖存器時使用,一般不用
#當子產品輸入端口信号上升沿和下降沿的輸入到達時間不同
#使用-rise與-fall分别限定,但一般路徑延遲相似,不會經常使用
[-rise]
[-fall]
[-max] #限定延遲值最大值,實作建立檢查
[-min] #限定延遲值最小值,實作保持檢查
[-add_delay] #同一個端口額外的延遲限制,則需使用,否則會被覆寫
[-network_latency_included] #額外指定時鐘network延遲,不常使用
[-source_latency_included] #額外指定時鐘source延遲,不常使用
delay_value port_pin_list #延遲的數值,機關ns;定義輸入的端口
1.2 set_output_delay
set_output_delay
[-clock clock_name] #指定參考時鐘,如-clock CLK
[-clock_fall] #參考時鐘是下降沿觸發時打開
[-level_sensitive] #啟動元器件為鎖存器時使用,一般不用
#當子產品輸入端口信号上升沿和下降沿的輸入到達時間不同
#使用-rise與-fall分别限定,但一般路徑延遲相似,不會經常使用
[-rise]
[-fall]
[-max] #限定延遲值最大值,實作建立檢查
[-min] #限定延遲值最小值,實作保持檢查
[-add_delay] #同一個端口額外的延遲限制,則需使用,否則會被覆寫
[-network_latency_included] #額外指定時鐘network延遲,不常使用
[-source_latency_included] #額外指定時鐘source延遲,不常使用
delay_value port_pin_list #延遲的數值,機關ns;定義輸出的端口
二. 完整的端口限制
2.1 set_drive(驅動電阻)
set_drive
[-rise][-fall] #指定驅動信号的上升或下降沿
[-min][-max] #指定驅動電阻的最小或最大值,小電阻驅動能力大,過渡快
resistance_value #指定驅動電阻的數值
port_list #指定驅動目标的輸入端口
2.2 set_driving_cell(驅動單元)
set_driving_cell
[-lib_cell lib_cell_name] #指定子產品的驅動單元,如-lib_cell FA
[-rise][-fall] #指定驅動信号的上升或下降沿
[-min][-max] #指定最強或最弱驅動單元合集
[-library lib_name] #指定驅動單元所在的庫
[-pin pin_name] #指定驅動單元用于驅動的輸出引腳
[-from_pin from_pin_name]#指定驅動單元輸入引腳,不同輸入,輸出過渡時間不同
[-multiply_by factor] #過渡時間的倍乘因子,多驅動目标時驅動下降
[-dout_scale] #電氣特性擴充與降額,不使用時需使能此開關
[-no_design_rule] #防止驅動引腳設計規則轉移到目标輸入端口
[-clock clock_name] #指定驅動單元目标端口的時鐘
[-clock_fall] #表示時鐘下降沿驅動
[-input_transition_rise rise_time] #輸入上升過渡時間
[-input_transition_fall fall_time] #輸入下降過渡時間
port_list #被驅動的輸入端口
常用選項是指定驅動單元的名稱和驅動單元的端口,其他不常用。通過
set_drive
和
set_driving_cell
可以計算出過渡時間,但也可以通過下面
set_input_transition
指定過渡時間。
2.3 set_input_transition(輸入過渡)
set_input_transition
[-rise][-fall] #指定驅動信号的上升或下降沿
[-min][-max] #指定最小或最大過渡時間
[-clock clock_name] #指定時鐘
[-clock_fall] #表示時鐘下降沿驅動
transition port_list #指定限制的端口
2.4 set_port_fanout_number(扇出數)
set_port_fanout_number
value #指定扇出數
port_list #指定限制的端口
2.5 set_fanout_load(扇出負載)
set_fanout_load
value #指定扇出負載值
port_list #指定限制的端口
2.6 set_load(負載)
set_load
[-min][-max] #指定最小或最大負載
[-subtract_pin_load] #标注淨電容負載時,需要打開避免與後端輸入負載重複
[-pin_load] #指定引腳負載
[-wire_load] #指定線路負載
value #指定負載值
objects #指定限制的端口
set_load
與
set_fanout_load
不同,
set_load
指定負載的實際電容負載,而
set_fanout_load
是根據标準負載指定負載值。電容負載=标準負載×單個标準負載的電容負載。