硅农预备役2024
哈,我笔试时就栽在虚拟时钟(virtual clock)上过!这个经常考。比如输入信号来自一个外部芯片,其时钟和片内时钟不同频但同源,这时用create_clock -name v_clk -period 15(在端口上不存在,是虚拟的)来建模外部时钟,再set_input_delay -clock v_clk -max 4 [get_ports data_in]。
还有对复位或异步控制路径的约束,常用set_false_path,因为复位是异步的,不需要检查时序。但如果是同步复位,就要用set_multicycle_path吗?不一定,看设计。笔试可能会给个电路图让你判断。
另外,时序例外中,set_disable_timing也偶尔考,用来打断特定单元内部的时序弧,比如打破组合逻辑环。但实际中慎用。
关于复杂场景,我建议你重点理解衍生时钟的-source和-master_pin区别,多周期路径的hold调整原理,以及set_clock_groups的三种模式(asynchronous, exclusive, logically_exclusive)。笔试大题常把这些混在一起,让你写完整约束。比如一个系统有PLL生成多个时钟,还有门控时钟,要求约束所有时钟和跨时钟域。步骤是先定义主时钟,再定义生成时钟,然后对异步组用set_clock_groups,最后对特定多周期路径设例外。
