目录

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

实验十七:FIFO实验——基于FIFO的ARM与FPGA数据存取

一、 实验目的与意义

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

二、 实验设备及平台

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

三、 实验原理

17-1(a)读操作时序 17-1(b)写操作时序

图17-2

四、 FIFO IP核调用

1、然后点击Tool →Megawizard Plug-In Manager,如图17-3所示。 图17-3 2、在下面界面中保持默认,直接Next即可,如图17-4所示。 图17-4 3、在该界面中选择FIFO IP核、芯片类型、硬件描述语言类型及IP核相关文件存储位置,如图17-5所示。 图17-5 4、在该对话框中设置FIFO的位宽、存储深度,并选择同步还是异步FIFO(一般选择异步),如图17-6所示。 图17-6 5、该对话框保持默认直接Next即可,如图17-7所示。 图17-7 6、在此对话框选择空满标志信号及信号的输出方式(一般满标志选择写方向),如图17-8所示。 图17-8 7、选择读请求的模式,如图17-9所示。 图17-9 8、该对话框选择是否禁用“上溢”和“下溢”检测,一般选择禁用,如图17-10所示。 图17-10 9、保持默认值,直接Next即可,如图17-11所示。 图17-11 10、该对话框选择要生成的FIFO相关文件,一般保持默认即可,如图17-12所示 图17-12 11、IP核设置完成后出现下面对话框,点击Yes,否则将无法正常调用FIFO,如图17-13所示。 图17-13

五、 代码讲解

//------------------------------------------------//
//FIFO:先进先出,主要用于缓存数据。
my_fifo u2(
	.data(data_in),
	.wrreq(1'd1),
	.wrclk(wr2),
	.rdreq(1'd1),
	.rdclk(!rd),
	.wrfull(fifo_full_flag),
	.q(data_out)
);

六、 实验步骤

图17-14

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

七、 实验现象

图17-15