电子技术萌新
会的,而且问得挺细。我去年面试就被问到过。
多周期路径和虚假路径的设置原理,面试官可能想看你有没有实际做过时序分析,而不是只会跑默认流程。多周期路径的原理就是放宽建立时间检查的周期数,因为数据不需要每个时钟都有效。虚假路径的原理是直接告诉工具这条路径不用检查时序。
命令的话,Vivado和Quartus的Tcl命令你得熟悉。比如set_multicycle_path -setup 2 -from [get_cells regA] -to [get_cells regB],这是把建立时间检查放宽到2个周期。hold时间通常要跟着调整,一般是set_multicycle_path -hold 1 -from ... -to ...。虚假路径更简单,set_false_path -from [get_clocks clkA] -to [get_clocks clkB]。
CDC导致的时序违例,在约束层面,核心思想就是隔离异步时钟域。用set_clock_groups -asynchronous把异步时钟组声明好是最基本的。对于具体的CDC路径,如果已经用了同步器,常见的优化策略是把同步器第一级的输入路径设成false path,或者设一个很大的延迟约束,因为这里的关键是亚稳态恢复时间,而不是逻辑延迟。
注意别乱设false path,设错了会掩盖真正的时序问题。一定要根据设计的功能来,最好在文档里记下来为什么设这条false path。
