热度 10| ||
set_multicycle_path命令用于设置多周期路径,多周期路径(Multicycle Path)是指在数字电路设计中,某些信号路径的传输延迟超过一个时钟周期,但仍然能够满足逻辑功能的情况。具体解释和含义就不多介绍了,主要记录下以下几个option的用法:
命令格式如下: set_multicycle_path [-setup] [-hold] [-start] [-end] [-from list] [-to list] [-through list] path_multiplier
path_multiplier:setup默认为1,hold默认为0;
setup:表示对setup设置multicycle,设置setup option,默认移动(end clock)capture clock,-setup = -setup -end;
hold:表示对hold设置multicycle,设置hold option,默认移动(start clock)launch_clk,-hold = -hold -start;
start:表示强制移动的为start clock即launch clock;
end: 表示强制移动的为end clock即capture clock。
应用实例:
1、同频同相
通常,对于同步时钟域内,时序分析中setup默认是在一个周期内分析,hold分析是在当前时刻进行分析
默认的时序检查情况为单周期,此时的multicycle默认设置如下(单周期路径默认关系):
set_multicycle_path 1 -setup -from U1/CK -to U2/CK
set_multicycle_path 0 -hold -from U1/CK -to U2/CK
当设置如下约束时,对setup设置multicycle 2,setup默认值为1,因此设置2时,意味着将capture clock向右移动(2-1)个周期(不指定-start/-end,默认-end),此时hold还是默认设置0,setup多周期的改变影响hold check,两个时钟之间的波形关系如下:
set_multicycle_path –setup 2 –from U1/CK –to U2/D
当设置如下约束时,在上面对setup设置multicycle 2后,对于hold比较难满足,此时对hold设置multicycle 1,意味着将launch clock向右移动(1-0)个周期(不指定-start/-end,默认-start),setup分析结果不受hold多周期的影响,两个时钟之间的波形关系如下:
set_multicycle_path –setup 2 –from U1/CK –to U2/D
set_multicycle_path –hold 1 –from U1/CK –to U2/D
2、同频反沿(launch下降沿有效)
U1的clock下降沿有效,U2的clock上升沿有效,默认的波形关系如下:
当设置setup multicycle 2时,capture clock向右移动(2-1)个周期
set_multicycle_path –setup 2 –from U1/CK –to U2/D
当设置setup multicycle 2,hold multicycle 1时,capture clock向右移动(2-1)个周期,launch clock也向右移动(1-0)个周期
set_multicycle_path –setup 2 –from U1/CK –to U2/D
set_multicycle_path –hold 1 –from U1/CK –to U2/D
3、快时钟到慢时钟
快时钟到慢时钟,不从0开始,主要为了在设置multicycle看的明显些
当设置setup multicycle 3,而且指定-start,这时要将launch clock向左移动(3-1)个周期,波形如下:
set_multicycle_path –setup 3 -start –from U1/CK –to U2/D
当在setup设置multicycle 3的基础上,在将hold设置multicycle 2时,这时将launch clock向右移动(2-0)个周期,波形如下:
set_multicycle_path –setup 3 -start –from U1/CK –to U2/D
set_multicycle_path –hold 2 -start –from U1/CK –to U2/D
因此要想保证hold的check关系不变,当setup multicycle N,hold multicycle设置为N-1;如果想要让hold更放松,hold也设置为3时,波形关系如下:
set_multicycle_path –setup 3 -start –from U1/CK –to U2/D
set_multicycle_path –hold 3 -start –from U1/CK –to U2/D
4、慢时钟到快时钟
慢时钟到快时钟,对于setup来说,是相当于加严约束,比较难收敛
setup设置multicycle 2,没有指定-start/-end,默认-end,将capture clock向右移动(2-1)个周期,setup和hold的波形关系如下:
set_multicycle_path –setup 2 –from U1/CK –to U2/D
在setup设置multicycle 2的基础上,hold也变严了,如果要保证hold的收敛,将hold保持在0时刻采,hold multicycle设置为1,与-end组合,将capture clock向左移动(1-0)个周期,其波形关系如下:
set_multicycle_path –setup 2 –from U1/CK –to U2/D
set_multicycle_path –hold 1 -end –from U1/CK –to U2/D
总结
1、setup默认multicycle 1,hold默认multicycle 0;
2、当指定setup,不指定-start/-end时,默认-end,移动capture clock;当指定hold,不指定-start/-end时,默认-start,移动launch clock;
3、setup多周期的改变会影响hold check,但setup分析结果不受hold多周期的影响;
4、想保证hold的check关系不变(0沿发0沿采),当setup multicycle N,hold multicycle设置为N-1