vivado生成时钟分析

生成的时钟

本节讨论生成的时钟,包括:

•关于生成的时钟

•用户定义的生成时钟

•自动衍生时钟

•自动衍生时钟

关于生成的时钟

生成的时钟在设计内部由称为时钟修改块(用于例如MMCM),或者通过一些用户逻辑。生成的时钟与主时钟相关联。create_generated_clock命令考虑主时钟的起始点。主时钟可以是主时钟或者另一个生成的时钟。生成的时钟属性直接来源于它们的主时钟。而不是指定它们的周期或波形,您必须描述修改电路如何转换主控形状时钟。

主时钟和生成的时钟之间的关系可以是以下任意一种:

•简单的分频

•简单的倍频

•倍频和分频的组合,以获得非积分比(通常由MMCM和PLL完成)

•相移或波形反转

•工作循环转换

•以上所有内容的组合

用户定义的生成时钟

用户定义的生成时钟是:

•由create_generated_clock命令定义。

•连接到网表对象,最好是时钟树根引脚。使用-source选项指定主时钟。这表示设计中的引脚或端口主时钟通过其传播。通常使用主时钟源点或所生成的时钟源单元的输入时钟引脚。source选项只接受pin或端口网表对象。它不接受时钟对象。

示例一:简单除以2

主时钟clkin具有10ns的周期。它被寄存器REGA除以2驱动其他寄存器的时钟引脚。相应生成的时钟称为clkdiv2。以下提供了两个等效的约束条件:

create_clock -name clkin -period 10 [get_ports clkin]
# Option 1: master clock source is the primary clock source point
create_generated_clock -name clkdiv2 -source [get_ports clkin] -divide_by 2
\
[get_pins REGA/Q]
# Option 2: master clock source is the REGA clock pin
create_generated_clock -name clkdiv2 -source [get_pins REGA/C] -divide_by 2
\ [get_pins REGA/Q]

示例二:使用-edges选项除以2

您可以使用-edges选项直接描述所生成的时钟的波形基于主时钟的边沿。论点是用于定义生成时钟的时间位置的主时钟边缘索引列表边缘,从上升的时钟边缘开始。以下示例等效于示例一中定义的生成时钟:简单除以2。

# waveform specified with -edges instead of -divide_by
create_generated_clock -name clkdiv2 -source [get_pins REGA/C] -edges {1 3
5} \ [get_pins REGA/Q]

示例三:具有-边和的占空比变化和相移

-edge_shift选项

生成的时钟波形的每个边缘也可以分别偏移正或使用-edge_shift选项为负值。仅当需要相移时才使用此选项。-edge_shift选项不能与以下任何选项同时使用:

•-分隔

•多功能_ by

•-倒转

考虑具有10ns周期和50%占空比的主时钟clkin。它到达细胞mmcm0,其产生具有25%占空比、偏移90度的时钟。生成的时钟定义是指主时钟边沿1、2和3。这些边分别出现在0ns、5ns和10ns。为了获得所需波形,将第一边缘和第三边缘偏移2.5 ns。

create_clock -name clkin -period 10 [get_ports clkin]
create_generated_clock -name clkshift -source [get_pins mmcm0/CLKIN] -edges
{1 2 3} \
-edge_shift {2.5 0 2.5} [get_pins mmcm0/CLKOUT] # First rising edge: 0ns
+ 2.5ns = 2.5ns
# Falling edge: 5ns + 0ns = 5ns
# Second rising edge: 10ns + 2.5ns = 12.5ns

示例四:同时使用-divide_by和-multiply_by时间

Vivado IDE允许您同时指定-divide_by和-multiply_by。这是对标准Synopsys设计约束(SDC)支持的扩展。尤其是方便手动定义MMCM或PLL实例生成的时钟,尽管AMD建议让引擎自动创建这些约束。有关详细信息,请参见自动派生时钟。考虑示例三中的mmcm0单元:占空比变化和带-边的相和-edge_shift选项,并假设它乘以主时钟的频率减少4/3。相应生成的时钟定义为:

create_generated_clock -name clk43 -source [get_pins mmcm0/CLKIN] -
multiply_by 4 \
-divide_by 3 [get_pins mmcm0/CLKOUT]

