######### RAM

库: 存储器
引入版本: 2.0 Beta 1
外观: #########

行为

RAM 最多可存储 16,777,216 个数值(由地址位宽属性指定),每个数值最多可包含 32 位(由数据位宽属性指定)。电路可以从 RAM 读取并向其中写入数值。此外,用户既可以通过手形工具#########)交互式地修改单个数值,也可以通过右键上下文菜单修改整个内容。更多信息请参见用户指南中的存储器组件

当前数值会显示在组件内部:显示区域左侧以灰色列出地址;内部每个数值以十六进制显示。当前选中地址对应的数值会以反色文字(黑底白字)显示。

RAM 组件根据异步读取数据总线实现使能方式等设置,支持四种不同的接口形式。

数据总线实现属性允许修改数据总线的结构:可以是独立的单向输入总线与输出总线,或是双向的数据总线。
默认设置为:读写分离总线 + 同步控制。

写入端口由WE(或 Write enable)信号控制;读取端口由OE(或 Output enable)信号驱动。读写操作通过时钟同步,其触发方式由触发方式属性决定。若两条命令线同时为1,则先写后读;可通过修改读取行为属性将其反转。

异步读取,并支持按字节使能读取。

使能方式属性设为使用字节使能,且异步读取属性设为,则只有OE信号的状态会触发数据出现在输出总线上;写入仍按上述方式进行。

异步读取,并使用行使能。

使能方式属性为使用行使能,且行大小属性为单行,那么只要地址改变,数据就会立即出现在输出总线上;写入仍按上述方式进行。

同步读取,并使用行使能(多行)。

使能方式属性为使用行使能,且行大小属性不为单行,那么只要地址改变,数据就会立即出现在输出总线上。对于写入,额外信号 LE1..LE7 用于选择处于激活状态的数据行。时钟触发模式由触发方式属性配置。

还有一些更细微的设置,请阅读下面对引脚与属性的说明以了解更多细节。

引脚

外观属性为该组件提供两种不同的引脚布局。Logisim-evolution 将输入放在西侧、输出放在东侧;而此处按从上到下、从西到东的顺序列出引脚说明。

清除
输入:仅当使用清除引脚属性设为时才出现该引脚。当其为时,无论其它输入如何,存储器中的所有数值都会被固定为0
地址
输入总线:选择电路当前要访问的存储单元地址。
WE(或 Write enable)
输入:使能后,允许将数据写入到地址总线上指定的位置。根据触发方式属性的不同取值,在时钟同步时,它在上升沿/下降沿模式下于1有效;在高电平模式下为1有效;在低电平模式下为0有效(与时钟无关)。

下表展示了在不同属性设置下,存储器写入的触发条件。


写入触发模式
触发方式 时钟信号 WE 信号
下降沿 1
上升沿 1
高电平 -- 1
低电平 -- 0
OE(或 Output enable)
输入:当 OE 为高电平时,地址总线上指定位置的数据将被送到输出总线。

下表展示了在不同属性设置下,从存储器读出数据到输出端口的触发条件。


