zedboard如何从PL端控制DDR读写(一)

看了一段时间的DDR手册,感觉大体有一点了解了,想要实际上板调试,然而实验室可用的开发板不多,拿了一块zynq板看了看,DDR确实有,但是已经集成了控制器,而且控制器还放到了PS端,PL只能通过AXI接口访问。

    无奈另外两块开发板也这样,索性就用AXI去控制吧,正好还能再复习一遍AXI。

先简单介绍一下zynq,其全称是ZedBoard Zynq Evaluation and Development Kit  , FPGA芯片型号为xc7z020clg484-1。

片内包含一个丰富特性的基于双核ARM Cortex-A9的处理子系统(Processing System,PS)和Xilinx 28nm可编程逻辑(Programmable Logic,PL)。PS除了核心外还包括片上存储器、外部存储器接口以及大量外设连接接口。【引用:Zynq-7000 Overview】

可以看到其存储器规格为:512MB DDR3;256Mb Quad-SPI Flash;4GB SD Card;

板卡结构框图如下所示:从图中我们也可以明显的看到DDR位于PS端

位于PS端的ARM直接有硬件支持AXI接口,而PL则需要使用逻辑实现相应的AXI协议。Xilinx提供现成IP如AXI-DMA,AXI-GPIO,AXI-Datamover都实现了相应的接口,使用时直接从XPS的IP列表中添加即可实现相应的功能。

有时,用户需要开发自己定义的IP同PS进行通信,这时可以利用VIVADO向导生成对应的IP。VIVADO中用户自定义IP核可以拥有AXI-Lite,AXI-FULL,AXI-Stream。

AXI-Lite具有轻量级,结构简单的特点,适合小批量数据、简单控制场合。不支持批量传输,读写时一次只能读写一个字(32bit)。

AXI4接口和AXI-Lite差不多,只是增加了一项功能就是批量传输,可以连续对一片地址进行一次性读写。

上面两种均采用内存映射控制方式,即ARM将用户自定义IP编入某一地址进行访问,读写时就像在读写自己的片内RAM,编程也很方便,开发难度较低。代价就是资源占用过多,需要额外的读地址线、写地址线、读数据线、写数据线、写应答线这些信号线。

另外一种AXI接口就是AXI-Stream,这是一种连续流接口,不需要地址线(很像FIFO,一直读或一直写就行)。对于这类IP,ARM不能通过上面的内存映射方式控制(FIFO根本没有地址的概念),必须有一个转换装置,例如AXI-DMA模块来实现内存映射到流式接口的转换。AXI-Stream适用的场合有很多:视频流处理;通信协议转换;数字信号处理;无线通信等。其本质都是针对数值流构建的数据通路,从信源(例如ARM内存、DMA、无线接收前端等)到信宿(例如HDMI显示器、音频输出等)构建起连续的数据流。这种接口适合做实时信号处理。

有了上面的这些官方IP和向导生成的自定义IP,用户其实不需要对AXI时序了解太多(除非确实遇到问题),因为Xilinx已经将和AXI时序有关的细节都封装起来,用户只需要关注自己的逻辑实现即可。

posted on 2016-07-15 11:44 christ0127 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/christsong/p/5672807.html

