前言
sdc的学习还在继续,这次的话题是设置input_max/min_delay / output_max/min_delay。
正向设置
设定一下模块的场景,假设一个模块有三个时钟域,对应的接口如下:
set clka_ports{ \
clka_sig1 \
clka_sig2 \
}
set clkb_ports{ \
clkb_sig* \
}
set clk_sig{ \
clka \
clkb \
clkc \
}
set rst_sig{ \
a_rst_n \
b_rst_n \
c_rst_n \
}
正向设置也就是对每一个时钟域内的接口做单独设置,比如说对a时钟域的接口设置:
set_input_delay -clock v_$clka -max [expr $ratio * $clka_period] [get_ports $clka_ports -filter "direction=in"]
为了防止自己忘了,我要逐项解释下。
-clock就是把时钟和接口对应起来,让dc知道这一组接口是由v_clka来驱动的;
-max就是设置最大时延,[expr $ratio * $clka_period]则是计算得到数值,比如$ratio是0.7,$clka_period