vivao implemment 的时候时序有报错怎么办

 vivao implemment 的时候时序有报错怎么办

首先,在这里整体看一下,都有哪些时序错误,能在代码中处理的就在代码中处理了。

vivao implemment 的时候时序有报错怎么办

一路选下来,可以看到具体是哪个地方的时序错了。基本上都是跨时钟域操作。可以看到是哪个变量,从哪到哪的时钟有问题。最好是先在代码中更改错误。如果代码中更改了以后,还是不行,请继续下面操作:

vivao implemment 的时候时序有报错怎么办

看到OK 点,知道进入下面界面

 

vivao implemment 的时候时序有报错怎么办

界面中 ,红色和橙色标注的就是时序有问题的。需要处理。

后面发现,vivao implemment 的时候时序有报错怎么办

这个颜色的也会错,具体改了有用没有,点到对应颜色,如果该处时序有问题,下面显示的详细路径会报红的。

 

 

点到对应颜色,右键

vivao implemment 的时候时序有报错怎么办

可以选择 set  false path 或者  set  clock  groups   。

set  false path  设置伪路径,不在对特殊时序进行分析。特殊时序有:

1- 测试逻辑 (个人理解测试用的代码)

2- 添加同步电路后的跨时钟域路径等 (为了跨时钟域操作而用到的两个时钟,比如将一个reg 在新的时钟下打两拍这样的操作)

在两个时钟域之间应该相互设置为set_false:

  set_false_path -from [get_clocks clk_a] -to [get_clocks clk_b]

  set_false_path -from [get_clocks clk_b] -to [get_clocks clk_a]

set  clock  groups 用来定义两个时钟是不相关的

set_clock_groups -asynchronous -group clk_a -group clk_b      clk_a和clk_b是异步时钟。

set_clock_groups -physically_exclusive -group clk_a -group clk_b -group clk_c  两时钟物理上不同步存在

set_clock_groups -logically_exclusive\

  -group [get_clocks -of [get_pins clk_core/.../CLKOUT0]] -group [get_clocks -of [get_pins clk_core/.../CLKOUT1]]逻辑互斥,同时只有一个工作

vivao implemment 的时候时序有报错怎么办

到这里,直接OK即可,看到XDC中,会多了几句话。退出,保存,重新编译。看有没有改善吧

或者也可以直接把上面那句话复制到 XDC里面。

set_clock_groups -asynchronous -group [get_clocks -of_objects [get_pins u_ddr_ctrl/u_mig_7series_0/u_mig_7series_0_mig/u_ddr3_infrastructure/gen_mmcm.mmcm_i/CLKFBOUT]] -group [get_clocks -of_objects [get_pins u_clk_pll/inst/mmcm_adv_inst/CLKOUT0]]


set_clock_groups -asynchronous -  这句话的意思是,时使两个group的时钟之间不关联