FPGA时序优化之Reduce MUXF Mapping

这篇具有很好参考价值的文章主要介绍了FPGA时序优化之Reduce MUXF Mapping。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

我们都知道,FPGA中的拥塞有:全局拥塞,短线拥塞和长线拥塞。

今天我们就来看短线拥塞的一种解决方案:Reduce MUXF Mapping。

UltraScale的CLB资源

在介绍Reduce MUXF Mapping,我们需要知道什么是MUXF,这就得从UltraScale的CLB说起。

我们都知道,在7系列的FPGA中,每个CLB有两个Slice;而在UltraScale系列中,每个CLB中只有一个Slice,Slice又分成了两种类型SliceL(Logic)和SliceM(Memory),其中SliceM中的LUT可以当作分布式RAM来使用。

每个Slice中包含:

  • 6输入2输出LUT * 8,其中SliceM中的LUT可配置为512bits的Distributd RAM和256bits的Shift Registers

  • Flip-Flops * 16

  • Carry8 * 1

  • Wide Multiplexer,即MUXF*

    • MUXF7 * 4
    • MUXF8 * 2
    • MUXF9 * 1

什么是MUXF?

在Ultrascale系列的FPGA中,MUXF*是指MUXF7,MUXF8和MUXF9,需要注意的是:他们不是7选1,8选1和9选1的MUX,具体解释如下图:

verilog mux时序 优化,FPGA,fpga开发

我们再具体解释一下:

  • MUXF7有F7MUX_AB、F7MUX_CD、F7MUX_EF、F7MUX_GH这4个,每个MUXF7均可以与其后面的2个相邻的LUT构成一个8:1 MUX;
  • MUXF8有F8MUX_BOT和F8MUX_TOP,每个MUXF8均可以与其后面的邻近2个F7MUX以及后面的邻近4个LUT构成一个MUX16_1;
  • MUXF9只有一种就是F9MUX,可以与其后面的所有的F7MUX、F8MUX、LUT构成一个MUX32_1。

下面的图是由F8MUX_BOT,两个F7MUX和4个LUT构成的16:1的MUX,图中的D触发器是可选的,是为了减少时序收敛的难度。

verilog mux时序 优化,FPGA,fpga开发

MUXF在什么场景下有优势?

从上面的图中,我们可以看出来,如果实现一个16:1的MUX,在配合MUXF的情况下,只需要一个Slice就可以完成;在一个Slice中完成的逻辑,我们都可以当成是一个logic level;而如果完成由LUT来实现16:1的MUX,则需要多级logic level,因此MUXF的其中一个优势就是可以减少logic level。

MUXF的第二个优势就是节省功耗,在FPGA中,LUT本身的功耗就是要高一些,再加上对于wide multiplexer,所需要的LUT数量也比较多,因此采用MUXF的方式,对于功耗方面是有优势的。

MUXF在什么场景下有劣势?

既然MUXF可以减少logic level,那为什么vivado还有一个专门的选项muxf_remap来优化MUXF呢?

这是因为MUXF在布局时会与八个 LUT组合在一起,这种组合导致 CLB 输入的利用率很高,增加了路由需求,但是会在网表连接复杂时限制了布局的灵活性,从而可能导致更高的路由拥塞,导致时序不好收敛。

下面这个图就展示了将MUXF替换成LUT3之后的效果,需要注意的是,这种替换会增加功耗,仅在我们想收敛时序时使用。

verilog mux时序 优化,FPGA,fpga开发

如何使用该优化指令

在 Vivado 中,opt_design 命令提供了一个可选的 MUX 优化阶段,可以将 MUXF* 结构重新映射为 LUT原语以提高路由能力。我们可以使用 -muxf_remap 选项重新映射所有的 MUXF* 单元。或者,可以在拥塞区域的选择单元上设置 MUXF_REMAP 属性为 TRUE,以限制 MUX 重映射的范围。任何设置了 MUXF_REMAP 属性为 TRUE 的 MUXF* 单元将在 opt_design 期间自动触发 MUX 优化阶段,并被重新映射为 LUT。

set_property BLOCK_SYNTH.MUXF_MAPPING 0 [get_cells inst_name]

FPGA技术交流群,添加微信:z02091168文章来源地址https://www.toymoban.com/news/detail-857634.html

