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

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

3天内不再提示

如何得到LUT与REG的使用比例

FPGA设计论坛 来源:FPGA设计论坛 作者:FPGA设计论坛 2022-07-03 14:54 次阅读

一、如何得到LUT与REG的使用比例 riple

我们先看一个FPGA工程的编译结果报告:

9b9e1e18-f399-11ec-ba43-dac502259ad0.jpg

在这个报告中,我们可以看到如下信息

Total logic elements 24071/24624(98%): 该芯片中共有24624个LE资源,其中的98%在这个工程的这次编译中得到了使用。 riple

Total combinational functions 21612/24624(88%): 该芯片的24624个LE资源中,88%用于实现组合逻辑。 riple

Dedicated logic registers 8858/24624(36%): 该芯片的24624个LE资源中,36%用于实现寄存器,即时序逻辑。 riple

就是从上述信息中,我得到了组合逻辑与时序逻辑的使用比例——21612/8858 = 2.4:1。 riple

二、一份更详细的资源利用率报告 riple

在这个报告中,有一点可能会令人困惑:为什么Total combinational functions与Dedicated logic registers之和(30470)大于Total logic elements(24071),甚至大于该芯片的总资源(24624)。我们再来看一份更详细的资源使用报告——Fitter Resource Usage Summary:

9bb2b3aa-f399-11ec-ba43-dac502259ad0.jpg

这份报告包含很多信息,在这里我们只需要关心Total logic elements一项。Total logic elements 24071/24624(98%)由三种使用情况不同的LE资源组成:仅用于实现组合逻辑的LE(Combinational with no register 15213),仅用于实现时序逻辑的LE(Register only 2459),同时用于实现组合逻辑和时序逻辑的LE(Combinational with a register 6399)。 riple

三、从Resource Property Editor看LE的使用情况 riple

在进一步分析这些数据之前,我们有必要回顾一下FPGA的基本组成元素LE(Logic Element)的结构和功能。以Altera的Cyclone III系列FPGA芯片为例,其LE内部结构如下图所示:

9bd37432-f399-11ec-ba43-dac502259ad0.jpg

这个LE同时用于实现组合逻辑和时序逻辑,其中蓝色部分为组合逻辑(一个4输入LUT),其中黄色高亮部分为时序逻辑(一个D触发器)。 riple

我们再来看一个更有趣的LE:

9bf052f0-f399-11ec-ba43-dac502259ad0.jpg

这个LE也同时用于实现组合逻辑和时序逻辑,与上一幅图不同的地方在于,这里的组合逻辑(4输入LUT)与时序逻辑(REG)并没有连接关系。组合逻辑从COMBOUT直接输出,时序逻辑从REGOUT输出。这种互不相关的组合逻辑与时序逻辑共用同一个LE的情况很特殊,这是采用了Register Packing资源优化技术之后的实现方式。如果没有采用这一资源优化技术,就要用两个LE来分别实现相应的组合逻辑和时序逻辑。 riple

明白了上面这两幅图,大家也能由此类推,想象出仅用于实现组合逻辑的LE(Combinational with no register)和仅用于实现时序逻辑的LE(Register only)该是什么样子。 riple

四、“数字终于对(凑)上了!” riple

我们回到前面关于资源利用率分析的部分。有了上面介绍的知识,大家应该能够把资源利用率报告中三种使用情况不同的LE区分开了。 riple

我们把“同时用于实现组合逻辑和时序逻辑的LE(6399)”分别加到“仅用于实现组合逻辑的LE(15213)”和“仅用于实现时序逻辑的LE(2459)”上面,就可以得到“全部组合逻辑”(Total combinational functions = 6399 + 15213 = 21612)和“全部寄存器”(Dedicated logic registers = 6399 + 2459 = 8858)两个数值了。这两个数值就是第一幅图中关于资源利用率的汇总报告结果,它们的比例恰好就是2.4:1。 riple

由于6399这个数字被使用了两次,所以我们最初关于“Total combinational functions与Dedicated logic registers之和(30470 = (6399 + 15213) + (6399 + 2459))大于Total logic elements(24071 = 6399 + 15213 + 2459)”的困惑也得到了解答。 riple

五、总结 riple

由于FPGA设计中用到的组合逻辑与时序逻辑的数量不均衡,部分LE会仅用于实现组合逻辑或时序逻辑;进一步,由于布局位置的限制,单独实现组合逻辑或时序逻辑的两个LE可能不能合并到一个LE中实现。所以,在资源利用率报告中会出现三种使用情况不同的LE。 riple

由于过长的组合逻辑链(级联的LUT)会引入较大的延时,而时序逻辑(REG)能够把较长的组合逻辑链分割成较短的组合逻辑链,有效地缩短关键路径和次关键路径的长度,进而提高该FPGA设计的整体时序性能,所以组合逻辑与时序逻辑的使用比例可以作为评价一个FPGA设计时序性能的辅助参数。 riple

过于复杂的组合逻辑也会占用多个LE。我们在编写HDL代码的时候,不能单独把减少Register的使用量作为节省资源的手段,而应该兼顾组合逻辑与时序逻辑,根据目标PLD器件的底层结构,编写组合逻辑和时序逻辑比例符合PLD器件资源比例的代码。 riple

原文标题:如何分析FPGA的片上资源使用情况

