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

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

3天内不再提示

产生Congestion的主要原因

倩倩 来源:IP与SoC设计 作者:IP与SoC设计 2022-08-18 10:57 次阅读

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

Congestion也分为几种情况,和前端密切相关的是LogicCongestion(更多关于后端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,可以复用起来。

交给后端同事吧(逃)。

审核编辑 :李倩

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

    关注

    7

    文章

    2585

    浏览量

    46904
  • 寄存器
    +关注

    关注

    31

    文章

    5225

    浏览量

    118955
  • Verilog
    +关注

    关注

    28

    文章

    1330

    浏览量

    109629

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

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

收藏 人收藏

    评论

    相关推荐

    放大器产生零点漂移的主要原因

    放大器 产生零点漂移的 主要原因可以归纳为以下几点: 一、温度变化 主要原因:温度变化是造成零点漂移的 主要因素。温度的变化会导致电阻、电容等元器件的参数发生变化,从而影响放大电路的工作状
    的头像 发表于08-06 15:28 203次阅读

    运放噪声产生原因,运放的高频噪声如何消除

    运放(运算放大器)的噪声 产生 主要源于多个方面,这些噪声源可以影响运放的输出信号质量。以下是运放噪声 产生主要原因
    的头像 发表于06-09 17:09 1756次阅读

    焊接质量缺陷产生主要原因

    创想焊缝跟踪小编将与大家一起探讨焊接质量缺陷 产生主要原因。 材料选择不当 焊接质量缺陷的 主要原因之一是材料选择不当。焊接材料包括焊条、电极、焊丝、焊剂等,如果选择的焊接材料与基材不匹配,或者焊接材料的质量
    的头像 发表于05-15 09:41 341次阅读
    焊接质量缺陷<b class='flag-5'>产生</b>的<b class='flag-5'>主要原因</b>

    谐波引起电缆损坏的主要原因

    谐波是指在电力系统中出现的频率为整数倍于基波频率的波动现象。在电缆中传输的电能中,谐波存在的情况是很常见的。然而,谐波也是导致电缆损坏的 主要原因之一。
    的头像 发表于03-14 14:20 398次阅读
    谐波引起电缆损坏的<b class='flag-5'>主要原因</b>

    放大电路中产生零点漂移的主要原因是什么

    放大电路中 产生零点漂移的 主要原因是什么 放大电路是电子设备中常用的一种电路,用于放大信号的幅度。然而,放大电路中常常会出现零点漂移的问题,即输出信号在没有输入信号时并不为零,而是存在一个偏移值
    的头像 发表于02-06 15:23 2293次阅读

    辊压机轴承位磨损主要原因

    德赢Vwin官网 网站提供《辊压机轴承位磨损 主要原因.docx》资料免费下载
    发表于01-10 14:10 0次下载

    现代独立显卡电力消耗的主要原因

    现代独立显卡电力消耗的 主要原因近年来,随着科技的不断发展和人们对高画质游戏和图形处理需求的增加,独立显卡已经成为电脑的必备硬件之一。然而,独立显卡的电力消耗问题也逐渐浮出水面。本文将详细探讨现代
    的头像 发表于01-09 13:52 349次阅读

    光缆故障的主要产生原因

    光缆故障的 主要 产生 原因光缆是现代通信和互联网领域的重要基础设施之一,其承载着海量的信息传输任务。然而,由于各种 原因,光缆故障时有发生,给通信和互联网的正常运行带来了严重的影响。因此,
    的头像 发表于12-07 10:10 785次阅读

    7种光缆故障的主要原因

    7种光缆故障的 主要原因光缆故障是指光缆在传输信息过程中出现的问题,影响着光信号的传输质量和速度。这些故障可能由多种 原因引起,下面将详细介绍7种光缆故障的 主要原因。 1. 光缆折断 光缆折断是最常
    的头像 发表于12-07 09:40 1651次阅读

    为什么共模电流是EMI的主要原因

    为什么共模电流是EMI的 主要原因
    的头像 发表于12-05 15:56 329次阅读
    为什么共模电流是EMI的<b class='flag-5'>主要原因</b>

    在PCB设计中,使用多层PCB板的主要原因

    一站式PCBA智造厂家今天为大家讲讲PCB设计为什么要采用多层PCB结构进行?使用多层PCB板的 主要原因。随着芯片集成度的提高,芯片封装的I/O引脚数目也在飞跃性地增加,特别是BGA封装的出现,仅靠单面、双面导体层布线已经无法将BGA内圈的引脚的走线引出。
    的头像 发表于11-24 09:16 589次阅读
    在PCB设计中,使用多层PCB板的<b class='flag-5'>主要原因</b>

    铅酸蓄电池短路的主要原因

    德赢Vwin官网 网站提供《铅酸蓄电池短路的 主要原因.doc》资料免费下载
    发表于11-15 09:07 2次下载
    铅酸蓄电池短路的<b class='flag-5'>主要原因</b>

    产生共模噪声的主要原因影响电路共模抑制比的因素

    产生共模噪声的 主要原因影响电路共模抑制比的因素 共模噪声是指同时在两个电路的输入端 产生噪声信号,引起输出端的电压变化,这种噪声信号叫做共模噪声。在电子设备中,由于信号处理电路复杂,且存在大量
    的头像 发表于10-25 11:01 1226次阅读

    电压闪烁的主要原因

    电压闪烁是指电源电压在一段时间内不断变化的现象。这种变化可以是短暂的、周期性的、不规则的,或者在电源系统中发生的各种不稳定性。电压闪烁的 产生原理可以涉及多种因素,以下是一些可能导致电压闪烁的 主要原因
    的头像 发表于10-05 16:58 3215次阅读

    锡膏焊接后PCBA焊点产生空洞的原因是什么?

    从SMT贴片加工的角度来看,空洞率是不可避免的。任何厂家也不能说自己的贴片焊接焊点没有一点空洞。那么空洞是怎么 产生的呢?空洞的 原因是什么?通过佳金源锡膏厂家的工程师解释,空洞的 产生 主要原因
    的头像 发表于09-25 17:26 912次阅读
    锡膏焊接后PCBA焊点<b class='flag-5'>产生</b>空洞的<b class='flag-5'>原因</b>是什么?