布线拥塞


本文参考知网文章:布局布线中一种拥塞问题的解决方法。

1 什么是布线拥塞

  • 芯片在布线的时候, 当可利用的布线资源少于所需要的布线资源时, 就会发生布线拥塞。

2 布线拥塞后果

  • 解决绕线拥塞是数字后端设计布局阶段的基本要求。布局是要根据对功能、对模块, 具体到对Hardmacro或者标准单元做整体的规划。布局设计将影响到芯片的面积、速度、信号完整性和设计周期。一个好的布局将大大减少后续布线以及时序收敛所耗费的时间和精力。
  • 布局阶段如果发生严重的拥塞将给布线带来困难, 有可能导致大量的违反工艺规则的违例, 最终导致布线无法绕通或者布线时间过长;另一方面, 拥塞严重的设计, 串扰也会很严重, 这将会给时序收敛带来巨大挑战

2.1 对静态时序的影响

  • 静态时序分析是由静态的分析方式判断芯片是否能够在使用者指定的时序下正常工作。在绕线完成后, 不但组件的位置已经固定, 所有的绕线的大小形状也都已经确定。此时的时序报告会更接近实际芯片的时序特性。
  • 在理想的状况下, 布局后的虚拟绕线预估应该和实际绕线一致。但事情通常没有这么简单, 虚拟绕线并没有考虑到绕线拥塞的问题, 它会假设两个组件间以最短的可行距离去绕线, 实际绕线时可能在某些区域走了太多的绕线(即布线已经拥塞), 会导致有些连线没办法沿着虚拟绕线规划的路径走。此时布局布线软件会强迫这些连线绕道通行, 而这些绕道通行的连线, 其连线距离一定会比虚拟绕线规划的路径还要更长。这也意味着会有更多的连线负载, 因此造成更多的路径延迟, 导致时序上的特性变差 。

2.2 对串扰的影响

  • 由于线间距的减小和金属层次的增多, 串扰延迟和串扰噪声的影响越来越大。
  • 串扰延迟主要是影响时序路径的结果, 造成一定的偏差, 如出现新的违规, 造成信号渡越时间、负载违例。串扰噪声是不确定性的噪声信号, 会产生毛刺信号引起电路误操作。
  • 串扰噪声是不确定性的噪声信号, 会产生毛刺信号引起电路误操作。如某信号从功能上并没有输出信号, 但测量会有幅度很小的规则波形, 这时测量与它相近的信号线, 会发现某种相似的规律, 如果两根信号线靠的很近的情况下, 这种情况就会出现, 这就是串扰。当然, 被串扰影响的信号线上的波形不一定和邻近信号波形相似, 也不一定有明显的规律, 更多的表现为噪声形式。由于布线空间小, 信号必然靠的很近, 在拥塞严重区域, 串扰和噪声会更加严重。串扰的解决可以通过增加线与线间距, 增加屏蔽线, 插入驱动单元增强信号的驱动强度等方式来降低被噪声干扰的程度, 这就需要在布线前有一个宽松的布局来避免布线拥塞。
  • 因此, 在布局阶段, 通常把解决拥塞作为数字芯片后端布局阶段的基本任务和首要目标, 这个做不好后面的工作可能就是徒劳。

3 FPGA如何避免布线拥塞

  • 限制信号的最大扇出数目,使用寄存器复制的方式。可以手动编写HDL代码去实现,但是要防止被综合器优化掉。也可以直接设定最大扇出数据,借助EDA工具实现。
  • 在Altera FPGA中可以借助逻辑锁定的方式,在满足时序的前提下,尽可能将多通道的子工程布局在chip planner的各个角落,即采用固定而非浮动的逻辑锁。一方面可以减少布线拥塞,另一方面可以降低布局布线时间。
  • 取消查找表整合(LUT combining),即便有共享变量也让他们使用不同的查找表,虽然消耗更多资源,但是布线情况会好。赛灵思建议当使用的查找表比例超过15%之后就应该关闭查找表整合。
  • 在HDL代码中进行约束
(* max_fanout = 150 *)  wire        rst_clk_rx;

猜你喜欢

转载自blog.csdn.net/qq_43445577/article/details/111855224