广告

12. False Path (Timing Constraints in Vivado)

2017-1-11 11:03 290 0

在FPGA设计中,并不是所有的路径都需要做时序分析,称之为假路径(false path),比如有些路径在正常工作时并没有实现具体的逻辑功能,或者一些测试阶段使用的逻辑;有些是不需要做时序分析,如跨时钟域路径。


可以通过添加false_path约束,告知vivado在时序分析时忽略这些路径,这样带来的好处有:


1. 减少编译时间:vivado不需要对这些路径进行时序分析,也不需要为了优化这些路径而在P&R中花过多的时间;

2. 增加结果可靠性:约束false path并不是让vivado**,而是在实际工作中确实并不需要考虑这些路径。如果不约束,反而会使vivado偏离了正规,在努力优化false path时可能忽略了true path的时序问题。

set_false_path约束命令如下,可以约束两个节点(node_list)间的路径,也可以约束两个时钟间的所有路径:


 set_false_path [-setup] [-hold] [-from <node_list>] [-to <node_list/clock>] [-through <node_list/clock>]

注:false path约束和multicycle path约束同属于时序例外(timing exception)的范畴,两者的区别是:false path约束彻底取消对该路径的时序分析,而multicycle path约束只是放松时序分析的要求,vivado依然会对multicycle path进行时序分析和优化。


set_false_path可以直接对两节点进行约束,如图1所示路径,由于两个数据选择器由同一个信号控制,数据流分别连接了两个数据选择器的a0端和a1端,因此不可能有数据通过,可对REGA和REGB间的路径做false path约束,命令如下:


 set_false_path -from {REGA} -to {REGB}


另外set_false_path也可以直接对两时钟进行约束,表示将所有两个时钟间的路径都设置成false path,如下所示:


set_false_path -from [get_clocks CLKA] -to [get_clocks CLKB]

之前关于时钟约束的博文中有介绍,对两异步时钟需要设置不同的时钟组,可以通过set_clock_group约束,如下命令所示


set_clock_groups -group CLKA -group CLKB

set_false_path约束异步时钟和set_clock_group约束能达到相同的功能,不同的是set_clock_group同时约束了CLKAàCLKB和CLKBàCLKA的路径;而set_false_path是单向的,如上例中只约束了CLKAàCLKB的路径,如下两条命令就与set_clock_group等价了:


set_false_path -from [get_clocks CLKA] -to [get_clocks CLKB]

set_false_path -from [get_clocks CLKB] -to [get_clocks CLKA]


广告

文章评论 0条评论)

登录后参与讨论
相关推荐阅读
Hoki 2017-01-11 17:35
LX9开发板呼吸灯实现
对LX9开发板硬件评测后,从这一节开始真正进入FPGA开发的世界。很多开发板的例程中必有跑马灯实验,老跑马也没意思,咱来把新潮的,整一个呼吸灯。 呼吸灯最初是出现在apple公司的笔记本产品中,当合上...
Hoki 2017-01-11 16:47
LX9的microblaze配置
虽然XC6SLX9芯片资源比较少,但是嵌一个microblaze还是搓搓有余的,这一节就来评测一下在XC6SLX9上microblaze的配置。 有两种方法配置microblaze,一是在ISE软件中...
Hoki 2017-01-11 16:32
zynq评测
Zynq芯片是业界第一款在FPGA中集成ARM核的芯片,由FPGA的发明者xilinx公司推出的。Zynq严格来说不能以FPGA来定义它,因为其是以处理器为中心的平台,能够在单芯片上提供软、硬件和 I...
Hoki 2017-01-11 16:19
u-boot
Zyny芯片启动加载分为3步: 1. 芯片上电启动,首先读取BootROM中的程序,初始化一些必要的外设,然后根据专用引脚电平判断该从何处启动first stage Bootloader(FSBL),...
Hoki 2017-01-11 16:09
基于zynq的交叉编译平台
Zynq芯片的最大特点是其集成了双ARM Cortex-A9处理器,因此zynq的应用基本是以这个ARM核为核心,再配合FPGA逻辑作为协处理器,几乎能实现所有较复杂的应用。并且在ARM上可以跑操作系...
Hoki 2017-01-11 15:54
u-boot image生成
这节介绍一下如何生成u-boot image文件,在SDK软件中点击Xilinx Tools→Create Boot Image工具即可生成,但是生成image文件需要首先集齐3个文件:u-boot....
我要评论
0
0
广告