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

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

3天内不再提示

产生Congestion的主要原因

倩倩 来源:IP与SoC设计 作者:IP与SoC设计 2022-08-18 10:57 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

Congestion意思为拥塞,一般是在后端PR阶段发现布局布线比较拥挤,可能会导致布线布不过去,出问题也无法做ECO。

Congestion也分为几种情况,和前端密切相关的是Logic Congestion(更多关于后端Congetsion问题,查看文末参考文章),主要原因是RTL设计问题导致,这种问题的现象从后端看上去就是Cell数没多少,就是线密。

产生Congestion的主要原因

有限的面积下,电路面积过大。从一开始预估的面积与最后实际的面积有一定差距,导致该模块面积被限定的情况下,逻辑较多,绕线严重。

大位宽信号做选择逻辑。假如有一个信号定义为3万bit,然后它还需要送到几个模块去做选择器,从里面挑数,这样就是3万根线,连来连去,这样的设计必然有问题。这样惊人的设计最后怎么能用呢。只能说,工艺牛逼!

选择器太大。选择器的选择项多,设计复杂的情况下,难免会有选择器的选择项有大几十上百个的情况。

信号负载大。一个参数信号可能用到了很多地方,驱动数个像上面那样的大mux,这样的信号的负载会非常大。

组合逻辑路径长。组合逻辑路径长,时序比较紧的地方,工具会做一些优化增加绕线,这样的结果会加重后端拥塞。

以上问题会出现归根结底就是设计方案和方法的问题。

几个无效的尝试

怎么解决,假设一个前提,时间紧迫,如果对时序逻辑进行大的改动,需要调试的时间较长,严重时造成项目delay。所以只能在不改变时序的情况下,只对组合逻辑进行优化。

模块划分重构,目的是想减少模块之间的耦合度,重新划分,把耦合度强的模块放到接近,模块的层级调整,比如三级模块变二级模块。但是,从后端布线上看,其实看不出模块边界,关联度高的模块甚至会揉在一起的,工具自动按元器件关联较近的方式布局布线,甚至会把你一个模块分成距离很远的两部分。这样修改可以减少耦合度,有效果但不明显。

大mux拆分成小mux。将单一的大mux拆分成多级小选择器,每一级之间用寄存器打断。但是,如果不用寄存器打断拆分,可能没啥用,因为工具也是这么做的。归纳可能会省去很多多余的分支。但在不改变时序的情况下做拆分基本无收益,因为只是在RTL级别上看的大mux写法的不同,实际上还是由众多小mux组成的。

降低信号的负载,参数寄存器复制多份,送给不同的模块。数据通路的寄存器也可以进行复制,减少信号的负载。但是综合加max_fanout约束后,工具会自动插buffer和复制寄存器的操作,而且因为面积本身有限,时序的优化带来的收益还会被寄存器的增加所抵消。

总结一下,就是忙碌了半个月的硅农师傅,白忙活了。

有效的修改优化总结

运算逻辑复用,节省面积给逻辑走线。先选后比/加/乘/模块。

乘法器复用打拍位置调整,乘法器模块的复用把打拍放在复用模块的输出,而不是传输到各个模块中才打拍,节省寄存器开销,负载的问题,前面也说了,工具会自动插buffer和复制寄存器。

重定时(retiming)技术,改变寄存器的打拍位置,节省寄存器。

打断较复杂的组合逻辑,中间插入寄存器,时序变好,即使寄存器增多,面积(可能)反而会变小。

大于1k的寄存器组考虑用RAM替代,但用RAM读取数据需要进行时序控制逻辑,并行度会降低。要求并行度高,可使用多个RAM。面积和速度永远是两个背道相驰的努力目标。所以要Trade Off(折中)

后端喜欢,深度深,位宽小的RAM,这样最后的bit/面积的值会更大。举例说明就是Depth128xWidth16和,Depth16xWidth128相比最后的面积大小,前者会比后者小很多。简单来说,后端喜欢细长的,不喜欢粗短的。

RAM也可以复用,前面计算用完空闲下来的RAM,可以复用起来。

交给后端同事吧(逃)。

审核编辑 :李倩

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

    关注

    7

    文章

    2822

    浏览量

    52790
  • 寄存器
    +关注

    关注

    31

    文章

    5588

    浏览量

    129035
  • Verilog
    +关注

    关注

    30

    文章

    1370

    浏览量

    114107

原文标题:Verilog设计遇到了Congestion问题怎么办?