如果在MMCM或PLL的输出上创建生成的时钟约束,最好进行验证波形定义与MMCM或PLL的配置相匹配。示例五:通过组合弧追踪主时钟只有在这个例子中,假设主时钟驱动基于寄存器的时钟除以2和时钟多路复用器,可以从寄存器中选择主时钟或除以2的时钟时钟分频器。在这种情况下从主时钟到生成时钟有两条路径,通过顺序弧和组合弧多路复用器输出上生成的时钟,反映组合路径的延迟从主时钟通过多路复用器。这是通过使用-组合命令行选项:

create_generated_clock -name clkout -source [get_pins mmcm0/CLKIN] -
combinational [get_pins MUX/O]

示例六:ODDR驱动的正向时钟

在本例中,在ODDR单元驱动的输出端口上创建转发时钟。这个转发时钟参考驱动ODDR/CLKDIV引脚的主时钟,并且具有相同的周期作为主时钟(-divide_by-1):

create_generated_clock -name ck_vsf_clk_2 \
-source [get_pins ODDRE1_vsfclk2_inst/CLKDIV] -divide_by 1 [get_ports
vsf_clk_2]

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

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

相关文章

[JS设计模式]Command Pattern

文章目录 举例说明优点缺点完整代码 With the Command Pattern, we can decouple objects that execute a certain task from the object that calls the method. 使用命令模式,我们可以将执行特定任务的对象与调用该方法的对象解耦。 怎么理解 执行特定任务的对…

基于Java (spring-boot)的课程管理系统

一、项目介绍 ​近年来,随着网络学校规模的逐渐增大,人工书写数据已经不能够处理如此庞大的数据。为了更好的适应信息时代的高效性,一个利用计算机来实现学生信息管理工作的系统将必然诞生。基于这一点,设计了一个学生信息管理系统…

Mybatis基本操作

目录 准备工作 删除操作 预编译SQL 增加操作 获取返回的主键 更新操作 准备工作 准备数据库表 emp创建一个新的springboot工程,选择引入对应的起步依赖(mybatis、mysql驱动、lombok)application.properties中引入数据库连接信息创建对应…

PSP - 蛋白质与蛋白质的扩散对接 DiffDock-PP 算法

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/135115528 DiffDock-PP is a new approach to rigid-body protein-protein docking that is based on a diffusion generative model that learns…

软件工程快速复习(期末急救)

每个同学要假想自己是一个项目经理,去完成一个软件项目,比如医院管理系统,自动设备控制系统等,以面向结构的软件工程方法,说出完成项目的步骤,涉及到的具体技术。初步了解面向对象的方法的与面向结构的方法…

【java】java学习笔记

1. 快速入门 // Hello类 public class Hello {// main方法public static void main(String[] args) {System.out.println("hello world!");} } 在控制台输入以下命令,对.java文件(源文件)进行编译操作,生成Hello.clas…

每日一题,二维平面

