笔记之Cyclone IV第一卷第三章器件中的存储器模块
嵌入式存储器结构由一列列 M9K 存储器模块组成,通过对这些 M9K 存储器模块进行配置,可以实现各种存储器功能,例如:RAM、移位寄存器、 ROM 以及FIFO 缓冲器。
M9K 存储器模块支持以下特性:
■ 每模块 8,192 个存储器位 ( 包括奇偶校验位,每模块共 9,216 位 )
■ 用于每一个端口的独立读使能 (rden) 与写使能 (wren) 信号
■ Packed 模式,该模式下 M9K 存储器模块被分成两个 4.5 K 单端口 RAM
■ 可变端口配置
■ 单端口与简单双端口模式,支持所有端口宽度
■ 真双端口 ( 一个读和一个写,两个读,或者两个写 ) 操作
■ 字节使能,实现写入期间的数据输入屏蔽
■ 用于每一个端口 ( 端口 A 和 B) 的时钟使能控制信号
■ 初始化文件,在 RAM 和 ROM 模式下预加载存储器中的数据
rden与wren控制信号控制 M9K 存储器模块的每一个端口上的读写操作。当不需要操作时,您可以分别将rden或者wren信号禁用,从而降低功耗。
byteena信号默认为高电平 ( 使能的 ),写端口具有 ×16, ×18, ×32, 或者 ×36 位数据位宽时,M9K 模块将支持字节使能。字节使能以独热码的形式运行,并且byteena的最低位对应于数据总线的最低字节。
当单独的M9K存储器模块的PortA以及PortB数据位宽是8位或者9位的倍数时,字节使能仅适用于真双端口 (True Dual-Port) 存储器配置。
Packed 模式支持 (不知道这个模式有什么作用,怎么用)
Cyclone IV 器件 M9K 存储器模块支持 packed 模式。在下列条件下,您可以在单一模块中实现两个单端口存储器模块:
■ 每一个独立模块的容量均小于或等于 M9K 模块容量的一半。每一个独立模块的最大数据宽度为 18 位宽。
■ 每一个单端口存储器模块均被配置成单时钟模式。
Cyclone IV 器件仅支持读地址寄存器、输出寄存器以及输出锁存器的异步清零操作,输入寄存器 ( 除了读地址寄存器 ) 不支持异步清零。当对输出寄存器进行异步清零操作时,异步清零信号即刻对输出寄存器清零,效果立马可见。如果您的 RAM 不使用输出寄存器,那么通过使用输出锁存器异步清零特性,您仍然能够对 RAM 输出端进行清零。
在读操作过程中,对读地址寄存器置位异步清零有可能会导致存储数据的损坏。
通过使用 Quartus II RAM MegaWizard™Plug-In Manager,您可以有选择地使能每个逻辑存储器的异步清零功能。
通过三种方式可以对 M9K 模块中的寄存器进行复位:
■ 器件上电
■ 将aclr信号仅用于输出寄存器
■ 使用DEV_CLRn选项来进行全器件复位
Cyclone IV 器件 M9K 存储器模块不支持异步 ( 未寄存的 ) 存储器输入。
要选择所需的行为,需要在 Quartus II 的 RAM MegaWizard Plug-In Manager 中,将Read-During-Write选项设置成New Data或者Old Data。



