26
AIIGX51003-3.2 © 2011 Altera Corporation. All rights reserved. ALTERA, ARRIA, CYCLONE, HARDCOPY, MAX, MEGACORE, NIOS, QUARTUS and STRATIX words and logos are trademarks of Altera Corporation and registered in the U.S. Patent and Trademark Office and in other countries. All other words and logos identified as trademarks or service marks are the property of their respective holders as described at www.altera.com/common/legal.html . Altera warrants performance of its semiconductor products to current specifications in accordance with Altera's standard warranty, but reserves the right to make changes to any products and services at any time without notice. Altera assumes no responsibility or liability arising out of the application or use of any information, product, or service described herein except as expressly agreed to in writing by Altera. Altera customers are advised to obtain the latest version of device specifications before relying on any published information and before placing orders for products or services. Arria II 器件手册 卷 1:器件接口与集成 2011 年 12 月 反馈 订阅 ISO 9001:2008 Registered 3. Arria II 器件中的存储器模块 本章节介绍了包含 640-bit 存储器逻辑阵列模块 (MLAB)、9-Kbit M9K 模块和 144-Kbit M144K 模块的 Arria ® II 器件存储器模块。通过优化 MLAB 来实现滤波延迟线、小 FIFO 缓存和移位寄存器。M9K 模块可以用于通用存储器应用,M144K 模块可以用于处理器代 码存储、数据包缓存和视频帧缓存。 1 M144K 模块仅适用于 Arria II GZ 器件。 您可以通过 Quartus ® II MegaWizard Plug-In Manager 将嵌入式存储器模块单独地配 置成单端口或者双端口 RAM、FIFO、ROM 或者移位寄存器。通过将相同类型的多个模块 连接在一起能够实现一个具有最小时序惩罚 (timing penalty) 的更大存储器。 本章节涵盖以下几方面内容: “ 存储器特性 ” 第 3–2 页 “ 存储器模式 ” 第 3–10 页 “ 时钟模式 ” 第 3–18 页 “ 设计考量 ” 第 3–19 页 12? 2011? AIIGX51003-3.2

3.Arria II 器件中的存储器模块 ABCD XXXX XX 10 01 11 XX an a0 a1 a2 a0 a1 a2 FFFF ABCD FFFF ABFF FFFF FFCD contents at a0 contents at a1 contents at a2 doutn ABXX XXCD ABCD

Embed Size (px)

Citation preview

Page 1: 3.Arria II 器件中的存储器模块 ABCD XXXX XX 10 01 11 XX an a0 a1 a2 a0 a1 a2 FFFF ABCD FFFF ABFF FFFF FFCD contents at a0 contents at a1 contents at a2 doutn ABXX XXCD ABCD

AIIGX51003-3.2

© 2011 Altera Corporation. All rights reserved. ALTERA, ARRare trademarks of Altera Corporation and registered in the U.Strademarks or service marks are the property of their respectivsemiconductor products to current specifications in accordanceservices at any time without notice. Altera assumes no responsdescribed herein except as expressly agreed to in writing by Alon any published information and before placing orders for pr

Arria II 器件手册 卷 1:器件接口与集成2011 年 12 月

12? 2011?AIIGX51003-3.2

3. Arria II 器件中的存储器模块

本章节介绍了包含 640-bit 存储器逻辑阵列模块 (MLAB)、9-Kbit M9K 模块和 144-Kbit

M144K 模块的 Arria® II 器件存储器模块。通过优化 MLAB 来实现滤波延迟线、小 FIFO

缓存和移位寄存器。M9K 模块可以用于通用存储器应用,M144K 模块可以用于处理器代

码存储、数据包缓存和视频帧缓存。

1 M144K 模块仅适用于 Arria II GZ 器件。

您可以通过 Quartus® II MegaWizard ™ Plug-In Manager 将嵌入式存储器模块单独地配

置成单端口或者双端口 RAM、FIFO、ROM 或者移位寄存器。通过将相同类型的多个模块

连接在一起能够实现一个具有最小时序惩罚 (timing penalty) 的更大存储器。

本章节涵盖以下几方面内容:

■ “ 存储器特性” 第 3–2 页

■ “ 存储器模式” 第 3–10 页

■ “ 时钟模式 ” 第 3–18 页

■ “ 设计考量 ” 第 3–19 页

IA, CYCLONE, HARDCOPY, MAX, MEGACORE, NIOS, QUARTUS and STRATIX words and logos . Patent and Trademark Office and in other countries. All other words and logos identified as e holders as described at www.altera.com/common/legal.html. Altera warrants performance of its with Altera's standard warranty, but reserves the right to make changes to any products and ibility or liability arising out of the application or use of any information, product, or service tera. Altera customers are advised to obtain the latest version of device specifications before relying oducts or services.

反馈 订阅

ISO 9001:2008 Registered

Page 2: 3.Arria II 器件中的存储器模块 ABCD XXXX XX 10 01 11 XX an a0 a1 a2 a0 a1 a2 FFFF ABCD FFFF ABFF FFFF FFCD contents at a0 contents at a1 contents at a2 doutn ABXX XXCD ABCD

3–2 第 3 章:Arria II 器件中的存储器模块存储器特性

存储器特性表 3–1 列出了嵌入式存储器模块所支持的特性。

表 3–1. Arria II 器件中存储器特性汇总 (1/2)

特性MLAB M9K 模块 M144K 模块

Arria II GX Arria II GZ Arria II GX Arria II GZ Arria II GZ

最大性能 500 MHz 500 MHz 390 MHz 540 MHz 500 MHz

RAM 总位数 ( 包括奇偶校验位 ) 640 640 9,216 9,216 147,456

配置 ( 深度 × 宽度 )

64 × 8

64 × 9

64 × 10

32 × 16

32 × 18

32 × 20

64 × 8

64 × 9

64 × 10

32 × 16

32 × 18

32 × 20

8K × 1

4K × 2

2K × 4

1K × 8

1K × 9

512 × 16

512 × 18

256 × 32

256 × 36

8K × 1

4K × 2

2K × 4

1K × 8

1K × 9

512 × 16

512 × 18

256 × 32

256 × 36

16K × 8

16K × 9

8K × 16

8K × 18

4K × 32

4K × 36

2K × 64

2K × 72

奇偶校验位 v v v v v字节使能 v v v v vPacked 模式 — — v v v地址时钟使能 v v v v v单端口存储器 v v v v v简单双端口存储器 v v v v v真双端口存储器 — — v v v嵌入式移位寄存器 v v v v vROM v v v v vFIFO 缓冲器 v v v v v简单双端口混合位宽支持 — — v v v真双端口混合位宽支持 — — v v v存储器初始化文件 (.mif) v v v v v混合时钟模式 v v v v v上电条件

如果被寄存,那么输出端清零,否则读取存储器内容。

输出端清零 输出端清零

寄存器清零 输出寄存器 输出寄存器 输出寄存器

读 / 写操作触发写:下降的时钟沿 读:上升的时钟沿

