vivado 时钟组

时钟组

本节讨论时钟组,包括:

•关于时钟组

•时钟类别

•异步时钟组

•专用时钟组

关于时钟组

Vivado IDE默认情况下会对设计中所有时钟之间的路径进行计时,除非通过使用时钟组或错误路径约束以其他方式指定。set_clock_groups命令禁用您标识的时钟组之间的计时分析,而不是在同一组中的时钟。与set_false_path约束不同,计时被忽略在时钟之间的两个方向上。可以多次使用-group选项指定多组时钟。如果没有时钟在一个组中存在于设计中,该组变为空。set_clock_groups只有当至少有两个组有效且不为空时,约束才保持有效。如果只有一组保持有效,并且所有其他组都为空,则set_clock_groups约束无效应用并生成错误消息。

使用原理图查看器或时钟网络报告来可视化时钟的拓扑结构树,并确定哪些时钟不能一起计时。您也可以使用时钟交互报告,用于审查两个时钟之间的现有约束,并确定它们是否共享相同的主时钟——也就是说,它们具有已知的相位关系——或者识别没有公共周期的时钟(不可扩展)。

时钟类别

本节讨论同步、异步和不可扩展的时钟。

同步时钟

当两个时钟的相对相位可预测时,它们是同步的。通常情况是这样的当它们的树源自网表中的同一根时,以及当它们具有公共时期例如,周期比为2的生成时钟及其主时钟是同步的因为它们通过相同的网表资源传播到生成的时钟源点,并且具有2个循环的公共周期。它们可以安全地定时在一起。

异步时钟

当无法确定它们的相对相位时,两个时钟是异步的。例如,两个时钟由板上的独立振荡器生成并进入FPGA通过不同的输入端口没有已知的相位关系。因此,它们必须被视为异步。如果它们是由板上的同一振荡器产生的,这将不是真的。在大多数情况下,主时钟可以被视为异步时钟。当与他们的各自生成的时钟。

无法使用的时钟

当正时引擎无法确定它们的公共周期时,两个时钟无法扩展超过1000个循环。在这种情况下,在正时分析,但正时引擎不能确保这是最悲观的情况。这通常是在具有奇数分数周期比的两个时钟之间的情况。例如考虑两个时钟clk0和clk1,这两个时钟由共享同一主时钟的两个MMCM生成时钟:

•clk0的周期为5.125 ns。

•clk1的周期为6.666 ns。

它们的上升时钟边沿不会在1000个周期内重新排列。正时发动机使用设置路径在两个时钟之间的定时路径上需要0.01ns。即使这两个时钟在它们的时钟树根处存在已知的相位关系,它们的波形不允许安全计时他们之间的分析。与异步时钟一样,松弛计算正常显示,但值不能为值得信赖。由于这个原因,不可扩展的时钟通常被同化为异步时钟。二者都时钟类别必须以与约束和时钟域交叉相同的方式处理电路。

异步时钟组

异步时钟和不可扩展的时钟无法安全计时。之间的定时路径在分析过程中,可以使用set_clock_groups命令忽略它们。异步时钟组示例

•主时钟clk0在输入端口上定义,并到达MMCM,MMCM生成时钟usrclk和itfclk。

•第二个主时钟clk1是在GTP实例的输出上定义的恢复时钟并且到达产生时钟gtclkrx和gtclktx的第二MMCM。

创建异步时钟组

使用-asynchronous选项创建异步组。

set_clock_groups -name async_clk0_clk1 -asynchronous -group {clk0 usrclk
itfclk} \
-group {clk1 gtclkrx gtclktx}

如果无法提前预测生成的时钟的名称,请使用get_clocks-include_generated_clocks以动态检索它们。的-include_generated_clocks选项是SDC扩展。前面的例子也可以是写成:

set_clock_groups -name async_clk0_clk1 -asynchronous \
-group [get_clocks -include_generated_clocks clk0] \
-group [get_clocks -include_generated_clocks clk1]

专用时钟组

