SDRAM通用控制器的FPGA模块化设计

来源 :电子产品世界 | 被引量 : 0次 | 上传用户:wori147258
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:绍了一种SDRAM通用控制器的FPGA模块化解决方案。
  关键词: SDRAM控制器;FPGA;VHDL;状态机;仲裁机制
  
  引言
  
  同步动态随机存储器(sDRAM),在同一个CPU时钟周期内即可完成数据的访问和刷新,其数据传输速度远远大于传统的数据存储器(DRAM),被广泛的应用于高速数据传输系统中。基于FPGA的SDRAM控制器,以其可靠性高、可移植性强、易于集成的特点,已逐渐取代了以往的专用控制器芯片而成为主流解决方案。然而,SDRAM复杂的控制逻辑和要求严格的时序,成为开发过程中困扰设计人员主要因素,进而降低了开发速度,而且大多数的基于FPGA的SDRAM控制器都是针对特定的SDRAM芯片进行设计,无法实现控制器的通用性。本文介绍一种通用SDRAM控制器的FPGA模块化解决方案。
  
  SDRAM及其控制过程
  
  SDRAM控制逻辑复杂,命令种类多样,需要周期性刷新操作、行列管理的等多重操作。
  SDRAM首先要进行初始化操作。在上电后等待lOOns,至少执行1条空操作,然后对所有页执行预充电操作,接着向各页发出两条刷新操作指令,最后执行SDRAM工作模式的设定LMR命令用来配置SDRAM工作模式寄存器。SDRAM工作寄存器可以根据具体应用的需要进行设置。
  初始后的SDRAM在得到了RAS、CAS、WE的值后开始执行相应的命令。在对SDRAM进行读、写过程中,必须要先进行页激活ACT操作,保证存储单元是打开的,以便从中读取地址或者写入地址,然后通过预充电PHC命令实现来关闭存储单元。在进行写操作时,内部的列地址和数据都会被寄存,而进行读操作时,内部地址被寄存,数据的存储则发生在CAS延迟时间(通常为1~3个时钟周期)后。最后,操作终止:当SDRAM顺次的进行读、写操作后,当到达到突发长度或者突发终止指令BT出现时,SDRAM将终止其操作。
  
  模块化的SDRAM控制器设计
  
  在SDRAM控制器的FPGA实现方案中,采用了FPGA的自底向上的模块化设计思想,首先分析顶层模块的功能,再将其功能分类细化,分配到不同的子模块去实现,然后自底向上的先逐步完成各个子模块的设计,最后将子模块相互连接生成顶层模块。经过分析,SDRAM控制器应实现的功能有:为SDRAM提供刷新控制以保持SDRAM中的数据;对主机的命令进行仲裁,将下一步要执行的命令翻译成可与SDRAM连接的信号;为SDRAM的读、写生成数据路径。因此,根据SDRAM的指令操作特点将SDRAM控制器划分为接口控制模块、命令生成模块和数据路径模块三个主要模块。
  下面,对其接口信号进行介绍,需要注意的是,为了实现该控制器的通用性,ADDR、DATAIN、DATAOUT、DQ、DOM信号设计成可根据SDRAM的容量改变的形式。
  与主机接口信号:CLK(系统时钟);RESET(系统复位);CMD[2:0](译码指令);CMDACK(指令应答信号);ADDR[ASIZE-1:0](地址线);DATAIN/DATAOU[DSIZE-1:0](输入、输出数据总线);DM[(DSIZE/8)-1:0](数据掩码)。
  与SDRAM接口信号:SA(地址线);BA(页地址);CS_N(片选信号);CKE(时钟使能信号);RAs、CAS、WE(命令控制信号);DQM[(DSIZE/8)-1:0](SDRAM数据掩码);DQ[SIZE-1:0](双向数据线)。
  
  各个模块的设计与实现
  
  接口控制模块
  接口控制模块主要实现的功能是将CMD[2:0]翻译成接口指令和对刷新计数器的控制指令。接口模块在工作过程中首先通过要通过状态机来完成对CMD[2:0]的翻译。在VHDL程序中声明一个用户自定义类型states,根据CMD[2:0]输入来决定状态的转移,完成对CMD[2:0]的解码,部分代码如下:
  


  另外,SDRAM需要周期性刷新操作以保持数据。在模块的程序设计中,刷新周期的控制通过一个计数器来完成,到达规定的计数周期数时,接口模块通过REF_REQ信号向SDRAM发出刷新请求。直到SDRAM完成刷新操作,发出REF_ACK刷新应答信号,计数器才重新赋值,开始下一次的计数。
  
  命令生成模块
  命令生成模块实现对输入的SDRAM指令请求进行仲裁判断的功能,并将仲裁后要执行的指令解码成SDRAM需要的RAS、CAS等信号,从而实现指令对SDRAM的控制。仲裁机制是SDRAM控制器设计不可或缺的一个环节。仲裁机制实现要遵循如下规则:
  ·SDRAM在每一刻只有一个指令在执行;
  ·先到的指令先执行,如果刷新请求到来时,其它命令正在执行中,要等到当前命令执行完成后,才能执行刷新指令;
  ·其它指令和刷新请求同时到来时刷新操作先执行。
  经过仲裁判断后,指令将传入命令生成器。命令生成器不仅要把指令解码成SDRAM需要的RAS、CAS等信号,同时还要对命令执行的时间进行控制。下面的例程仅供参考。
  


  下面介绍输入的指令为writea和reada指令时模块所进行的操作。当SDRAM的writea和reada指令到来时,将引发一系列指令的执行,和其它指令相比需要更多的附加时间。所以,在这种情况下需要声明第二个移位寄存器rw_shift来完成这两个指令的附加时间的实现。rw_shift的工作原理和第一个移位寄存器command_delay是一样的,需根据读、写的时间决定rw_shift的位数。
  最后一个移位寄存器oe_shift用来为数据通道生成数据输入、输出使能信号oe。对于非页模式的读写来说,oe保持有效的时间取决于突发长度,需要注意的是,读操作时,0e有效的起始时间取决于CAS延时时间,而对于写操作,则在写指令开始时oe就是有效的。
  
   数据路径模块
  数据路径模块的作用是在writea和reada命令期间生成数据的路径。在用VHDL语言程序中,用简单的赋值语句就可以实现数据路径模块。
  
  通用性的实现
  
  根据SDRAM控制器的FPGA模块化设计方案生成的FPGA控制器易于修改和扩展,具有可通用的特性。在具体的应用中,针对不同的SDRAM,并不需要更改SDRAM控制器结构,只要根据datasheet中的SDRAM的容量将地址线数和数据的位数做相应修改,再依据SDRAM的时序和读、写速度更改接口控制模块中的时间信号的周期,如刷新周期、命令生成模块中移位寄存器的位数和初值等,这样就可以对不同的SDRAM进行控制。最后,生成的SDRAM控制器顶层模块如图2所示。为了证明该控制器设计方案的可行性和通用性,在A1tera公司的Cyclone系列FPGA——EPlC6Q240C8中生成SDRAM控制器,根据数据手册中SDRAM的参数对控制器各模块的VHDL语言程序做相应的改动,实现了对三星公司的8MByte SDRAM K4S641632E和2MByteSDRAM K4S161622D的控制,均达到了100MHz的读、写速度。
  
  结语
  
  本方案采用的模块化思想为SDRAM控制器的开发提供了一种层次分明、易于扩展的设计思路。实验结果表明,该控制器设计紧凑,维护升级方便,易于实现对SDRAM的通用化控制,这无疑将极大的提高SDRAM应用的开发速度。