读与写:上升的时钟沿 读与写:上升的时钟沿

相同端口 read-during-write 输出端设置为 old data

输出端设置为 don’t

care

输出端设置为 old data 或者 new data

输出端设置为old data或者 new data

Arria II 器件手册 卷 1:器件接口与集成 Altera公司 2011年12月

Page 3: 3.Arria II 器件中的存储器模块 ABCD XXXX XX 10 01 11 XX an a0 a1 a2 a0 a1 a2 FFFF ABCD FFFF ABFF FFFF FFCD contents at a0 contents at a1 contents at a2 doutn ABXX XXCD ABCD

第 3 章:Arria II 器件中的存储器模块 3–3存储器特性

表 3–2 列出了 Arria II 器件中存储器模块的容量与分配。

存储器模块类型

M9K 和 M144K 存储器模块是专用资源。MLAB 是两用模块。可以将 MLAB 作为普通逻辑阵

列模块 (LAB) 或者 MLAB 来进行配置。十个 ALM 构成了一个 MLAB。通过将 MLAB 中的每

一个 ALM 作为 64 × 1 或者 32 × 2 模块来进行配置,能够在单一 MLAB 中生成

64 × 10 或者 32 × 20 简单双端口 SRAM 模块。

奇偶校验位支持

所有的存储器模块都具有内置的奇偶校验位支持。 与每个字节关联的第 9 位用于存储

奇偶校验位或者用作额外的数据位。实际上,奇偶校验功能并没有在第 9 位上执行。

字节使能支持

所有存储器模块均支持用于屏蔽输入数据的字节使能功能,这样仅写入数据中的指定

字节。未被写入的字节保留之前写入的值。写使能 (wren) 信号以及字节使能

(byteena) 信号一起控制 RAM 模块的写操作。

字节使能信号的默认值为高 ( 使能的 ), 这种情况下写操作仅由写使能信号控制。字节

使能寄存器没有清零端口。当在 M9K 和 M144K 模块上使用奇偶校验位时,字节使能控

制所有的 9 位 (8 个数据位和 1 个奇偶校验位 )。当在 MLAB 上使用奇偶校验位时,字节

使能在最大位宽模式下控制所有的 10 位。

混合端口 read- during- write 输出端设置为 old data、new data 或者 don’t care

输出端设置为 old data 或者 don’t care

输出端设置为old data或者 don’t care

ECC 支持使用 Quartus II 的软核 IP

支持使用 Quartus II 的软核 IP

支持

×64 宽简单双端口模式中的内置支持,或者使用Quartus II的软核IP

支持

表 3–1. Arria II 器件中存储器特性汇总 (2/2)

特性MLAB M9K 模块 M144K 模块

Arria II GX Arria II GZ Arria II GX Arria II GZ Arria II GZ

表 3–2. Arria II 器件中存储器容量与分配

器件 MLAB M9K 模块 M144K 总的 RAM 位数 ( 包括 MLAB) (Kbit)

EP2AGX45 903 319 — 3,435

EP2AGX65 1,265 495 — 5,246

EP2AGX95 1,874 612 — 6,679

EP2AGX125 2,482 730 — 8,121

EP2AGX190 3,806 840 — 9,939

EP2AGX260 5,130 950 — 11,756

EP2AGZ225 4,480 1,235 — 13,915

EP2AGZ300 5,960 1,248 24 18,413

EP2AGZ350 6,970 1,248 36 20,772

Altera 公司 2011 年 12 月 Arria II 器件手册 卷 1:器件接口与集成

Page 4: 3.Arria II 器件中的存储器模块 ABCD XXXX XX 10 01 11 XX an a0 a1 a2 a0 a1 a2 FFFF ABCD FFFF ABFF FFFF FFCD contents at a0 contents at a1 contents at a2 doutn ABXX XXCD ABCD

3–4 第 3 章:Arria II 器件中的存储器模块存储器特性

当单独的 M9K 存储器模块的 PortA 以及 PortB 数据位宽是 8 位或者 9 位的倍数时,字

节使能仅适用于真双端口存储器配置。例如,您不能将字节使能用于配置为 portA=32

和 portB=8 的混合数据位宽存储器,这是因为混合数据位宽存储器作为 2 个独立的

16 × 4 位存储器来实现。

字节使能功能通过 byteena信号的 LSB( 对应于数据总线的 LSB) 在单状态 (one-hot

fashion) 下执行。例如,如果在 ×18 模式中使用 RAM 模块, byteena = 01,那么

data[8..0]被使能, data[17..9]被禁用。类似地,如果 byteena = 11, 那么

data[8..0]与 data[17..9]都被使能。字节使能为高电平有效。

1 当在 M144K 模块上使用纠错编码 (ECC) 时,不能使用字节使能功能。

图 3–1 显示了写使能 (wren) 和字节使能 (byteena) 信号是如何控制 M9K 和 M144K 存

储器模块的操作。

当在写周期中置低字节使能位时,相应的数据字节输出为 “don’t care” 值或者该

位置的当前值。被屏蔽字节的输出值可以通过 Quartus II 进行控制。当字节使能位在

写周期中被置位时,相应的数据字节输出也要取决于 Quartus II 中所选择的设置。

图 3–1. M9K 和 M144K 的字节使能功能波形

inclock

wren

address

data

don't care: q (asynch)

byteena

XXXX ABCD XXXX

XX 10 01 11 XX

an a0 a1 a2 a0 a1 a2

ABCDFFFF

FFFF ABFF

FFFF FFCD

contents at a0

contents at a1

contents at a2

doutn ABXX XXCD ABCD ABFF FFCD ABCD

doutn ABFF FFCD ABCD ABFF FFCD ABCDcurrent data: q (asynch)

Arria II 器件手册 卷 1:器件接口与集成 Altera公司 2011年12月

Page 5: 3.Arria II 器件中的存储器模块 ABCD XXXX XX 10 01 11 XX an a0 a1 a2 a0 a1 a2 FFFF ABCD FFFF ABFF FFFF FFCD contents at a0 contents at a1 contents at a2 doutn ABXX XXCD ABCD

第 3 章:Arria II 器件中的存储器模块 3–5存储器特性

图 3–2 显示了 wren和 byteena信号是如何控制 MLAB 的操作。时钟下降沿触发了

MLAB 中的写操作。

Packed 模式支持

Arria II M9K 和 M144K 模块支持 packed 模式。packed 模式的特性是将两个独立的单

端口 RAM 封装进一个存储器模块中。适用于 packed 模式时,Quartus II 软件通过将

物理 RAM 模块置于真双端口模式并通过地址的最高有效位来区分两个逻辑 RAM 的方式

自动实现 packed 模式。每个单端口 RAM 的容量一定不能超过目标模块容量的一半。

地址时钟使能支持

Arria II 存储器模块支持地址时钟使能,当信号使能时 (addressstall = 1),地址时

钟使能会保持之前的地址值。当将存储器模块配置为双端口模式时,每个端口都有各

