zoukankan      html  css  js  c++  java
  • 关于QuartusII对ram块的综合

      之前在看Altera的官方教程上就有说明,如果我们定义一个reg [`word_w]user_ram[`word_d]  ; QuartusII会自动综合成为一个ram—— 当然有一些前提:(后续补充)

      今天就这个知识点看QuartusII 的反应如何 。因为最近在看《CPU自制入门》 我选定的DE1-SOC只有3w多个lab,我移植了原始的工程编译居然提示需要10w个lab,所以分析与综合过了之后place的时候就挂掉了,提示lab不足。所以就在折腾哪里可以节省资源

      在gpr.v 里面刚好有一个定义

    reg [`WordDataBus]           gpr [`REG_NUM-1:0]; 

    可是下面的代码中却有了reset过程

                for (i = 0; i < `REG_NUM; i = i + 1) begin
                    gpr[i]         <= #1 `WORD_DATA_W'h0;
                end

    在综合成ram的特例中说明了,如果有了reset过程就不能生成ram了。好先来看看有了reset QuartusII 给个什么反应

      i的循环语句QuartusII 给出了警告说发现了latch,这个有点不明白。最后看rtl viewer

                    

      12层大概都是张这个样子而资源使用情况呢

            

      大家看分析与综合之后的报告,资源使用情况怎么会是这样呢?(我这么说是想大家一会留意一下屏蔽掉ram的reset功能之后资源占用情况)

      仔细看综合报告的倒数第二行 : 说最后的资源使用情况有可能不同。

    好,现在让我们看看屏蔽掉ram的reset之后分析与综合之后的情况如何,首先看综合报告

    第二行就说明了,发现了一个没有被推论RAM实体—— 似乎言外之意是你没有调用这么一个block,我发现了我来调用。

    倒数第二行的说明也是说资源不可以相信上面的—— 和没有屏蔽reset的时候资源使用情况是一样的。

    结论: 分析与综合之后的资源使用率是估算的,是不准确的

    好,我们再看看QuartusII 说发现了ram,那么它是怎么处理的,当然是看rtl viewer

        呵呵,QuarutsII 真的是自己调用了ram。

  • 相关阅读:
    HDU2767 Proving Equivalences
    POJ2771 Guardian of Decency
    POJ1111 Image Perimeters
    简单就好
    工具乃思维的奴隶
    “年终奖”
    学点经济学知识(二)
    被忽略的技能
    猿类己见
    学点经济学知识(一)
  • 原文地址:https://www.cnblogs.com/sepeng/p/4095681.html
Copyright © 2011-2022 走看看