一些设计具有几种需要使用不同时钟的操作模式。这个时钟之间的选择通常由诸如BUFFMUX的时钟多路复用器来完成,并且BUFGTRL或LUT。因为这些单元是组合单元,Vivado IDE将所有传入时钟传播到输出使用Vivado IDE可以在时钟树上同时存在多个定时时钟,这便于同时报告所有操作模式,但在硬件。

这种时钟被称为专用时钟。通过使用的选项对其进行约束

set_clock_groups :
-logically_exclusive
-physically_exclusive

独占时钟组示例

MMCM实例生成连接到BUFGMUX实例的clk0和clk1clkmux。clkmux的输出驱动设计时钟树。默认情况下,Vivado IDE会分析clk0和clk1之间的路径,即使这两个时钟共享相同的时钟树,并且不能同时存在。必须输入以下约束才能禁用两个时钟之间的分析

set_clock_groups -name exclusive_clk0_clk1 -physically_exclusive \
-group clk0 -group clk1
以下选项在AMD FPGA的上下文中是等效的:
-logically_exclusive
-physically_exclusive

物理和逻辑标签指的是中的各种信号完整性分析(串扰)模式

AMD FPGA不需要的ASIC技术。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/238971.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微信小程序购物车页面实现

目录 32.商品加入购物车逻辑实现(前端) 33.购物车页面收货地址实现 34.购物车商品列表显示实现 37.购物车商品复选框选中业务处理 38.购物车全选复选框选中业务处理 39.购物车商品数量编辑实现 40.购物车商品数量为0判定是否删除 42.商品详情立即…

控制中存在的一些问题(注意事项)

控制器要阶次要降阶,阶数过高不行 机械臂上层控制器降阶的目的是简化控制算法,提高实时性能,并减少计算资源的消耗。当控制器的阶数过高时,可能会导致以下问题: 计算复杂性增加:高阶控制器需要更多的计算…

只更新软件,座椅为何能获得加热功能?——一文读懂OTA

2020年,特斯拉发布过一次OTA更新,车主可以通过这次系统更新获得座椅加热功能。当时,这则新闻震惊了车圈和所有车主,彼时的大家还没有把汽车当作可以“升级”的智能设备。 如今3年过去了,车主对各家车企的OTA升级早已见…

FCIS 2023网络安全创新大会-核心PPT资料下载

一、峰会简介 本次会议的主题是“AI大模型、人工智能与智能制造安全、攻击面管理与供应链安全”。 1、AI大模型 会议首先探讨了AI大模型在网络安全领域的应用。AI大模型是一种基于深度学习的模型,具有强大的特征提取和分类能力,可以用于检测和防御各种…

Unity3D移动端实现摇一摇功能

手机摇一摇功能在平时项目开发中是很常见的需求,利用Unity的重力感应可以很方便的实现该功能。 Unity简化了重力感应的开发, 通过访问Input.acceleration属性,取回加速度传感器的值。首先我们看一下重力传感器的方向问题。Unity3D中重量的取…

四、Spring IoC实践和应用(基于注解方式管理 Bean)

本章概要 基于注解方式管理 Bean 实验一: Bean注解标记和扫描 (IoC)实验二: 组件(Bean)作用域和周期方法注解实验三: Bean属性赋值:引用类型自动装配 (DI)实验四: Bean属性赋值:基本…

在MacOS上Qt配置OpenCV并进行测试

一.Qt环境准备 上一篇博客我讲了如何下载配置OpenCV库,但是在Qt5.15.2使用OpenCV库时,出现了一个问题就是我下载的Qt5.15.2是x86架构的,不能对OpenCV库进行链接,而OpenCV库是arm架构的 直接使用Qt5.15.2编译链接OpenCV库链接头文件…

二的幂数组中查询范围内的乘积

说在前面 🎈不知道大家对于算法的学习是一个怎样的心态呢?为了面试还是因为兴趣?不管是出于什么原因,算法学习需要持续保持。 题目描述 给你一个正整数 n ,你需要找到一个下标从 0 开始的数组 powers ,它包…

千帆 AppBuilder 初体验,不仅解决解决了我筛选简历的痛苦,更是让提效10倍!

