FPGA设计时序约束三、设置时钟组set_clock_groups

这篇具有很好参考价值的文章主要介绍了FPGA设计时序约束三、设置时钟组set_clock_groups。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、背景

二、时钟间关系

2.1 时钟关系分类

2.2 时钟关系查看

三、异步时钟组

3.1 优先级

3.2 使用格式

3.3 asynchronous和exclusive

3.4 结果示例

四、参考资料


一、背景

    Vivado中时序分析工具默认会分析设计中所有时钟相关的时序路径,除非时序约束中设置了时钟组或false路径。使用set_clock_groups命令可以使时序分析工具不分析时钟组中时钟的时序路径,使用set_false_path约束则会双向忽略时钟间的时序路径

    使用-group参数可以将一个时钟设置到多个时钟组中,如果时钟组中没有时钟,则时钟组为空组。只有至少两个组都是非空组,为有效组时set_clock_groups约束才有效。如果只有一个组有效,其他组是空的,流程将会报错。

二、时钟间关系

2.1 时钟关系分类

    两个时钟的关系可以是同步时钟,异步时钟,非扩展时钟。

    同步时钟:  两个时钟的相位关系是可预知的,常见的是两个时钟来源于相同的根时钟或者共同的周期,如生成时钟和主时钟。

    异步时钟:当两个是时钟的相位关系不可预知时,则为异步时钟,例如来源两个晶振的时钟,通过不同的输入端口进入到FPGA内部,无法知道两者的相位关系

    非扩展时钟:当两个时钟在1000个周期内仍无无法找到共同的边沿,在这种情况下,最差的setup关系在超过1000个周期上,但是时序分析工具将无法确认这是最差的情况。典型的例子是两个奇数倍分频的时钟,如clk0和clk1都是由MMCMs产生的生成时钟,周期分别为5.125ns和6.666ns。它们的上升沿在1000个周期内不存在重合。时序分析工具有一个0.01ns的setup路径裕量,尽管两个时钟有已知的相位关系,但它们的波形使得无法进行正确的时序分析。

异步时钟中,slack值可以按常规方法计算,但计算出的值不一定正确。因此,非扩展时钟通常作为异步时钟。

2.2 时钟关系查看

时钟Vivado中Report Clock Interaction可以查看时钟间的关系

异步时钟组约束 csdn,FPGA所知所见所解,fpga开发,时序约束,时钟组,SetClockGroups,时序分析

 

    ​下图颜色方块中,横坐标表示目的时钟,纵坐标表示源时钟,黑色No path表示不存在时序路径,蓝色User ignored Paths为用户设置了不分析的约束,红色Timed(Unsafe)表示异步时钟或非扩展的时钟,颜色块下方的列表也显示了时序的详细信息。

异步时钟组约束 csdn,FPGA所知所见所解,fpga开发,时序约束,时钟组,SetClockGroups,时序分析

 

三、异步时钟组

3.1 优先级

异步时钟和非扩展时钟是没法正确地进行时序分析,  在它们之间的时序路径在分析时应该使用set_clock_groups进行忽略。相比于其他时序例外的命令,set_clock_groups的优先级最高,如果需要对异步时钟进行分析,则不能对该时钟使用set_clock_groups命令。

3.2 使用格式

在Timing Constraints窗口中,Clocks列下选择Set Clock Groups

异步时钟组约束 csdn,FPGA所知所见所解,fpga开发,时序约束,时钟组,SetClockGroups,时序分析

 

 进入Set Clock Groups界面

异步时钟组约束 csdn,FPGA所知所见所解,fpga开发,时序约束,时钟组,SetClockGroups,时序分析

 

Group name:设置时钟组的名称

Group 1: 添加属于Group 1中的时钟,点击最右侧的“+”可以设置多个组

The specified clocks are: 设置时钟组里的时钟与其他时钟的关系,可为asynchronous,logically exclusive,physically exclusive。

-asynchronous:约束为异步时钟组

-logically_exclusive:约束为逻辑互斥的时钟组

-physically_exclusive:约束为物理线路互斥的时钟组,设计中不能同时存在,最终表现的效果和-logically_exclusive是相同的。

约束命令示例:

set_clock_groups -name clk_group -asynchronous -group [get_clocks {create_clk1 gen_clk_2}]

3.3 asynchronous和exclusive

参数asynchronous表示创建异步时钟组,使用场景如数据在不同速率的时钟间通过FIFO进行传输时,使用异步时钟组隔离时序关系。

参数exclusive表示时钟组里的时钟为互斥关系,例如,同一个节点中存在多个时钟,当同一时间内只能一个时钟生效,常用在时钟多路复用上。

3.4 结果示例

以设计中存在4个时钟clk1,clk2,clk3,clk4为例,时钟之间均存在可分析的时序路径。对时钟进行不同的时钟组约束,约束后的分析结果如下,Y表示进行时序分析,N表示不进行时序分析,参数使用asynchronous。

a)场景1:

set_clock_groups -name clk_group -asynchronous -group [get_clocks clk1]

异步时钟组约束 csdn,FPGA所知所见所解,fpga开发,时序约束,时钟组,SetClockGroups,时序分析

 

​b)场景2

set_clock_groups -name clk_group -asynchronous -group [get_clocks {clk1 clk2}]

时钟组内部的时钟间进行时序分析,和外部的时钟不会进行时序分析

异步时钟组约束 csdn,FPGA所知所见所解,fpga开发,时序约束,时钟组,SetClockGroups,时序分析

 

c)场景3

set_clock_groups -name clk_group -asynchronous -group [get_clocks clk1] -group [get_clocks clk2]

