Primary Clocks 主时钟

主时钟定义了整个时序分析的起点也可以说是参考点(0时刻)

vivado会忽略主时钟的上游时序,只关注主时钟的下游。

create_clock [-name clock_name] \-period period_value \[-waveform edge_list] \[-add] \[source_objects]

管脚进入的时钟

推荐把主时钟定义为顶层管脚上,未经过IBUF,这样可以把IBUF的延时也考虑进时序分析。

等占空比、无相移

• Its period is 10 ns.
• Its duty cycle is 50%.
• Its phase is not shifted.

create_clock -period 10 [get_ports sysclk]

非等占空比、有相移

• Its period is 10 ns.
• Its duty cycle is 25%.
• It is phase shifted by 90 degrees.

create_clock -name devclk -period 10 -waveform {2.5 5} [get_ports ClkIn]

GTP恢复时钟

create_clock -name rxclk -period 3.33 [get_pins gt0/RXOUTCLK]

差分时钟

只要约束P极。

create_clock -name sysclk -period 3.33 [get_ports SYS_CLK_clk_p]

Virtual Clocks

虚拟时钟是不绑定物理网络节点的时钟,没有时钟源。

虚拟时钟通常用于input and output delay 约束

当两个时钟之间不是整数倍,但是有跨时钟,就会出现不符合实际的时序路径要求

create_clock -name clk_virt -period 10

Generated Clocks 生成时钟

生成时钟约束:是用来描述生成时钟与主时钟的关系;

不是描述生成时钟的周期和波形,而是描述如何从主时钟得到生成时钟。

生成时钟一般来自时钟修改模块(PLL/MMCM/BUFR)或者用户逻辑代码(分频器)。

主时钟master clock:primary clock 或者 另一个generated clock

source pin:主时钟的源pin(为什么有这个?因为source pin到master clock之间有可能有延时)

为了计算生成的时钟的延迟,工具跟踪生成的时钟的源引脚和主时钟的源引脚之间的顺序和组合路径。在某些情况下,可能需要只跟踪组合路径来计算生成的时钟延迟。您可以使用-combinational命令行选项来实现这一点。

分频,倍频,分频倍频组合、相移或波形反转、占空比改变和以上改变的组合.

create_generated_clock [-name clock_name] \-source master_pin \[-master_clock clock] \[-edge edge_list] \[-edge_shift shift_list] \[-divide_by factor] \[-multiply_by factor] \[-duty_cycle percent] \[-combinational][-invert] \[-add] \source_objects

the master clock for this clock assignment could not be derived. ID:332087
有-master_clock,但是-source的时钟找不到;
无-master_clock,并且-source的时钟找不到;
无-master_clock,并且-source的时钟不唯一;


例子

等占空比、无相移

方法一:

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]

方法二:

# 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]

生成时钟的上升沿开始的一个周期内的主时钟的上升和下降沿位置{1 3 5 },从上升沿开始,时钟沿初始不是0,而是1.也可以省略下降沿,只要用单纯的上升沿能描述清楚。

非等占空比、有相移

-edge_shift:参考主时钟对应的沿的移位值,

例如:

参考主时钟的edge1上升沿,应该右移2.5ns

参考主时钟的edge2下降沿,应该不移动0ns

参考主时钟的edge3上升沿,应该右移动2.5ns

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

分数分频

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

选组合路径

我们希望在多路复用器输出上创建一个生成的时钟,该时钟反映从主时钟到多路复用器的组合路径的延迟

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

ODDR驱动的前向时钟

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


参考手册Using Constraints UG903


从TimeQuest角度看create_generated_clock

从TimeQuest角度看create_generated_clock - 重归混沌 - 博客园


create_generated_clock的使用问题

Xilinx Customer Community


