进入IP Core的时钟,都不需要再手动添加约束么?
在FPGA的时序约束中,主时钟约束是第一步就要做的,主时钟通常有两种情形:一种是时钟由外部时钟源提供,通过时钟引脚进入FPGA,该时钟引脚绑定的时钟为主时钟:另一种是高速收发器(GT)的时钟RXOUTCLK或TXOUTCLK。对于7系列FPGA,需要对GT的这两个时钟手工约束:对于UltraScale FPGA,只需对GT的输入时钟约束即可,Vivado会自动对这两个时钟约束。
对于进入到IP Core(比如MMCM)的主时钟,只有我们在IP Core中指定了时钟频率,那么Vivado会自动产生一个约束文件来约束该输入的主时钟。
我们以Vivado自带的wave_gen工程为例,该工程中输入一对差分的时钟信号,进入到MMCM中,我们无需再对这个主时钟添加约束
image-20211201212052941
可以看到,综合后这个时钟已经被约束了:
这是因为该ip生成的xdc文件中,已经包含了对这个主时钟的约束,如下图:
image-20211201212319040
所以很多同学可能误以为只要是进了IP Core的主时钟,都不需要再手动添加约束了。
但如果收入的差分时钟先经过了IBUFDS,然后再以单独的形式进入了MMCM:
综合后,可以看到该时钟是没有被约束的:
image-20211201211756429
此时由于输入时钟并非来自管脚,所以Source选择为Global Buffer
image-20211201212822218
再看刚刚的clk_core.xdc文件,已经没有产生主时钟的约束了:
image-20211201212925336
为什么会没有这个约束了呢?因为输入的时钟并非来自管脚,IP Core并不知道从哪个pin输入的,所以就无法添加主时钟的约束,此时就需要我们再手动添加约束。
相关文章
- centos vim不可用的原因与解决方法
- centos7如何安装vim
- centos7安装后vim用不了如何解决
- centos vim不变色如何解决
- wingide6不能中文注释的解决方法
- centos不支持vim怎么办
- 怎么使用pycharm.sh命令运行程序
- centos中的vim是什么
- pycharm如何删除一行
- Netty-架构设计及入门程序-3
- 基于AQS实现自定义同步类
- pycharm新建django项目时报错
- RestTemplate上传文件
- @DS("slave") 多数据源兼容事务问题解决方案
- “I/O多路复用”和“异步I/O”的前世今生
- Centos8防火墙设置
- pycharm没有免费的么
- pycharm怎么自动排版
- Java-Stream-flatMap
- linux笔记-工作