设置多个groups时,groups之间的clk不会进行时序分析

异步时钟组约束 csdn,FPGA所知所见所解,fpga开发,时序约束,时钟组,SetClockGroups,时序分析

 

d)场景4

set_clock_groups -name clk_group -asynchronous -group [get_clocks {clk1 clk2}] -group [get_clocks {clk3 clk4}]

设置多个group时,group内部的时钟间会进行时序分析,group间不会进行时序分析

异步时钟组约束 csdn,FPGA所知所见所解,fpga开发,时序约束,时钟组,SetClockGroups,时序分析

 

总结:set_clock_group中group内部的时钟只能组内间进行分析,不能跨组或与非约束中的时钟进行时序分析

四、参考资料

用户手册:ug903-vivado-using-constraints-en-us-2022.2.pdf

链接:https://pan.baidu.com/s/17AK_-J4wRXiFLtLTorlrwg?pwd=mylt 

提取码:mylt 文章来源地址https://www.toymoban.com/news/detail-785132.html

到了这里,关于FPGA设计时序约束三、设置时钟组set_clock_groups的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • FPGA时序约束--进阶篇(主时钟约束)

    在FPGA设计中,时序约束的设置对于电路性能和可靠性都至关重要。在上一篇的文章中,已经详细介绍了FPGA时序约束的基础知识。 本文将重点讲解主时钟约束设置,给出详细的约束命令,并介绍了在Vivado中如何写入主时钟约束。 主时钟是FPGA电路中最基础的时钟,其稳定性和

    2024年02月09日
    浏览(45)
  • FPGA时序分析与约束(10)——生成时钟

            最复杂的设计往往需要多个时钟来完成相应的功能。当设计中存在多个时钟的时候,它们需要相互协作或各司其职。异步时钟是不能共享确定相位关系的时钟信号,当多个时钟域交互时,设计中只有异步时钟很难满足建立和保持要求。我们将在后面的内容中介绍这部

    2024年02月21日
    浏览(44)
  • FPGA时序分析与约束(3)——时钟不确定性

            在之前的文章中,我们介绍了组合电路的时序和时序电路的时序问题,在阅读本文章之前,强烈推荐先阅读完本系列之前的文章,因为这是我们继续学习的理论的理论基础,前文链接: FPGA时序分析与约束(2)——时序电路时序         本文我们将介绍时钟相关

    2024年02月10日
    浏览(42)
  • FPGA时序约束经历之输出延时约束(set_output_delay)

    近期在进行emmc数据读写程序调试时,逼迫自己从一个时序小白跨进了时序约束的大门,这里记录一下供大家学习参考。 emmc hs200模式下,允许最高时钟频率为200M。其中emmc和FPGA之间的引脚有单向EMMC_CLK,双向CMD和DATA[7:0]。根据emmc手册,要求建立时间为1.4ns,保持时间为0.8ns。

    2023年04月08日
    浏览(60)
  • 【ug903】FPGA时序约束学习(4)-如何约束跨时钟域(Clock domain crossing,CDC)

    时序约束系列: 如何约束时钟 主时钟、虚拟时钟、生成时钟、时钟组、时钟不确定性 如何约束输入输出延迟 输入延迟、输出延迟 如何约束时序例外 多周期路径、输入输出延迟、虚假路径、最大最小延迟 如何约束跨时钟域 总线偏斜 跨时钟域(Clock Domain Crossing,CDC)约束适用

    2024年02月08日
    浏览(41)
  • (FPGA时序约束)set_max_delay/set_min_delay详解

           属于 时序例外 的一种。(时序例外是:某条路径在默认参数下没有被正确地分析时序,在这种情况下,需要告知时序分析工具这条路径是一个例外,需要按照我地特殊指示来执行这条路径地时序分析。举例:一个数据被一个寄存器同步采样,但不是每个时钟沿都采,

    2024年04月26日
    浏览(35)
  • FPGA的时序分析、约束和收敛(8)----关于时序路径、时钟悲观度和建立时间/保持时间的一些问题

    目录 写在前面 1、为什么同一条时序路径在报表里的值不一样?

    2024年02月12日
    浏览(57)
  • FPGA设计时序约束二、输入延时与输出延时

    目录 一、背景 二、set_input_delay 2.1 set_input_delay含义 2.2 set_input_delay参数说明 2.3 使用样例 三、set_output_delay 3.1 set_output_delay含义 3.2 set_output_delay参数说明 3.3 使用样例 四、样例工程 4.1 工程代码 4.2 时序报告 五、参考资料     为了在设计中准确的模拟信号从FPGA传输到外部或

    2024年02月07日
    浏览(39)
  • 【FPGA】Verilog:时序电路设计 | 二进制计数器 | 计数器 | 分频器 | 时序约束

    前言: 本章内容主要是演示Vivado下利用Verilog语言进行电路设计、仿真、综合和下载 示例:计数器与分频器   ​​ 功能特性: 采用 Xilinx Artix-7 XC7A35T芯片  配置方式:USB-JTAG/SPI Flash 高达100MHz 的内部时钟速度  存储器:2Mbit SRAM   N25Q064A SPI Flash(样图旧款为N25Q032A) 通用

    2024年02月02日
    浏览(62)
  • 【数字IC/FPFA】时序约束--时钟约束

    时钟周期约束,顾名思义,就是我们对时钟的周期进行约束,这个约束是我们用的最多的约束了,也是最重要的约束。 下面我们以vivado中的时钟约束为例,介绍时钟约束的相关内容。 在Vivado中我们通过使用create_clock来创建时钟周期约束。使用方法如下: 其中,参数name为创建

    2024年02月03日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包