AnyMath 文档

简单双端口 RAM 系统

支持同时读写操作的简单双端口RAM。

模块类型: SimpleDualPortRAMSystem

库中的路径:

/Basic/Additional/Discrete/Simple Dual Port RAM System

资料描述

简单双端口 RAM 系统*模拟支持同时读写操作的简单双端口随机存取存储器(RAM)。 要配置此块,请打开它并设置参数的值 *指定 RAM 类型:

  • 单端口 -模拟RAM,根据端口*wr_en*上的信号执行读或写操作:当值 1 值时发生记录 0 -阅读。 有两种记录模式可用,具体取决于参数值。 指定写操作的输出数据:

    • 旧数据 -执行先前数据到输出端口的输出,而不是写入新数据;

    • 新数据 -输入数据正在重复输出。

  • 简单的双端口 -模拟RAM,支持同时读取和写入操作。 读取连续执行,写入仅由*wr_en*端口上的使能信号执行。 在读和写发生在同一地址的情况下,读操作发生在写操作之前。 输出总是接收读操作的结果。

  • 双端口 -模拟RAM,支持同时读取和写入操作。 与先前模式的关键区别在于存在两个输出端口。 一个总是接收读操作的结果,而第二个总是接收写操作的结果。 取决于所选参数值 指定写操作的输出数据 (新数据旧数据 操作的结果要么是写入地址的新数据,要么是写入操作之前存储在地址上的数据。 新数据仅由*wr_en*端口上的使能信号记录。 如果读和写操作是在同一地址执行的,那么读操作在写操作之前进行。

限制

*RAM地址可以具有定点数据类型或整数类型,必须为无符号且长度为 2 以前 31 比特。

港口

输出

# rd_dout — 从读取地址输出数据
标量,标量 | 向量资料

Details

从读取地址*rd_addr*输出数据。

依赖关系

要使用此端口,请设置参数 *指定 RAM 类型*价值 简单的双端口双端口.

数据类型

漂浮64, 漂浮物32, 漂浮物16, Int8, UInt8, Int16, UInt16, Int32, UInt32, Int64, UInt64, Int128, UInt128, 布尔, 固定

复数支持

非也。

# dout — 从读取地址输出的数据
标量,标量 | 向量资料

Details

从*addr*读取地址输出数据。

依赖关系

要使用此端口,请设置参数 *指定 RAM 类型*价值 单端口.

数据类型

漂浮64, 漂浮物32, 漂浮物16, Int8, UInt8, Int16, UInt16, Int32, UInt32, Int64, UInt64, Int128, UInt128, 布尔, 固定

复数支持

非也。

# wr_dout — 从记录地址输出数据
标量,标量 | 向量资料

Details

从写入地址*wr_addr*输出数据。

依赖关系

要使用此端口,请设置参数 *指定 RAM 类型*价值 简单的双端口双端口.

数据类型

漂浮64, 漂浮物32, 漂浮物16, Int8, UInt8, Int16, UInt16, Int32, UInt32, Int64, UInt64, Int128, UInt128, 布尔, 固定

复数支持

非也。

输入

# — 记录数据
标量,标量 | 向量资料

Details

要写入的数据被设置为标量或向量。 如果*wr_en*端口上的写权限信号相关,则可以将数据写入RAM位置。 1.

数据类型

漂浮64, 漂浮物32, 漂浮物16, Int8, UInt8, Int16, UInt16, Int32, UInt32, Int64, UInt64, Int128, UInt128, 布尔, 固定

复数支持

非也。

# wr_地址 — 记录地址
标量,标量 | 向量资料

Details

写入的地址,指定为标量或向量。 当端口*wr_en*上的信号等于时,使用此地址写入RAM 1.

依赖关系

要使用此端口,请设置参数 *指定 RAM 类型*价值 简单的双端口双端口.

数据类型

UInt8, UInt16, 固定

复数支持

非也。

# wr_en — 记录分辨率
标量,标量 | 向量资料

Details

记录分辨率设置为标量或矢量。 当*wr_en*端口上的信号等于 1,块将数据写入指定的内存位置。 在模式 单端口 当*wr_en*端口上的信号等于 0,该块从*addr*端口指定的内存位置读取值。 在其他模式下,无论*wr_en*端口上的信号如何,都会发生读取操作。

若要使用列输入方法,数据类型必须是整数或定点。
数据类型

Int8, UInt8, Int16, UInt16, Int32, UInt32, Int64, UInt64, Int128, UInt128, 布尔, 固定

复数支持

非也。

# rd_addr — 要读取的地址
标量,标量 | 向量资料

Details

指定为标量或向量的读取地址。 使用此地址从RAM中读取。 此值可以具有定点数据类型或整数类型,必须为无符号且长度为 2 以前 31 比特。

依赖关系

要使用此端口,请设置参数 *指定 RAM 类型*价值 简单的双端口双端口.

数据类型

UInt8, UInt16, 固定

复数支持

非也。

# 地址 — 读或写地址
标量,标量 | 向量资料

Details

读取或写入的地址,取决于端口上的信号*wr_en*:当值 1 值时发生记录 0 -阅读。

依赖关系

要使用此端口,请设置参数 *指定 RAM 类型*价值 单端口.

数据类型

UInt8, UInt16, 固定

复数支持

非也。

参数

Parameters

# 指定 RAM 类型 — RAM的类型
单端口 | 简单的双端口 | 双端口

Details

RAM的类型:

  • 单端口 -单端口RAM,根据端口*wr_en*上的信号执行读或写操作:当值 1 值时发生记录 0 -阅读。 输出从*addr*读取地址接收数据。

  • 简单的双端口 -简单的双端口RAM,写数据、写地址、写权限和读地址作为输入,读地址的数据作为输出。

  • 双端口 -真正的双端口RAM与记录数据 ab,写入和读取地址为 ab,记录分辨率 ab 作为记录地址的输入和数据 ab 作为输出。

Single port | Simple dual port | Dual port

默认值

Simple dual port

程序使用名称

RAMType

可调谐

可计算

# 指定写操作的输出数据 — 写操作的输出数据
新数据 | 旧数据

Details

指定写操作的输出数据:

  • 旧数据 -执行先前数据到输出端口的输出,而不是写入新数据;

  • 新数据 -输入数据正在重复输出。

依赖关系

若要使用此参数,请为参数设置 *指定 RAM 类型*价值 单端口双端口.

New data | Old data

默认值

New data

程序使用名称

WriteOutputValue

可调谐

可计算

# 指定 RAM 初始值 — 初始RAM模拟输出

Details

指定初始RAM模拟输出:

*标量值。 *一个向量,其元素对应于RAM的初始值和字。 *矩阵 ,其中的元素对应于RAM银行中的初始RAM值和字,其中 表示RAM银行的数量,以及 它表示RAM块中的地址空间数,反之亦然。

默认值

0

程序使用名称

RAMInitialValue

可调谐

可计算

此外

使用列输入方法选择性地写入列

Details

您可以使用列写入方法将RAM视为一组相同大小的列。 在记录周期期间,可以单独写入这些列中的每一个。 写入权限输入的数据类型和值,以及写入数据输入的数据类型,确定每列的大小以及块将可寻址存储器位置写入其中的列。

在这方面:

  • -记录数据输入的数据类型为*din*。

  • -输入数据的宽度,其等于字值*din*的长度。

  • -写入许可信号的数据类型为*wr_en*。 该信号确定块向可寻址存储器位置写入哪些列。 块根据位置记录列 1s 值*wr_en*的二进制表示中。

  • -可将用于写入数据的RAM空间划分到其中的列数,等于字值*wr_en*的长度。

  • -每列的宽度,等于 .

该表显示了记录数据条目的数据类型、记录权限条目的数据类型、列数和每列宽度之间的关系。

以比特为单位

UInt16

16

Ufix4

4

4

UInt32

32

Ufix4

4

8

UInt64

64

Ufix4

4

16

UInt32

32

UInt8

8

4

UInt64

64

UInt8

8

8

Int32

32

UInt16

16

2

例如,如果 -这是 UInt16,而 -这是 Ufix4 然后 等于16, 等于4,并且 它等于4位。 如果输入*din*被提供 980,那么它的二进制表示是 0000001111010100. *din*列表示:c4= 0000,c3= 0011,c2= 1101,且c1= 0100,其中c1是第一列。

该表显示了对输入数据的各种组合使用列输入方法的结果。

*Wr_en的值 /wr_en的二进制表示 选择用于写入RAM的列 存储器位置中的数据:执行写操作之前/存储器位置中的数据:执行写操作之后 dout

3

0011

c2,c1

c4=0000 c3=0000 c2=0000 c1=0000

c4=0000 c3=0000 c2=1101 c1=0100

212

4

0100

c3

c4=0000 c3=0000 c2=0000 c1=0000

c4=0000 c3=0011 c2=0000 c1=0000

768

6

0110

c3,c2

c4=0000 c3=0000 c2=0000 c1=0000

c4=0000 c3=0011 c2=1101 c1=0000

976

9

1001

c4,c1

c4=0000 c3=0000 c2=0000 c1=0000

c4=0000 c3=0000 c2=0000 c1=0100

4

9

1001

c4,c1

c4=1111 c3=1111 c2=1111 c1=1111

c4=0000 c3=1111 c2=1111 c1=0000

4084

限制

*写解析输入端口不支持带符号数据类型和非零分数长度的输入。 *用于记录的输入数据字的长度必须是记录分辨率字的长度的倍数。