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开发流程的分析及解决,结合实际工程

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    2024年02月03日
    浏览(69)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包