【Time6】时钟约束相关推荐

  1. 输入引脚时钟约束_Happy Design in Vivado 系列:时序分析入门三板斧(一):创建时钟...

    本系列中我们将一起探寻 Xilinx FPGA 的硬件开发环境 Vivado,发现 Vivado 的 Design Flow,使用 Tips...或许再来一些 BUG?Happy Design in ...

  2. 【 FPGA 】Xilinx设计约束(XDC)中时钟约束的表示方法

    目录 时钟描述 基本时钟 虚拟时钟 生成时钟 时钟描述 (1)clk0的时钟属性:周期为10ns,占空比为50%,相移为0ns:(相移也可以用°来表示,例如相移位0°,相移为90°等) (2)clk1 ...

  3. quartus 修改 时钟_FPGAQuartusII时钟约束.doc

    FPGAQuartusII时钟约束 FPGA QuartusII 时钟约束 时钟约束(Clock Specification): 约束所有时钟(包括你的设计中特有的时钟)对准确的时序分析结果而言是必不 ...

  4. (10)Vivado 异步时钟约束

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

  5. (08)Vivado时钟约束

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

  6. 时序约束——2 时钟约束(生成时钟)

    时钟约束的不同情况 一.输入时钟 输入管脚CLK 差分时钟 GT或恢复时钟 二.PLL衍生时钟 三.分频时钟 一,输入时钟 1.输入管脚clk 这是最常见的一种情况,开发板上,晶振过来的时钟,都是cl ...

  7. XILLINX时钟约束相关说明

    时钟 primary clock 基准时钟 primary这里有"基本的"更贴切,虽然其有"主要的.首要的.初级的.原发性的"意思. 提供的基准时钟有俩种情况: ...

  8. ise 时钟约束_ISE 时钟约束

    ISE 时钟约束 记录一下项目中用到的知识,之前从来没用过ISE,由于目前公司原型验证的平台采用了较老的Vitex-6系列芯片,不得不学习下ISE的ucf约束,如有错误望指正~ 系统架构如图所示:Im ...

  9. ise 时钟约束_ISE——ucf文件中时序约束

    摘要:本文主要通过一个实例具体介绍ISE中通过编辑UCF文件来对FPGA设计进行约束,主要涉及到的约束包括时钟约束.群组约束.逻辑管脚约束以及物理属性约束. Xilinx FPGA设计约束的分类 Xi ...

最新文章

  1. 255套绝美ppt模板!适用于总结汇报、形象宣传、授课培训、项目介绍、毕业答辩等...
  2. “领导跳槽想带我走,我要不要跟?”
  3. Java基础点:常用类
  4. 【求助】小系统组成大系统所遇到的问题
  5. ubuntu下安装opensips
  6. Datastream 开发打包问题
  7. 学习了下简单的光照模型
  8. 21.55万元起的“电影周边”!现代漫威联名钢铁侠车型开售
  9. java白皮书关键术语
  10. 今日恐慌与贪婪指数为91 贪婪程度有所缓解
  11. LINUX 查看系统信息的命令
  12. mysql的逻辑备份和恢复
  13. 最小二乘法求解线性回归模型及求解
  14. lottie android 卡顿,lottie动画设计_免异常总结
  15. 初探视频原理和FFmpeg
  16. 如何优雅地在Stack OverFlow 上进行编程问题搜索
  17. 【数据结构与算法基础】AOE网络与关键路径
  18. 安卓开发之Bitmap
  19. 预训练语言模型复现-2 whole word mask
  20. [小程序]你也要开发小程序?设计规范少不了

热门文章

  1. Launcher组件启动MainActivity组件的过程
  2. Android源码与设计模式之notifyDataSetChanged()方法与观察者模式
  3. 全球银行市值排行榜:工建中排名前三
  4. Matlab保存与原图同样大小的图像
  5. GitHub中的readme.md
  6. 1/n *sinx = ?
  7. 《Learning to Cartoonize Using White-box Cartoon Representations》图像卡通化论文解析
  8. python与hadoop的结合_跟着小编一起学习使用Python操作Hadoop,Python-MapReduce
  9. git merge 不为人知的秘密
  10. MXD修改数据源 arcgis