ISE多周期时序约束
时间:10-02
整理:3721RD
点击:
有没有哪位大神对ISE的时序约束比较熟悉,尤其是多周期约束这一块。在Quartus中使用比较简单,而且相关资料也比较多,但是ISE中的资料好像不是那么多,而且也没有针对具体例子进行分析。官网上给出的例子是如下形式的:
NET "clk_a" TNM_NET = "clk_a";
TIMESPEC "TS_clk_a" = PERIOD "clk_a" 10.0 ns HIGH 50%;
NET "clk_b" TNM_NET = "clk_b";
TIMESPEC TS_FastPath = FROM clk_a TO clk_b 20 ns;
而我们的违规路径多是从某个模块下的寄存器到另一个模块下的寄存器,时序分析报告中会给出具体的路径。在QII中可以针对这条路径进行多周期约束(无论是setup违规还是hold违规),而且路径的源点和终点即使报告中给出的。但是在ISE中好像不是这样,首先是官网资料中没有提及到对setup以及hold的约束,只有一个统一的称呼即from to(见上例),这种约束应该是针对时钟的约束,实用性好像不是那么大。后来我在官网资料中又看到了一种约束方法,即使用INST以及TNM对违规路径进行重新命名,然后用TIMESPEC进行约束,见下例:
INST uut/m1/n1/reg1/data1 TNM=source_data;
INST uut/m2/n2/reg2/data2 TNM=destination_data;
TIMESPEC TS_TS_FastPath = FROM source_data TO destination_data TS_clk*2;
上例中INST之后的即是具体路径的源点和终点(具体名字是我随便起的,大家可以忽略),我按照这种方法在ISE中进行了约束,结果还是一样。我在想,官网资料出错的可能性几乎没有,那就是我理解和使用的错误,所以请各位大神指点一下到底该怎么用,不胜感激!
NET "clk_a" TNM_NET = "clk_a";
TIMESPEC "TS_clk_a" = PERIOD "clk_a" 10.0 ns HIGH 50%;
NET "clk_b" TNM_NET = "clk_b";
TIMESPEC TS_FastPath = FROM clk_a TO clk_b 20 ns;
而我们的违规路径多是从某个模块下的寄存器到另一个模块下的寄存器,时序分析报告中会给出具体的路径。在QII中可以针对这条路径进行多周期约束(无论是setup违规还是hold违规),而且路径的源点和终点即使报告中给出的。但是在ISE中好像不是这样,首先是官网资料中没有提及到对setup以及hold的约束,只有一个统一的称呼即from to(见上例),这种约束应该是针对时钟的约束,实用性好像不是那么大。后来我在官网资料中又看到了一种约束方法,即使用INST以及TNM对违规路径进行重新命名,然后用TIMESPEC进行约束,见下例:
INST uut/m1/n1/reg1/data1 TNM=source_data;
INST uut/m2/n2/reg2/data2 TNM=destination_data;
TIMESPEC TS_TS_FastPath = FROM source_data TO destination_data TS_clk*2;
上例中INST之后的即是具体路径的源点和终点(具体名字是我随便起的,大家可以忽略),我按照这种方法在ISE中进行了约束,结果还是一样。我在想,官网资料出错的可能性几乎没有,那就是我理解和使用的错误,所以请各位大神指点一下到底该怎么用,不胜感激!
没有大神对这方面比较熟悉么