自独立的地址时钟使能。地址时钟使能信号的默认值为低电平 ( 禁用的 )。

图 3–2. MLAB 的字节使能控制波形

inclock

wren

address

data

byteena

XXXX ABCD XXXX

ABCDFFFF

FFFF ABFF

FFFF FFCD

contents at a0

contents at a1

contents at a2

current data: q (asynch) doutn FFFF FFCD ABCDFFFF ABFF FFCD FFCD

an a0 a1 a2 a0 a1 a2

XX 10 01 11 XX

ABFF FFFF

Altera 公司 2011 年 12 月 Arria II 器件手册 卷 1:器件接口与集成

Page 6: 3.Arria II 器件中的存储器模块 ABCD XXXX XX 10 01 11 XX an a0 a1 a2 a0 a1 a2 FFFF ABCD FFFF ABFF FFFF FFCD contents at a0 contents at a1 contents at a2 doutn ABXX XXCD ABCD

3–6 第 3 章:Arria II 器件中的存储器模块存储器特性

图 3–3 显示了地址时钟使能的结构框图。端口名 addressstall指示地址时钟使能。

图 3–4 显示了读周期中的地址时钟使能波形。

图 3–3. 地址时钟使能

address[0]

address[N]

addressstall

clock

10

address[0]register

address[N]register

address[N]

address[0]

10

图 3–4. 读周期中的地址时钟使能波形

inclock

rden

rdaddress

q (synch)

a0 a1 a2 a3 a4 a5 a6

q (asynch)

an a0 a4 a5latched address(inside memory)

dout0 dout1 dout4

dout4 dout5

addressstall

a1

doutn-1 doutn

doutn dout0 dout1

Arria II 器件手册 卷 1:器件接口与集成 Altera公司 2011年12月

Page 7: 3.Arria II 器件中的存储器模块 ABCD XXXX XX 10 01 11 XX an a0 a1 a2 a0 a1 a2 FFFF ABCD FFFF ABFF FFFF FFCD contents at a0 contents at a1 contents at a2 doutn ABXX XXCD ABCD

第 3 章:Arria II 器件中的存储器模块 3–7存储器特性

图 3–5 显示了 M9K 和 M144K 模块的写周期中地址时钟使能波形。

图 3–6 显示了 MLAB 的写周期中地址时钟使能波形。

图 3–5. M9K 和 M144K 模块的写周期中地址时钟使能波形

inclock

wren

wraddress a0 a1 a2 a3 a4 a5 a6

an a0 a4 a5latched address(inside memory)

addressstall

a1

data 00 01 02 03 04 05 06

contents at a0

contents at a1

contents at a2

contents at a3

contents at a4

contents at a5

XX

04XX

00

0301XX 02

XX

XX

XX 05

图 3–6. MLAB 的写周期中地址时钟使能波形

inclock

wren

wraddress a0 a1 a2 a3 a4 a5 a6

an a0 a4 a5latched address(inside memory)

addressstall

a1

data 00 01 02 03 04 05 06

contents at a0

contents at a1

contents at a2

contents at a3

contents at a4

contents at a5

XX

04XX

00

0301XX 02

XX

XX

XX 05

Altera 公司 2011 年 12 月 Arria II 器件手册 卷 1:器件接口与集成

Page 8: 3.Arria II 器件中的存储器模块 ABCD XXXX XX 10 01 11 XX an a0 a1 a2 a0 a1 a2 FFFF ABCD FFFF ABFF FFFF FFCD contents at a0 contents at a1 contents at a2 doutn ABXX XXCD ABCD

3–8 第 3 章:Arria II 器件中的存储器模块存储器特性

混合位宽支持

M9K 和 M144K 模块本质上支持混合数据位宽。通过使用 Quartus II,MLAB 可以通过仿

真的方式来支持混合数据位宽。当使用简单双端口、真双端口或者 FIFO 模式时,混合

位宽的支持实现了读写不同的数据位宽到存储器模块。要了解关于每一种存储器模式

所支持的不同位宽的详细信息,请参考第 3–10 页 “ 存储器模式 ”。

1 MLAB 不支持混合宽度 FIFO 模式。

异步清零

Arria II 存储器模块支持对输出锁存器和输出寄存器的异步清零。因此,如果 RAM 没

有使用输出寄存器,那么您仍然能够使用输出锁存异步清零功能来对 RAM 输出进行清

零操作。图 3–7显示了此功能的功能波形。

通过使用 RAM MegaWizard Plug-In Manager,您能够有选择性地使能每个逻辑存储器

上的异步清零操作。

f 要了解关于 RAM MegaWizard Plug-In Manager 的详细信息,请参考 Internal Memory

(RAM and ROM) Megafunction User Guide。

纠错编码支持

当 Arria II GZ M144K 模块处于 ×64 宽简单双端口模式中时,它具有对 ECC 的内置支

持。ECC 使您能够检测并较正存储器阵列中的数据错误。M144K 模块具有单错误校正双

错误检测 (SECDED) 的实现。SECDED 能够检测并修复 64 位字中的单一位错误,或者两

个位错误,但不能检测到三个或更多的错误。

M144K ECC 状态是使用 3 位状态标记 (eccstatus[2..0]) 进行通信的。状态标记可以

是寄存的,或者是非寄存的。当是寄存的时候,状态标记使用与输出寄存器将相同的

时钟和异步清零信号。当是非寄存的时候,状态标记不能被异步清零。

图 3–7. 输出锁存异步清零波形

aclr

aclr at latch

q

outclk

Arria II 器件手册 卷 1:器件接口与集成 Altera公司 2011年12月

Page 9: 3.Arria II 器件中的存储器模块 ABCD XXXX XX 10 01 11 XX an a0 a1 a2 a0 a1 a2 FFFF ABCD FFFF ABFF FFFF FFCD contents at a0 contents at a1 contents at a2 doutn ABXX XXCD ABCD

第 3 章:Arria II 器件中的存储器模块 3–9存储器特性

表 3–3 列出了 ECC 状态标记的真值表。

1 当 ECC 运行时,不能使用字节使能功能。

1 当 ECC 运行时,不支持 Read-during-write old data 模式。

图 3–8 显示了 M144K 模块的 ECC 模块结构图。

表 3–3. Arria II 器件中 ECC 状态标记的真值表

状态 eccstatus[2] eccstatus[1] eccstatus[0]

没有错误 (No error) 0 0 0

单一错误并修复 (Single error and fixed)

0 1 1

双错误并未修复 (Double error and no fix)

1 0 1

非法 (Illegal) 0 0 1

非法 (Illegal) 0 1 0

非法 (Illegal) 1 0 0

非法 (Illegal) 1 1 X

图 3–8. M144K 模块的 ECC 模块结构图

Data Input64 64

64

8 72SECDEDEncoder

RAMArray

72 64

64

8

8

888

64

64 3

Status Flags

Data Output

SECDEDEncoder

Comparator

