嵌入式存储器结构由一列列 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第一卷第三章器件中的存储器模块的更多相关文章

  1. 笔记之Cyclone IV第一卷第四章Cyclone IV器件中的嵌入式乘法器

    嵌入式乘法器可以配置成一个 18 × 18 乘法器,或者配置成两个 9 × 9 乘法器.对于那些大于18 × 18 的乘法运算 ,Quartus II 软件会将多个嵌入式乘法器模块级联在一起.虽然没有 ...

  2. 笔记之Cyclone IV 第一卷第一章FPGA 器件系列概述

    因为本人用的黑金四代开发板,中央芯片采用ALTERA的cycloneIV E,所以就此器件阅读altera官网资料,并做相应的笔记,以便于以后查阅 Cyclone IV 器件系列具有以下特性:■ 低成 ...

  3. 笔记之Cyclone IV 第一卷第二章Cyclone IV器件的逻辑单元和逻辑阵

    逻辑单元 (LE) 在 Cyclone IV 器件结构中是最小的逻辑单位.LE 紧密且有效的提供了高级功能的逻辑使用.每个 LE 有以下特性 ■ 一个四口输入的查找表 (LUT),以实现四种变量的任何 ...

  4. 《Thinking in C++》学习笔记(二)【第三章】

    第三章 C++中的C 3.4.4 指针简介 ‘&’运算符:只要在标识符前加上‘&’,就会得出标识符的地址. C和C++有一个专门存放地址的变量类型.这个变量类型叫做指针(pointer ...

  5. 第三章 jQuery中的事件与动画

    第三章jQuery中的事件与动画 一. jQuery中的事件 jQuery事件是对javaScript事件的封装. 1.基础事件 在javaScript中,常用的基础事件有鼠标事件.键盘事件.wind ...

  6. 【笔记】javascript权威指南-第三章-类型,值和变量

    javascript中的原始类型和对象类型(基本类型和引用类型) //本书是指:javascript权威指南    //以下内容摘记时间为:2013.7.27   计算机程序运行时需要对值(value ...

  7. TCP/IP协议第一卷第三章 IP首部分析

    IP介绍 IP是TCP/IP协议族中最为核心的协议.所有的TCP.UDP.ICMP.IGMP数据都以IP数据报格式传输. IP提供不可靠.无连接的数据报传送服务. 不可靠(unreliable)它不能 ...

  8. 【读书笔记】C#高级编程 第三章 对象和类型

    (一)类和结构 类和结构实际上都是创建对象的模板,每个对象都包含数据,并提供了处理和访问数据的方法. 类和结构的区别:内存中的存储方式.访问方式(类是存储在堆上的引用类型,结构是存储在栈的值类型)和它 ...

  9. JAVA核心技术第一卷第三章

    JAVA中包含的数据类型:

随机推荐

  1. Ajax 生成流文件下载 以及复选框的实现

    JQuery的ajax函数的返回类型只有xml.text.json.html等类型,没有“流”类型,所以我们要实现ajax下载,不能够使用相应的ajax函数进行文件下载.但可以用js生成一个form, ...

  2. XMLTProcessor根据XSLT样式规则将节点转换为document对象

    最近使用Firefox进行网页的调试,发现有些javascript XSLT处理xml的语句仅仅支持IE浏览器.而网络中的一些介绍Javascript XSLT 处理XML的文章基本上都是依据Ajax ...

  3. Django里面的RequestContext

    c = RequestContext(request, { 'foo': 'bar', }) get_template('about.html').render(c) 当我们定义一个RequestCo ...

  4. linux技术框架

    编程语言 一般使用c或者c++ linux使用 鸟哥私房菜 工具使用 代码编辑source insight,代码编译gcc,代码调试gdb,代码编译组织makefile,命令执行shell,文本编辑n ...

  5. Objective-c Category(类别)

    category是Objective-c里面最常用的功能之一. category可以为已经存在的类增加方法,而不需要增加一个子类. 类别接口的标准语法格式如下: #import "类名.h& ...

  6. 面试之get和post(转)

    总结1 表单提交中get和post方式的区别归纳如下几点: GET是从服务器上获取数据,POST是向服务器传送数据,GET 请求一般不应产生副作用.就是说,它仅仅是获取资源信息,就像数据库查询一样,不 ...

  7. [小知识点]IE6下不支持:hover的解决方法

    在网上百度到的解决办法,感觉不错,和大家分享一下. 在CSS样式里加一句代码"body{behavior:url("文件夹/csshover.htc");}"即 ...

  8. JAVA虚拟机内存模型

    一.对于Java程序员来说,在虚拟机的自动内存管理机制下,我们不需要为每一个new操作去写匹配的delete/free操作 但是当我们对于内存的管理了解有能够帮助我们理解Java虚拟机的垃圾回收机制. ...

  9. scanf 与 cin 的区别

    在论坛上看到有人提出一个如下的问题,在此总结一下. 原问题: http://topic.csdn.net/u/20110414/22/90d0606c-9876-48e4-9b69-bd8bd8a41 ...

  10. BZOJ 2196: [Usaco2011 Mar]Brownie Slicing( 二分答案 )

    二分答案就可以了.... ----------------------------------------------------------------------- #include<cst ...