什么是RAM 什么是RAM和ROM


什么是RAM 什么是RAM和ROM

文章插图
什么是RAM?
  • RAM(Random Access Memory) , 即随机存取存储器 , 它可以随时把数据写入任一指定地址的存储单元 , 也可以随时从任一指定地址中读出数据 ,  其读写速度是由时钟频率决定的 。
  • RAM主要用来存放程序及程序执行过程中产生的中间数据、 运算结果等 。
  • 与ROM的区别:ROM(Read-Only Memory)即只读内存 , 它在工作时只能进行读取操作 。
目标使用 Altera RAM IP核生成单端口RAM , 进行读写操作 , 然后仿真验证 。
什么是RAM 什么是RAM和ROM

文章插图
创建测试工程参照之前工程 , 创建模板工程
什么是RAM 什么是RAM和ROM

文章插图
1、创建RAM核参照上文“如何创建使用IP核-PPL?”
  1. 找到“Memory Compiler”中的“RAM:1-PORT”选择单端口RAM

什么是RAM 什么是RAM和ROM

文章插图

2. 位宽深度存储器类型配置
什么是RAM 什么是RAM和ROM

文章插图

3、输入输出配置
什么是RAM 什么是RAM和ROM

文章插图

4. 选择写入时 , 进行读取 , 数据时效性
尽量避免同时读写 , 故选择“Don't Care”
什么是RAM 什么是RAM和ROM

文章插图

5、RAM初始化配置
没特殊要求 , 默认即可 。
什么是RAM 什么是RAM和ROM

文章插图
2、工程代码
什么是RAM 什么是RAM和ROM

文章插图
1、分配引脚名称
功能
【什么是RAM 什么是RAM和ROM】管脚
sys_clk
输入时钟
E1
sys_rst_n
系统复位
M1
2、顶层文件模块有一个“ram ip核”对象“m_ram_singleport” , 以及一个读写操作对象“m_ram_rw” 。
“m_ram_singleport”:提供输出到内部的接口;
“m_ram_rw”:提供一个读写例程
什么是RAM 什么是RAM和ROM

文章插图
3、读写例程模块此例程模块 , 核心是rw_cnt计数 , 同时由于给ram核提供的时钟为sys_clk , 故此例程模块时钟也必须是sys_clk 。
通过rw_cnt可以达到以下目的:
  1. 确定当前为写入或者读取状态
  2. 当为写入状态时 , 修改ram_wr_data数据

什么是RAM 什么是RAM和ROM

文章插图