ErrorCorrection Block

ErrorLocator

FlagGenerator

Altera 公司 2011 年 12 月 Arria II 器件手册 卷 1:器件接口与集成

Page 10: 3.Arria II 器件中的存储器模块 ABCD XXXX XX 10 01 11 XX an a0 a1 a2 a0 a1 a2 FFFF ABCD FFFF ABFF FFFF FFCD contents at a0 contents at a1 contents at a2 doutn ABXX XXCD ABCD

3–10 第 3 章:Arria II 器件中的存储器模块存储器模式

存储器模式Arria II 存储器模块使您能够实现多种操作模式的完全同步的 SRAM 存储器。M9K 和

M144K 模块不支持异步存储器 ( 未寄存的输入 )。MLAB 支持异步 ( 直通 flow-through)

读操作。

基于目标存储器类型,可以使用以下模式:

■ “ 单端口 RAM 模式 ” 第 3–10 页

■ “ 简单双端口模式 ” 第 3–12 页

■ “ 真双端口模式” 第 3–14 页

■ “ 移位寄存器模式 ” 第 3–16 页

■ “ROM 模式 ” 第 3–17 页

■ “FIFO 模式 ” 第 3–17 页

1 要选择所需的read-during-write行为,需要在Quartus II的RAM MegaWizard Plug-In

Manager 中,将 Read-During-Write 行为设置成 new data, old data 或者 don't

care。要了解关于此行为的详细信息,请参考第 3–20 页 “Read- During- Write 行为

”。

1 当在 ROM、单端口、简单双端口或者真双端口模式中使用存储器模块时,如果违反了任

意存储器模块输入寄存器上的建立或者保持时间,那么会导致存储器内容的损坏。同

样适用于读写操作。

单端口 RAM 模式

所有存储器模块均支持单端口模式。单端口模式只允许一次进行一个读或者写操作,

不支持读写操作同时进行。图 3–9 显示了单端口 RAM 配置。

图 3–9. 单端口存储器 (1)

图 3–9 注释:

(1) 您可以在单一 M9K 和 M144K 模块上实现两个单端口存储器模块。关于详细信息,请参考第 3–5 页“Packed 模式支持 ”。

data[ ]address[ ]wrenbyteena[]addressstall inclockclockenardenaclr

outclockq[]

Arria II 器件手册 卷 1:器件接口与集成 Altera公司 2011年12月

Page 11: 3.Arria II 器件中的存储器模块 ABCD XXXX XX 10 01 11 XX an a0 a1 a2 a0 a1 a2 FFFF ABCD FFFF ABFF FFFF FFCD contents at a0 contents at a1 contents at a2 doutn ABXX XXCD ABCD

第 3 章:Arria II 器件中的存储器模块 3–11存储器模式

写操作期间,RAM 输出行为是可配置的。如果使用读使能信号,但在读使能信号未启用

的情况下执行写操作,那么 RAM 输出端会保留在最近的读使能信号的有效期间所保持

的值。如果在写操作期间启用读使能信号,或者根本不使用读使能信号,那么 RAM 输

出端会显示 “new data” 正在被写入,该地址上的 “old data” 或者一个 “don’t

care” 值。

表 3–4 列出了单端口模式中存储器模块的可能端口宽度配置。

图 3–10 显示了 M9K 和 M144K 模块中,具有未寄存输出端的单端口模式中的读写操作

时序波形。寄存 M9K 和 M144K 模块输出端会导致 q输出延迟一个时钟周期。

表 3–4. MLAB、M9K 和 M144K 模块的端口宽度配置 (单端口模式 )

端口宽度配置

MLAB M9K 模块 M144K 模块

64 × 8

64 × 9

64 × 10

32 × 16

32 × 18

32 × 20

8K × 1

4K × 2

2K × 4

1K × 8

1K × 9

512 × 16

512 × 18

256 × 32

256 × 36

16K × 8

16K × 9

8K × 16

8K × 18

4K × 32

4K × 36

2K × 64

2K × 72

图 3–10. M9K 和 M144K 模块的读写操作时序波形 ( 单端口模式 )

clk_a

wrena

address_a

data_a

rdena

q_a (asynch)

a0 a1

A B C D E F

a0(old data) a1(old data)A B D E

Altera 公司 2011 年 12 月 Arria II 器件手册 卷 1:器件接口与集成

Page 12: 3.Arria II 器件中的存储器模块 ABCD XXXX XX 10 01 11 XX an a0 a1 a2 a0 a1 a2 FFFF ABCD FFFF ABFF FFFF FFCD contents at a0 contents at a1 contents at a2 doutn ABXX XXCD ABCD

3–12 第 3 章:Arria II 器件中的存储器模块存储器模式

图 3–11 显示了 MLAB 模块的带未寄存输出端的单端口模式中读写操作的时序波形。时

钟上升沿触发读操作,而时钟下降沿触发写操作。

简单双端口模式

所有的存储器模块均支持简单双端口模式。简单双端口模式使您能够对不同的存储器

单元同时进行读写操作。写操作出现在端口 A ;读操作出现在端口 B。

图 3–12 显示了一个简单双端口配置。除了读写时钟模式,简单双端口 RAM 也支持输

入与输出时钟模式。

简单双端口模式支持不同的读写数据位宽 ( 混合位宽支持 )。表 3–5 列出了简单双端

口模式中 M9K 模块的混合位宽配置。MLAB 本身并不提供对混合位宽操作的支持。

Quartus II 能够利用多个 MLAB 实现混合位宽存储器。

图 3–11. MLAB 的读写操作时序波形 ( 单端口模式 )

clk_a

wrena

address_a

data_a

rdena

q_a (asynch)

a0 a1

A B C D E F

a0(old data)

A B D Ea1(old data)C

图 3–12. Arria II 简单双端口存储器

图 3–12 注释:

(1) 仅适用于 Arria II GZ 器件。

data[ ]wraddress[ ]wrenbyteena[]wr_addressstallwrclockwrclockenaclr

rdaddress[ ]rden

q[ ]rd_addressstall

rdclockrdclocken

ecc_status (1)

表 3–5. M9K 模块混合位宽配置 ( 简单双端口模式 ) (1/2)

读端口写端口

8K × 1 4K × 2 2K × 4 1K × 8 512 × 16 256 × 32 1K × 9 512 × 18 256 × 36

8K × 1 v v v v v v — — —

4K × 2 v v v v v v — — —

2K × 4 v v v v v v — — —

1K × 8 v v v v v v — — —

Arria II 器件手册 卷 1:器件接口与集成 Altera公司 2011年12月

Page 13: 3.Arria II 器件中的存储器模块 ABCD XXXX XX 10 01 11 XX an a0 a1 a2 a0 a1 a2 FFFF ABCD FFFF ABFF FFFF FFCD contents at a0 contents at a1 contents at a2 doutn ABXX XXCD ABCD

第 3 章:Arria II 器件中的存储器模块 3–13存储器模式

