关于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-:];
可是下面的代码中却有了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块的综合的更多相关文章
- 关于verilog中语句可不可综合
1)所有综合工具都支持的结构:always,assign,begin,end,case,wire,tri,aupply0,supply1,reg,integer,default,for,functio ...
- 【iCore1S 双核心板_FPGA】例程十二:基于单口RAM的ARM+FPGA数据存取实验
实验现象: 核心代码: module single_port_ram( input CLK_12M, input WR, input RD, input CS0, inout [:]DB, input ...
- verilog 不可综合语句
转自http://bbs.ednchina.com/BLOG_ARTICLE_1770084.HTM 基础知识:verilog 不可综合语句 (1)所有综合工具都支持的结构:always,assig ...
- FPGA的嵌入式RAM
FPGA中的嵌入式RAM分为两种:专用的BRAM和分布是RAM(用LUT实现的).这两种RAM又可以配置成单端口和双端口的RAM和ROM.双端口RAM又可以根据读写地址是否在同一块分为Double P ...
- 我的 FPGA 学习历程(15)—— Verilog 的 always 语句综合
在本篇里,我们讨论 Verilog 语言的综合问题,Verilog HDL (Hardware Description Language) 中文名为硬件描述语言,而不是硬件设计语言.这个名称提醒我们是 ...
- RAM/ROM IP一次性总结
1, 若需要修改memory mode, 需重新编译; 若不需要修改memory mode, 直接修改宏参数即可; 2, 宏参数列表: 3, 注意用LE搭memory的情况; 4, memory ty ...
- FPGA设计思想与技巧(转载)
题记:这个笔记不是特权同学自己整理的,特权同学只是对这个笔记做了一下完善,也忘了是从那DOWNLOAD来的,首先对整理者表示感谢.这些知识点确实都很实用,这些设计思想或者也可以说是经验吧,是很值得每一 ...
- 国产CPLD(AGM1280)试用记录——做个SPI接口的任意波形DDS [原创www.cnblogs.com/helesheng]
我之前用过的CPLD有Altera公司的MAX和MAX-II系列,主要有两个优点:1.程序存储在片上Flash,上电即行,保密性高.2.CPLD器件规模小,成本和功耗低,时序不收敛情况也不容易出现.缺 ...
- 【iCore3 双核心板】DEMO 1.0 测试程序发布
iCore3 Demo V1.0 程序说明 一.概要 本资料包包含5个文件夹: 1.“arm”里是 icore3上 arm的程序包,开发环境为 KEIL 5.17: 2.“fpga”里是 icore3 ...
随机推荐
- 深入剖析哪些服务是Oracle 11g必须开启的
这篇文章主要介绍了哪些服务是Oracle 11g必须开启的以及这些服务的详细介绍,需要的朋友可以参考下 成功安装Oracle 11g数据库后,你会发现自己电脑运行速度会变慢,配置较低的电脑甚至出现 ...
- 定时每天备份mysql
http://blog.csdn.net/panning_hu/article/details/9210001 Spring MVC Spring中MVC框架的底层实现 http://blog.csd ...
- Ubuntu离线安装软件包
一.应用场景 a.当我们需要在多台电脑安装同一个软件,并且这个软件很大,下载需要很长时间时 b.需要安装软件的ubuntu不能上网 二.离线安装包的制作 2.1.通过如下指令下载XXXX软件所需要的d ...
- HDU 4931 Happy Three Friends
#include <cstdio> #include <algorithm> using namespace std; int p1,p2,a[6],T; int main() ...
- 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 ...
- HttpContext的解释意义
在.ashx中,我们HttpContext这个词,到底是什么意思?下面给大家说说 HttpContext 类:封装有关个别 HTTP 请求的所有 HTTP 特定的信息. 在处理请求执行链的各个阶段中, ...
- SpringMVC 详解
一.SpringMVC基础入门,创建一个HelloWorld程序 1.首先,导入SpringMVC需要的jar包. 2.添加Web.xml配置文件中关于SpringMVC的配置 1 2 3 4 5 6 ...
- Zend Studio 如何配置本地apache服务器使用xdebug调试php脚本
本地环境搭配: apache 2.2 安装位置:D:/program files/Apache Software Foundation/Apache2.2 php 5.2.10 安装位置:C:/php ...
- Centon6.5虚拟机桥接设置
参考资料:http://blog.csdn.net/iamfafa/article/details/6209009 安装虚拟机的时候 就直接选择桥接,可以直接 使用 查看此状态下的配置如下 : 虚拟环 ...
- Python之路Day14
主要内容:jQuery进阶.CSS伪类和伪元素.jQuery插件 tab菜单样式 checkbox全选.反选 位置:scrollTop和offset 事件:两种绑定事件的方式和委托delegate a ...