这里会显示出您选择的修订版和当前版本之间的差别。
| 后一修订版 | 前一修订版 | ||
|
icore4tx_fpga_20 [2020/07/01 09:26] zgf 创建 |
icore4tx_fpga_20 [2022/04/01 11:39] (当前版本) sean |
||
|---|---|---|---|
| 行 1: | 行 1: | ||
| + | | **银杏科技有限公司旗下技术文档发布平台** |||| | ||
| + | |技术支持电话|**0379-69926675-801**||| | ||
| + | |技术支持邮件|Gingko@vip.163.com||| | ||
| + | ^ 版本 ^ 日期 ^ 作者 ^ 修改内容 ^ | ||
| + | | V1.0 | 2020-07-01 | gingko | 初次建立 | | ||
| + | \\ | ||
| + | \\ | ||
| + | |||
| ===== 实验二十:单口RAM实验——基于单口RAM的ARM与FPGA通信 ===== | ===== 实验二十:单口RAM实验——基于单口RAM的ARM与FPGA通信 ===== | ||
| 行 7: | 行 15: | ||
| - 掌握单口RAM在工程中的使用方法。 | - 掌握单口RAM在工程中的使用方法。 | ||
| ==== 二、 实验设备及平台 ==== | ==== 二、 实验设备及平台 ==== | ||
| - | - iCore4TX 双核心板。 | + | - iCore4TX 双核心板[[https://item.taobao.com/item.htm?spm=a1z10.1-c-s.w4004-22598974120.3.29da532fLkazHH&id=614919247574|点击购买]]。 |
| + | - USB CABLE(或相同功能)仿真器。 | ||
| + | - USB CABLE(或相同功能)仿真器。 | ||
| - USB CABLE(或相同功能)仿真器。 | - USB CABLE(或相同功能)仿真器。 | ||
| - JLINK(或相同功能)仿真器。 | - JLINK(或相同功能)仿真器。 | ||
| 行 18: | 行 28: | ||
| * RAM全称是Random Access Memory(随机存取存储器),是与处理器进行数据交互的存储器。既可向指定地址单元写入信息也可从指定地址单元中读取信息,掉电后数据丢失,属于易失性存储器。 | * RAM全称是Random Access Memory(随机存取存储器),是与处理器进行数据交互的存储器。既可向指定地址单元写入信息也可从指定地址单元中读取信息,掉电后数据丢失,属于易失性存储器。 | ||
| * 单口RAM IP核是FPGA内部常用的一种存储单元,只有一组数据线和地址线,因此不能同时进行读写操作。其操控时序比较简单,以时钟上升沿作为触发事件,在上升沿到来前保证地址和数据稳定即可将数据准确的写入对应的地址单元中,读取时,也是如此。其读写时序如图20-1所示。 | * 单口RAM IP核是FPGA内部常用的一种存储单元,只有一组数据线和地址线,因此不能同时进行读写操作。其操控时序比较简单,以时钟上升沿作为触发事件,在上升沿到来前保证地址和数据稳定即可将数据准确的写入对应的地址单元中,读取时,也是如此。其读写时序如图20-1所示。 | ||
| + | |||
| + | * 20-1(a) 读时序图 | ||
| {{ :icore4tx:icore4tx_fpga_20_1_a.png?direct |20-1(a) 读时序图}} | {{ :icore4tx:icore4tx_fpga_20_1_a.png?direct |20-1(a) 读时序图}} | ||
| + | |||
| + | * 20-1(b) 写时序图 | ||
| {{ :icore4tx:icore4tx_fpga_20_1_b.png?direct |20-1(b) 写时序图}} | {{ :icore4tx:icore4tx_fpga_20_1_b.png?direct |20-1(b) 写时序图}} | ||
| + | |||
| * 本实验基于ARM+FPGA构架,FPGA例化单口RAM,作为ARM的外部存储器。ARM通过SPI总线对FPGA内部的RAM进行读写操作。本实验重点是学习如何在工程中例化单口RAM IP核,以及利用SPI总线对FPGA内部RAM进行读写操作。 | * 本实验基于ARM+FPGA构架,FPGA例化单口RAM,作为ARM的外部存储器。ARM通过SPI总线对FPGA内部的RAM进行读写操作。本实验重点是学习如何在工程中例化单口RAM IP核,以及利用SPI总线对FPGA内部RAM进行读写操作。 | ||
| ==== 四、 RAM IP核调用 ==== | ==== 四、 RAM IP核调用 ==== | ||
| 行 26: | 行 41: | ||
| {{ :icore4tx:icore4tx_fpga_20_2.png?direct |图20-2}} | {{ :icore4tx:icore4tx_fpga_20_2.png?direct |图20-2}} | ||
| 2、弹出界面中选中IP(CORE Generator & Architecture Wizard)选项,并在右侧File name栏输入新建IP核的文件名,然后点击Next。 | 2、弹出界面中选中IP(CORE Generator & Architecture Wizard)选项,并在右侧File name栏输入新建IP核的文件名,然后点击Next。 | ||
| - | {{ :icore4tx:icore4tx_fpga_20_3.png?direct |图20-3}} | + | {{ :icore4tx:icore4tx_fpga_20_3.png?direct&800 |图20-3}} |
| 3、在Select IP界面的Memories & Storage Elements 栏下找到RAM & ROM,点击前面的“+”展开,单击选中Block Memory Generator,点击Next 进入下一步。 | 3、在Select IP界面的Memories & Storage Elements 栏下找到RAM & ROM,点击前面的“+”展开,单击选中Block Memory Generator,点击Next 进入下一步。 | ||
| - | {{ :icore4tx:icore4tx_fpga_23_4.png?direct |图20-4}} | + | {{ :icore4tx:icore4tx_fpga_23_4.png?direct&800 |图20-4}} |
| 4、直接点击Finished。 | 4、直接点击Finished。 | ||
| {{ :icore4tx:icore4tx_fpga_20_5.png?direct |图20-5}} | {{ :icore4tx:icore4tx_fpga_20_5.png?direct |图20-5}} | ||
| 行 128: | 行 143: | ||
| begin | begin | ||
| wr_cnt <= wr_cnt + 1'd1; | wr_cnt <= wr_cnt + 1'd1; | ||
| - | end | + | end |
| end | end | ||
| default:begin | default:begin | ||