• 易迪拓培训,专注于微波、射频、天线设计工程师的培养
首页 > 无线通信 > 技术文章 > 基于FPGA的FIFO设计和应用

基于FPGA的FIFO设计和应用

录入:edatop.com     点击:

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高速度的优势,因此对它进行研究具有重要的意义。

来源:维库开发网

上一篇:讲述网络布线系统的 网经验
下一篇:虚拟存储将成良方或止步

手机天线设计培训教程详情>>

手机天线设计培训教程 国内最全面、系统、专业的手机天线设计培训课程,没有之一;是您学习手机天线设计的最佳选择...【More..

射频和天线工程师培训课程详情>>

  网站地图