内部存储器RAM和ROM使用说明

更新时间:2023-12-21 05:15:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

内部存储器RAM和ROM用户指南

1、介绍内部存储器模块

本用户指南介绍了实现以下内存模式的宏功能: ■ RAM:1-Port—Single-port RAM 单口RAM ■ RAM:2-Port—Dual-port RAM 双口RAM ■ ROM:1-Port—Single-port ROM 单口ROM ■ ROM:2-Port—Dual-port ROM 双口ROM

Altera公司提供了两种宏功能来实现内存模式:ALTSYNCRAM和ALTDPRAM宏功能。QuartusII软件会自动选择其中一个宏功能来实现内存模式。选择那种宏功能模式取决于目标器件,存储器模式和RAM和ROM的功能。

本用户指南会让您熟悉宏功能,以及如何创建它们。如果您不熟悉的Altera宏功能或“the MegaWizard? Plug-In Manager”,请参阅介绍宏功能用户指南。

内部存储器具有如下功能: ■ 内存模式配置 ■ 存储模块类型 ■ 端口宽度设置 ■ 存储器最大深度设置 ■ 时钟模式和时钟使能 ■ 地址时钟使能 ■ 字使能 ■ 异步清零 ■ 读使能 ■ 同时读写 ■ 存储器初始化 ■ 错误校正码

2、参数设置

Altera建议您使用参数编辑器来配置来构建您的RAM和ROM内存块,以确保您

所选择的选项组合是有效的。下表是双口RAM参数设置

选项 你将如何使用 双端口RAM ? 有效值 一个读/写端口 或者两个读/写端口 一个字的数量 或者一个位的数量 — 默认值 一个读端口和一个写端口 一个字的数量 功能描述 指定如何使用双口RAM 你想指定的存储器的位宽? 确定用字或者位来指定内存大小 指定存储器有多少个字或者字节 指定不同的端口使用不同的数据宽度 存储器的有多少个字? 256 不同的端口使用不同的数据宽度 当你选择单端口读/写时,以下选项有用: 输出总线q_a位宽? 输入总线data_a位宽? 输出q宽度? 当你选择双端口读/写时,下面的选项有效: 输出总线q_a位宽? 输出总线q_b位宽? 开/关 关 — 8 指定输入输出端口位宽 存储块类型是什么? M-RAM, M4K,M512, M9K, M10K,M144K, MLAB, M20K,LCs AUTO 指定存储块的类型,选择什么样存储块类型的取决于目标设备 内存该如何实现? 使用默认的逻辑单元模式或者Stratix M512 仿真逻辑单元模式 使用默认的逻辑单元模式 指定逻辑单元实现选项。只有当你选择LCS内存类型时此项才有效。 32, 64, 128, 256, 设置存储器的最大深度 512, 1024, 2048, 4096 AUTO 指定内存的最大深度。只有当你选择内存类型是“AUTO”时此选项有效 当你选择单端口读/写时,下面的值有效: ■单时钟 ■双时钟:用单独的输入输出时钟 ■双时钟:用单独的读写时钟 使用什么样的时钟模式 当你选择两个读写端口时,下面的值有效: ■单时钟 ■双时钟:用单独的输入输出时钟 ■双时钟:对A和B端口分别使用单独的时钟 单时钟 单时钟:一个时钟和一个时钟使能控制内存块中所有的寄存器 双时钟:使用单独的输入和输出时钟,一个输入和一个输出时钟控制相关的所有寄存器的数据输入和输出/内存块,包括数据,地址,字使能,读使能,和写使能。 双时钟:使用单独的读写时钟,一个写时钟控制数据输入,写地址,写使能,而读时钟控制数据输出,读地址,读使能寄存器。 双时钟:A和B端口分别使用单独的时钟。时钟A控制A端口所有的寄存器。时钟B控制B端口所有的寄存器。每个端口还支持单独的时钟使能。 当你选择单端口读写时,下面的选项有效: 创建一个读使能信号:“rden” — 当你选择双端口读/写时,下面的选项有效: 创建读使能信号:“rden_a”和“rden_b” off 对端口B是否创建一个读使能信号 对端口A和B是否创建读使能信号 端口A创建字节使能 — 端口B创建字节使能 Off 指定对端口A和B是否创建字节使能。 使能ECC来检查和纠正单比特错误和检查双比特错误 On/off off 指定是否使能ECC特性来纠正单比特错误和检查双比特错误在存储器的输出端。这个选项只有在内存块模式是M144K的器件中有效。 使能ECC来检查和纠正单比特错误,两相邻比特错误和检测三相邻位错误 On/off Off 指定是否使能ECC特性来检查和纠正单比特错误,两相邻比特错误和检测三相邻位错误。此选项只有在支持内存块类型是M20K的器件中有效 那个端口需要寄存? 当你选择一个读端口和一个写端口时,以下选项可用: ◆写输入口‘data’, ‘wraddress’, ‘wren’ ◆读输入口‘raddress’ and ‘rden’ ◆读输出口:‘q’ 当你选择两个读写端口时,以下选项可用: ◆写输入口‘data_a’, ‘wraddress_a’, ‘wren_a’ ◆读输出口:’q_a’ ‘q_b’ On/off off 指定是否寄存读/写输入和输出端口 是否创建时钟使能信号? 双端口RAM的使用方式选择为“一个读端口”和“一个写端口”时可以选择Use clock enable for write input registers写入寄存器使用时钟使能;双端口RAM的使用方式选择为“两个端口都可用读/写”时的可选项包括:Use clock enable for port A input registers(端口A输入寄存器使用时钟使能)、Use clock enable for port B input registers(端口B输入寄存器使用时钟使能)、Use clock enable for On/Off Off 指定是否打开这个选项,来为每个时钟信号创建一个时钟使能信号。 时 钟 使 能 选 项 On/Off Off 端口B的输入和输出寄存器的时钟使能是默认选中的,只需要指定端口A的输入和输出寄存器是否使用时钟使能。

