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

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

3天内不再提示

组合逻辑生成的时钟有哪些危害

FPGA技术驿站 来源:CSDN技术社区 作者:CSDN技术社区 2020-10-10 10:28 次阅读

组合逻辑生成的时钟,在FPGA设计中应该避免,尤其是该时钟扇出很大或者时钟频率较高,即便是该时钟通过BUFG进入全局时钟网络。

组合逻辑生成时钟的典型特征是在网表中我们能够看到LUT(查找表)的输出直接连接或通过BUFG连接到时序逻辑单元比如触发器的时钟端口。最直接的危害是组合逻辑可能会产生毛刺(Glitch),从而导致电路功能错误。看个案例,如下图所示。由于毛刺的存在,计数器多计数了一次,导致错误。

从时序角度而言,组合逻辑生成的时钟会增加时钟线上的延迟,从而导致过大的Clock Skew,最终造成建立时间和保持时间违例。此外,如果有毛刺,毛刺通常很窄,很可能无法满足触发器的Pulse Width要求。还有的工程中尽管没有直接把LUT的输出当作时钟,而是将其通过一个触发器之后再用作时钟,这可以过滤掉毛刺,但同样会增加时钟线上的延迟,导致Clock Skew过大。因此,在FPGA设计中,要避免此类时钟。

拿到一个网表,如何判定设计中是否包含此类时钟呢?从上面的描述可以看到,这类时钟要么是LUT输出,要么是触发器输出,这是第一个特征。第二个特殊,既然是时钟,时钟网线的类型就是LOCAL_CLOCK,根据这两点就能找到时钟管脚,相应的Tcl脚本如下图所示。

代码第2行是找到所有的时钟网线,第3行对该时钟网线进行过滤筛选,凡是与网线相连的pin是输出端口且其REF_PIN_NAME是O(对应LUT输出)或Q(对应触发器输出)的,即为目标时钟端口。代码第4行则是将找到的对象以图形界面方式显示出来。

找到了这类时钟,如何优化呢?如果这类时钟是在MMCM或PLL可生成频率范围内,那么建议用MMCM或PLL生成,尤其是该时钟扇出比较大的时候。如果MMCM或PLL无法生成,且时钟频率很低,例如低于5MHz,而设计已经到了后期,不太可能大范围修改,那么尝试是否可能将该时钟驱动的逻辑都放在一个时钟区域内,同时保证时钟源也在该时钟区域内,这可通过手工布局的方式(画Pblock)实现。这样做对于降低Clock Skew会有些帮助。
责任编辑人:CC

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

    关注

    10

    文章

    1733

    浏览量

    131473
  • 组合逻辑
    +关注

    关注

    0

    文章

    47

    浏览量

    10040

原文标题:如何快速找到组合逻辑生成的时钟

