Set False Path 方法

背景——在设置Set False Path之前需要做的事情。

在不改变代码情况下,时序例外约束可以说是vivado中满足时序要求最有效的方法。因为vivado默认所有时钟路径之间都是同步的,会尝试分析和满足所有的路径。通过设置时序例外约束,告诉vivado软件不需要分析和满足某些时序路径(通常异步),vivado就会尽量去分析和满足真正的同步时序路径。不过一定要注意,在进行时序例外约束时,一定要确保做了亚稳态处理,比如打两拍、异步FIFO、双端口RAM等,或者能确定约束路径发生亚稳态也没关系(比如vio)

1.

使用set_false_path:(是需要设定目的端和起始端两个方向)
set_false_path -from [get_clocks clk1] -to [get_clocks clk2]
set_false_path -from [get_clocks clk2] -to [get_clocks clk1]
使用set_clock_group:
set_clock_group -name asyn_clocks -asynchronous -group clk1 -group -clk2(只需要写一句即可)

另注:Set False Path的两个时钟需要设置两次,例如CLK1与CLK2,需要设置CKL1 -> CLK2和CLK2 -> CLK1两个方向;

而set_clock_group只需要设置一次;

2.

当需要对指定的寄存器的路线做Set False Path的操作有时会特别麻烦,解决方法如下:

这条命令可以放在任何寄存器上,除了设置它的值为TRUE外还可以设置为FALSE.

例子:(*ASYNC_REG = "TRUE"*) reg [0:0]  async_rst = 0;



 

你可能感兴趣的:(fpga开发)