首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
zedboard如何从PL端控制DDR读写(一)
】的更多相关文章
zedboard如何从PL端控制DDR读写(七)
前面已经详细介绍了从PL端如何用AXI总线去控制DDR的读写,并且从AXI_BRESP的返回值来看,我们也是成功写入了的.但是没有通过别的方式来验证写入的数据的话,总是感觉差了点什么. 今天试了一把从PS端直接读取DDR里面的数据,刚好跟PL端写入的一样,这下可以放心的认为我们写入成功了. 还是跟前面说的一样,在SDK里面使用hello world的模版就可以了. 准备工作:(这部分参考了[ZYNQ-7000开发之六]使用PS控制DDR3的读写) 1.DDR3的地址 在mem_demo_bsp-…
zedboard如何从PL端控制DDR读写(五)
有了前面的一堆铺垫.现在终于开始正式准备读写DDR了,开发环境:VIVADO2014.2 + SDK. 一.首先要想在PL端通过AXI去控制DDR,我们必须要有一个AXI master,由于是测试,就不自己写了,直接用package IP生成,方法如下: 1.选择package IP工具 2.创建新的AXI外设 3.接口类型选择Full,模式选择master,如果你不关心里面的详细实现过程,那么直接finish就好了.(后面我们会继续分析里面的过程) 二.创建好了IP,自然要加入到IP库里,如图…
zedboard如何从PL端控制DDR读写(六)
上一节说到了DDR寻址的问题,如下图: 从官方文档上我们看到了DDR的地址是从0008_0000开始的,那么我们开始修改Xilinx给我们提供的IP核代码.其实很简单,上一节已经分析了地址停留在0000_1000的原因,现在我们只需要把write_burst_counter的位宽变大就可以了. 从上表看到地址范围由全0到全1,计算一下就知道需要的宽度为27,即 C_NO_BURSTS_REQ = 26; 重新打包IP核,生成比特流.开始调试 由于从0003_0000开始的地址是保留位,理论上来说…
zedboard如何从PL端控制DDR读写(四)
PS-PL之间的AXI 接口分为三种:• 通用 AXI(General Purpose AXI) — 一条 32 位数据总线,适合 PL 和 PS 之间的中低速通信.接口是透传的不带缓冲.总共有四个通用接口:两个 PS 做主机,另两个 PL 做主机.• 加速器一致性端口(Accelerator Coherency Port) — 在 PL 和 APU 内的 SCU之间的单个异步连接,总线宽度为 64 位.这个端口用来实现 APU cache 和 PL的单元之间的一致性.PL 是做主机的.• 高性…
zedboard如何从PL端控制DDR读写(一)
看了一段时间的DDR手册,感觉大体有一点了解了,想要实际上板调试,然而实验室可用的开发板不多,拿了一块zynq板看了看,DDR确实有,但是已经集成了控制器,而且控制器还放到了PS端,PL只能通过AXI接口访问. 无奈另外两块开发板也这样,索性就用AXI去控制吧,正好还能再复习一遍AXI. 先简单介绍一下zynq,其全称是ZedBoard Zynq Evaluation and Development Kit , FPGA芯片型号为xc7z020clg484-1. 片内包含一个丰富特性的…
zedboard如何从PL端控制DDR读写(三)——AXI-FULL总线调试
之前的项目和培训中,都只用到了AXI-Lite或者AXI-Stream,对于AXI-FULL知之甚少,主要是每次一看到那么多接口信号就望而却步了. 现在为了调试DDR,痛下决心要把AXI-FULL弄懂. 前面已经介绍了基本的接口信号,本文主要是总结一下使用AXI-FULL调试的过程. 首先想到的是用RAM IP核来测试,方法是通过AXI接口向RAM写入一组数据并读出,看起来很简单,然而试了好久都没能出结果.如下图所示,其实AXI RAM就是在本地RAM接口的基础上套了一个AXI的壳 在使用mod…
zedboard如何从PL端控制DDR读写(二)——AXI总线
虽然Xilinx已经将和AXI时序有关的细节都封装起来,给出了官方IP和向导生成自定义IP,用户只需要关注自己的逻辑实现,但是还是有必要简单了解一下AXI的时序,毕竟咱是做硬件设计的. AXI(Advanced eXtensible Interface)是一种总线协议,该协议是ARM公司提出的AMBA(Advanced Microcontroller Bus Architecture)3.0协议中最重要的部分,是一种面向高性能.高带宽.低延迟的片内总线.它的地址/控制和数据相位是分离的,支持不…
第十二章 ZYNQ-MIZ702 PS读写PL端BRAM
本篇文章目的是使用Block Memory进行PS和PL的数据交互或者数据共享,通过zynq PS端的Master GP0端口向BRAM写数据,然后再通过PS端的Mater GP1把数据读出来,将结果打印输出到串口终端显示. 涉及到AXI BRAM Controller 和 Block Memery Generator等IP的使用. 本系列文章尽可能的让每一个实验都相对独立,过程尽可能保证完整性,保证实验的可重现性. 但是用到的模块或者IP的具体作用和用法不保证都重复详细的介绍. 本文所使用…
第十一章 ZYNQ-MIZ701 PS读写PL端BRAM
本篇文章目的是使用Block Memory进行PS和PL的数据交互或者数据共享,通过zynq PS端的Master GP0端口向BRAM写数据,然后再通过PS端的Mater GP1把数据读出来,将结果打印输出到串口终端显示. 涉及到AXI BRAM Controller 和 Block Memery Generator等IP的使用. 本系列文章尽可能的让每一个实验都相对独立,过程尽可能保证完整性,保证实验的可重现性. 但是用到的模块或者IP的具体作用和用法不保证都重复详细的介绍. 本文所使用…
MIG IP控制DDR3读写测试
本文设计思想采用明德扬至简设计法.在高速信号处理场合下,很短时间内就要缓存大量的数据,这时片内存储资源已经远远不够了.DDR SDRAM因其极高的性价比几乎是每一款中高档FPGA开发板的首选外部存储芯片.DDR操作时序非常复杂,之所以在FPGA开发中用途如此广泛,都要得意于MIG IP核.网上关于MIG控制DDR的资料很多,因此本文只讲述个人认为较重要的内容.由于MIG IP核用户接口时序较复杂,这里给出扩展接口模块用于进一步简化接口时序. 我们从IP核配置开始说起.Controller Opt…