文章出处:【微信公众号:FPGA设计论坛】欢迎添加关注!文章转载请注明出处。

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

    关注

    1593

    文章

    21211

    浏览量

    592198
  • 数据
    +关注

    关注

    8

    文章

    6504

    浏览量

    87448
  • Reg
    Reg
    +关注

    关注

    0

    文章

    20

    浏览量

    11426
  • LUT
    LUT
    +关注

    关注

    0

    文章

    49

    浏览量

    12376

原文标题:如何分析FPGA的片上资源使用情况

文章出处:【微信号:gh_9d70b445f494,微信公众号:FPGA设计论坛】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    初识FPGA CLB之LUT实现逻辑函数

    LUT中文名字叫查找表。以7系列的FPGA为例,每一个Slice里面有四个LUT。FPGA就是通过LUT实现大量的组合逻辑,以及SLICEM里面的LUT还可以构成RAM,Shift R
    的头像 发表于 03-13 10:28 2069次阅读

    “按层次结构使用”中的LUT数量不正确

    |切片* | Slice Reg |的LUT| ref_design_v5lxt250_x1 / | | 10824/24017 | 34/32136 | 37997分之2495337997是总LUT
    发表于 10-09 15:29

    使用的LUT触发器对的数量与Slice Register和Slice LUT的关系是什么?

    想要了解以下术语的确切含义:“使用的LUT触发器对的数量”“带有未使用的触发器的号码”“带有未使用LUT的数字”“最常用的LUT-FF对的数量”“独特控制集的数量”什么是7系列的“LUT
    发表于 10-23 10:21

    如何计算FPGA的片上资源使用情况

    。    解析FPGA的片上资源使用情况  如何分析FPGA芯片上的组合逻辑(LUT)和时序逻辑(REG)的利用率。  一、如何得到LUTREG
    发表于 06-17 09:03

    LUT名字的数字含义是什么?

    嗨,我是FPGA设计数字系统的初学者。我对合成的结果有疑问。当我设计一个简单的15位2输入加法器或11位3输入加法器时,合成结果示意图有LUT6,LUT2,CARRY4嵌段。我知道LUT在加法器中
    发表于 05-25 09:22

    请问如何将Memory LUT用作逻辑LUT

    ,我看到LUT的利用率仅为14%,因为内存和逻辑LUT利用率超过100%。那么有没有一种方法可以将Memory LUT用作逻辑LUT?谢谢,维杰
    发表于 08-05 12:48

    FPGA的片上资源使用情况简析

    如何得到LUTREG的使用比例?如何分析FPGA芯片上的组合逻辑(LUT)和时序逻辑(REG
    发表于 09-17 07:01

    LUT的实现原理是什么?

    LUT是什么意思?LUT的实现原理是什么?
    发表于 10-19 10:16

    LUT内容用编程语言修改的应用教程

    插值LUT方法不仅具有LUT方法在实现DSP功能时所带来的各种优势,而且无需使用太多BRAM单元。采用这种方法,您可以使用来自容量较小的LUT (比如,1000字 LUT)的连续输出,
    发表于 11-25 12:05 3001次阅读
    <b class='flag-5'>LUT</b>内容用编程语言修改的应用教程

    LUT如何构成逻辑函数

    LUT如何如何构成逻辑函数;2个LUT通过互连可以构成7bit输入,单bit输出的逻辑。实现方式为两个LUT的输入信号A1,A2,A3,A4,A5,A6接到一起,输出信号经过选择器选择输出,选择器的选择信号也是逻辑函数的一个输入
    的头像 发表于 10-26 14:31 1w次阅读

    物理可级联的LUT的优势在哪?

    在Versal ACAP中,同一个CLB内同一列的LUT是可以级联的,这是与前一代FPGA UltraScale+系列的一个显著不同点。这里我们先看看Versal中LUT的结构,如下图所示(图片来源
    的头像 发表于 03-27 09:52 2723次阅读
    物理可级联的<b class='flag-5'>LUT</b>的优势在哪?

    MAX6345LUT+T PMIC - 监控器

    电子发烧友网为你提供Maxim(Maxim)MAX6345LUT+T相关产品参数、数据手册,更有MAX6345LUT+T的引脚图、接线图、封装手册、中文资料、英文资料,MAX6345LUT+T真值表,MAX6345
    发表于 12-01 20:22
    MAX6345<b class='flag-5'>LUT</b>+T PMIC - 监控器

    MAX6827LUT+T PMIC - 监控器

    电子发烧友网为你提供Maxim(Maxim)MAX6827LUT+T相关产品参数、数据手册,更有MAX6827LUT+T的引脚图、接线图、封装手册、中文资料、英文资料,MAX6827LUT+T真值表,MAX6827
    发表于 12-12 19:49
    MAX6827<b class='flag-5'>LUT</b>+T PMIC - 监控器

    MAX6828LUT+T PMIC - 监控器

    电子发烧友网为你提供Maxim(Maxim)MAX6828LUT+T相关产品参数、数据手册,更有MAX6828LUT+T的引脚图、接线图、封装手册、中文资料、英文资料,MAX6828LUT+T真值表,MAX6828
    发表于 12-21 23:30
    MAX6828<b class='flag-5'>LUT</b>+T PMIC - 监控器

    LUT是什么构成的?FPGA里的LUT有什么作用?

    首先开门见山的回答这个问题——LUT的作用是 **实现所有的逻辑函数** ,也就是类似于计算Y=A&B+C+D之类的算式结果!
    的头像 发表于 06-28 10:56 1664次阅读
    <b class='flag-5'>LUT</b>是什么构成的?FPGA里的<b class='flag-5'>LUT</b>有什么作用?