表 3–6 列出了简单双端口模式中 M144K 模块的混合位宽配置。

在简单双端口模式中,M9K 和 M144K 模块支持独立的写使能与读使能信号。对相同地址

的 read-during-write 操作要么输出 “don’t care” 值,要么输出 “old data”

值。

MLAB 仅支持写使能信号。MLAB 的 read-during-write 行为可以是 “don’t care”

值,或者是 “old data” 值。该可选项取决于 MLAB 的配置。

图 3–13 显示了 M9K 和 M144K 模块中具有未寄存输出端的简单双端口模式下的读写操

作时序波形。寄存 M9K 和 M144K 模块输出端会导致 q输出延迟一个时钟周期。

512 × 16 v v v v v v — — —

256 × 32 v v v v v v — — —

1K × 9 — — — — — — v v v512 × 18 — — — — — — v v v256 × 36 — — — — — — v v v

表 3–5. M9K 模块混合位宽配置 ( 简单双端口模式 ) (2/2)

读端口写端口

8K × 1 4K × 2 2K × 4 1K × 8 512 × 16 256 × 32 1K × 9 512 × 18 256 × 36

表 3–6. M144K 模块混合位宽配置 ( 简单双端口模式 )

读端口写端口

16K × 8 8K × 16 4K × 32 2K × 64 16K × 9 8K × 18 4K × 36 2K × 72

16K × 8 v v v v — — — —

8K × 16 v v v v — — — —

4K × 32 v v v v — — — —

2K × 64 v v v v — — — —

16K × 9 — — — — v v v v8K × 18 — — — — v v v v4K × 36 — — — — v v v v2K × 72 — — — — v v v v

图 3–13. M9K 和 M144K 模块的简单双端口时序波形

wrclock

wren

wraddress

rdclock

an-1 an a0 a1 a2 a3 a4 a5 a6

q (asynch)

rden

rdaddress bn b0 b1 b2 b3

doutn-1 doutn dout0

din-1 din din4 din5 din6data

Altera 公司 2011 年 12 月 Arria II 器件手册 卷 1:器件接口与集成

Page 14: 3.Arria II 器件中的存储器模块 ABCD XXXX XX 10 01 11 XX an a0 a1 a2 a0 a1 a2 FFFF ABCD FFFF ABFF FFFF FFCD contents at a0 contents at a1 contents at a2 doutn ABXX XXCD ABCD

3–14 第 3 章:Arria II 器件中的存储器模块存储器模式

图 3–14 显示了 MLAB 模块中具有未寄存输出端的简单双端口模式下的读写操作时序波

形。写操作由时钟下降沿触发。

图 3–15 显示了具有未寄存的输出端的混合端口模式下的读写操作时序波形。

真双端口模式

Arria II M9K 和 M144K 模块支持真双端口模式,有时称为双向双端口,这种模式使您

能够执行任意组合的 2 端口操作:两个读操作、两个写操作,或者在两个不同时钟频

率上的一个读操作和一个写操作。除了独立的时钟模式,真双端口存储器还支持输入

与输出时钟模式。

图 3–14. MLAB 的简单双端口时序波形

wrclock

wren

wraddress

rdclock

an-1 an a0 a1 a2 a3 a4 a5 a6

q (asynch)

rden

rdaddress bn b0 b1 b2 b3

doutn-1 doutn dout0

din-1 din din4 din5 din6data

图 3–15. 混合端口 Read-During-Write 时序波形

clk_a

wrena

rdena

address A0 A1

byteena 01 10 00 11

data_a A123 B456 C789 DDDD EEEE FFFF

q_a (asynch) A0 (old data) A1(old data) DDDD EEEEB423DoldDold23

Arria II 器件手册 卷 1:器件接口与集成 Altera公司 2011年12月

Page 15: 3.Arria II 器件中的存储器模块 ABCD XXXX XX 10 01 11 XX an a0 a1 a2 a0 a1 a2 FFFF ABCD FFFF ABFF FFFF FFCD contents at a0 contents at a1 contents at a2 doutn ABXX XXCD ABCD

第 3 章:Arria II 器件中的存储器模块 3–15存储器模式

图 3–16 显示了真双端口 RAM 配置。

真双端口模式中 M9K 和 M144K 模块的最宽位配置是:

■ M9K: 512 × 16-bit ( 或者带有奇偶校验位的 512 × 18-bit)

■ M144K: 4K × 32-bit ( 或者带有奇偶校验位的 4K × 36-bit)

由于输出驱动器的数量等同于各自存储器模块的最大位宽,因此更宽的配置是不可用

的。真双端口 RAM 在两个端口上都有输出,所以它的最大位宽等于输出驱动器总数的

一半。

表 3–7 列出了真双端口模式中可能的 M9K 模块混合端口宽度配置。

表 3–8 列出了真双端口模式中可能的 M144K 模块混合端口宽度配置。

图 3–16. Arria II 真双端口存储器

表 3–7. M9K 模块混合宽度配置 ( 真双端口模式 )

读端口

写端口

8K × 1 4K × 2 2K × 4 1K × 8 512 × 16

1K ×9

512 × 18

8K × 1 v v v v v — —

4K × 2 v v v v v — —

2K × 4 v v v v v — —

1K × 8 v v v v v — —

512 × 16 v v v v v — —

1K × 9 — — — — — v v512 × 18 — — — — — v v

表 3–8. M144K 模块混合宽度配置 (真双端口模式 ) (1/2)

读端口写端口

16K × 8 8K × 16 4K × 32 16K × 9 8K × 18 4K × 36

16K × 8 v v v — — —

8K × 16 v v v — — —

4K × 32 v v v — — —

16K × 9 — — — v v v

data_a[ ]address_a[ ]wren_abyteena_a[]addressstall_a clock_aenable_a rden_aaclr_aq_a[]

data_b[ ]address_b[]

wren_bbyteena_b[]

addressstall_bclock_b

enable_brden_baclr_bq_b[]

Altera 公司 2011 年 12 月 Arria II 器件手册 卷 1:器件接口与集成

Page 16: 3.Arria II 器件中的存储器模块 ABCD XXXX XX 10 01 11 XX an a0 a1 a2 a0 a1 a2 FFFF ABCD FFFF ABFF FFFF FFCD contents at a0 contents at a1 contents at a2 doutn ABXX XXCD ABCD

3–16 第 3 章:Arria II 器件中的存储器模块存储器模式

在真双端口模式中,M9K 和 M144K 模块支持独立的写使能和读使能信号。在没有进行读

操作的时候,保持读使能信号为低电平 ( 无效状态 ) 可以降低功耗。相同地址上的

read-during-write 操作能够输出该位置的 “new data” 或者 “old data”。

在真双端口模式中,您能够随时从其中任一个端口对任意的存储器位置进行存取。当

从两个端口对相同的存储器位置进行存取时,您必须要避免可能的写冲突。当您试图

同时从两个端口写入到相同地址时,会出现写冲突。 结果导致在该地址上存储了未知

