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。






审核编辑:刘清

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

    关注

    10

    文章

    1479

    浏览量

    130306
  • 选择器
    +关注

    关注

    0

    文章

    103

    浏览量

    14322
  • CLK
    CLK
    +关注

    关注

    0

    文章

    122

    浏览量

    16908

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

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

收藏 人收藏

    评论

    相关推荐

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

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

    FPGA时钟周期约束讲解

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

    源同步的约束怎么加?

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

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

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

    FPGA时钟约束问题

    FPGA的DCM模块,40MHz时钟输入,得到clkout1 40MHz,clkout2 60MHz,clkout1 120MHz。对40MHz时钟添加了约束,系统不是会自动对三个输出时钟
    发表于 05-25 15:06

    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

    DCM输出时钟约束的示例

    您好,我正在分析使用Xilinx ISE 9.2 Service Pack 4为Spartan 3 FPGAT合成的现有设计的时序约束设计具有20 MHz的单时钟输入(sys_clk),用于
    发表于 05-01 15:08

    时钟约束的概念

    文章目录1、时钟约束的概念2、 DC中的时序约束参考文章时间又拖拖拖,随着追寻DFT的进度,DC的进度在经历了.dynopsys_dc.setup后,就停滞不前了,接下来本文就来介绍DC的约束
    发表于 11-17 06:56

    硬件设计中教你如何正确的约束时钟

    ”列可以容易的辨别出同步时钟。下面是3个场景,你需要使用合适的时钟约束处理异步时钟之间的关系。1. 如果时钟互联报告有很多(或者一个)红色的
    的头像 发表于 07-15 15:35 6046次阅读

    时钟周期约束详细介绍

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

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

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

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

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

    经过BUFGMUX时钟该如何约束

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