摘要:使用VHDL语言实现MC68360微处理器和SDRAM之间的接口控制电路,为摩托罗拉68xxx CPU在开发设计中使用SDRAM提供一种灵活,高效,可靠的解决方案。文中提到的接口电路设计有别于其他IP核的SDRAM控制器,只要简单理解计算机系统中片选信号,读写信号、时钟及数据和地址总线的含义就可以实现对SDRAM的多种方式的操作。可以广泛适用于时钟在5MHz以上任何一种通用的微处理器和SDRAM接口设计应用中。并在实践中得到广泛应用。 关键词:SDRAM MC68360 VHDL Motorola 公司MC68XXX系列的微处理器在国内各种通信设备中使用十分广泛,具有很好的软件技术基础。但该系列处理器不具备同步SDRAM的电路接口。因此,设计一种接口电路,使更新一代的SDRAM , DDR SDRAM ,RDRAM广泛应用在各种通信设备中,提高设备运行空间、提高产品性能,扩展系统功能,增加各种业务具有十分重要现实意义。 本文章介绍使用VHDL语言实现MC68360和SDRAM之间的接口控制电路。文中提到的接口电路设计有别于其他IP核的SDRAM控制器,它不需要更多对SDRAM的深度掌握,只需要理解片选信号,读写信号、时钟及数据和地址总线的含义就可以实现对SDRAM的多种方式的操作。可以广泛适用于时钟在5M以上任何一种通用的微处理器设计应用中。 文章包含四个部分:SDRAM的简介;SDRAM接口设计(设计功能框图;SDRAM的主要操作路径及操作过程,应用MC68360的SDRAM接口电路的设计方法;最后给出了应用结果和结论。 1. SDRAM简介 SDRAM(Synchronous Dynamic Random Access Memory)因其容量大、读写速度快、支持突发模式读写及相对低廉的价格而得到了广泛的应用。其内部操作是一个很复杂的状态机,包括:模式寄存器设计状态、激活状态、预充状态、写状态、读状态、自动刷新状态、自我刷新状态、空闲状态等共16种状态。 SDRAM管脚分为三类: 1) 控制信号:片选、读写、时钟、行地址选择信号、行地址选择信号、数据有效/高低字节选择信号; 2) 地址总线:时分复用信号、行地址/列地址总线; 3) 数据总线:双向数据总线; 2. SDRAM接口设计背景和原则 设计应用和验证主要依据高性能数字程控交换机为平台进行。其中NGL04系统中的交换模块主处理机和功能处理机中CPU较多采用MC68360作为微处理器,通过逻辑设计满足微处理器和SDRAM芯片间的时序关系,扩大系统内存。SDRAM选用HYUNDAI公司的HY57V1620芯片,SDRAM工作时钟为66M,CPU的工作时钟为33M。根据系统的要求和微处理器的特点,本设计简化了SDRAM的操作,如下: 不采用突发模式、读写的数据长度固定为1; 数据输出延时时钟周期数为2; SDRAM为16位数据宽度,通过级联方式组成32位数据端口; 初始化和模式设置有控制器上电自行完成。空闲模式由CPU控制; 采用自动刷新模式; 完成读写操作后自动完成预充; 根据上述要求,操作状态转移图和状态转移条件如图1: 图1 SDRAM接口逻辑状态转移图 图2 自动刷新设计流程图
3. SDRAM接口时序设计 3.1. 功能模块概述 整个设计分为四个部分Counter、DQM、Multiplex、Controller。如图2所示。Counter实现一个计时器的功能,当系统上电时进行计时,确保电源稳定后SDRAM可以设置和正常工作,还包含自动刷新定时申请信号的产生。DQM实现32位数据总线高低位选择。Multiplex产生SDRAM的行、列地址及其内部库操作编码。Controller是设计关键部分,实现的功能也最多。包含SDRAM模式设置;产生SDRAM的自动刷新命令、SDRAM读和写操作命令、自动刷新和读写操作的仲裁、数据采样锁存器控制信号的产生、并实现对其他几个功能模块的控制。
3.2. 自动刷新逻辑设计 对HY57V561620来说,每64ms必须对4个存储体8192行的存储单元完成一次刷新操作,使通过对储单元的电荷充电保持数据。为满足它的时序要求,就由逻辑每7.8us申请一次刷新操作,由控制器根据申请完成刷新操作。考虑自动刷新和读写操作不能同时进行,其原则是进行读写操作时,刷新操作需要等待读写操作结束后执行;而在执行自动刷新操作时,读写操作需要在刷新操作结束后执行,同时向CPU申请等待周期。程序流程图如图2:
3.3. 写操作逻辑设计 写操作包含自动预充功能(Auto Precharge after write burst)。数据转移方向从CPU,经过控制逻辑到SDRAM芯片。本设计采用32位数据线,由两片数据宽度16位SDRAM组成数据线32位产生SDRAM,分高低字,支持长字,字和字节的操作。 当SDRAM的片选信号和写信号有效,进入写操作状态。在列地址输入时,SDRAM锁存数据。由于不考虑突发模式,所以进行一次数据操作后,进行自动预充功能就进入空闲状态,等待下一个状态的开始。流程图如图3。 图3 写操作设计流程图
图4 写操作设计流程图 3.4. 读操作逻辑设计 在SDRAM操作中,读操作是最为关键和最重要。正确时间和方法采样并锁存数据是设计的难点,100MHz时钟下的SDRAM,数据有效时间不超过10ns。数据维持时间tOH最小3ns。本设计中突发模式设置长度为1,相对而言就简单许多。由于固定设置CL=2,所以设计一个数据采样锁存器,通过时钟的上升沿在读命令有效2个时钟后执行采样操作锁存。CPU从数据采样锁存器中得到数据,满足CPU读时序逻辑要求。 读操作包含自动预充功能(Auto Precharge after write burst)。数据转移方向SDRAM芯片经过数据采样锁存器缓冲后再到CPU。当SDRAM的片选信号和读信号有效,进入读操作状态。列地址有效和写命令有效后两个时钟后SDRAM输出数据,进入自动预充操作后就处于空闲状态,等待下一个状态的开始。
4. 设计实现 本设计采用VHDL和图形设计相结合的方式。顶层文件使用逻辑图设计、其他部门全部采用VHDL语言设计。使用Altera公司Maxplus II和Quartus 软件实现综合、FPGA的布局布线和仿真。 以上介绍实现方法,可以应用于不具备SDRAM接口的任何通用微处理器系统设计中CPU和SDRAM之间控制逻辑设计。简单可靠,适用性强。使用该设计实现的FPGA接口电路在66M的时钟频率下数据吞吐率为在最大达到176Mbps,在100M时钟速率下数据吞吐率最大可以到达355Mpbs。目前该设计已经在HJD04E和后继NGL04系列大容量混合数据程控交换机上稳定可靠运行将近两年以上。 |