数据。冲突解决电路并没有内置在 Arria II 存储器模块中。您必须在 RAM 模块之外解

决地址冲突问题。

图 3–17 显示了端口 A 上的写操作与端口 B 上的读操作的真双端口时序波形, read-

during-write 行为设置为 new data。寄存 RAM 输出会导致 q输出延迟一个时钟周期。

移位寄存器模式

所有的 Arria II 存储器模块均支持移位寄存器模式。嵌入式存储器模块配置可为数字

信号 (DSP) 应用实现为移位寄存器,例如:有限脉冲响应 (FIR)滤波器、伪随机数生

成器、多通道滤波,以及自相关和互相关函数。这些以及其它 DSP 应用都要求本地数

据存储,通常通过标准触发器来实现,这样的大型移位寄存器迅速消耗了大量的逻辑

单元。更有效的方法是将嵌入式存储器用作移位寄存器模块,这样可以节省很多逻辑

单元以及布线资源。

移位寄存器的容量 (w × m × n) 是由输入数据宽度 (w)、抽头长度 (m) 和抽头数

量 (n) 决定。通过级联存储器模块,能够实现更大的移位寄存器。

8K × 18 — — — v v v4K × 36 — — — v v v

表 3–8. M144K 模块混合宽度配置 (真双端口模式 ) (2/2)

读端口写端口

16K × 8 8K × 16 4K × 32 16K × 9 8K × 18 4K × 36

图 3–17. 真双端口时序波形

clk_a

wren_a

address_a

clk_b

an-1 an a0 a1 a2 a3 a4 a5 a6

q_b (asynch)

wren_b

address_b bn b0 b1 b2 b3

doutn-1 doutn dout0

q_a (asynch)

din-1 din din4 din5 din6data_a

din-1 din dout0 dout1 dout2 dout3 din4 din5

dout2dout1

Arria II 器件手册 卷 1:器件接口与集成 Altera公司 2011年12月

Page 17: 3.Arria II 器件中的存储器模块 ABCD XXXX XX 10 01 11 XX an a0 a1 a2 a0 a1 a2 FFFF ABCD FFFF ABFF FFFF FFCD contents at a0 contents at a1 contents at a2 doutn ABXX XXCD ABCD

第 3 章:Arria II 器件中的存储器模块 3–17存储器模式

图 3–18 显示了移位寄存器模式中的存储器模块。

ROM 模式

所有的 Arria II 存储器模块均支持 ROM 模式。.mif 文件对这些模块的 ROM 数据进行初

始化。ROM 的地址行在 M9K 和 M144K 模块中是寄存的;然而,它们在 MLAB 中可以是未

寄存的。输出可以是寄存的或者是未寄存的。输出寄存器能够被异步清零。ROM 的读

操作与单端口 RAM 配置中的读操作相同。

FIFO 模式

所有的存储器模块均支持 FIFO 模式。对于采用小而浅的 FIFO 缓冲器的设计而言,

MLAB 是理想的选择。要在您的设计中实现 FIFO 缓冲器,需要使用 Quartus II 中的

FIFO MegaWizard Plug-In Manager。单时钟和双时钟 ( 异步 )FIFO 都是被支持的。

f 要了解关于实现 FIFO 缓冲器的详细信息,请参考 SCFIFO and DCFIFO Megafunctions

User Guide。

1 MLAB 不支持混合宽度 FIFO 模式。

图 3–18. 移位寄存器存储器配置

W

w × m × n Shift Register

m-Bit Shift Register

m-Bit Shift Register

m-Bit Shift Register

m-Bit Shift Register

W

W

W

W

W

W

W

n Number of Taps

Altera 公司 2011 年 12 月 Arria II 器件手册 卷 1:器件接口与集成

Page 18: 3.Arria II 器件中的存储器模块 ABCD XXXX XX 10 01 11 XX an a0 a1 a2 a0 a1 a2 FFFF ABCD FFFF ABFF FFFF FFCD contents at a0 contents at a1 contents at a2 doutn ABXX XXCD ABCD

3–18 第 3 章:Arria II 器件中的存储器模块时钟模式

时钟模式Arria II 存储器模块支持以下时钟模式:

■ “ 独立时钟模式” 第 3–18 页

■ “ 输入输出时钟模式” 第 3–18 页

■ “ 读写时钟模式” 第 3–18 页

■ “ 单时钟模式” 第 3–19 页

c 违反存储器模块地址寄存器的建立及保持时间可能会导致存储器数据的损坏,这种情

况会发生在读写操作过程中。

表 3–9 列出了所支持的时钟模式 / 存储器模式组合。

独立时钟模式

Arria II 存储器模块能够实现真双端口存储器的独立时钟模式。在此模式中,一个独

立的时钟可用于每一个端口 ( 时钟 A 和时钟 B)。时钟 A 控制端口 A 上的所有寄存器;

时钟 B 控制端口 B 上的所有寄存器。此外,每个端口均支持端口 A 和端口 B 寄存器的

独立时钟使能。仅有两个端口上的输出锁存和输出寄存器支持异步清零。

输入输出时钟模式

Arria II 存储器模块能够实现真双端口存储器和简单双端口存储器的输入输出时钟模

式。在此模式中,输入时钟控制所有与存储器模块数据输入相关的寄存器,包括数据、

地址、字节使能、读使能和写使能。输出时钟控制数据输出寄存器。异步清零功能仅

在输出锁存和输出寄存器上可用。

读写时钟模式

Arria II 存储器模块能够实现简单双端口存储器的读写时钟模式。在此模式中,写时

钟控制数据输入、写地址和写使能寄存器。同样的,读时钟控制数据输出、读地址和

读使能寄存器。存储器模块支持读以及写时钟的独立时钟使能。异步清零功能仅在输

出锁存和输出寄存器上可用。

当使用读写时钟模式时,如果对同一地址同时执行读写操作,那么输出数据将是未知

的。如果要求输出数据是一个可预测值,则需要使用单时钟模式或者输入和输出时钟

模式,并且在 MegaWizard Plug-In Manager 中选择相应的 read-during-write 行为。

表 3–9. Arria II 器件的内部存储器时钟模式

时钟模式 真双端口模式 简单双端口模式 单端口模式 ROM 模式 FIFO 模式

独立 v — — v —

输入与输出 v v v v —

读与写 — v — — v单时钟 v v v v v

Arria II 器件手册 卷 1:器件接口与集成 Altera公司 2011年12月

Page 19: 3.Arria II 器件中的存储器模块 ABCD XXXX XX 10 01 11 XX an a0 a1 a2 a0 a1 a2 FFFF ABCD FFFF ABFF FFFF FFCD contents at a0 contents at a1 contents at a2 doutn ABXX XXCD ABCD

第 3 章:Arria II 器件中的存储器模块 3–19设计考量

单时钟模式

Arria II 存储器模块能够实现真双端口、简单双端口和单端口存储器的单时钟模式。