文章目录 🌟 前言🌟 什么是百度智能云千帆 AppBuilder🌟 百度智能云千帆 AppBuilder 初体验🌟 利用千帆AppBuilder搭建简历小助手🌟 让人眼前一亮的神兵利器 - 超级助理 🌟 前言 前两天朋友 三掌柜 去北京…

PostGIS学习教程十四:更多的空间连接

PostGIS学习教程十四:更多的空间连接 在上一节中,我们看到了ST_Centroid(geometry)和ST_Union([geometry])函数,以及一些简单的示例。在本节中,我们将用它们做一些更详细的事情。 提示:写完文章后,目录可以…

[RK-Linux] 解决RK3399 M.2 NVMe SSD根文件系统分区容量无法扩展到最大问题

延续《[RK-Linux] RK3399支持M.2 NVMe SSD启动》 在检查分区与挂载情况的时候,根文件系统分区容量是有问题的: root@buildroot:/# df -h Filesystem Size Used Avail Use% Mounted on /dev/root 692M 430M 209M 68% / devtmpfs 1.9G 8.0K 1.9G 1%…

Jmeter 性能 —— 监控服务器!

Jmeter监控Linux需要三个文件 JMeterPlugins-Extras.jar (包:JMeterPlugins-Extras-1.4.0.zip)JMeterPlugins-Standard.jar (包:JMeterPlugins-Standard-1.4.0.zip)ServerAgent-2.2.3.zip 1、Jemter 安装插件 在插件管理中心的搜索Servers Performan…

MySQL运维实战(1.2)安装部署:使用二进制安装部署

作者:俊达 引言 上一篇我们使用了RPM进行安装部署,这是一种安装快速、简化部署和管理过程、与操作系统提供的包管理工具紧密集成的部署方法。此外,当你需要更高的灵活性和自定义性,并且愿意承担一些额外的手动配置和管理工作&am…

一套rk3588 rtsp服务器推流的 github 方案及记录 -02

整体方案参考上一篇博文 https://blog.csdn.net/qq_31764341/article/details/134810566 本篇博文主要介绍基于RK3588进行硬解码 还是之前的套路,我不生产代码,我只是代码的搬运工,今天我们搬运瑞芯微的官方代码,并记录下来整个调…

HBuilderX项目配置使用uview

配置uview,先安装再配置 如果没有package.json文件,先打开终端,执行命令 npm init -y 然后就会生成 package.json 安装 使用npm安装uview npm install uview-ui2.0.36 安装好之后,可以看到package.json里面已经显示版本了 查…

android studio位置相关

android studio自带一个版本的jdk,所以可以不用下载,配置jdk。 也可以自己再下载配置不同版本的jdk. SDK最好不要放在C盘,太占内存了。 .gradle,.android,.android Studio都最好移动到其他盘,占内存。 https://blog.csdn.net/Li…

Unity中Shader旋转矩阵(四维旋转矩阵)

文章目录 前言一、围绕X轴旋转1、可以使用上篇文章中,同样的方法推导得出围绕X轴旋转的点阵。2、求M~rotate~ 二、围绕Y轴旋转1、可以使用上篇文章中,同样的方法推导得出围绕Y轴旋转的点阵。2、求M~rotate~ 三、围绕Z轴旋转1、可以使用上篇文章中&#x…

2000+线下门店数字化转型,盘活近500+门店账号!

伴随着社交媒体的快速发展,消费者的注意力开始往线上转移。社交媒体在消费者购买决策过程中发挥着越来越重要的作用,逐渐成为大家获取信息、产品种草并购买下单的平台。 今年双十一期间,抖音商城多数品类销售额均呈现大幅增长趋势&#xff0c…

MPI安装与程序设计

MPI MPI(Message Passing Interface)是一种用于编写并行程序的标准和库,用于在分布式内存系统中进行消息传递和并行计算。MPI提供了一组函数和语义,用于在多个进程之间进行通信和同步,以实现并行计算和并行任务的协调…

ASP.Net实现姓名添加查询(三层架构)

目录 演示功能: 点击启动生成页面 点击搜索模糊查询 点击添加跳转新界面 点击Button添加姓名 步骤: 1、建文件 2、添加引用关系 3、根据数据库中的列写Models下的XueshengModels类 4、DAL下的DBHelper(对数据库进行操作)…