当前位置:   article > 正文

时钟周期约束的方法_pll输入输出时钟异步约束

pll输入输出时钟异步约束

时钟约束和物理约束一般分为2个文件一目了然。
约束的属性告诉我们约束使用在综合还是实现。时序约束一般在综合和实现都需要用到,物理约束一般应用于实现。

一、primary clock

primary clock来自端口或者gigabit传输器输出。
在这里插入图片描述
在这里插入图片描述

二、generated clock

生成时钟包括用户分频时钟和pll/MMCM/BUFR生成的时钟。其中后者生成的时钟无须约束,只需要约束输入即可。
在这里插入图片描述
在这里插入图片描述
注意自动生成的时钟名字一般就是输出net的名字,比如上图的cpuclk。
注意上图get_pins 指向的是mmcm的pin,而不是bufg的pin;同样get_nets也指的是mmcm相连的nets。

在这里插入图片描述
pll的时钟重新命名后,命名的是bufg的名字和输入时钟的命令,而不是mmcm相连的net的名字。

三、report_clocks的说明

在这里插入图片描述

四、时钟的重命名

时钟重命名的好处是:1.简化了vivado自动生成的时钟名字的繁琐,可以看到重新命名后相比较上一副图clk名字有clk_rx_clk_core变为clk_rx,clk_tx同理。2.如果我们在约束时,如果要引用这个时钟,直接写get_clocks clk_rx,不用想之前那么复杂写一串子路径get_clocks -of object [get_pins xxxx/xxx/xxxx]。

在这里插入图片描述

五、时钟的分组

时钟的分组:同步时钟、异步时钟、不可扩展时钟
在这里插入图片描述
clk0和clka是同步时钟;同理clk0和clkb是同步时钟。clka、clkb、clkc、clkd也是同步时钟。因为他们共享时钟源。

不可扩展的时钟
在这里插入图片描述
比如上图clk0的周期是6ns;clk1的周期是4ns。第一条红线表示的意思是从clk0的0时刻发送数据,在clk1 的4时刻接收数据,建立时间为4ns;第二天红线表示从clk0的6时刻发送数据到clk1的8时刻接收数据,建立时间是2ns。他们的公共最小周期是12ns,对于软件来说他们的建立时间就是这两种情况。但是对于时钟1周期是5.125ns,时钟2的周期是6.666ns,这两个时钟没有公用周期,建立时间无法可知,软件会进行1000个时钟周期分析,当分析后无法确定公共时钟周期,也就是无法确定发送沿和捕获沿的时钟关系,软件会按0.01ns做建立时间分析,显然不合理,所以在设计的时候要注意不要出现跨时钟域的情况。

异步时钟约束
在这里插入图片描述
两个来自不同的时钟源产生的时钟,要告诉软件是异步时钟。上图异步时钟组的名字可以忽略。
**默认情况下,vivado均会认为所有的时钟都是同步的。如果一个项目有多个锁相环,锁相环输入来自两个不同的晶振,两个锁相环输出的时钟是异步时钟,要告诉软件是异步时钟,vivado不进行分析时钟关系。**告诉软件的方法,通过2个命令,一个是set_clock_groups,一个是set_falus命令,前者是双向的,后者是单向的。
独立时钟组
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/722546
推荐阅读
相关标签
  

闽ICP备14008679号