port A output registers(端口A输出寄存器使用时钟使能)、Use clock enable for port B output registers(端口B输出寄存器使用时钟使能)。 时 钟 使 能 选 项 双端口RAM的使用方式选择为“一个读端口”和“一个写端口”时可以选择:Create an ‘wr_addressstall ’ input port.(创建一个wr_addresstall输入端口)和Create an ‘rd_addressstall’ input port.(创建一个rd_addresstall输入端口);双端口RAM的使用方式选择为“两个端口都可用读/写”时的可选项包括:Create an ‘addressstall_a’ input port(创建一个addresstall_a输入端口)和Create an ‘addressstall_b’ input port.(创建一个addresstall_b输入端口)。 On/Off Off 指定是否为地址寄存器创建时钟使能,创建这些端口可以作为地址寄存器的低电平时钟使能输入。 为寄存器端口创建异步清零信号aclr On/Off Off 指定是否为为寄存器端口创建异步清零信号aclr 当读写同时发生时,指定输出的类型。显示内存原来的值:RAM的输出反映的是写操作之前改地址所指的旧数据。 不定值:此选项功能不同,当你打开它取决于 以下内存块类型选择: 当你设置内存块的类型为:Auto,M144K,M512,M4K,M9K,M10K M20K或者其他类型,在同时进行读写操作时RAM输出不定值,不需要考虑时序路径。 当你想让RAM输出不确定值时,打开此选项,在进行读写操作时不分析时序路径。此功能只对LUTRAM有效,并且只有当你设置存储块类型为MLAB时才能使用此功能。 指定存储器的初始内容。选择置空RAM时,初始化存储器为零。选择用文件初始化时,使用一个内存初始化文件(.mlf)或者是(.hex)文件 当一个内存位置同时读/写操作时,如何控制输出Q? 显示内存原来的值/不定值 不定值 不分析读操作和写操作之间的时序。在同一时刻向同一存储器地址进行读写操作时亚稳态问题无法解决。 On/Off Off 是否初始化RAM? 不初始化,空的RAM,或者初始化,用文件数据来初始化RAM。 不初始化 当读写同时发生指定输出行为。 写期间读时q_a的输出 New Data(新数据):在写数据的同一个时钟周期New data(新数New data(新的上升沿新写入据), Old Data(原数据) 的数据可用; 来的数据) Old data(原来的写期间读时q_b的输出 数据):RAM的输出是写入新数据之前原来存储在存储器中的数据。 使用字节使能时用X(不定值)代替原来的数据

On/off On 打开此功能时在被屏蔽的字节位置获得X值。

本文来源:https://www.bwwdw.com/article/51a5.html

Top