之前在看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。

关于QuartusII对ram块的综合的更多相关文章

  1. 关于verilog中语句可不可综合

    1)所有综合工具都支持的结构:always,assign,begin,end,case,wire,tri,aupply0,supply1,reg,integer,default,for,functio ...

  2. 【iCore1S 双核心板_FPGA】例程十二:基于单口RAM的ARM+FPGA数据存取实验

    实验现象: 核心代码: module single_port_ram( input CLK_12M, input WR, input RD, input CS0, inout [:]DB, input ...

  3. verilog 不可综合语句

    转自http://bbs.ednchina.com/BLOG_ARTICLE_1770084.HTM 基础知识:verilog 不可综合语句  (1)所有综合工具都支持的结构:always,assig ...

  4. FPGA的嵌入式RAM

    FPGA中的嵌入式RAM分为两种:专用的BRAM和分布是RAM(用LUT实现的).这两种RAM又可以配置成单端口和双端口的RAM和ROM.双端口RAM又可以根据读写地址是否在同一块分为Double P ...

  5. 我的 FPGA 学习历程(15)—— Verilog 的 always 语句综合

    在本篇里,我们讨论 Verilog 语言的综合问题,Verilog HDL (Hardware Description Language) 中文名为硬件描述语言,而不是硬件设计语言.这个名称提醒我们是 ...

  6. RAM/ROM IP一次性总结

    1, 若需要修改memory mode, 需重新编译; 若不需要修改memory mode, 直接修改宏参数即可; 2, 宏参数列表: 3, 注意用LE搭memory的情况; 4, memory ty ...

  7. FPGA设计思想与技巧(转载)

    题记:这个笔记不是特权同学自己整理的,特权同学只是对这个笔记做了一下完善,也忘了是从那DOWNLOAD来的,首先对整理者表示感谢.这些知识点确实都很实用,这些设计思想或者也可以说是经验吧,是很值得每一 ...

  8. 国产CPLD(AGM1280)试用记录——做个SPI接口的任意波形DDS [原创www.cnblogs.com/helesheng]

    我之前用过的CPLD有Altera公司的MAX和MAX-II系列,主要有两个优点:1.程序存储在片上Flash,上电即行,保密性高.2.CPLD器件规模小,成本和功耗低,时序不收敛情况也不容易出现.缺 ...

  9. 【iCore3 双核心板】DEMO 1.0 测试程序发布

    iCore3 Demo V1.0 程序说明 一.概要 本资料包包含5个文件夹: 1.“arm”里是 icore3上 arm的程序包,开发环境为 KEIL 5.17: 2.“fpga”里是 icore3 ...

随机推荐

  1. 深入剖析哪些服务是Oracle 11g必须开启的

    这篇文章主要介绍了哪些服务是Oracle 11g必须开启的以及这些服务的详细介绍,需要的朋友可以参考下   成功安装Oracle 11g数据库后,你会发现自己电脑运行速度会变慢,配置较低的电脑甚至出现 ...

  2. 定时每天备份mysql

    http://blog.csdn.net/panning_hu/article/details/9210001 Spring MVC Spring中MVC框架的底层实现 http://blog.csd ...

  3. Ubuntu离线安装软件包

    一.应用场景 a.当我们需要在多台电脑安装同一个软件,并且这个软件很大,下载需要很长时间时 b.需要安装软件的ubuntu不能上网 二.离线安装包的制作 2.1.通过如下指令下载XXXX软件所需要的d ...

  4. HDU 4931 Happy Three Friends

    #include <cstdio> #include <algorithm> using namespace std; int p1,p2,a[6],T; int main() ...

  5. Your Job Is Not to Write Code

    I am lucky enough to work with a small team of fantastic engineers who truly care about their custom ...

  6. HttpContext的解释意义

    在.ashx中,我们HttpContext这个词,到底是什么意思?下面给大家说说 HttpContext 类:封装有关个别 HTTP 请求的所有 HTTP 特定的信息. 在处理请求执行链的各个阶段中, ...

  7. SpringMVC 详解

    一.SpringMVC基础入门,创建一个HelloWorld程序 1.首先,导入SpringMVC需要的jar包. 2.添加Web.xml配置文件中关于SpringMVC的配置 1 2 3 4 5 6 ...

  8. Zend Studio 如何配置本地apache服务器使用xdebug调试php脚本

    本地环境搭配: apache 2.2 安装位置:D:/program files/Apache Software Foundation/Apache2.2 php 5.2.10 安装位置:C:/php ...

  9. Centon6.5虚拟机桥接设置

    参考资料:http://blog.csdn.net/iamfafa/article/details/6209009 安装虚拟机的时候 就直接选择桥接,可以直接 使用 查看此状态下的配置如下 : 虚拟环 ...

  10. Python之路Day14

    主要内容:jQuery进阶.CSS伪类和伪元素.jQuery插件 tab菜单样式 checkbox全选.反选 位置:scrollTop和offset 事件:两种绑定事件的方式和委托delegate a ...