到了这里,关于FPGA时序优化之Reduce MUXF Mapping的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 时序违例在FPGA开发流程的分析及解决,结合实际工程

    时序违例在FPGA开发流程的分析及解决,结合实际工程

    时序违例的解决可以分为几个阶段,布局前,布线前,布线后。我们从这几个阶段对时序违例进行分析以及提出解决方法。(参考ug1292和ug949)。时序违例包括建立时间违例和保持时间为例,主要关注建立时间违例,保持时间违例是由于组合逻辑太短和时钟偏移造成的,可以

    2024年02月12日
    浏览(9)
  • 【FPGA】Verilog 实践:MUX 多路复用器 | Multiplexer | 实现 4 到 1 线路多路复用器

    【FPGA】Verilog 实践:MUX 多路复用器 | Multiplexer | 实现 4 到 1 线路多路复用器

    0x00 MUX 多路复用器(Multiplexer) 多路复用器 (Multiplexer,简称 MUX) 是一种电路,用于从多个输入中选择一个特定输入。它为  个输入提供一个输出,并有  个 select single,作用是从多个输入中选择一个。 多路复用器有两个主要部分:选择器和数据线。选择器用于选择输入信号中

    2024年02月04日
    浏览(51)
  • 【FPGA时序异常原因分析】——详细解析FPGA时序异常产生的原因及处理方法

    【FPGA时序异常原因分析】——详细解析FPGA时序异常产生的原因及处理方法 FPGA是可编程逻辑器件,应用广泛。在使用FPGA时,偶尔会出现时序异常的情况,导致设计的功能无法正确实现。这对于任何工程师来说都是非常头疼的问题。本文将详细解析FPGA时序异常的原因,以及如

    2024年02月08日
    浏览(12)
  • FPGA时序分析与约束(2)——时序电路时序

    FPGA时序分析与约束(2)——时序电路时序

            在之前的内容中,我们介绍了组合电路的时序问题和可能导致的毛刺,强烈推荐在阅读前文的基础上再继续阅读本文, 前文链接:FPGA时序分析与约束(1)——组合电路时序         这篇文章中,我们将继续介绍FPGA时序分析相关内容,本文介绍的是时序电路的时序

    2024年02月10日
    浏览(15)
  • FPGA时序分析与时序约束(四)——时序例外约束

    FPGA时序分析与时序约束(四)——时序例外约束

    目录 一、时序例外约束 1.1 为什么需要时序例外约束 1.2 时序例外约束分类 二、多周期约束 2.1 多周期约束语法 2.2 同频同相时钟的多周期约束 2.3 同频异相时钟的多周期约束 2.4 慢时钟域到快时钟域的多周期约束 2.5 快时钟域到慢时钟域的多周期约束 三、虚假路径约束 四、最

    2024年01月20日
    浏览(15)
  • FPGA时序分析与约束(8)——时序引擎

    FPGA时序分析与约束(8)——时序引擎

            要想进行时序分析和约束,我们需要理解时序引擎究竟是如何进行时序分析的,包括时序引擎如何进行建立分析(setup),保持分析(hold),恢复时间分析(recovery)和移除时间分析(removal)。         发起沿(launch edge,源时钟产生数据的有效时钟沿),捕获沿(capture

    2024年02月07日
    浏览(14)
  • FPGA时序分析与约束(5)——时序路径

    FPGA时序分析与约束(5)——时序路径

            在之前的文章中我们分别介绍了组合电路的时序,时序电路的时序和时钟的时序问题,我们也对于时序分析,时序约束和时序收敛几个基本概念进行了区分,在这篇文章中,我们将介绍时序约束相关的最后一部分基本概念,带领大家了解什么是时序路径。       

    2024年02月09日
    浏览(13)
  • FPGA时序分析与时序约束(Vivado)

    FPGA时序分析与时序约束(Vivado)

    后缀L的这个单元中,会生成锁存器 查看布线 定位线路 时间分析,还要考虑数据变化的建立时间与保持时间 经过图上计算可得公式 : Tsu裕量 = (Tskew + 时钟周期 - Tsu) - (Tco + Tdelay) Thd裕量 = Tco + Tdelay - Thd 两个时间都大于0,才能保证系统不产生亚稳态。 建立时间裕量、组

    2024年01月19日
    浏览(17)
  • FPGA时序分析与约束(1)——组合电路时序

    FPGA时序分析与约束(1)——组合电路时序

            关于时序分析和约束的学习似乎是学习FPGA的一道分水岭,似乎只有理解了时序约束才能算是真正入门了FPGA,对于FPGA从业者或者未来想要从事FPGA开发的工程师来说,时序约束可以说是一道躲不过去的坎,所以从这篇文章开始,我们来正式进行FPGA时序分析与约束的学

    2024年02月10日
    浏览(11)
  • FPGA时序分析与时序约束(二)——时钟约束

    FPGA时序分析与时序约束(二)——时钟约束

    目录 一、时序约束的步骤 二、时序网表和路径 2.1 时序网表 2.2 时序路径  三、时序约束的方式 三、时钟约束 3.1 主时钟约束 3.2 虚拟时钟约束 3.3 衍生时钟约束 3.4 时钟组约束 3.5 时钟特性约束 3.6 时钟延时约束         上一章了解了时序分析和约束的很多基本概念(FP

    2024年02月03日
    浏览(12)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包