【 Vivado 】时钟组(Clock Groups)
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)相关推荐
- (41)时钟组Clock Group介绍
(41)时钟组Clock Group介绍 1 文章目录 1)文章目录 2)时序约束引言 3)FPGA时序约束课程介绍 4)时钟组Clock Group介绍 5)技术交流 6)参考资料 2 时序约束引言 ...
- (78)Vivado设置时钟组约束
(78)Vivado设置时钟组约束 1 文章目录 1)文章目录 2)时序约束引言 3)FPGA时序约束课程介绍 4)Vivado设置时钟组约束 5)技术交流 6)参考资料 2 时序约束引言 1)什么是 ...
- Vivado时钟分组约束的三类应用
在Vivado中通过set_clock_groups来约束不同的时钟组,它有三个选项分别是-asynchronous,-logically_exclusive和-physically_exclusiv ...
- 批处理编程的异类——时钟(Clock)
批处理编程的异类--时钟(Clock) 1.暂停(Pause).延迟(Delay).等待(Wait).睡眠(Sleep) 1)for+set+if,时间精度为0.01秒,适用平台为WinNT/2K/X ...
- Linux 的帐号与群组:有效与初始群组、groups, newgrp
关于群组: 有效与初始群组.groups, newgrp 认识了帐号相关的两个档案 /etc/passwd 与 /etc/shadow 之后,您或许还是会觉得奇怪, 那么群组的设定档在哪里?还有,在 ...
- (43)生成时钟Generated Clock简介
(43)生成时钟Generated Clock简介 1 文章目录 1)文章目录 2)时序约束引言 3)FPGA时序约束课程介绍 4)生成时钟Generated Clock简介 5)技术交流 6)参考资 ...
- (08)Vivado时钟约束
(08)Vivado时钟约束 1 文章目录 1)文章目录 2)时序约束引言 3)FPGA时序约束课程介绍 4)Vivado时钟约束 5)技术交流 6)参考资料 2 时序约束引言 1)什么是静态时序分析 ...
- linux 设置系统时钟,linux clock命令查看和设置硬件时钟
clock调整 RTC 时间 使用clock命令可以查看和设置硬件时钟,可以显示现在时钟,调整硬件时钟,将系统时间设置成与硬件时钟一致,或是把系统时间回存到硬件时钟.clock命令是hwclock命令 ...
- 置放群组(Placement groups)
关注公众号:AWS爱好者(iloveaws) 文 | 沉默恶魔(禁止转载,转载请先经过作者同意) 网站:www.iloveaws.cn Hello大家好,欢迎来到<AWS解决方案架构师认证 Pr ...
最新文章
- 飞天AI平台到底哪里与众不同?听听它的架构者怎么说
- 我的2013年度总结
- ffmpeg 的使用备忘
- [Angularjs]视图和路由(一)
- 解决开启Vue项目缺少node_models包问题
- python票务系统_列车票务系统
- springboot入门书籍推荐,“最粉嫩
- jquery检测input变化_检测jQuery中的输入变化?
- 《Kotlin项目实战开发》第1章 Kotlin是什么 1
- JavaScriptJquery 练习 扫雷
- Java项目:SSM高校教职工差旅报销管理系统
- 经验:中小微企业网站上云怎样选择适合自己的云虚拟主机?
- 小Z的袜子【莫队算法】
- c语言 椭圆,C语言画圆椭圆
- 王炜:城市虚拟交通系统与交通发展决策支持模式研究
- 基于S32K的MBD开发环境搭建
- 【Python】求笛卡尔乘积
- react native ScrollView实现滑动锚定,滑动到指定位置
- SpringBoot 自动配置的坑
- 2022年保研经验贴建议个人经历:计算机软件工程