zedboard如何从PL端控制DDR读写(一)相关推荐

  1. zedboard如何从PL端控制DDR读写(五)

    有了前面的一堆铺垫.现在终于开始正式准备读写DDR了,开发环境:VIVADO2014.2 + SDK. 一.首先要想在PL端通过AXI去控制DDR,我们必须要有一个AXI master,由于是测试,就 ...

  2. FPGA控制DDR读写(AXI4总线接口)

    FPGA控制DDR读写(AXI4总线接口) 范围 本文适用于FPGA控制DDR读写 MIG核 MIG信号注释 DDR型号为 MT41K256M16TW-107 下面是MIG IP核的相关信号 图2.1 ...

  3. zynqpl端时钟_第十二章 ZYNQ-MIZ702 PS读写PL端BRAM

    本篇文章目的是使用Block Memory进行PS和PL的数据交互或者数据共享,通过zynq PS端的Master GP0端口向BRAM写数据,然后再通过PS端的Mater GP1把数据读出来,将结果 ...

  4. zynqpl端时钟_第十一章 ZYNQ-MIZ701 PS读写PL端BRAM

    本篇文章目的是使用Block Memory进行PS和PL的数据交互或者数据共享,通过zynq PS端的Master GP0端口向BRAM写数据,然后再通过PS端的Mater GP1把数据读出来,将结果 ...

  5. P2中ZYNQ的PS控制PL端LED

    第一个ZYNQ的实验,用于熟悉开发环境和板卡,通过GPIO控制LED,由于P2在ps端没有LED,所以需要通过axi总线控制PL端LED. 1.参考设计 参考的是黑金的<PL 端和 PS 端的协 ...

  6. zynq开发系列5:通过AXI GPIO的中断实现PL端按键控制PS端LED(SDK开发详解)

    axi_gpio是PL端gpio(FPGA资源搭建的软核),ps7_gpio是ps端gpio(硬核).打开Documentation的示例Examples,可知第二个是关于中断的示例.导入示例impo ...

  7. zynq开发系列5:通过AXI GPIO的中断实现PL端按键控制PS端LED

    在pg144-axi-gpio(LogiCORE IP Product Guide)中可以看见AXI GPIO提供通用输入输出接口到AXI接口,32位软核,设计与AXI4-Lite接口进行连接.IOP ...

  8. FPGA挂载EMMC IP源码 ZYNQ PL端读写EMMC IP 最大52MB吞吐率(8bit) 支持1/4/8/bit 支持块读写

    FPGA挂载EMMC IP源码 ZYNQ PL端读写EMMC IP 最大52MB吞吐率(8bit) 支持1/4/8/bit 支持块读写 FIFO接口 详细接口说明文档 源码提供 ID:99299996 ...

  9. 自定义ZYNQ的PL端数据处理器,通过DMA等进行交互(附GitHub源码)

    ZYNQ_PLPS_LOOP 摘要:在ZYNQ中设计了自定义的PL端数据处理器,通过DMA连接到AXI总线,完成了PS和该PL端的数据交互等功能. 开发板型号:Zynq-7000 SoC XC7Z30 ...

最新文章

  1. 2021年中国工业互联网安全大赛核能行业赛道writeup之日志分析
  2. Ubuntu 16.04下用Wine运行的软件出现方块的解决思路(应该是兼容现在所有平台的Wine碰到这个的问题)...
  3. 以太坊是什么 - 以太坊开发入门指南
  4. 华为上机考试题系列(一):牛客网的奇葩操作
  5. JEECG-P3开发专题 - 开发环境搭建入门
  6. 我的第一个 react redux demo
  7. php获取网页内容方法总结
  8. 文章马伊琍离婚,华为却成“最大赢家”?
  9. C中的预编译宏定义-转
  10. 通过BeanPostProcessor理解Spring中Bean的生命周期及AOP原理
  11. 数字人民币APP(试点版)上线引关注 | 产业区块链发展周报
  12. 对话马丁·福勒(Martin Fowler)——第六部分:性能与过程调优
  13. 再见,深圳!再见,腾讯!
  14. commit规范使用gitmoji全流程 cz-customizable+commitlint+husky+conventional-changelog
  15. SQL 中文首字母提取与自定义排序
  16. 国内cn域名过期失效日期计算方式
  17. Windows 2003 变慢原因分析及解决
  18. 海拥,一枚热爱分享技术与快乐的博主
  19. 2011动作科幻《美少女特工队》BD中英双字1024/1280高清 下载
  20. Acwing---1231.航班时间

热门文章

  1. 我的个人中心前端开发源代码_个人博客
  2. linux内核兼容性,各种glibc和Linux内核版本的兼容性
  3. html文件很大,webpack打包之后的文件过大如何解决
  4. python一条线分段显示颜色_Python诅咒显示分段fau
  5. 2018java计算机二级考试试题和答案,2018年计算机等级考试二级JAVA习题答案(1)
  6. axis2生成客户端代码_利用ApiPost一键、快速生成接口文档!女猿也过38节!
  7. Spring Security login
  8. linux chgrp
  9. Spark WordCount
  10. matplotlib.patches.Polygon