 
		
什么是RAM?
- RAM(Random Access Memory),即随机存取存储器,它可以随时把数据写入任一指定地址的存储单元,也可以随时从任一指定地址中读出数据, 其读写速度是由时钟频率决定的。
- RAM主要用来存放程序及程序执行过程中产生的中间数据、 运算结果等。
- 与ROM的区别:ROM(Read-Only Memory)即只读内存,它在工作时只能进行读取操作。
目标
使用 Altera RAM IP核生成单端口RAM,进行读写操作,然后仿真验证。
 
		
创建测试工程
参照之前工程,创建模板工程
 
		
1、创建RAM核
参照上文“如何创建使用IP核-PPL?”
- 找到“Memory Compiler”中的“RAM:1-PORT”选择单端口RAM
 
		
		
		2. 位宽深度存储器类型配置
 
		
		
		3、输入输出配置
 
		
		
		4. 选择写入时,进行读取,数据时效性
		尽量避免同时读写,故选择“Don't Care”
 
		
		
		5、RAM初始化配置
		没特殊要求,默认即可。
 
		
2、工程代码
 
		
1、分配引脚
| 名称 | 功能 | 管脚 | 
| sys_clk | 输入时钟 | E1 | 
| sys_rst_n | 系统复位 | M1 | 
2、顶层文件模块
		有一个“ram ip核”对象“m_ram_singleport”,以及一个读写操作对象“m_ram_rw”。
		“m_ram_singleport”:提供输出到内部的接口;
		“m_ram_rw”:提供一个读写例程
 
		
3、读写例程模块
		此例程模块,核心是rw_cnt计数,同时由于给ram核提供的时钟为sys_clk,故此例程模块时钟也必须是sys_clk。
		通过rw_cnt可以达到以下目的:
- 确定当前为写入或者读取状态
- 当为写入状态时,修改ram_wr_data数据
 
		








