0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

关于SDRAM控制器的基础知识详解

FPGA之家 来源:FPGA之家 作者:FPGA之家 2021-04-19 09:46 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

FPGA视频图像处理系统中,经常需要使用到SDRAM作为视频图像缓存。SDRAM控制器可以分为上电初始化,自动刷新,读操作和写操作这四个部分,他们之间的转换可以通过状态机来控制。下面分别实现这几个部分。

1.SDRAM上电初始化

SDRAM上电初始化时序如下图所示。

c2878e84-9ff2-11eb-8b86-12bb97331649.jpg

由时序图可知初始化大概的过程为:上电后等待电源VDD和时钟信号稳定100μs(期间命令为空命令),同时在100μs内设置CKE(时钟使能)信号为高。随后对所有Bank发送预充电(PRECH ARGE)命令,发送两次自动刷新(REFRESH)命令,最后发送装载模式寄存器(LOAD MODE REGISTER)命令,并将设置寄存器的值传入地址总线A0~A11。

c295a2a8-9ff2-11eb-8b86-12bb97331649.png

上述过程的实现可以通过线性序列机来实现。即需要对初始化过程时间进行计数,当时间到达时就执行某个命令。下面是部分代码。

1.计时器

c2a5df56-9ff2-11eb-8b86-12bb97331649.png

2.命令执行时间设置

c2b13130-9ff2-11eb-8b86-12bb97331649.jpg

3.对应时间执行对应命令

c2cd462c-9ff2-11eb-8b86-12bb97331649.png

2.SDRAM自动刷新

同样给出自动刷新的时序图。

c3055f30-9ff2-11eb-8b86-12bb97331649.jpg

过程比较简单:首先对所有Bank预充电,然后发送两次自动刷新命令。

c3508924-9ff2-11eb-8b86-12bb97331649.png

同样可以使用线性序列机的方法来实现,这里就不重复了。但需要添加一个刷新状态标志。ref_opt_done=1表示刷新完成,ref_opt=1表示正在刷新。

c35c7dec-9ff2-11eb-8b86-12bb97331649.png

3.SDRAM写操作

c36e59e0-9ff2-11eb-8b86-12bb97331649.jpg

从时序图上看首先发出激活命令,并给出行地址Bank地址;随后发出写命令,并指定写入Bank,起始列地址和写入数据;最后进行预充电,关闭所有Bank。这里每次突发写入4个数据,即突发长度为4,突发长度可以在之前初始化的模式寄存器中设置。

c37f345e-9ff2-11eb-8b86-12bb97331649.png

同样使用序列机的实现方法,在写操作中也需要添加写操作完成状态标志,和过程状态标志。此外只有当写入突发长度数据的时候我们才使能数据线输入有效,其他时刻让数据线保持高阻态,所以要添加一个写数据状态标志Wr_data_valid=1时表示正在写数据。

c6ad4be8-9ff2-11eb-8b86-12bb97331649.png

4.SDRAM读操作

c6c199c2-9ff2-11eb-8b86-12bb97331649.jpg

与写操作类似,但是我们输入读命令的时候,数据并不是立刻输出,而是要经过一个CAS_Latency后输出。这个延时也可以通过模式寄存器的配置来调整。我们同样需要给出读操作完成、读操作过程,读出突发数据的有效区间。

c6f9adb2-9ff2-11eb-8b86-12bb97331649.png

c7088134-9ff2-11eb-8b86-12bb97331649.png

5.SDRAM控制器设计

首先SDRAM上电后进入空闲状态,初始化完成后进入刷新状态,然后根据输入命令进行转换,实际上状态机的控制对于刷新操作,读/写操作是有一个优先级的:刷新操作》写操作》读操作。即假设写命令和刷新命令同时到来时先执行刷新操作。下图为状态机的状态转移图。具体实现可参考完整代码。

c73766de-9ff2-11eb-8b86-12bb97331649.jpg

由于SDRAM需要固定时间间隔刷新一次,我们还得考虑一个刷新定时器,固定时间产生一个刷新请求。

c7617398-9ff2-11eb-8b86-12bb97331649.png

最后我们还需要考虑如果在读操作的时候,产生了刷新请求或写请求怎么办呢?写操作的时候,产生了刷新请求或读请求怎么办?或者在刷新操作时产生了读/写请求怎么办?

对于刷新请求的突然到来我们采取记住刷新标志,等待当前任务完成后进行刷新操作。

在刷新操作时读/写请求突然到来,我们也采取记住读/写标志,等待当前任务完成后进行读/写操作。

但是对于在读/写操作时外部读/写请求的到来,我们选择了忽略这次请求。部分代码如下。

c76b6e20-9ff2-11eb-8b86-12bb97331649.jpg

由于视频信号数据读入读出都是连续不断的,因此在某些时刻会导致读写的遗漏,但一般会在SDRAM读出写入前加上一个FIFO进行缓存控制数据的读写,当写FIFO中数据大于一次突发长度时,使能写信号;当读FIFO中数据小于突发长度时,使能读信号,就可以解决这个问题。
编辑:lyn

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1664

    文章

    22502

    浏览量

    639151
  • 计时器
    +关注

    关注

    1

    文章

    435

    浏览量

    35363
  • 代码
    +关注

    关注

    30

    文章

    4976

    浏览量

    74376
  • SDRAM控制器
    +关注

    关注

    0

    文章

    29

    浏览量

    10090

