这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 | ||
基于双口ram的arm_fpga数据存取实验 [2020/07/03 10:24] zgf |
基于双口ram的arm_fpga数据存取实验 [2022/03/22 10:30] (当前版本) sean |
||
---|---|---|---|
行 1: | 行 1: | ||
+ | | **银杏科技有限公司旗下技术文档发布平台** |||| | ||
+ | |技术支持电话|**0379-69926675-801**||| | ||
+ | |技术支持邮件|Gingko@vip.163.com||| | ||
+ | ^ 版本 ^ 日期 ^ 作者 ^ 修改内容 ^ | ||
+ | | V1.0 | 2020-07-03 | gingko | 初次建立 | | ||
+ | |||
===== 实验十六:双口RAM实验——基于双口RAM的ARM与FPGA通信 ===== | ===== 实验十六:双口RAM实验——基于双口RAM的ARM与FPGA通信 ===== | ||
行 6: | 行 12: | ||
- 掌握QuartusII的使用方法。 | - 掌握QuartusII的使用方法。 | ||
==== 二、 实验设备及平台 ==== | ==== 二、 实验设备及平台 ==== | ||
- | - iCore4 双核心板。 | + | - iCore4 双核心板[[https://item.taobao.com/item.htm?spm=a1z10.1-c-s.w4004-22598974120.15.5923532fsFrHiE&id=551864196684|点击购买]]。 |
- | - Blaster(或相同功能)仿真器。 | + | - Blaster(或相同功能)仿真器[[https://item.taobao.com/item.htm?id=554869837940|点击购买]]。 |
- JLINK(或相同功能)仿真器。 | - JLINK(或相同功能)仿真器。 | ||
- Micro USB线缆。 | - Micro USB线缆。 | ||
行 22: | 行 28: | ||
{{ :icore4:icore4_fpga_16_1_b_.png?direct |16-1(b) 写时序图}} | {{ :icore4:icore4_fpga_16_1_b_.png?direct |16-1(b) 写时序图}} | ||
* 由于双口RAM有两条相互独立的地址线、数据线和控制线,能实现数据共享,本实验针对双口RAM的工作特点进行实验验证。实验中通过FPGA对RAM的A端口进行读写操作,RAM的A端口先向RAM中写入0到255的数据,然后再读出来,如此循环操作,同时通过Commix向STM32发送命令,STM32收到命令后通过FSMC总线与FPGA实现通信,对RAM的B端口进行都控制,发送一次读命令RAM的B端口把相应地址里的数据发送至ARM,再发送至Commix显示出来以验证实验的成功性。再本实验中验证了双口RAM的两种工作模式: | * 由于双口RAM有两条相互独立的地址线、数据线和控制线,能实现数据共享,本实验针对双口RAM的工作特点进行实验验证。实验中通过FPGA对RAM的A端口进行读写操作,RAM的A端口先向RAM中写入0到255的数据,然后再读出来,如此循环操作,同时通过Commix向STM32发送命令,STM32收到命令后通过FSMC总线与FPGA实现通信,对RAM的B端口进行都控制,发送一次读命令RAM的B端口把相应地址里的数据发送至ARM,再发送至Commix显示出来以验证实验的成功性。再本实验中验证了双口RAM的两种工作模式: | ||
- | * 1、双口RAM一个端口写操作,另一个端口读操作。 | + | * 1、双口RAM一个端口写操作,另一个端口读操作。 |
- | * 2、双口RAM两个端口同时读操作,实验原理图如下图所示。 | + | * 2、双口RAM两个端口同时读操作,实验原理图如下图所示。 |
{{ :icore4:icore4_fpga_16_2.png?direct |图16-2}} | {{ :icore4:icore4_fpga_16_2.png?direct |图16-2}} | ||
==== 四、 RAM IP核调用 ==== | ==== 四、 RAM IP核调用 ==== | ||
行 51: | 行 57: | ||
{{ :icore4:icore4_fpga_16_14.png?direct |图16-14}} | {{ :icore4:icore4_fpga_16_14.png?direct |图16-14}} | ||
13、IP核设置完成后出现下面对话框,点击Yes,否则将无法正常调用RAM,如图16-15所示。 | 13、IP核设置完成后出现下面对话框,点击Yes,否则将无法正常调用RAM,如图16-15所示。 | ||
- | {{ :icore4:icore4_fpga_16_15.png?direct |图16-15}} | + | {{ :icore4:icore4_fpga_16_15.png?direct&500 |图16-15}} |
==== 五、 代码讲解 ==== | ==== 五、 代码讲解 ==== | ||
* IP核调用只是生成相关的模块文件,在应用中要实现存储、读写功能,还需要对IP核进行实例化操作,双口RAM IP核例化代码如下: | * IP核调用只是生成相关的模块文件,在应用中要实现存储、读写功能,还需要对IP核进行实例化操作,双口RAM IP核例化代码如下: |