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

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

3天内不再提示

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

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

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

我们还可以采用手工布局的方式,这对于时序违例路径集中在某一个模块或某一个层次内的情形较为适用。使用此方法时需要注意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更为灵活,更为易用。只是需要用户确认哪些模块下的逻辑单元需要放置得紧凑些。



审核编辑:刘清

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

    关注

    1

    文章

    10

    浏览量

    6555
  • Vivado
    +关注

    关注

    18

    文章

    790

    浏览量

    65102
  • 时序仿真
    +关注

    关注

    0

    文章

    14

    浏览量

    7360
收藏 人收藏

    评论

    相关推荐

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

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

    (转) 手机RF射频PCB板布局布线的一些经验

    PCB空间较小,同时考虑到布线的设计过程限定最高,所有的这一些对设计技巧的要求就比较高。这时候可能需要设计四到六PCB了,它们交替工作,而不是同时工作。高功率电路有时还可包括RF
    发表于 12-21 14:48

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

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

    阻抗控制与层叠设计的几个层次

    说起阻抗控制,很多人都是脸的轻描淡写:这么简单,我刚入行就会了。深入了解行业设计中进行阻抗控制的方法之后,我总结了4个层次。第0
    发表于 07-25 18:33

    为什么2812的板子比同一层次28335的板子还要贵

    为什么同一个档次的DSP学习板中,2812反而比28335的更贵呢,不是说28335功能更加强大吗?对比了几家买板子的(南京傅里叶、研旭等)2812都比28335贵,纠结到底学哪
    发表于 11-06 20:11

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

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

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

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

    层次式电路设计与平坦式电路设计的区别

    代表的子电路结构,下一层次中还可以包括框图,按层次关系将子电路框图逐级细分,直到最低层次上为具体电路图,不再包括子电路框图。层次式原理图设计的两种
    发表于 08-20 09:54

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

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

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

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

    层次结构设计是否意味着将个大模块分成几个子模块

    我总是看到提到的“层次设计”的培训文件,这我有点困惑。我有以下问题;1.层次结构设计是否意味着将个大模块分成几个子
    发表于 03-21 12:42

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

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

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

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

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

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

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

    ,即使芯片型号发生了改变也依然可以继承原有约束;而对于绝对位置约束,一旦芯片型号发生改变就要确认是否要调整相应位置。此外,如果时序违例路径较多,这种方法的有效性将大大降低。
    的头像 发表于 06-15 09:26 272次阅读
    如何让<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>