找回密码
 注册
关于网站域名变更的通知
查看: 173|回复: 1
打印 上一主题 下一主题

基于FPGA的SDRAM控制器设计

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-4-16 15:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
1 引 言

SDRAM的特点是大容量和高速度。其单片容量可达256Mb或更高,工作速度可达100~200MHz以上,但是其控制方式比EDO/FP DRAM复杂得多。目前,许多嵌入式设备的大容量存储器都采用SDRAM来实现。在设计中采用SDRAM存储器时,大多都是用专用芯片完成其控制电路。但是,当我们对SDRAM存储器进行特殊应用时,就需要自己设计控制电路了。

我们知道,显示器在显示文字或图形时,显示器在帧频、行频、彩色视频信号的控制下,控制电子束顺序地从上到下,从左到右逐行扫描。而这些显示控制信号是由显示控制器产生。在雷达光栅显示系统中,显示帧缓冲存储器(VRAM)存储雷达的实时信号。而在显示器的每个行周期的逆程时,需要把下一行的显示数据从显示帧缓冲存储器(VRAM)中取出,写到一个行缓冲存储器中去。在行周期的正程时,这个行缓冲存储器中的显示数据在显示时钟的同步下,顺序读出,送到视频形成电路(RAMDAC)形成显示视频信号,同时配合帧频、行频,这样显示器就能显示出雷达信号了。

在雷达光栅显示系统的通常设计中,采用专用的双口VRAM实现显示帧缓冲存储器。这种专用的双口VRAM内部具备串行存取存储器,因此实现系统比较简单。但是缺点是工作速度和容量都比较低,影响系统的性能指标。在本文的雷达光栅显示系统设计中,尝试采用SDRAM存储器作为显示帧缓冲存储器,采用FPGA器件完成SDRAM的控制电路。下面介绍具体的实现过程。

2 SDRAM简介

SDRAM具有多种工作模式,内部操作是一个复杂的状态机。SDRAM器件的管脚分为以下几类:

(1)控制信号 包括片选,时钟,时钟使能,行列地址选择,读写选择,数据有效。

(2)地址 时分复用管脚,根据行列地址选择管脚,控制输入的地址为行地址或列地址。

(3)数据 双向管脚。

SDRAM的所有操作都同步于时钟。根据时钟上升沿时控制管脚和地址输入的状态,可以产生多种输入命令: (1)模式寄存器设置命令;(2)激活命令;

(3)预充命令;(4)读命令;

(5)写命令;(6)带预充的读命令;

(7)带预充的写命令;(8)自动刷新命令;

(9)自我刷新命令;(10)突发停命令。

另外还有空操作命令。

根据输入命令,SDRAM状态在内部状态间转移。图1是SDRAM器件的状态转移图。

