0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

经过BUFGMUX的时钟该如何约束呢?

傅里叶的猫 来源:傅里叶的猫 2023-12-11 13:55 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

时序场景如下图所示,clk0和clk1两个时钟输入,经过BUFGMUX后,输出到后面的逻辑,但同时clk0和clk1还分别驱动了其他逻辑。

6b13087c-97e8-11ee-8b88-92fbcf53809c.png

此时,如果路径A/B/C都不存在,其中A路径表示clk0与选择器输出的时钟之间的数据交互,B路径表示clk1与选择器输出的时钟之间的数据交互,C路径表示clk0和clk1之间的数据交互,那么使用下面的约束就可以了:

set_clock_groups-logically_exclusive-groupclk0-groupclk1

如果路径 A、B 或 C 仅有一个存在,那么 clk0 和/或 clk1 与多路复用时钟直接交互。

则需要使用下面的约束:

create_generated_clock-nameclk0mux-divide_by1
-source[get_pinsmux/I0][get_pinsmux/O]
create_generated_clock-nameclk1mux-divide_by1
-add-master_clockclk1
-source[get_pinsmux/I1][get_pinsmux/O]
set_clock_groups-physically_exclusive-groupclk0mux-groupclk1mu

logically_exclusive和physically_exclusive的区别在于:

-logical_exclusive

logical_exclusiveisusedfortwoclocksthataredefinedondifferentsourceroots.
Logicallyexclusiveclocksdonothaveanyfunctionalpathsbetweenthem,butmighthavecouplinginteractionswitheachother.
Anexampleoflogicallyexclusiveclocksismultipleclocks,whichareselectedbyaMUXbutcanstillinteractthroughcouplingupstreamoftheMUXcell.
Whentherearephysicallyexistingbutlogicallyfalsepathsbetweenthetwoclocks,use"set_clock_groups-logical_exclusive".

-physical_exclusive

physical_exclusiveisusedfortwoclocksthataredefinedonthesamesourcerootby"create_clock-add".
Timingpathsbetweenthesetwoclocksdonotphysicallyexist.
Asaresultyouwillneedtouse"set_clock_groups-physical_exclusive"tosetthemasfalsepaths.

简而言之,logical_exclusive用于选择器的电路,两个时钟的source不一样;而physical_exclusive两个时钟的source是一样,比如在同一个时钟输入口,但可能会输入两个不同的时钟。

再回到最上面的问题,如果路径A、B和C有一条存在,说明时钟之间有交互,就不能简单的使用logical_exclusive,而是要为这两个时钟都创建一个衍生时钟,但这两个衍生时钟属于physical_exclusive。






审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 时钟
    +关注

    关注

    11

    文章

    1953

    浏览量

    134544
  • 选择器
    +关注

    关注

    0

    文章

    110

    浏览量

    15054
  • CLK
    CLK
    +关注

    关注

    0

    文章

    132

    浏览量

    17933

原文标题:经过BUFGMUX的时钟该如何约束