给你 二维 平面上两个 由直线构成且边与坐标轴平行/垂直 的矩形,请你计算并返回两个矩形覆盖的总面积。 每个矩形由其 左下 顶点和 右上 顶点坐标表示: 第一个矩形由其左下顶点 (ax1, ay1) 和右上顶点 (ax2, ay2) 定义。 第二个矩形由其左下顶点 (bx1, …

初学gitrepo的种种

经过各种折腾之后,发现git其实还是很简单的; 首先你需要两台机器,一台作为服务器,一台作为开发机器,开发机器从服务器上拉取代码。 目 目录 git建仓 开发机器拉取代码 初始化仓代码 repo管理 repo工具的下载 …

汽车制造厂设备故障预测与健康管理PHM

在现代汽车制造工业中,设备的可靠性和稳定性对于保证生产线的高效运行至关重要。为了提高生产效率、降低维修成本以及确保产品质量,汽车制造厂逐渐采用设备故障预测与健康管理(PHM)系统,以实现对设备状态的实时监测和预…

算法基础之快速幂求逆元

快速幂求逆元 核心思想&#xff1a; 逆元&#xff1a; 逆元 ap-2 mod p #include<iostream>#include<algorithm>using namespace std;typedef long long LL;LL pmi(int a,int b,int c){LL res 1;while(b){if(b & 1) res res * a %c;b >> 1;a (LL)…

Jenkins的文档翻译

官网Jenkins.io Jenkins用户文档 欢迎来到Jenkins用户文档-为那些想要使用Jenkins的现有功能和插件特性的人。如果你想通过开发自己的Jenkins插件来扩展Jenkins的功能&#xff0c;请参考extend Jenkins(开发者文档)。 詹金斯是什么? Jenkins是一个独立的、开源的自动化服务…

第七节TypeScript 循环

1、简述 有的时候&#xff0c;我们可能需要多次执行同一块代码。一般情况下&#xff0c;语句是按顺序执行的&#xff1a;函数中的第一个语句先执行&#xff0c;接着是第二个语句&#xff0c;依此类推。 循环语句允许我们多次执行一个语句或语句组。 循环语句流程图&#xff…

python学习笔记--异常捕获

异常场景 numinput("input you number:") n9000 try:resultn/int(num)print({} 除以num 结果为{}.format(n,result)) except ZeroDivisionError as err:print("0不可以作为除数&#xff0c;出现报错{}".format(err)) except ValueError as err:print(&quo…

【lesson21】MySQL复合查询(2)子查询

文章目录 子查询测试要用到的表测试要用到的数据单行子查询案例 多行子查询案例 多列子查询案例 在from子句中使用子查询案例 合并查询union案例union all案例 子查询 子查询是指嵌入在其他sql语句中的select语句&#xff0c;也叫嵌套查询 测试要用到的表 测试要用到的数据 单…

坚持提升这个能力,让你越来越强大

哈喽&#xff0c;你好啊&#xff01;我是雷工。 今天在读《张一鸣管理日志》时&#xff0c;看到这么一句话&#xff1a; “产品创新要从根本上解决问题&#xff0c;而不是想办法绕过问题&#xff0c;解决的问题很可能就是将来的核心竞争力。” 这让我想起了亚马逊公司&#x…

LeetCode 热题100——单调栈

​ 个人主页&#xff1a;日刷百题 系列专栏&#xff1a;〖C语言小游戏〗〖Linux〗〖数据结构〗 〖C语言〗 &#x1f30e;欢迎各位→点赞&#x1f44d;收藏⭐️留言&#x1f4dd; ​ ​ 写在前面&#xff1a; 递增单调栈&#xff1a;栈中元素从栈底到栈顶依次增大 递减单调栈…

3D模型人物换装系统(二 优化材质球合批降低DrawCall)

3D模型人物换装系统 介绍原理合批材质对比没有合批材质核心代码完整代码修改总结 介绍 本文使用2018.4.4和2020.3.26进行的测试 本文没有考虑法线贴图合并的问题&#xff0c;因为生成法线贴图有点问题&#xff0c;放在下一篇文章解决在进行优化 如果这里不太明白换装的流程可以…

HarmonyOS引导页登陆页以及tabbar的代码说明1

效果 以下代码是东拼西凑出来的。只是为了个人熟悉一下相关模块的使用&#xff1a; 用的知识点&#xff1a; Resouces 此部分分内容可以在项目中找到&#xff1a; resources/base/element/color.json 为项目着色配置&#xff0c;当然也可以正接在代码里写 float.json 为相关…

IPv6路由基础-理论与配置

在企业网络中&#xff0c;IPv6技术的应用越来越普及。IETF组织针对IPv6网络制定了路由协议OSPFv3。 OSPFv3 ff02::5是为OSPFv3路由协议预留的IPv6组播地址。OSPFv3中的路由条目下一跳地址是链路本地地址。OSPFv3是运行在IPv6网络的OSPF协议。运行OSPFv3的路由器使用物理接口的…

浅析 fuse kernel mmap write 过程及性能问题

前言 最近在项目里面用到了fuse文件系统&#xff0c;在使用过程中遇到了一个内核在做mmap write的一个bug&#xff0c;目前并没有从根本上解决这个bug&#xff0c;而是通过修改fuse kernel module的一些参数&#xff0c;绕开了这个bug。这里记录一下这个问题&#xff0c;并顺便…