其他文献
Analog Devices AD8232心率监护仪前端是针对ECG和其他生物电势测量应用的集成式信号调理模块。它可在高噪声条件下提取、放大和过滤小生物电势信号,例如运动或远程电极放置所产生的电势信号。这种设计可以提供超低功耗模数转换器(ADC)或嵌入式微控制器,从而轻松获得输出信号。AD8232可以实现双极高通滤波器,用以消除运动伪影和电极半电池电势。此滤波器与放大器的仪表架构紧密耦合,可以在单
期刊
市场概述  消费类市场应用范围宽广,而且由于有创新产品如平板电脑等的推出,其应用范围还在不断演变。由于难以论及所有消费应用,本文将重点探讨传统“家庭娱乐”类消费应用,如电视、机顶盒(STB)及数字视频播放机(如DVD、DVR等,简称DVx)。  过去几年来,这些应用的变化颇大,功率电子设计工程师需要特别注意。这些应用中变化最大的就是电视机市场的发展,曾经盛行的阴极射线管(CRT)电视和投影电视已被
期刊
数字控制相对于传统模拟方法的优势有很多,远远超过了数字控制组件参数变化带来的相关问题(图1显示了FPGA控制的降压转换器)。相对于传统方法而言,FPGA能够以更快的频率运行,并能更迅速地对瞬变电流负荷做出积极响应(在某些应用中可能减少对多相转换器的需求)。控制算法可通过DSP和控制理论技术加以调节,以确保设计实施的高效性——例如,较轻负荷下进行脉冲跳跃以及持续和断续模式之间的切换等。滤波等DSP技
期刊
近日,Synopsys公司董事长兼首席执行官Aart de Geus博士接受了《电子产品世界》的访问。当前EDA业有五大主题:实现、制造、验证、系统设计和IP。  2009-2012年以来,Synopsys进行了十多次并购,包括去年底收购Magma。原因是意识到只有系统复杂程度达到某一个量时才会质变,才会真正改变设计的环境。例如,一个SoC所碰到的问题可能是制造的问题,也可能是实现、验证或系统级软
期刊
恩智浦(NXP)半导体执行董事、总裁兼首席执行官Rick Clemmer不久前接受了本刊的采访,称其已经实现了战略转型,专注四大领域,并支持中国实现从“中国制造”到“中国设计”的跨越,专注ARM MCU的策略等。  NXP从2011年第4季度到2012年第一季度增长了7%,而很多半导体同行却下降了,NXP的增长来自两方面,一是安全技术(特别是在ID)实现了两位数增长。二是之前与一些车厂进行设计项目
期刊
日前,德州仪器(TI)与清华大学宣布共同组建“未来智能机器人”兴趣团队,从而为未来智能型机器人开发、多智能体协同技术研究感兴趣的学生提供学习、交流、研究、实践和创新的平台。  TI 大中华区总经理、中国运营总裁谢兵先生表示,“自1958年TI的工程师Jack Kilby发明了集成电路,基于集成电路的各种技术和产品的创新已经完全改变了我们的学习、工作、娱乐的方式,并渗透到日常生活的每一个角落。清华大
期刊
自1970年发明MOS工艺及73年推出CMOS工艺以来,至今还没有发现可替代它的工艺,足见CMOS工艺的经济合理性。因此,至今硅基材料的应用仍在继续延伸。然而,在晶体管工艺制造中采用二氧化硅作为栅极材料,实质上已逼近极限。如65纳米工艺时,二氧化硅栅极的厚度已降低至1.2纳米,约5个硅原子层厚度,如果再继续缩小,将导致漏电及功耗急剧上升。    晶体管工艺技术的又一个里程碑    Intel共同创
期刊
摘要:本文介绍了同步采样ADC在电网监测中的应用,并对构建电力线测量系统时所要考虑的问题进行了讨论。  关键词: ADC;电力线监测;放大器;数字隔离器    前沿    电力工业的迅速扩展,在全球范围内引发了加强现有传输和配电网络以及建设新变电站的需求。微处理器技术方面的进展以及支持人员的人力成本的上升,已经成为电力公司设计新的、采用高精度集成化自动控制系统的自动化高压变电站的关键性推动因素。
期刊
王典洪 乔 伟 谢利芳  摘要:提出了一个基于WinCE操作系统的通用USB数控键盘设计。实现了键盘与主机之间快速灵活的数据通信。  关键词: 嵌入式;USB;数控键盘;WinCE    引言    随着网络时代的到来,机械制造行业也面临着如何适应网络化制造的问题。于是将计算机技术、网络技术和传统的控制技术相结合,以嵌入式系统为主的数控系统正日益成为机械制造领域的热点。对于一个具体的数控系统,在
期刊
摘要:本文介绍了如何利用外置ADC取代微控制器内部所集成的ADC以及设计时需要考虑的注意事项。  关键词: ADC;微控制器;增益放大器;传感器阻抗    当今的电子产品总是希望尺寸越小越好。从占据整个房间的服务器系统到能方便地装进衣服口袋的消费电子产品,设计师们不断寻求实现最小的外形尺寸,在更小的空间中实现更多的功能。能够让完整的解决方案比同类方案小10%到20%的设计师有更大的机会赢得设计订
期刊