文章出处:【微信号:傅里叶的猫,微信公众号:傅里叶的猫】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    FPGA时序案例分析之时钟周期约束

    时钟周期约束,顾名思义,就是我们对时钟的周期进行约束,这个约束是我们用的最多的约束了,也是最重要
    的头像 发表于 11-19 11:44 6471次阅读
    FPGA时序案例分析之<b class='flag-5'>时钟</b>周期<b class='flag-5'>约束</b>

    FPGA时序约束之衍生时钟约束时钟分组约束

    在FPGA设计中,时序约束对于电路性能和可靠性非常重要。在上一篇的文章中,已经详细介绍了FPGA时序约束的主时钟约束
    发表于 06-12 17:29 4132次阅读

    FPGA时钟周期约束讲解

    时钟周期约束是用于对时钟周期的约束,属于时序约束中最重要的约束之一。
    发表于 08-14 18:25 1724次阅读

    源同步的约束怎么加?

    最近遇到个问题,想请教一下大家 FPGA和一个芯片使用源同步的方式通讯,输出一个时钟CLK和一个数据总线DataData在内部由全局失踪clk0驱动,想知道Data的offset约束怎么加啊? 我
    发表于 12-29 14:43

    FPGA altera 时钟约束和IO约束说明

    在设计以太网中继器时,因为没有配置时钟约束,导致中继器工作不正常。后面根据手册配置时钟约束解决了此问题。
    发表于 10-07 18:51

    BUFGMUX出现错误:地点:1108帮助/原因?

    ,clk_data_1 / 2/3 / 4_in仅连接到移位寄存器的时钟端口,即26位的移位寄存器(定制接口)。设计还使用位于X0Y0的GTP的单通道PCIe链路。 PCIe信号都被正确约束,并且与先前工作的设计保持
    发表于 10-17 12:00

    BUFGMUX定时时钟偏差太大

    。这一切都很好。现在我必须执行以下操作:根据某些控制逻辑,BRAM的portA和portB必须仅由C2提供时钟。所以我所做的就是把BUFGMUX放在portA前面输入到BRAM的前面。当控制逻辑为0
    发表于 06-18 09:30

    为什么使用并发赋值语句而不是BUFGMUX原语?

    原语是否有任何缺点,为什么语句有效,而BUFGMUX没有?谢谢!地点:1108 - 已发现时钟IOB / BUFGMUX时钟组件对未放置在最佳时钟
    发表于 07-31 10:10

    FPGA案例之衍生时钟约束

    约束衍生时钟 系统中有4个衍生时钟,但其中有两个是MMCM输出的,不需要我们手动约束,因此我们只需要对clk_samp和spi_clk进行约束
    的头像 发表于 11-17 16:28 3191次阅读
    FPGA案例之衍生<b class='flag-5'>时钟</b><b class='flag-5'>约束</b>

    时钟周期约束详细介绍

    时钟周期约束: 时钟周期约束,顾名思义,就是我们对时钟的周期进行约束,这个
    的头像 发表于 08-05 12:50 4975次阅读

    详解数字设计中的时钟约束

    数字设计中的时钟约束 本文作者 IClearner 在此特别鸣谢 最近做完了synopsys的DC workshop,涉及到时钟的建模/约束,这里就来聊聊数字中的
    的头像 发表于 01-28 07:53 4073次阅读
    详解数字设计中的<b class='flag-5'>时钟</b>与<b class='flag-5'>约束</b>

    时序约束---多时钟介绍

    当设计存在多个时钟时,根据时钟的相位和频率关系,分为同步时钟和异步时钟,这两类要分别讨论其约束
    的头像 发表于 04-06 14:34 1637次阅读
    时序<b class='flag-5'>约束</b>---多<b class='flag-5'>时钟</b>介绍

    经过BUFGMUX时钟如何约束

    时序场景如下图所示,clk0和clk1两个时钟输入,经过BUFGMUX后,输出到后面的逻辑,但同时clk0和clk1还分别驱动了其他逻辑。
    的头像 发表于 12-19 12:56 2028次阅读
    <b class='flag-5'>经过</b><b class='flag-5'>BUFGMUX</b>的<b class='flag-5'>时钟</b><b class='flag-5'>该</b>如何<b class='flag-5'>约束</b>

    时序约束一主时钟与生成时钟

    的输出,对于Ultrascale和Ultrascale+系列的器件,定时器会自动地接入到GT的输出。 1.2 约束设置格式 主时钟约束使用命令create_clock进行创建,进入Timing
    的头像 发表于 11-29 11:03 2188次阅读
    时序<b class='flag-5'>约束</b>一主<b class='flag-5'>时钟</b>与生成<b class='flag-5'>时钟</b>

    FPGA时序约束之设置时钟

    Vivado中时序分析工具默认会分析设计中所有时钟相关的时序路径,除非时序约束中设置了时钟组或false路径。使用set_clock_groups命令可以使时序分析工具不分析时钟组中
    的头像 发表于 04-23 09:50 968次阅读
    FPGA时序<b class='flag-5'>约束</b>之设置<b class='flag-5'>时钟</b>组