目录

银杏科技有限公司旗下技术文档发布平台
技术支持电话0379-69926675-801
技术支持邮件Gingko@vip.163.com
版本 日期 作者 修改内容
V1.0 2020-07-03 gingko 初次建立

实验十六:双口RAM实验——基于双口RAM的ARM与FPGA通信

一、 实验目的与意义

  1. 掌握双口RAM IP核的调用及例化方法。
  2. 掌握RAM读写时序。
  3. 掌握QuartusII的使用方法。

二、 实验设备及平台

  1. iCore4 双核心板点击购买
  2. Blaster(或相同功能)仿真器点击购买
  3. JLINK(或相同功能)仿真器。
  4. Micro USB线缆。
  5. Keil MDK 开发平台。
  6. Quartus开发平台。
  7. 电脑一台。

三、 实验原理

16-1(a) 读时序图

16-1(b) 写时序图

图16-2

四、 RAM IP核调用

1、打开Tool →Megawizard Plug-In Manager,如图16-3所示。 图16-3 2、在下面界面中保持默认,直接Next即可,如图16-4所示。 图16-4 3、在该界面中选择双口RAM IP核、芯片类型、硬件描述语言类型及IP核相关文件存储位置,如图16-5所示。 图16-5 4、在该对话框中选择真双口RAM(两个输入两个输出),存储深度以字节为单位,如图16-6示。 图16-6 5、在该对话框中设置存储深度,如图16-7所示。 图16-7 6、在此对话框选择时钟信号输入方式、增加读使能信号,如图16-8所示。 图16-8 7、直接Next即可,如图16-9所示。 图16-9 8、该对话框直接Next即可,如图16-10所示。 图16-10 9、选择读出的数据是新数据还是老数据,一般设置新数据(New Data),如图16-11所示。 图16-11 10、该对话框设置RAM无初始值,直接Next,如图16-12所示 图16-12 11、直接Next,如图16-13所示。 图16-13 12、选择生成的IP核关联文件类型,如图16-14所示。 图16-14 13、IP核设置完成后出现下面对话框,点击Yes,否则将无法正常调用RAM,如图16-15所示。 图16-15

五、 代码讲解

//------------------------------------------------//
//双口RAM的缺点是与单口RAM相比,相同容量的RAM占用逻辑资源比较多。
//优点在于具有2个输入2个输出端口,两个端口都可用于输入输出,可实现同时读写,便于控制。
ram u1(
	.data_a(data_a),
	.address_a(address_a),
	.wren_a(wren_a),
	.rden_a(rden_a),
	.clock_a(!clk_a),
	.q_a(dataout_a),
 
	.data_b(db),
	.address_b(ab),
	.wren_b(1'd0),
	.rden_b(!rd),
	.clock_b(clk_b),
	.q_b(dataout_b)
);

六、 实验步骤

图16-16

  1. 将硬件正确连接,如图16-16所示。
  2. 打开Commix串口精灵,找到对应的COM口打开。
  3. 打开QuartusII开发环境,并打开实验工程。
  4. 将FPGA程序下载至iCore4上。
  5. 打开Keil MDK开发环境,并打开实验工程。
  6. 烧写ARM程序到iCore4上
  7. 输入串口命令,观察实验现象。

七、 实验现象

命令格式:

图16-17