在此模式中,单时钟与时钟使能一起用于控制存储器模块的所有寄存器。异步清零功

能仅在输出锁存和输出寄存器上可用。

设计考量这一部分介绍了采用存储器模块进行设计时需要了解的指导原则。

选择存储器模块

根据对设计的速度和大小约束的综合考虑,Quartus II 会自动将用户定义的存储器划

分到嵌入式存储器模块。例如,当资源可用时,Quartus II 会扩展跨多个存储器模块

的存储器以提升设计的性能。通过 RAM MegaWizard Plug-In Manager,您可以手动分

配给存储器一个指定的模块大小。

通过使用 Quartus II,MLAB 可以通过仿真的方式来实现单端口 SRAM。仿真实现了最少

的额外逻辑资源的使用。由于 MLAB 的两用体系结构,MLAB 中仅有数据输入寄存器和输

出寄存器。 MLAB 通过寄存器打包从相邻的 ALM 中获取输入地址寄存器和其它可选的数

据输出寄存器。

f 要了解关于寄存器打包的详细信息,请参考 Logic Array Blocks and Adaptive Logic

Modules in Arria II Devices 章节。

冲突解决

当在真双端口模式下使用存储器模块时,在同一存储器位置 ( 地址 ) 尝试两个写操作

是可行的。由于存储模块中没有集成冲突解决电路,因此可能会导致写入该地址的是

未知数据。所以,必须在存储器模块外部实现冲突解决逻辑,从而避免地址冲突。

Altera 公司 2011 年 12 月 Arria II 器件手册 卷 1:器件接口与集成

Page 20: 3.Arria II 器件中的存储器模块 ABCD XXXX XX 10 01 11 XX an a0 a1 a2 a0 a1 a2 FFFF ABCD FFFF ABFF FFFF FFCD contents at a0 contents at a1 contents at a2 doutn ABXX XXCD ABCD

3–20 第 3 章:Arria II 器件中的存储器模块设计考量

Read- During- Write 行为

您可以自定义 Arria II 存储器模块的 read-during-write 行为来满足你的设计要求。

read- during-write 操作的两种类型分别是相同端口和混合端口。图 3–19 显示了相

同端口与混合端口之间的区别。

相同端口 Read-During-Write 模式

这一模式适用于单端口 RAM 或者相同端口的真双端口 RAM。在相同端口 read-during-

write 模式中,三个输出选择可用:new data 模式 ( 或者直通 flow-through)、old

data 模式或者 don’t care 模式。在 new data 模式中,数据在时钟上升沿被写入并且

在该时钟上升沿新数据可用。在 old data 模式中,RAM 输出显示了写操作开始前该地

址上的旧数据。在 don’t care 模式中,RAM 输出 read-during-write 操作的一个

“don’t care” 值。

图 3–20 显示了 MLAB 的 don’t care 模式中相同端口 read-during-write 行为的采样

功能波形。

图 3–19. Read-During-Write 数据流程

Port Adata in

Port Bdata in

Port Adata out

Port Bdata out

Mixed-portdata flow

Same-portdata flow

图 3–20. MLAB 模块相同端口 Read-During-Write: Don’t Care 模式

clk_a

wrena

data_in

address A1

q(unregistered) A0(old data)

A2

FFFF AAAA XXXX

XX FFFF AAAAA1(old data) A2(old data)

q(registered) FFFF AAAA

A0

XX

XX

XX

Arria II 器件手册 卷 1:器件接口与集成 Altera公司 2011年12月

Page 21: 3.Arria II 器件中的存储器模块 ABCD XXXX XX 10 01 11 XX an a0 a1 a2 a0 a1 a2 FFFF ABCD FFFF ABFF FFFF FFCD contents at a0 contents at a1 contents at a2 doutn ABXX XXCD ABCD

第 3 章:Arria II 器件中的存储器模块 3–21设计考量

图 3–21 显示了 new data 模式中相同端口 read- during- write 行为的采样功能波形。

图 3–22 显示了 old data 模式中相同端口 read- during- write 行为的采样功能波形。

对于 MLAB 而言 ,MLAB 的输出在相同端口 read- during-write 模式中只能设置成

don’t care。在此模式中,MLAB 的输出在写周期中是未知的。时钟的下降沿附近有一

个窗口,期间输出是未知的。在此窗口之前,“old data” 被读出;在此窗口之后,

在输出端会观测到 “new data”。

图 3–21. M9K 和 M144K 模块相同端口 Read-During-Write: New Data 模式

clk_a

wrena

rdena

address 0A 0B

byteena 01 10 00 11

data_a A123 B456 C789 DDDD EEEE FFFF

q_a (asynch) XX23 B4XX XXXX DDDD EEEE FFFF

图 3–22. M9K 和 M144K 模块相同端口 Read-During-Write: Old Data 模式

clk_a

wrena

rdena

address A0 A1

byteena 01 10 00 11

data_a A123 B456 C789 DDDD EEEE FFFF

q_a (asynch) A0 (old data) A1(old data) DDDD EEEEB423DoldDold23

Altera 公司 2011 年 12 月 Arria II 器件手册 卷 1:器件接口与集成

Page 22: 3.Arria II 器件中的存储器模块 ABCD XXXX XX 10 01 11 XX an a0 a1 a2 a0 a1 a2 FFFF ABCD FFFF ABFF FFFF FFCD contents at a0 contents at a1 contents at a2 doutn ABXX XXCD ABCD

3–22 第 3 章:Arria II 器件中的存储器模块设计考量

混合端口 Read-During-Write 模式

这一模式适用于简单或者真双端口模式下的 RAM,其中一个端口用于读取数据,而另一

个端口在同一地址写入数据于同一时钟。在此模式中,可以选择 “old data”、“new

data” 或者 “don’t care” 值作为输出。

对于 old Data 模式,不同端口上的 read-during-write 操作会导致 RAM 输出端在相应

地址上显示 “old data” 值。

对于 new data 模式,不同端口上的 read-during-write 操作会导致 MLAB 寄存输出在

数据被写入到 MLAB 存储器后的下一个时钟上升沿显示为 “new data”。

对于 don’t care 模式,同样的操作会在 RAM 输出端上产生 “don’t care” 或者

“unknown” 值。

1 通过使用RAM MegaWizard Plug-In Manager来对Read-during-write行为进行控制。要

了解如何实现所需行为的详细信息,请参考 Internal Memory (RAM and ROM)

Megafunction User Guide。

图 3–23 显示了 MLAB 中 old data 模式下的混合端口 read-during-write 行为的采样

功能波形。

图 3–23. MLAB 混合端口 Read-During-Write: Old Data 模式

clk_a

wrena

data_in

wraddress A1

byteena_a

q_b(registered)

A0

rdaddress A1A0

AAAA BBBB CCCC DDDD EEEE FFFF

A0 (old data) A1(old data) DDDDAABBAAAA

11 01 10 11 01 10

DDEE

Arria II 器件手册 卷 1:器件接口与集成 Altera公司 2011年12月

