首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
DDR控制
】的更多相关文章
DDR控制
先看下micron公司对DDR3命名的规则: 在设置xilinx ISE中的DDR时 在选择芯片时,不清楚该怎么选择. 请教汤工,给出的答案是Speed等级高的可以兼容等级低的芯片,个在实验之中用的是-125的速度等级,所以在 -125.-15E和-187E都可以选择. 图3 同样从Datasheet上也得到了这样的结论,注意Notes的说明,但是我还有点不明白的是,他们在延时上有什么关系. MRS (mode register set) 模式寄存器共有4个,分别为Mode Register 0…
嵌入式Linux引导过程之1.4——Xloader的ddr_init
这里我们来看XLOADER_ENTRY中调用的第二个标号ddr_init处的代码,这部分代码的作用是对外部内存SDRAM进行初始化,在我 spearplus开发板中,使用的是DDR SDRAM.在调用ddr_init之前,外部内存是不能用的,因为外部内存的时钟以及控制寄存器都还没有初始化,因此此时只有芯片内部的SRAM以及在 sys_init的时候已经初始化了的Serial Flash.UART以及gmac是可用的. 而ddr_init的作用就是根据板子 使用的外部SDRAM来对外部内存进行初始…
视频场景切换检测的FPGA实现
本文将继续讲述图像处理算法的FPGA实现,后续可能更新图像旋转(1080P).画中画.快速DCT等算法.视频场景切换检测常用于视频编解码领域,我选用的算法是双阈值灰度直方图检测法,起初在MATLAB上实现并测出最佳双阈值,然后将其转换为verilog代码,最终在XILINX K7开发板上实现视频场景切换检测的效果. 双阈值灰度直方图算法,顾名思义是采用两个灰度阈值来判断视频场景的切换.其中一个是渐变阈值T1,表明视频场景可能发生改变:另一个是突变阈值T2,表示阈值已经发生改变.当相邻帧灰度直方图…
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寻址的问题,如下图: 从官方文档上我们看到了DDR的地址是从0008_0000开始的,那么我们开始修改Xilinx给我们提供的IP核代码.其实很简单,上一节已经分析了地址停留在0000_1000的原因,现在我们只需要把write_burst_counter的位宽变大就可以了. 从上表看到地址范围由全0到全1,计算一下就知道需要的宽度为27,即 C_NO_BURSTS_REQ = 26; 重新打包IP核,生成比特流.开始调试 由于从0003_0000开始的地址是保留位,理论上来说…
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手册,感觉大体有一点了解了,想要实际上板调试,然而实验室可用的开发板不多,拿了一块zynq板看了看,DDR确实有,但是已经集成了控制器,而且控制器还放到了PS端,PL只能通过AXI接口访问. 无奈另外两块开发板也这样,索性就用AXI去控制吧,正好还能再复习一遍AXI. 先简单介绍一下zynq,其全称是ZedBoard Zynq Evaluation and Development Kit , FPGA芯片型号为xc7z020clg484-1. 片内包含一个丰富特性的…
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读写(三)——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协议中最重要的部分,是一种面向高性能.高带宽.低延迟的片内总线.它的地址/控制和数据相位是分离的,支持不…