usb接口程序设计_「正点原子FPGA连载」第十五章AXI4接口之DDR读写实验

1)摘自【正点原子】领航者 ZYNQ 之嵌入式开发指南

2)实验平台:正点原子领航者ZYNQ开发板
3)平台购买地址:https://item.taobao.com/item.htm?&id=606160108761
4)全套实验源码+手册+视频下载:http://www.openedv.com/docs/boards/fpga/zdyz_linhanz.html
5)对正点原子FPGA感兴趣的同学可以加群讨论:876744900
6)关注正点原子公众号,获取最新资料

usb接口程序设计_「正点原子FPGA连载」第十五章AXI4接口之DDR读写实验_第1张图片

第十五章AXI4接口之DDR读写实验


Xilinx从Spartan-6和Virtex-6系列开始使用AXI协议来连接IP核。在7系列和ZYNQ-7000 AP SoC器件中,Xilinx在IP核中继续使用AXI协议。本章我们对AXI协议作一个简单介绍,并在Vivado中实现一个AXI4接口的IP核,用于对ZYNQ PS端的DDR3进行读写测试。
本章包括以下几个部分:
1515.1简介
15.2实验任务
15.3硬件设计
15.4软件设计
15.5下载验证
15.1简介
ZYNQ将高性能ARM Cotex-A系列处理器与高性能FPGA在单芯片内紧密结合,为设计带来了如减小体积和功耗、降低设计风险,增加设计灵活性等诸多优点。在将不同工艺特征的处理器与FPGA融合在一个芯片上之后,片内处理器与FPGA之间的互联通路就成了ZYNQ芯片设计的重中之重。如果Cotex-A9与FPGA之间的数据交互成为瓶颈,那么处理器与FPGA结合的性能优势就不能发挥出来。
我们在前面的实验中介绍了一些ZYNQ PS与PL交互所使用的接口,比如《EMIO按键控制LED实验》中的EMIO,以及《AXI GPIO按键控制LED实验》中的AXI4-Lite接口等。其中AXI4-Lite接口属于AXI4总线协议,接下来我们将对该协议作一个更具体的介绍。
AXI的英文全称是Advanced eXtensible Interface,即高级可扩展接口,它是ARM公司所提出的AMBA(Advanced Microcontroller Bus Architecture)协议的一部分。在介绍AXI协议之前,我们首先要对通信协议有一个基本的概念。
简单来说,通信协议就是指双方进行信息传递所遵循的规则和约定。其实在我们的生活当中,比如在打电话的时候,就遵循着一些基本的“通信协议”。为了更形象的说明这一概念,我们首先来看一个通话记录:
《少林寺的通话记录》

  1. 老方丈:下午张三丰和灭绝师太要来参观,你去机场接一下,我把他俩手机号给你 //主机发送控制信号
  2. 小和尚:好的,稍等,我找张纸记一下。
  3. 老方丈:嗯。 //主机等待
  4. 小和尚:我准备好了,您说吧。 //从机返回Ready信号
  5. 老方丈:张三丰的是“123-321-34567”,灭绝师太的是“123-456-56789”。 //主机突发传输数据
  6. 小和尚:记下来了。 //从机返回响应信号
  7. 上面的通话记录是一次完整的通信过程,传输的信息是两个手机号。我们把“老方丈”当成主机,“小和尚”当成从机,那么这一通信过程由主机发起,最终向从机写入两组数据(手机号)。我们需要注意的是整个过程中二者的协调配合:为了确保数据传输无误,主机需要等从机准备好之后才能发送数据;另外从机在接收数据完成后,会发送响应信号,表示传输完成。
  8. 然后再来看另外一个通话记录:
  9. 《武当山的通话记录》
  10. 张三丰:下午我要去趟少林寺,你把方丈的手机号找给我 //主机发送控制信号
  11. 小道士:找到了,188-666…… //从机返回有效数据
  12. 张三丰:等一下,我找支笔。好了,你说吧 //主机发送Ready信号
  13. 小道士:188-666-66666,念完了 //从机返回有效数据,以及响应信号
  14. 张三丰:好的。
    在武当山的通话记录中,张三丰是主机,小道士是从机。通信过程同样是由主机发起,向从机请求数据。主机准备好之后发送Ready信号,接下来从机开始发送数据。从机在数据发送完成后给出响应信号,表明本次传输结束。
    对比上述两个通话记录可以发现,少林寺的通话是一次主机向从机写数据的过程,而武当山的通话则是主机向从机读数据的过程。在通信过程中,主从之间会进行协调,只有等接收方准备好之后,才能开始数据传输,这种机制我们称之为“握手”。
    在打电话的时候,通话双方能够理解彼此的语言,进而从中筛选有效信息。而在数字电路中,通信双方就没有那么智能了,主设备和从设备需要按照约定好的数据传输方式来发送和接收数据。AXI协议就是描述了主设备和从设备之间的数据传输方式,在该协议中,主设备和从设备之间通过握手信号建立连接。
    AXI协议是一种高性能、高带宽、低延迟的片内总线,具有如下特点:
    1、总线的地址/控制和数据通道是分离的;
    2、支持不对齐的数据传输;
    3、支持突发传输,突发传输过程中只需要首地址;
    4、具有分离的读/写数据通道;
    5、支持显著传输访问和乱序访问;
    6、更加容易进行时序收敛。
    在数字电路中只能传输二进制数0和1,因此可能需要一组信号才能高效地传输信息,这一组信号就组成了接口。AXI4协议支持以下三种类型的接口:
    1、AXI4:高性能存储映射接口。
    2、AXI4-Lite:简化版的AXI4接口,用于较少数据量的存储映射通信。
    3、AXI4-Stream:用于高速数据流传输,非存储映射接口。
    在这里我们首先解释一下存储映射(Meamory Map)这一概念。如果一个协议是存储映射的,那么主机所发出的会话(无论读或写)就会标明一个地址。这个地址对应于系统存储空间中的一个地址,表明是针对该存储空间的读写操作。
    AXI4协议支持突发传输,主要用于处理器访问存储器等需要指定地址的高速数据传输场景。AXI-Lite为外设提供单个数据传输,主要用于访问一些低速外设中的寄存器。而AXI-Stream接口则像FIFO一样,数据传输时不需要地址,在主从设备之间直接连续读写数据,主要用于如视频、高速AD、PCIe、DMA接口等需要高速数据传输的场合。
    在本章我们重点介绍AXI4接口,它由五个独立的通道构成:
    1、读地址
    2、读数据
    3、写地址
    4、写数据
    5、写响应
    下面是使用读地址和读数据通道实现读传输过程的示意图:

你可能感兴趣的:(usb接口程序设计)