文章出处:【微信号:Lauren_FPGA,微信公众号:FPGA技术驿站】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    组合逻辑消除竞争

    本帖最后由 inception1900 于 2015-11-16 14:51 编辑 tmp,tmp_num 是std_logic_vector(15 downto 0),tmp输入,tmp_num 输出,如何消除下面VHDL描述组合逻辑出现的竞争(不采用
    发表于 11-16 14:50

    勇敢的芯伴你玩转Altera FPGA连载25:组合逻辑与时序逻辑

    的延时。而在时序逻辑中,该实例除了组合逻辑满足条件外,只有在时钟信号clk的每个上升沿输出z2才会发生变化。这里一个细节大家也需要注意,x
    发表于 11-17 18:47

    【技巧分享】时序逻辑组合逻辑的区别和使用

    简单的例子来区分学习下,如计算c=a+b。在代码层面,时序逻辑代码表示如下,可以看到此代码“posedge“时钟上升沿,即表示一个D触发器,a+b的结果c是在D触发器发出指令后才进
    发表于 03-01 19:50

    在FPGA中何时用组合逻辑或时序逻辑

    odata也将会比idata延迟一拍,最终结果为result和odata同步输出。 · 根据运行速度进行选择 在数字逻辑电路中,中间某一部分为组合逻辑,两侧的输入或者输出也会对延迟或者输入的数据速率
    发表于 03-06 16:31

    组合逻辑电路的分析与设计-逻辑代数

    组合逻辑电路的分析与设计-逻辑代数   在任何时刻,输出状态只决定于同一时刻各输入状态的组合,而与先前状态无关的逻辑电路称为
    发表于 04-07 10:07 3234次阅读
    <b class='flag-5'>组合</b><b class='flag-5'>逻辑</b>电路的分析与设计-<b class='flag-5'>逻辑</b>代数

    实现拆分大组合逻辑的方法

    图1是很多为了提高系统时钟采用的拆分大组合逻辑的方法,但是没有提供具体如何拆分的实例。我觉得实例才是重要的。但我不明白在写代码时,如何知道这样写会被综合成一个很
    发表于 06-05 11:58 1048次阅读
    实现拆分大<b class='flag-5'>组合</b><b class='flag-5'>逻辑</b>的方法

    门控时钟时钟偏移研究

    所谓门控时钟就是指连接到触发器时钟端的时钟来自于组合逻辑;凡是组合
    发表于 09-07 16:11 35次下载
    门控<b class='flag-5'>时钟</b>与<b class='flag-5'>时钟</b>偏移研究

    组合逻辑电路和时序逻辑电路比较_组合逻辑电路和时序逻辑电路什么区别

    组合逻辑电路和时序逻辑电路都是数字电路,组合逻辑电路在逻辑功能上的特点是任意时刻的输出仅仅取决于
    发表于 01-30 17:26 9.4w次阅读
    <b class='flag-5'>组合</b><b class='flag-5'>逻辑</b>电路和时序<b class='flag-5'>逻辑</b>电路比较_<b class='flag-5'>组合</b><b class='flag-5'>逻辑</b>电路和时序<b class='flag-5'>逻辑</b>电路<b class='flag-5'>有</b>什么区别

    什么是组合逻辑电路_组合逻辑的分类

    组合逻辑电路是无记忆数字逻辑电路,其任何时刻的输出仅取决于其输入的组合.
    的头像 发表于 06-22 10:53 5w次阅读
    什么是<b class='flag-5'>组合</b><b class='flag-5'>逻辑</b>电路_<b class='flag-5'>组合</b><b class='flag-5'>逻辑</b>的分类

    组合逻辑自动测试生成的PDF文件免费下载

    本文档的主要内容详细介绍的是组合逻辑自动测试生成的PDF文件免费下载包括了:• 自动测试生成(ATPG)相关问题 • 组合(Combinat
    发表于 12-01 08:00 2次下载
    <b class='flag-5'>组合</b><b class='flag-5'>逻辑</b>自动测试<b class='flag-5'>生成</b>的PDF文件免费下载

    组合逻辑电路中的危害

    。 在这里,我们将探讨静态 0 危害、静态 1 危害和动态危害。 什么是逻辑危险? 在复杂的逻辑电路中,输出端可能会出现不需要的临时开关事件
    的头像 发表于 01-27 14:18 1708次阅读
    <b class='flag-5'>组合</b><b class='flag-5'>逻辑</b>电路中的<b class='flag-5'>危害</b>

    时序逻辑电路哪些 时序逻辑电路和组合逻辑电路区别

    时序逻辑电路是一种能够存储信息并根据时钟信号按照特定顺序执行操作的电路。它是计算机硬件中非常重要的一部分,用于实现存储器、时序控制器等功能。与之相对的是组合逻辑电路,它根据输入信号的
    的头像 发表于 02-06 11:18 9912次阅读

    组合逻辑控制器的输入信号哪些

    组合逻辑控制器是一种广泛应用于数字电路设计中的控制单元,它根据输入信号的状态来控制输出信号的逻辑关系。组合逻辑控制器的输入信号种类繁多,包括
    的头像 发表于 06-30 10:19 708次阅读

    组合逻辑控制器的设计步骤是什么

    组合逻辑控制器(Combinatorial Logic Controller)是一种数字电路,用于根据输入信号生成输出信号。它不包含存储元件,因此输出仅取决于当前的输入信号。组合
    的头像 发表于 06-30 10:30 725次阅读

    常用的组合逻辑电路哪些

    组合逻辑电路是数字逻辑电路的一种,其特点是输出只依赖于当前的输入状态,而与输入信号的变化历史无关。组合逻辑电路广泛应用于数字系统中,如计算机
    的头像 发表于 07-30 14:41 1560次阅读