今天要介紹的時序分析基本概念是Slew,信號轉換時間,也被稱為transition time。是指電壓從10%VDD上升到90%VDD所需要的時間,或者是從90%VDD下降到10%VDD所需要的時間,當然也可以是20%VDD上升到80%VDD的時間,具體要看timing lib庫裡面的定義,如:
# Falling edge thresholds:
slew_lower_threshold_pct_fall : 10.0;
slew_upper_threshold_pct_fall : 90.0;
# Rising edge thresholds:
slew_lower_threshold_pct_rise : 10.0;
slew_upper_threshold_pct_rise : 90.0;
信號上升和下降的轉換時間過長意味著該單元內部電路的速度很慢,延時就比較長。在sdc中,用以下命令來限制slew大小。
set_max_transition 0.1 -clock_path [all_clocks]
對CTS來說,這也是一個target值,當你設定了一個slew target後,CTS engine會通過插入buffer或者upsize等操作,儘可能地去滿足整個target值。當然,slew也不是越小越好,過小的slew會導致CTS階段在clock path上插入過多的buffer,從而影響到skew的balance以及功耗和面積。
碼字不易,且賞且珍惜~