2 S6 j4 W  ?( m4 [; Q" K+ `. ^9 w

另外,SDRAM器件还有掉电状态,时钟中止等工作状态,使用较少,在此不做介绍。

3 设计实现

根据雷达光栅显示系统的要求,显示帧缓冲存储器采用双片1 M×l6b(HY57V161610)的SDRAM芯片构成32b的数据宽度。在该设计中,设定SDRAM的工作时钟为66MHz,这已经足以满足显示系统的要求了。

3.1 SDRAM的初始化

电源正常之后,首先必须提供给SDRAM芯片稳定的工作时钟至少200μs。图2是SDRAM的初始化时序图。图中,首先t1时刻发出所有块预充命令,在tRP时间后才能发出下一条命令。在t2时刻发出自动刷新命令,在tRC时间后才能发出下一条命令。自动刷新命令必须至少8个。最后,在t4时刻发出模式寄存器设置命令设置工作模式,此时地址线上输入的就是控制代码。同样,在tMRD时间后才能发出下一条命令。本设计中,时钟周期为15ns,器件的tRP为20ns,tRC为20ns。因此tRP=2CLK,tRC=5CLK,tMRD固定为2CLK。因此,t1时刻到t2时刻是2周期延迟,t2时刻到t3时刻是5周期延迟,而在t4时刻2周期之后,才能发出下一条命令。

在电路设计上,采用监控芯片MAX705产生复位信号,所有的控制电路都在复位信号正常后工作。该复位信号可以保证至少60ms,满足200μs的要求。了解了初始化时序之后,由FPGA设计产生这种时序就比较简单了。

3.2 SDRAM的读写时序设计

在SDRAM芯片初始化完成之后,就进入正常工作状态。SDRAM芯片在正常的读写操作时,如果SDRAM芯片行地址不发生变化,那么可以满足每时钟周期进行一次读写的高速操作;但是当SDRAM芯片行地址发生变化时,就必须返回到预充状态。图3是一个完整的读改写时序。图中所示的是Burst Length=l,CAS Latency=2的情况。

在本设计中,雷达信号的一次显示分辨率为1 024×l 024,而光栅显示器的显示分辨率为1 280×1 024。把每个扫描行的前1 024个点称作一次显示正程,而把每个扫描行的后256个点以及行消隐期称作一次显示逆程。

在一次显示正程时,需要把雷达信号的数字视频更新到帧缓冲存储器(VRAM)中去,每一个视频点的更新都必须进行一次读、修改、写操作。此时,必须判断本次读写操作的行地址与上一次操作时是否相同。如果行地址改变,则首先在t1时刻发出预充命令,在延迟tRP=2CLK的时间后,即t2时刻发出行激活命令,此时地址线上同时应该给出相应的行地址。在延迟tRCD=20ns,即2CLK时间后的t3时刻,发出存储器读命令,此时地址线上同时应该给出相应的列地址。随后,在CL=2CLK时间后,即t4时刻数据线上就读出了相应的存储器数据。经过处理后,在t5时刻重新写入到存储器中去,同样地址线上应该给出相应的列地址。

如果行地址相同,则只需要发出列地址进行读写,也就是说,从t3时刻开始就行了。进一步地,如果列地址也相同,则只需要发出写操作命令,而数据采用上一次操作的数据进行处理后写入,也就是只用发出t5时刻的写操作命令就行了。

在用FPGA实现时,由于需要多次判断,因此设计比较复杂。但是这样做可以节省许多时间,提高效率。

3.3 显示刷新

在本设计中,一次显示逆程时,进行一次显示刷新操作。此时,也就是把帧缓冲存储器中的雷达视频信息通过高速的SDRAM全页突发读操作,读出并存储到FPGA中的SRAM行缓存中。在一次显示正程时,在显示时钟的同步下,依次输出SRAM行缓存中的视频数据到显示控制器的视频形成电路(RAMDAC)形成复合视频。

此时,需要用到SDRAM的全页突发操作模式。该操作模式是SDRAM的一种特殊操作模式。用FPGA设计时序时,首先在t1时刻发出预充命令,在延迟tRP=2CLK的时间后,即t2时刻发出模式寄存器设置命令,此时地址线上同时应该给出全页突发模式的控制代码。在延迟tMRD=2CLK时间后的t3时刻,发出行激活命令,同时地址线上给出行地址。在延迟tRCD=2CLK时间后的t4时刻,发出存储器读命令,同时地址线上给出全页突发操作的起始列地址。随后,在CL=2CLK时间后,即从t5时刻开始,数据线上海时钟周期就连续输出相应的存储器数据。最大可以输出SDRAM芯片存储阵列中该行的全部数据。本设计中只需读出128个数据就可以了,即从t5时刻到t10时刻。由于CL=2CLK,因此必须提前2周期,即轧时刻就发出突发停止命令。

数据读取操作完成之后,必须把SDRAM的全页操作模式重新设置到以前的状态,因此重复t1时刻到t2时刻,在t11时刻发出预充命令,在t12时刻发出模式寄存器设置命令,在2CLK之后,即t13时刻才可以发出新的操作命令。

在用FPGA设计时序时,这部分的控制逻辑是比较复杂的。不仅要产生正确的时序,还必须高速接收数据,这种高速SRAM的最方便的选择就是用FPGA的内置存储器实现。

3.4 显示余辉设计

雷达光栅扫描显示的特点就是可以形成人工余辉。在本设计中,余辉时序也是采用全页突发操作模式来完成,和显示刷新时序类似,所不同的是发出的是全页写命令,写入的余辉数据是把SRAM行缓存中的数据经过一定的余辉衰减算法处理后得到的。实际设计时序时,在图4中t10时刻和t11时刻之间插入一个全页突发写操作就可以了。

4 结 语

本文使用ALTERA公司的FPGA器件进行设计。设计输入采用AHDL(Altera硬件描述语言)来完成。在数字电路设计领域,利用FPGA器件非常强大的功能和非常灵活的设计方法,几乎没有他不能实现的设计。

本文于一个实际的雷达光栅显示系统的设计,SDRAM控制电路是其中的重要组成部分。全部的雷达信号光栅扫描显示逻辑电路由1片EPFl0K50E实现。

根据雷达光栅显示系统的需要,阅读了大量SDRAM芯片的资料之后,充分利用了SDRAM存储器的工作特点,在需要时进行转换,完成了雷达信号实时显示中大批量数据的高速传输问题。

随着大容量存储器的广泛应用,SDRAM的控制器在许多领域的控制芯片中已经内部集成了。但是,当用FPGA设计一个应用且需要大容量、高速度的SDRAM存储器时,自己设计一个SDRAM的控制器是一个最佳的选择。


$ Y+ P3 f1 W6 z1 m# t/ P0 I- ~

该用户从未签到

2#
发表于 2020-4-16 16:54 | 只看该作者
这种专用的双口VRAM内部具备串行存取存储器,因此实现系统比较简单。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-8-21 11:07 , Processed in 0.109375 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

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