一个 (w× m×n) 移位寄存器的容量是由输入数据宽度 (w)、抽头的长度 (m), 以及抽头的数量 (n) 来决定,并且必须小于或等于最大存储器位数 , 也就是 9,216 位。另外, (w×n) 的容量必须小于或等于模块的最大宽度,也就是 36 位。如果需要一个
当使用输入或输出时钟模式时,如果在同一地址位置执行同时读或写操作,则输出读数据将是未知的。如果要求输出数据是一个可预测值,则需要使用单时钟模式或者 I/O时钟模式,并且在 MegaWizard Plug-In Manager 中选择相应的 read-during-write 行为。
异步清零功能仅在读地址寄存器、输出寄存器,以及输出锁存器中可用。
如果采用异步清零会产生大量的逻辑——引用。或者是综合器发现不了你所描述的是memory从而使用大量的D触发器来实现——推断
不可以对同一地址进行写操作
即使存储器是预初始化的 ( 例如,使用一个.mif文件 ), 它也会通过输出端清零进行上电。 只有上电后的后续读操作会输出预初始化的值。
如果您的设计不要求 read-during-write, 那么在写操作期间或者存储器未操作期间,需要通过置低rden信号以降低功率。Quartus II 会自动对未使用的 M9K 存储器模块进行断电,从而降低静态功耗。(与最上面的那一段绿色背景字对比,是否矛盾呢,还是只有此种情况之下才可以进行降低功耗呢)
笔记之Cyclone IV第一卷第三章器件中的存储器模块的更多相关文章
- 笔记之Cyclone IV第一卷第四章Cyclone IV器件中的嵌入式乘法器
嵌入式乘法器可以配置成一个 18 × 18 乘法器,或者配置成两个 9 × 9 乘法器.对于那些大于18 × 18 的乘法运算 ,Quartus II 软件会将多个嵌入式乘法器模块级联在一起.虽然没有 ...
- 笔记之Cyclone IV 第一卷第一章FPGA 器件系列概述
因为本人用的黑金四代开发板,中央芯片采用ALTERA的cycloneIV E,所以就此器件阅读altera官网资料,并做相应的笔记,以便于以后查阅 Cyclone IV 器件系列具有以下特性:■ 低成 ...
- 笔记之Cyclone IV 第一卷第二章Cyclone IV器件的逻辑单元和逻辑阵
逻辑单元 (LE) 在 Cyclone IV 器件结构中是最小的逻辑单位.LE 紧密且有效的提供了高级功能的逻辑使用.每个 LE 有以下特性 ■ 一个四口输入的查找表 (LUT),以实现四种变量的任何 ...
- 《Thinking in C++》学习笔记(二)【第三章】
第三章 C++中的C 3.4.4 指针简介 ‘&’运算符:只要在标识符前加上‘&’,就会得出标识符的地址. C和C++有一个专门存放地址的变量类型.这个变量类型叫做指针(pointer ...
- 第三章 jQuery中的事件与动画
第三章jQuery中的事件与动画 一. jQuery中的事件 jQuery事件是对javaScript事件的封装. 1.基础事件 在javaScript中,常用的基础事件有鼠标事件.键盘事件.wind ...
- 【笔记】javascript权威指南-第三章-类型,值和变量
javascript中的原始类型和对象类型(基本类型和引用类型) //本书是指:javascript权威指南 //以下内容摘记时间为:2013.7.27 计算机程序运行时需要对值(value ...
- TCP/IP协议第一卷第三章 IP首部分析
IP介绍 IP是TCP/IP协议族中最为核心的协议.所有的TCP.UDP.ICMP.IGMP数据都以IP数据报格式传输. IP提供不可靠.无连接的数据报传送服务. 不可靠(unreliable)它不能 ...
- 【读书笔记】C#高级编程 第三章 对象和类型
(一)类和结构 类和结构实际上都是创建对象的模板,每个对象都包含数据,并提供了处理和访问数据的方法. 类和结构的区别:内存中的存储方式.访问方式(类是存储在堆上的引用类型,结构是存储在栈的值类型)和它 ...
- JAVA核心技术第一卷第三章
JAVA中包含的数据类型:
随机推荐
- IOS 表视图(UITableVIew)的使用方法(8)表视图的编辑功能(多选)
在表视图的删除操作中,每次只能够对其中一个单元进行删除,如果想要同时删除多条记录,不得不挨个地进行标准的删除操作 所以如果能够实现多选的机制,无论是删除还是其他功能的嫁接,都会变得更加方便 当UITa ...
- 调试存储过程时提示ORA-20000: ORU-10027: buffer overflow
下午的时候在 PL/SQl Developer 10.0.5.1710 上调试壹個存储过程,在调试的时候使用了比较多的 DBMS_OUTPUT.PUT_LINE 作为打印日志的方式,结果没过多久 PL ...
- Qt多线程编程总结(一)(所有GUI对象都是线程不安全的)
Qt对线程提供了支持,基本形式有独立于平台的线程类.线程安全方式的事件传递和一个全局Qt库互斥量允许你可以从不同的线程调用Qt方法. 这个文档是提供给那些对多线程编程有丰富的知识和经验的听众的.推荐阅 ...
- qt example
#include"mainwindow.h" #include"ui_mainwindow.h" #include<QWebFrame> #incl ...
- WPF 自定义TextBox
1.TextBox前加图标. 效果: <TextBox Width="300" Height="30" Style="{StaticResour ...
- uva Stacks of Flapjacks
Stacks of Flapjacks 题目链接:Click Here~ 题目描写叙述: ...
- Objective-c 类的继承 方法重写 方法重载
一.类的继承 Objective-c中类的继承与C++类似,不同的是Objective-c不支持多重继承,一个类只能有一个父类,单继承使Objective-c的继承关系很简单,易于管理程序. Obje ...
- 什么是DNS劫持和DNS污染?
什么是DNS劫持和DNS污染? http://blogread.cn/it/article/7758?f=weekly 说明 我们知道,某些网络运营商为了某些目的,对 DNS 进行了某些操作,导致使用 ...
- Python学习之day4
参考文献:http://www.cnblogs.com/alex3714/articles/5143440.html 迭代器: 迭代器是访问集合元素的一种方式.迭代器对象从集合的第一个元素开始访问,直 ...
- [LeetCode]题解(python):008-String to Integer (atoi)
题目来源: https://leetcode.com/problems/string-to-integer-atoi/ 题意分析: 这道题也是简单题,题目意思是要将字符串转化成int.比如‘123’转 ...