Page 23: 3.Arria II 器件中的存储器模块 ABCD XXXX XX 10 01 11 XX an a0 a1 a2 a0 a1 a2 FFFF ABCD FFFF ABFF FFFF FFCD contents at a0 contents at a1 contents at a2 doutn ABXX XXCD ABCD

第 3 章:Arria II 器件中的存储器模块 3–23设计考量

图 3–24 显示了 MLAB 中 new data 模式下的混合端口 read-during-write 行为的采样

功能波形。

图 3–25 显示了 MLAB 中 don’t care 模式下的混合端口 read-during-write 行为的采

样功能波形。

图 3–26 显示了 old data 模式中混合端口 read- during-write 行为的采样功能波形。

图 3–24. MLAB 混合端口 Read-During-Write: New Data 模式

XXXX

11

clk_a

address_a

wren_a

byteena_a

data_a

q_b (registered)

AAAA BBBB CCCC DDDD EEEE FFFF

1A0A

AAAA BBBB CCCC DDDD EEEE FFFF

图 3–25. MLAB 混合端口 Read-During-Write: Don’t Care 模式

clk_a

wrena

data_in

wraddress A1

byteena_a

q_b(registered)

A0

rdaddress A1A0

AAAA BBBB CCCC DDDD EEEE FFFF

AAAA DDDD DDEECCBBAABB

11 01 10 11 01 10

FFEE

图 3–26. M9K 和 M144K 混合端口 Read-During-Write: Old Data 模式

clk_a&b

wrena

rdenb

address_a A0 A1

byteena 11 01 10 11

data_a AAAA BBBB CCCC DDDD EEEE FFFF

q_b_(asynch) A0 (old data) A1(old data) DDDD EEEEAABBAAAA

address_b A0 A1

Altera 公司 2011 年 12 月 Arria II 器件手册 卷 1:器件接口与集成

Page 24: 3.Arria II 器件中的存储器模块 ABCD XXXX XX 10 01 11 XX an a0 a1 a2 a0 a1 a2 FFFF ABCD FFFF ABFF FFFF FFCD contents at a0 contents at a1 contents at a2 doutn ABXX XXCD ABCD

3–24 第 3 章:Arria II 器件中的存储器模块设计考量

图 3–27 显示了 M9K 和 M144K 模块中 don’t care 模式下的混合端口 read-during-

write 行为的采样功能波形。

当在双端口 RAM 中使用两个不同的时钟时,不支持混合端口 read-during-write 行为。

在双时钟混合端口 read- during-write 操作期间,输出值是未知的。

上电条件与存储器初始化

不管输出寄存器被使用还是被旁路,M9K 和 M144K 模块输出端都会上电至零 ( 清零 )。

如果输出寄存器被使用,MLAB 将上电至零。如果输出寄存器没被使用,MLAB 将上电读

取存储器的内容。当设计逻辑需要评估 MLAB 存储器模块的初始上电值时,必须考虑到

这一点。对于 Arria II 器件, Quartus II 将 RAM 单元初始化为零,除非指定了 .mif

文件。

所有的存储模块都支持使用 .mif 文件进行初始化。您可以在 Quartus II 中创建 .mif

文件,在例化设计中的存储器时,通过 RAM MegaWizard Plug-In Manager 来指定对它

们的使用。尽管存储器是预初始化的 ( 例如,使用一个 .mif 文件 ), 上电时仍然会输

出清零。

f 要了解关于 .mif 文件的详细信息,请参考 Internal Memory (RAM and ROM)

Megafunction User Guide 和 Quartus II Handbook。

图 3–27. M9K 和 M144K 混合端口 Read-During-Write: Don’t Care 模式

clk_a&b

wrena

rdenb

address_a A0 A1

byteena 11 01 10 11

data_a AAAA BBBB CCCC DDDD EEEE FFFF

q_b_(asynch) XXXX (unknown data)

address_b A0 A1

Arria II 器件手册 卷 1:器件接口与集成 Altera公司 2011年12月

Page 25: 3.Arria II 器件中的存储器模块 ABCD XXXX XX 10 01 11 XX an a0 a1 a2 a0 a1 a2 FFFF ABCD FFFF ABFF FFFF FFCD contents at a0 contents at a1 contents at a2 doutn ABXX XXCD ABCD

第 3 章:Arria II 器件中的存储器模块 3–25文档修订历史

功耗管理

Arria II 存储器模块时钟使能支持对每一个存储器模块的时钟进行控制,从而降低 AC

功耗。使用读使能信号来确保读操作仅在必要时出现。如果您的设计不要求

read-during-write,那么在写操作期间或者存储器未操作期间,可以通过置低读使能

信号以降低功率。

Quartus II 会自动将未使用的存储器模块置于低功耗状态来降低静态功耗。

文档修订历史表 3–10 列出了本章节的修订历史。

表 3–10. 文档修订历史

日期 版本 修订内容

2011 年 12 月 3.2

■ 更新了表 3–1。

■ 更新了第3–3页“字节使能支持”和第3–22页“混合端口Read-During-Write模式 ” 部分。

2011 年 6 月 3.1

■ 更新了表 3–1。

■ 更新了 “ 混合端口 Read-During-Write 模式 ” 部分。

■ 少量的文本编辑。

2010 年 12 月 3.0

■ 针对 Quartus II 10.1 发布所作的更新。

■ 添加了 Arria II GZ 器件信息。

■ 更新了表 3–1 和表 3–2。

■ 更新了图 3–10、图 3–12 和图 3–16。

■ 添加了表 3–6 和表 3–8。

■ 添加了图 3–10、图 3–15、图 3–21、图 3–23 和图 3–24。

■ 添加了 “ 纠错代码支持 ” 部分。

■ 少量的文本编辑。

2009 年 11 月 2.0

针对 Arria II GX v9.1 的发布所进行的更新:

■ 更新了表 3–2。

■ 更新了图 3–16。

■ 少量的文本编辑。

2009 年 6 月 1.1

■ 更新了表 3–1

■ 更新了 “ 字节使能支持 ”、“ 简单双端口模式 ” 和 “ 读写时钟模式 ” 部分

■ 更新了图 3–1、图 3–2、图 3–5、图 3–9、图 3–12、图 3–18、图 3–19 和图 3–20

■ 添加了图 3–2、图 3–6、图 3–10 和图 3–13

2009 年 2 月 1.0 首次发布。

Altera 公司 2011 年 12 月 Arria II 器件手册 卷 1:器件接口与集成

Page 26: 3.Arria II 器件中的存储器模块 ABCD XXXX XX 10 01 11 XX an a0 a1 a2 a0 a1 a2 FFFF ABCD FFFF ABFF FFFF FFCD contents at a0 contents at a1 contents at a2 doutn ABXX XXCD ABCD

3–26 第 3 章:Arria II 器件中的存储器模块文档修订历史

Arria II 器件手册 卷 1:器件接口与集成 Altera公司 2011年12月