文章出处:【微信号:IP与SoC设计,微信公众号:IP与SoC设计】欢迎添加关注!文章转载请注明出处。

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    轴承锈蚀的主要原因分析

    轴承锈蚀的主要原因分析 环境因素 湿度:空气中湿度的大小对轴承的锈蚀速度有很大的影响。在临界湿度下,金属锈蚀的速度很慢,一旦湿度超过临界湿度,金属锈蚀的速度会突然上升。钢铁的临界湿度在65%左右
    的头像 发表于 11-22 10:50 1332次阅读

    电压暂降的原因有哪些?

    存在显著差异,具体解析如下: 一、电网侧故障:最主要原因(占比约 60%) 电网自身的设备故障或操作失误,会导致电流骤增、电压骤降,且影响范围广(可能覆盖多个用户),持续时间多为 10ms~500ms。 1. 短路故障(占电网侧原因的 70%) 电
    的头像 发表于 10-11 17:23 1653次阅读
    电压暂降的<b class='flag-5'>原因</b>有哪些?

    汉思新材料:环氧底部填充胶固化后有气泡产生原因分析及解决方案

    环氧底部填充胶固化后出现气泡是一个常见的工艺问题,不仅影响美观,更严重的是会降低产品的机械强度、热可靠性、防潮密封性和长期可靠性,尤其在微电子封装等高要求应用中可能导致器件失效。以下是对气泡产生原因
    的头像 发表于 07-25 13:59 564次阅读
    汉思新材料:环氧底部填充胶固化后有气泡<b class='flag-5'>产生</b><b class='flag-5'>原因</b>分析及解决方案

    SMT打样费用高?这5大核心原因你一定要知道!

    一站式PCBA加工厂家今天为大家讲讲影响SMT打样费用的主要原因有哪些?影响SMT打样费用的主要原因。在电子产品研发阶段,SMT贴片打样是验证设计可行性的关键环节。然而,许多客户发现小批量SMT打样
    的头像 发表于 07-18 09:20 425次阅读

    激光焊锡中虚焊产生原因和解决方法

    激光焊锡是发展的非常成熟的一种焊接技术,但是在一些参数控制不好的情况下,依然会产生一些焊接问题,比如说虚焊的问题。松盛光电来给大家介绍一下激光锡焊中虚焊问题产生原因及其解决方案。
    的头像 发表于 06-25 09:41 1078次阅读

    晶圆表面清洗静电力产生原因

    晶圆表面清洗过程中产生静电力的原因主要与材料特性、工艺环境和设备操作等因素相关,以下是系统性分析: 1. 静电力产生的核心机制 摩擦起电(Triboelectric Effect) 接
    的头像 发表于 05-28 13:38 605次阅读

    PLC为什么容易烧坏?主要原因在哪里?

    什么原因导致PLC容易烧坏?我们可以从硬件设计、环境因素、操作维护等多个角度深入分析这一问题。 一、电源问题:PLC烧毁的首要诱因 电源异常是导致PLC损坏的最常见原因之一。根据工业现场统计,超过35%的PLC故障与电源问题直接相关。
    的头像 发表于 05-12 08:42 2192次阅读
    PLC为什么容易烧坏?<b class='flag-5'>主要原因</b>在哪里?

    sys_sem_free()传入的参数变成了NULL,引起这个现象的主要原因有哪些?

    ).sem); 此时该传入的参数在莫名的情况下变成了NULL,该问题发生在频繁建立和断开TCP连接的测试案例中。 请教一下引起这个现象的主要原因有哪些?
    发表于 04-30 07:35

    变频器对PLC和步进电机干扰的主要原因和解决办法

    、信号输入和输出工作失常,同时也可能使步进电机产生震动和运行失步。以下是对变频器干扰PLC和步进电机的主要原因及解决办法的详细分析: 一、主要原因 1. 变频器性能:性能较差的变频器可能产生
    的头像 发表于 04-10 07:34 1189次阅读
    变频器对PLC和步进电机干扰的<b class='flag-5'>主要原因</b>和解决办法

    CAN丢帧很常见,你知道有哪些主要原因吗?(下)

    CAN总线在汽车和工业领域广泛应用,但通信问题可能影响其稳定性。本文探讨总线速率错误、电源不稳定和线程处理不当三大常见问题,分析原因并提供解决方法,助力优化通信可靠性。总线速率设置错误当总线速率设置
    的头像 发表于 02-25 11:33 1245次阅读
    CAN丢帧很常见,你知道有哪些<b class='flag-5'>主要原因</b>吗?(下)

    CAN丢帧很常见,你知道有哪些主要原因吗?(中)

    导读在工程应用中,CAN通信的稳定性至关重要,但丢帧和错误帧现象却时有发生。本文将简要分析导致这些问题的常见原因,并给出针对性的解决方案。一般来说,使用CAN通信的场合,对通信的稳定性都有很高的要求
    的头像 发表于 02-20 11:44 1959次阅读
    CAN丢帧很常见,你知道有哪些<b class='flag-5'>主要原因</b>吗?(中)

    CAN丢帧很常见,你知道有哪些主要原因吗?(上)

    导读在工程应用中,CAN通信的稳定性至关重要,但丢帧和错误帧现象却时有发生。本文将简要分析导致这些问题的常见原因,并给出针对性的解决方案。一般来说,使用CAN通信的场合,对通信的稳定性都有很高的要求
    的头像 发表于 02-18 11:38 1462次阅读
    CAN丢帧很常见,你知道有哪些<b class='flag-5'>主要原因</b>吗?(上)

    ADC的谐波产生原因是什么?

    ADC的谐波产生原因是什么
    发表于 02-08 08:25

    探究传感器故障的主要原因

    的正常运行,还可能带来安全隐患和经济损失。本文旨在深入探讨传感器故障的主要原因,以便我们更好地预防和应对。
    的头像 发表于 12-25 14:03 1818次阅读

    线路板PCB工艺中的翘曲问题产生原因

    线路板PCB工艺中的翘曲问题可能由多种因素引起,以下是小编总结的几个主要原因
    的头像 发表于 12-25 11:12 1271次阅读