Vivado会分析所有XDC约束时钟间的时序路径。通过set_clock_groups约束不同的时钟组(clock group),Vivado在时序分析时,当source clock和destination clock属于同一个时钟组时,才会分析此时序路径;而source clock和destination clock属于不同时钟组时,则会略过此时序路径的分析。下面讲解一下set_clock_groups约束:

Asynchronous Clock Groups

为了判别划分时钟组,将不同的时钟划分成以下两类:

a.  Synchronous Clocks

当两个时钟间的相位是固定的,则可以称这两个时钟为同步时钟(synchronous clock)。一般同源,如由同一个MMCM or PLL产生的两个时钟可以称为同步时钟。因此可以将主时钟和与之对应的衍生时钟约束成同一个时钟组。

b.  Asynchronous Clocks

无法判定两个时钟间相位时,则可以称这两个时钟为异步时钟(asynchronous clocks)。两个来自不同晶振的时钟,一定是异步时钟。通常情况下设计中不同的主时钟肯定是异步时钟,因此可以将这两个主时钟及其衍生时钟约束成不同的时钟组。

对于异步时钟,由于其两个时钟间相位不固定,时序分析的结果定然不确切,因此这部分的分析可以通过设置时钟组约束忽略,但是这并不意味着这部分的设计能工作正常;对于异步时钟间的设计,必须做跨时钟域处理,避免亚稳态的产生。

异步时钟组约束命令如下:

set_clock_groups-asynchronous-group [get_clocks {clk_Aclk_B}] 

-group [get_clocks {clk_C}]-group 

 如图1中结构,串行AD1和串行AD2接口都带有随路时钟SCLK1和SCLK2,SCLK1和SCLK2属于异步时钟;ADC串并转换后的数据需要经过跨时钟域处理(CDC),转到GCLK主时钟域,GCLK与ADC的时钟也属于异步时钟,因此约束命令如下:

set_clock_groups-asynchronous -group [get_clocks {SCLK1}]

-group [get_clocks {SCLK2}] -group [get_clocks {GCLK}]

(图1)

​​​​​​​Exclusive Clock Groups

 在有些设计中,可能需要不同的工作模式,对应需要不同的时钟输入,通过时钟选择模块选择需要的时钟,如BUFGMUX,BUFGCTRL or A LUT。但是这些输入的不同时钟间是互斥的,即一个模式只允许一个时钟输入,不同时钟间是没有时序关系,因此只需单独对每个时钟做时序分析即可,添加互斥时钟组可使Vivado进行时序分析时忽略互斥时钟组间的时序路径,约束命令如下:

set_clock_groups -logically_exclusive -group{clk_A} -group {clk_B}

set_clock_groups –physically_exclusive -group{clk_A} -group {clk_B}

如图2中结构,可将CLKMUX1,CLKMUX2约束成互斥时钟组,约束命令如下:

set_clock_groups - physically_exclusive  -group [get_clocks {CLKMUX1}] 

-group [get_clocks {CLKMUX2}]

(图2)

​​​​​​​

【 Vivado 】时钟组(Clock Groups)相关推荐

  1. (41)时钟组Clock Group介绍

    (41)时钟组Clock Group介绍 1 文章目录 1)文章目录 2)时序约束引言 3)FPGA时序约束课程介绍 4)时钟组Clock Group介绍 5)技术交流 6)参考资料 2 时序约束引言 ...

  2. (78)Vivado设置时钟组约束

    (78)Vivado设置时钟组约束 1 文章目录 1)文章目录 2)时序约束引言 3)FPGA时序约束课程介绍 4)Vivado设置时钟组约束 5)技术交流 6)参考资料 2 时序约束引言 1)什么是 ...

  3. Vivado时钟分组约束的三类应用

    在Vivado中通过set_clock_groups来约束不同的时钟组,它有三个选项分别是-asynchronous,-logically_exclusive和-physically_exclusiv ...

  4. 批处理编程的异类——时钟(Clock)

    批处理编程的异类--时钟(Clock) 1.暂停(Pause).延迟(Delay).等待(Wait).睡眠(Sleep) 1)for+set+if,时间精度为0.01秒,适用平台为WinNT/2K/X ...

  5. Linux 的帐号与群组:有效与初始群组、groups, newgrp

    关于群组: 有效与初始群组.groups, newgrp 认识了帐号相关的两个档案 /etc/passwd 与 /etc/shadow 之后,您或许还是会觉得奇怪, 那么群组的设定档在哪里?还有,在 ...

  6. (43)生成时钟Generated Clock简介

    (43)生成时钟Generated Clock简介 1 文章目录 1)文章目录 2)时序约束引言 3)FPGA时序约束课程介绍 4)生成时钟Generated Clock简介 5)技术交流 6)参考资 ...

  7. (08)Vivado时钟约束

    (08)Vivado时钟约束 1 文章目录 1)文章目录 2)时序约束引言 3)FPGA时序约束课程介绍 4)Vivado时钟约束 5)技术交流 6)参考资料 2 时序约束引言 1)什么是静态时序分析 ...

  8. linux 设置系统时钟,linux clock命令查看和设置硬件时钟

    clock调整 RTC 时间 使用clock命令可以查看和设置硬件时钟,可以显示现在时钟,调整硬件时钟,将系统时间设置成与硬件时钟一致,或是把系统时间回存到硬件时钟.clock命令是hwclock命令 ...

  9. 置放群组(Placement groups)

    关注公众号:AWS爱好者(iloveaws) 文 | 沉默恶魔(禁止转载,转载请先经过作者同意) 网站:www.iloveaws.cn Hello大家好,欢迎来到<AWS解决方案架构师认证 Pr ...

最新文章

  1. 飞天AI平台到底哪里与众不同?听听它的架构者怎么说
  2. 我的2013年度总结
  3. ffmpeg 的使用备忘
  4. [Angularjs]视图和路由(一)
  5. 解决开启Vue项目缺少node_models包问题
  6. python票务系统_列车票务系统
  7. springboot入门书籍推荐,“最粉嫩
  8. jquery检测input变化_检测jQuery中的输入变化?
  9. 《Kotlin项目实战开发》第1章 Kotlin是什么 1
  10. JavaScriptJquery 练习 扫雷
  11. Java项目:SSM高校教职工差旅报销管理系统
  12. 经验:中小微企业网站上云怎样选择适合自己的云虚拟主机?
  13. 小Z的袜子【莫队算法】
  14. c语言 椭圆,C语言画圆椭圆
  15. 王炜:城市虚拟交通系统与交通发展决策支持模式研究
  16. 基于S32K的MBD开发环境搭建
  17. 【Python】求笛卡尔乘积
  18. react native ScrollView实现滑动锚定,滑动到指定位置
  19. SpringBoot 自动配置的坑
  20. 2022年保研经验贴建议个人经历:计算机软件工程

热门文章

  1. Ubuntu系统(一)-安装篇
  2. 医疗卫生信息化 医学信息 医疗信息化 医院管理 资料下载
  3. Tree Recovery--POJ 2255
  4. python搜索列表内_使用Python在另一个List中搜索列表的值
  5. golang byte转string_golang系列——实战http服务器
  6. 第十六届智能车竞赛赛道电磁线圈铺设方法
  7. 使用LCC网络补偿设计无线功率系统
  8. MIC4451驱动单管MOS,IGBT 测试实验
  9. 2020人工神经网络第一次作业-解答第一部分
  10. 小型荧光驱动电路实验电路