读取触发模式
使能方式 触发方式 异步读取 时钟信号 OE 信号
使用字节使能 上升沿 1
使用字节使能 下降沿 1
使用字节使能 高电平 -- -- 1
使用字节使能 低电平 -- -- 1
使用字节使能 无影响 无影响 1
使用行使能 无影响 -- 无影响 --
时钟(或 C1、E1)
输入:仅当触发方式属性设为上升沿/下降沿时才出现该引脚;在其它触发方式下,若使能方式属性设为使用行使能,同样会出现该引脚。触发后,存储器会写入或读取数据。
参见上方两张表格。
LE0LE7
输入:仅当使能方式属性设为使用行使能时才出现。引脚数量(2、4、8)取决于行大小属性。每个引脚用于激活一条输入数据行。
输入数据
输入总线:仅当数据总线实现属性设为读写分离的数据总线时才出现。它接收要写入存储器的数据:当触发条件满足时,数据会写入由地址引脚值所指定的位置。参见上方表格。
输入数据 0输入数据 7
输入总线:仅当使能方式属性设为使用行使能行大小不为单行时才出现。其功能与输入数据总线相同,但区别在于:输入数据 0 指向地址总线对应的存储位置,输入数据 1 指向地址总线+1,输入数据 2 指向地址总线+2,依此类推。每条输入数据行都有对应的使能信号 LE0..LE7。
输出数据
输出总线:仅当数据总线实现属性设为读写分离的数据总线时才出现。该总线在触发条件满足时输出由地址引脚值所指定位置的数据。参见上方表格。
输出数据 0输出数据 7
输出总线:仅当使能方式属性设为使用行使能行大小不为单行时才出现。其功能与输出数据总线相同,但区别在于:输出数据 0 输出地址总线对应存储位置的数据,输出数据 1 输出地址总线+1,输出数据 2 输出地址总线+2,依此类推。
允许非对齐属性用于决定:当地址未按“行数”的倍数对齐时,是否产生错误(E)。

属性

当组件被选中或正在放置时,数字 09 可修改其地址位宽属性,Alt-0Alt-9 可修改其数据位宽属性。

地址位宽
地址位的数量。RAM 中可存储的数值数量为 2地址位宽
数据位宽
存储器中每个数值的数据位宽(以 bit 为单位)。
使能方式
决定数据如何加载给组件。使用字节使能:仅存在一条数据总线。
使用行使能:数据总线由一条或多条数据行组成,每条数据行都有各自的选择信号。“行数”属性可定义数据行数量(1、2、4、8)。
RAM 类型
决定重新开始仿真时 RAM 内容如何变化:
非易失:内存内容不变。
易失:RAM 内容会清零或随机化(取决于项目选项中仿真选项卡的设置)。
使用清除引脚
决定是否显示清除引脚。若该引脚为1,则存储器内容会被异步置为0,且其他命令无效。
行大小
仅当使能方式属性设为使用行使能时才出现。用于确定输入与输出端存在的数据行数量:1、2、4 或 8。每条数据行在写入时由对应信号(LE0..LE7)驱动。第 0 行对应地址总线上的地址,第 1 行对应地址总线上的地址+1,依此类推。
允许非对齐
仅当使能方式属性设为使用行使能时才出现。用于决定:数据行是否可以对应任意地址,还是必须与其数量的倍数地址对齐。例如,当有两行时,第 0 行对应地址总线上的地址+0,第 1 行对应地址总线上的地址+1,那么地址必须是 2 的倍数,否则输出将为错误(E)。
触发方式
配置如何解释时钟输入。取值:
上升沿:在时钟从0上升到1的瞬间更新。
下降沿:在时钟从1下降到0的瞬间更新。
高电平:当时钟输入为1时持续更新。
低电平:当时钟输入为0时持续更新。
异步读取
决定读存储器时是否涉及时钟信号。
:仅由 OE 信号触发读取。
:由 OE 信号与时钟信号的边沿共同触发读取。
读行为
决定读写同时使能时的行为。
先写后读:先写入 Address 指向的存储单元,然后再读取并输出。
先读后写:先输出 Address 指向的存储单元内容,然后再用输入数据改写该单元。
数据总线实现
决定数据总线的结构。取值:
一条双向的数据总线:数据输入与输出共用同一总线,需要使用受控缓冲器管理数据流向。
读写分离的数据总线:存在两条总线,一条用于输入,一条用于输出。
标签
与组件关联的标签内显示的文本。
标签字体
用于渲染标签的字体。
标签可见
标签是否可见。
外观
Logisim-HolyCross / Logsim-Evolutions:以 IEC 方式的新外观。Classic Logisim:以传统 Logisim 风格显示。

手形工具行为

参见用户指南中的点按存储器

文本工具行为

无。

菜单工具行为

参见用户指南中的弹出菜单与文件

返回 库参考手册