首页
|
新闻
|
新品
|
文库
|
方案
|
视频
|
下载
|
商城
|
开发板
|
数据中心
|
座谈新版
|
培训
|
工具
|
博客
|
论坛
|
百科
|
GEC
|
活动
|
主题月
|
电子展
注册
登录
论坛
博客
搜索
帮助
导航
默认风格
uchome
discuz6
GreenM
»
FPGA/CPLD可编程逻辑
» 基于FPGA的FIFO设计和应用
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
基于FPGA的FIFO设计和应用
发短消息
加为好友
pengpengpang
(pengpengpang)
当前离线
UID
1023229
帖子
6106
精华
0
积分
3055
阅读权限
90
来自
中国
在线时间
156 小时
注册时间
2013-12-20
最后登录
2016-7-3
论坛元老
UID
1023229
来自
中国
1
#
打印
字体大小:
t
T
pengpengpang
发表于 2014-5-26 22:00
|
只看该作者
基于FPGA的FIFO设计和应用
实际应用
,
成本
在利用DSP实现视频实时跟踪时,需要进行大量高速的图像采集。而DSP本身自带的FIFO并不足以支持系统中大量数据的暂时存储,这就要求大的中间缓存,而专用的高速FIFO芯片价格昂贵且容量受限,大大增加了商业成本,因此在实际应用中寻找FIFO代替器件是很有必要的。
1 器件选择
这里在视频信号处理系统中,将利用FPGA作为桥梁,实现对SDRAM的控制,以达到大量高速存取数据的功能。之所以选取SDRAM,主要是因为在各种随机存取器件中,SDRAM的容量较大,价格较低,且数据突发传输模式大大提高了存取速度,能够满足应用的要求。
FIFO的速度受到两个因素的限制:
(1)SDRAM的最高工作频率。SDRAM的工作频率越高,数据的传输速率就越高;
(2)SDRAM的突发长度。SDRAM的突发长度越长,对数据流的吞吐量就越大,可以从某种程度上提高数据的传输速率。
FIFO的大小由所选SDRAM芯片的容量来决定。该设计以采用MICRON公司的MT48LC4M3282(4 BANK×4M×32 b)为例,存储容量为128 Mb,数据带宽为32位,内部由4个BANK组成,每个BANK有4 096行和256列。
MT48LC4M3282的控制信号有CLK(时钟信号)、CKE(时钟使能)、CS(片选信号)、WE(写使能)、CAS(列有效)、RAS(行有效)、DQM0~DQM3(输入输出使能)。控制信号组成的常用控制命令如表1所示。
2 FIFO系统设计
FIFO系统由FGPA和SDRAM两部分组成。其中,FGPA内部包含FIFO.、缓冲器、SDRAM控制器三个模块。FIFO.的作用是将FIFO的状态转变成状态机的读、写信号。若操作为向SDRAM写数据,则在FIFO已满时,FIFO.送出一个信号,以阻止写操作继续向FIFO中写数据而造成溢出;若操作为向SDRAM读数据,则在缓冲器已空时,FIFO.送出一个信号,以阻止读操作继续从FIFO中读数据而造成无效数据的读出。FIFO的模块结构如图1所示。
在该设计中,摄像头采用640×480的屏幕分辨率,图像深度为8,每秒为25帧,图像数据量的大小为图像中像素总数与图像深度的乘积,由此可以得出每帧图像的大小为2.457 Mb,每秒钟视频产生数据的大小为61.44 Mb。因为系统向SDRAM控制器写入和读出数据的速度比较低,约为62 MHz,FPGA的外接晶振CLK为27 MHz,FPGA和SDRAM的工作时钟由锁相环4倍频后生成,即为108 MHz,所以SDRAM控制器向SDRAM写入和读出数据的速率为108 MHz,因此二者属于不同的时钟域,需要用缓冲器作为输入和输出的缓存。
SDRAM控制器的模块结构如图2所示,其中SDRAM控制器内部包括:初始化模块、模式寄存器、控制模块和状态机。SDRAM的接口设计是极其关键的,可根据SDRAM内部操作状态之间的联系,通过状态机来实现接口设计。初始化模块负责SDRAM的初始化,在上电和时钟稳定后等待100 ms,至少执行一条空操作,然后对所有页执行预充电操作,使所有页处于空闲状态,接着向各页发出两条刷新操作指令,最后发出一个模式寄存器装载命令,使SDRAM有确定的状态进行读写操作。模式寄存器可根据要求对SDRAM的突发长度、突发类型、CAS延时的时钟数、运行模式和写突发模式进行设置,确定SDRAM在读写操作时的工作状态。模式寄存器M0~M2用于规定突发长度,可以为1,2,4,8。M3用于规定突发类型,当M3=0时,突发类型是连续的;当M3=1时,突发类型是交错的。M4~M6用于规定CAS延迟的时钟周期数,可以分为1,2,3。M7,M8用于规定运行模式。M9用于规定写突发模式,当M9=0时,按实际编程的突发长度存取;当M9=1时,按单个存取单元写入,但可按实际编程的突发长度读出。
状态机是SDRAM控制器的核心控制模块,其作用主要有两个方面:其一是对各模块发出的操作请求进行仲裁,在适当的时刻作出反映,发出对SDRAM适当的控制命令;其二是协调各模块之间的时序关系,满足对SDRAM读写所必需的时序要求。状态机的状态转移如图3所示。
在模式设定之后,BANK和行地址选中需要访问数据所在的具体BANK块和行,状态机对这一行发出激活命令,从激活到读写操作需要经过一个tRCD的延时,设计中选tRCD=20 ns,而系统时钟周期为9.26 ns,所以从激活到执行读写操作之间至少需要3个时钟周期。在执行读写操作时,只要状态机通过读写命令选中数据所在行的列地址,就能达到读写具体存储单元的目的。状态机对SDRAM发出一个读命令后,需要等待一个CAS latency,然后才能读数据;而写操作是实时的,不需要延时,状态机在发出写命令后,就可以对SDRAM进行写操作。SDRAM同时只允许一行地址激活,因此在完成某BANK/ROW的读写操作后,对该BANK/ROW进行预充电,然后才能激活下一个BANK/ROW。从预充电成功到下一次激活命令成功,如果是在同一个BANK块,则需要延时tRC,如果是不同的BANK块,则需要延时tRRD。
SDRAM要求在64 ms之内对4 096行进行刷新,也就是每15.625μs刷新一行。由于系统时钟周期为9.26 ns,所以刷新模块计数达到1 685时,就需要对SDRAM发出刷新命令,保证SDRAM中的数据不丢失。将自动刷新请求设为优先请求,状态机内部有请求仲裁逻辑,当自动刷新请求和其他请求同时出现时,优先保证自动刷新请求,状态转移至刷新操作,当刷新操作结束时,重新返回空闲状态,开始响应其他请求。
3 工程应用介绍
该设计目的是为了扩展TMS320DM642的FIFO容量,以FPGA为接口,实现与SDRAM的连接。TMS320DM642可以对4 GB的地址进行寻址,而实际应用中FIFO的容量只有256 KB,寻址空间为0x0184000~0x0187FFFF,因此在实际应用中必须进行扩展。这里采用1片MICRON公司的MT48LC4M3282型号的128 Mb SDRAM,采用32位数据总线,将其通过FPGA配置在TMS320DM642处理器的EMIFA CE3上,其地址范围为0xB0000000~0xB7FFFFFF。在该设计中,突发长度为8,CAS latency为3。图4为用Modelsim SE 6.0仿真的SDRAM读时序图。
4 结 语
该设计已应用于目标识别与跟踪系统中的帧缓冲。文中主要介绍了SDRAM的具体信号关系,说明各种操作命令,给出在高速图像存储系统中SDRAM控制器的具体硬件接口设计。大容量存储器是FIFO的发展方向,从现在通用的SDRAM、专用的SRAM,到DDR SDRAM,容量越来越大,速度也越来越快,而用FPGA作为SDRAM的控制器,具有最大的灵活性,也能在最大限度上发挥SDRAM高速度的优势,因此对它进行研究具有重要的意义。
收藏
分享
评分
记录学习中的点点滴滴,让每一天过的更加有意义!
回复
引用
订阅
TOP
返回列表
测试测量
电商论坛
Pine A64
资料下载
方案分享
FAQ
行业应用
消费电子
便携式设备
医疗电子
汽车电子
工业控制
热门技术
智能可穿戴
3D打印
智能家居
综合设计
示波器技术
存储器
电子制造
计算机和外设
软件开发
分立器件
传感器技术
无源元件
资料共享
PCB综合技术
综合技术交流
EDA
MCU 单片机技术
ST MCU
Freescale MCU
NXP MCU
新唐 MCU
MIPS
X86
ARM
PowerPC
DSP技术
嵌入式技术
FPGA/CPLD可编程逻辑
模拟电路
数字电路
富士通半导体FRAM 铁电存储器“免费样片”使用心得
电源与功率管理
LED技术
测试测量
通信技术
3G
无线技术
微波在线
综合交流区
职场驿站
活动专区
在线座谈交流区
紧缺人才培训课程交流区
意见和建议