OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4178|回复: 0

[其他] LATTICE DDR3调试心得之IP核的作用

[复制链接]

58

主题

64

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
362
金钱
362
注册时间
2022-2-11
在线时间
32 小时
发表于 2022-2-12 16:57:04 | 显示全部楼层 |阅读模式
LATTICE DDR3调试心得之IP核的作用
最近公司承接了一个车载视频拼接的项目,该项目使用到了LVDS高速接口和DDR3接口,摄像头采集的视频图像数据需要先存入DDR3中然后与通过LVDS传输的主机视频数据进行拼接输出,最终在屏幕上显示画中画的效果。在调试DDR3的过程中,我有一些使用心得,特分享给大家。

在之前的文章中我已经介绍过Lattice DDR3的IP核生成使用方法,以及接口信号。也许有许多人不是很明白,明明有DDR3的IP核,为什么还要添加这么一个接口模块,添加了这么一个接口模块主要是用来做什么,需要它设计哪些信号?

要想解决这些疑问,我们就需要先搞清楚DDR3 IP核究竟是用来做什么的。首先我们先明白这样一个概念:DDR3是一个FPGA片外的一个设备,就像我们用FPGA控制led灯的亮灭一样,我们通过引脚将FPGA与led灯连接起来,并且引脚信号是用工程中设置的输入输出来控制。也就是说,虽然一个工程中有许多个模块,每个模块间又有各种各样的输入输出,但是这些信号都只是在FPGA内部,由FPGA产生并控制的内部信号,工程真正的输入输出是FPGA外部器件通过引脚连接传递的信号。若我们使用FPGA控制外设接口工作,最起码需要有一个输入时钟(由FPGA外部晶振产生)以及与外设相连的输出信号(有的情况下没有异步复位输入也是可以工作的),那么这个时钟以及输出信号就是FPGA的I/O口。同样的,在我们调试DDR3的过程中,我们需要的I/O就是时钟以及复位信号,还有就是与DDR3硬件的连接处I/O口。我们先来看一下数据手册上DDR3 IP核控制框图,如下所示。

001.png
1 DDR3控制框图
图中用红线标记起来的地方就是FPGA与外部DDR3通过引脚连接的接口信号,如果我们通过FPGA内部产生数据并将其送入DDR3中后读出,就是通过这些引脚来传输信号的。我们使用SDRAM进行存储,是直接控制这些输出信号如CAS、RAS、CKE等控制SDRAM读写以及其他各操作的,如下图就是SDRAM的输出控制信号,通过FPGA内部设计CS、RAS、CAS、WE这些信号,可以让SDRAM实现对应的操作。比如我们设计一个SDRAM读操作,那么我们就需要设计CS、RAS、CAS、WE分别为0、1、0、1,SDRAM通过引脚接收到这些信号,便会产生对应的操作,即打开一个新的列地址并开始一个新的突发读操作。
888.png
2 SDRAM输出控制指令

与设计SDRAM接口不同的是,我们在使用DDR3时,是不需要我们亲自设计这些输出信号, 因为我们调用的DDR3 IP核已经帮我们内部封装好了这些指令,我们需要设计的是输入IP核的那部分接口信号,来告诉IP核我们想让DDR3进行工作的模式以及需要DDR3进行的操作。在设计这个接口模块的时候,我们需要设计的就是图1左侧接口的那部分信号,各信号的功能以及时序在数据手册上有详细的说明(在我前面的文章中也有详细的介绍),这需要我们一边对照着数据手册一边进行设计,具体的设计方法我将会在接下来的文章中继续介绍。



正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-23 17:19

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表