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

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

3天内不再提示

如何让同一层次的模块在布局时更紧凑一些

FPGA技术驿站 来源:FPGA技术驿站 2023-06-15 09:26 次阅读

在时序分析时,我们常会碰到的一类现象是:关键路径上的逻辑单元过于分散,导致布线延迟过大,从而造成时序违例。对此,我们可以通过相对位置约束或绝对位置约束来限定相关逻辑的位置关系。就相对位置约束而言,即使芯片型号发生了改变也依然可以继承原有约束;而对于绝对位置约束,一旦芯片型号发生改变就要确认是否要调整相应位置。此外,如果时序违例路径较多,这种方法的有效性将大大降低。

我们还可以采用手工布局的方式,这对于时序违例路径集中在某一个模块或某一个层次内的情形较为适用。使用此方法时需要注意Pblock的大小。Pblock不能太小,否则会增加布局布线的压力;Pblock也不能太大,否则会浪费资源。实际上,Vivado针对Pblock的资源利用率也提供了指导值,该指导值跟整个芯片的资源利用率指导值一致,可通过命令report_failfast查看。Pblock的形状也是一个重要的因素。通常建议为标准的矩形。不规则的形状如在矩形框中挖掉一个小的矩形形成“回”字形状会严重危害时序性能且导致编译时间增长。Pblock的位置也是一个重要因素。可以先让工具自动布局,在此基础上观察关键模块的分布情况,然后参考此位置确定Pblock的位置。可以看到,使用Pblock要求工程师有一定的工程经验,需要考虑的因素也较多。如果Pblock的位置不合理,可能会出现顾此失彼的情形(Pblock内的模块时序改善了,而其他模块的时序又恶化了)。Pblock的另一弊端是缺乏灵活性。当芯片型号发生改变时很有可能重新确定Pblock的大小或位置。

好在Vivado提供了一个新的约束属性USER_CLUSTER(要求Vivado版本为2022.2或之后)。该属性的作用是指导工具在布局时将指定层次/模块下的逻辑单元放得更紧凑一些。为便于说明,我们看一个例子。在没有使用该属性时,布局结果如下图所示。可以看到整个设计的资源利用率并不高,但却比较分散。

8a373580-0b10-11ee-962d-dac502259ad0.png

接下来我们使用属性约束USER_CLUSTER。该属性的属性值为用户定义的组名,属性施加的对象为get_cells的返回值,也就是用户通过get_cells指定的模块,如下图所示。

8a630cf0-0b10-11ee-962d-dac502259ad0.png

使用此约束之后,最终的布局结果如下图所示。可以看到,相关资源已经非常紧凑了。

8a81da36-0b10-11ee-962d-dac502259ad0.png

相比于手工布局,USER_CLUSTER更为灵活,更为易用。只是需要用户确认哪些模块下的逻辑单元需要放置得紧凑些。

审核编辑:汤梓红

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

    关注

    453

    文章

    50277

    浏览量

    421226
  • 模块
    +关注

    关注

    7

    文章

    2659

    浏览量

    47298
  • 时序分析
    +关注

    关注

    2

    文章

    127

    浏览量

    22543
  • Vivado
    +关注

    关注

    19

    文章

    806

    浏览量

    66252

原文标题:如何让同一层次的模块在布局时更紧凑一些

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

收藏 人收藏

    评论

    相关推荐

    元件库的一些东西放哪一层

    请问做单面板元件库时元件面的丝印和焊接面的丝印分别放在哪一层?一些注解文字放在哪一层?
    发表于 12-13 13:59

    单片机程序设计的十功力,你练到那一层了?

    操作,通常是使用时间系统的时间发生标志。同时在这一层如果能够将WINDOWS程序设计中的一些优秀思想利用起来,则非常好。能够领悟到这一层的,我所知道的前辈高手中少之又少。第六
    发表于 11-01 08:50

    PADS9.5 LAYOUT 设置元件 怎样 可以重叠放置 大的中间小的 同一层的?

    PADS9.5 LAYOUT 设置元件 怎样 可以重叠放置 大的中间小的 同一层的?
    发表于 08-04 15:39

    单片机程序设计的十功力,你练到那一层了?

    的程序是否能够有点实用价值。譬如应用在实际工程项目中。在这一层,应该开始思考如何程序结构简单模块化,如何合理的利用CPU的时间。我曾经写过这一层
    发表于 03-22 11:46

    单片机程序设计的十功力,你练到那一层了?

    的程序是否能够有点实用价值。譬如应用在实际工程项目中。在这一层,应该开始思考如何程序结构简单模块化,如何合理的利用CPU的时间。我曾经写过这一层
    发表于 09-07 10:13

    请问FPGA与DDR3是否必须放置同一层

    请问FPGA与DDR3是否必须在同一层放置,由于现在不在同一层,软件调试的时候图像有抖动,软件说是因为FPGA与DDR3未在同一层,导致时序有问题。
    发表于 12-26 09:37

    请问各位个问题,PCB中不在同一层的布线形成锐角有关系吗?

    PCB中不在同一层的线形成锐角有关系吗?硬件工程师 说不能这样走,但是我的想法是又不在同一层为什么不能?
    发表于 05-21 10:00

    为什么同一层铺动态铜皮有的可以自动避让?

    为什么同一层铺动态铜皮,有的可以自动避让有的就没有呢?
    发表于 07-23 05:35

    如何在ad16层次原理图中查看不同原理图里面的同一网络标号?

    ad16层次原理图里面如何查看不同原理图里面同一网络标号?
    发表于 08-28 04:44

    PCB设计过程中的一些问题和一些技巧分享

    PCB设计过程中的一些问题和一些技巧分享 1、如何利用层次图绘制电路原理图? 答:层次原理是模块
    发表于 09-07 20:08 17次下载

    VICOR模块一些基本应用

      VICOR模块一些基本应用
    发表于 11-24 11:42 17次下载

    APT触摸布局一些建议详细说明

    本文档的主要内容详细介绍的是APT触摸布局一些建议详细说明。
    发表于 10-27 08:00 0次下载
    APT触摸<b class='flag-5'>布局</b>的<b class='flag-5'>一些</b>建议详细说明

    一些实用的布局、提示和技巧

    本文将为初学者提供一些实用的布局、提示和技巧,可以帮助您避免事故或解决各种问题。该系列将不定期发布。
    的头像 发表于 08-09 16:56 1445次阅读
    <b class='flag-5'>一些</b>实用的<b class='flag-5'>布局</b>、提示和技巧

    介绍一些PCB布局的思路和原则

    今天给大家介绍一些PCB布局的思路和原则
    的头像 发表于 05-17 10:00 1066次阅读
    介绍<b class='flag-5'>一些</b>PCB<b class='flag-5'>布局</b>的思路和原则

    同一层次模块布局更紧凑一些的方法

    时序分析时,我们常会碰到的类现象是:关键路径上的逻辑单元过于分散,导致布线延迟过大,从而造成时序违例。
    的头像 发表于 06-15 09:23 1322次阅读
    <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>的方法