今天要介绍的基本sdc是系统接口sdc。主要包括set_drive, set_driving_cell, set_input_transition, set_load这四条命令,都是和端口上的驱动负载有关.
set_drive:设置输入端口或者双向端口的电阻值,主要是为了更加精确的估计输入电路的延迟,我们需要知道信号到达输入端口的transition time,set drive使用一个确定的值来估计输入端的输入电阻,从而得到输入端口的延迟,该值越小,驱动能力越强。
例:set_drive 2.0 [get_ports in1]
注意:不能使set_drive值为0,这样输入就具有无限大的驱动能力,意味着transition time为0.
set_driving_cell:这个约束其实跟set_drive实现的是同一个功能,指使用设计库中的某一个单元来驱动输入端口,然后按照该单元的输入电阻来计算tranition time,从而得到输入端口的延迟。通常要比set_drive使用更多,一般用在block level上, 因为会考虑OCV等因素,会更加准确一点。
例:set_driving_cell-lib_cell AND -from_pin B -pin Y IN1
set_input_transition:设定输入端口的transition time,一般用于chip io pad约束,因为Pad上电压都比较高,对应的capacitance和transition也比较大,没法用driving cell.
例:set_input_transition 0.8 [get_ports DATA_IN*]
set_load:设置输出电路的负载。由于外部电路的负载将会影响到接到端口上单元的延迟,因此需要对端口的带负载能力做限制。为了比较精确地计算出输出电路的延迟,我们需要知道输出电路的所有负载。电路负载电容越大,延迟时间越小。
例:set_load 1.5 -min -pin_load [get_ports in1]
注意:不能使负载电容为0,这样输出端口就具有无穷大的驱动能力
全部0条评论
快来发表一下你的评论吧 !