之前在看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-:]; 

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

            for (i = ; i < `REG_NUM; i = i + ) begin
gpr[i] <= # `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。

最新文章

  1. 安装dede显示dir的解决办法
  2. 字典树的C++实现
  3. python迭代器和生成器
  4. 一款炫酷的幻灯片播放框架介绍(附demo及使用方法)
  5. Java 收集的代码 transient
  6. jquery.validate的效验方式
  7. SVG的动态之美-搜狗地铁图重构散记
  8. docker - 容器lxc
  9. java常用的中间件
  10. 【C#】用委托(Delegate)的BeginInvoke和EndInvoke方法操作线程
  11. java写桌面程序
  12. 认识拨号计划-dialplan
  13. Spring Boot 2集成Redis
  14. [UWP 自定义控件]了解模板化控件(5):VisualState
  15. ASP.NET MVC Bundles 合并压缩(js css)
  16. eclipse format xml
  17. django 取model字段的verbose_name值
  18. 20155212 2016-2017-2《Java程序设计》课程总结
  19. Spark(十)Spark之数据倾斜调优
  20. box-sizing定义的盒模型之间的区别

热门文章

  1. 读取IOS的相应路径
  2. 对程序员的不尊重是中国it产业的悲哀。
  3. 在GridView中实现全选反选的例子
  4. c#读写共享内存操作函数封装
  5. Mybatis 简单的CRUD 基于XML文件配置
  6. js中new构造函数的研究
  7. Sharepoint 2013 启用搜做服务
  8. leetcode 211. Add and Search Word - Data structure design Trie树
  9. java-StringTokenizer类
  10. poj 1204