原文标题:SDRAM控制器设计

文章出处:【微信号:zhuyandz,微信公众号:FPGA之家】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    56F8322/56F8122数字信号控制器技术详解

    56F8322/56F8122数字信号控制器技术详解 在电子工程领域,数字信号控制器(DSC)扮演着至关重要的角色。今天,我们就来深入探讨飞思卡尔(Freescale)的56F8322
    的头像 发表于 04-09 10:20 168次阅读

    SDRAM工业动态随机存储在可编程逻辑控制器(PLC)的应用

    在工业自动化控制系统中,可编程逻辑控制器(PLC)承担着数据采集、逻辑运算与执行控制的核心任务。随着生产现场对实时性和稳定性的要求不断提高,PLC对内部存储的性能也提出了更严苛的需求
    的头像 发表于 04-07 14:10 134次阅读

    AT89LV55微控制器:特性、功能与应用详解

    AT89LV55微控制器:特性、功能与应用详解 在嵌入式控制应用领域,微控制器扮演着至关重要的角色。今天,我们就来深入了解一款经典的微控制器
    的头像 发表于 04-06 11:40 698次阅读

    IA8044/IA8344 SDLC通信控制器:功能特性与设计要点详解

    IA8044/IA8344 SDLC通信控制器:功能特性与设计要点详解 在电子设计领域,通信控制器的性能和兼容性对系统的整体表现起着关键作用。IA8044/IA8344 SDLC通信控制器
    的头像 发表于 04-02 09:05 410次阅读

    探索S1D13517 SVGA外部SDRAM LCD控制器:卓越性能与丰富特性

    探索S1D13517 SVGA外部SDRAM LCD控制器:卓越性能与丰富特性 在电子设计领域,LCD控制器是实现高质量显示的关键组件。今天,我们将深入探讨爱普生的S1D13517 SVGA外部
    的头像 发表于 03-30 14:05 164次阅读

    探索爱普生S1D13515 XGA外部SDRAM显示控制器

    探索爱普生S1D13515 XGA外部SDRAM显示控制器 在嵌入式市场的显示控制领域,爱普生的S1D13515 XGA外部SDRAM显示控制器
    的头像 发表于 03-30 14:05 124次阅读

    Epson S1D13513 XGA 外部 SDRAM 显示控制器:嵌入式显示的理想之选

    Epson S1D13513 XGA 外部 SDRAM 显示控制器:嵌入式显示的理想之选 在嵌入式市场中,显示控制器扮演着至关重要的角色。今天,我们就来深入了解一下 Epson 的 S1D13513
    的头像 发表于 03-30 14:05 132次阅读

    PIC16C62X系列微控制器:设计与应用详解

    PIC16C62X系列微控制器:设计与应用详解 在电子工程领域,微控制器是各种电子设备的核心大脑。Microchip的PIC16C62X系列微控制器凭借其高性能、低功耗和丰富的功能,在
    的头像 发表于 03-25 17:10 605次阅读

    阻燃系列基础知识

    我很荣幸有机会在这里与大家分享我对阻燃系列基础知识的研究。今天,我们将探讨的主题是“阻燃系列基础知识”。在我们日常生活中,火灾事故频发,造成巨大的财产损失和人员伤亡。因此,了解阻燃材料的基础知识对于
    的头像 发表于 02-06 08:07 590次阅读
    阻燃系列<b class='flag-5'>基础知识</b>

    详解MAX25601C:同步升压与降压LED控制器的卓越之选

    详解MAX25601A/B/C/D:同步升压与降压LED控制器的卓越之选 一、产品概述 MAX25601A/B/C/D是一款集成了同步升压控制器和同步降压LED控制器的芯片,其升压
    的头像 发表于 01-30 16:10 282次阅读

    无刷电机驱动基础知识

    本文将从技术角度出发,对三相无刷电机的电机驱动的作用、种类和规格进行介绍。通过本文,您可以学习到电机驱动选型所需的基础知识
    的头像 发表于 12-10 14:13 6903次阅读
    无刷电机驱动<b class='flag-5'>器</b>的<b class='flag-5'>基础知识</b>

    基于FPGA的DDR控制器设计

    DDR控制协议 DDR3读写控制器主要用于生成片外存储DDR3 SDRAM进行读写操作所需要的时序,继而实现对片外存储的读写访问。由摄像
    发表于 10-21 14:30

    车载整机控制器 工程机械主机控制器#硕博电子#国产控制器

    控制器
    长沙硕博电子科技股份有限公司
    发布于 :2025年05月26日 09:09:02

    工程机械控制器厂家 控制器国产替代 #国产控制器#控制器厂家#控制器品牌

    控制器
    长沙硕博电子科技股份有限公司
    发布于 :2025年04月29日 14:15:05

    家用电器开发中微控制器的选型要点

    回答希望使用微控制器的开发人员问题的形式,为微控制器引入和微控制器设计提供有用的信息。此外,ROHM还发布了一系列的“微控制器知识”视频,
    的头像 发表于 04-24 10:26 1690次阅读
    家用电器开发中微<b class='flag-5'>控制器</b>的选型要点