0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

利用CPLD技术和80C196XL时序特征实现DRAM控制器的设计

电子设计 来源:郭婷 作者:电子设计 2019-01-07 08:27 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

80C186XL16位嵌入式微处理器[1]是Intel公司在嵌入式微处理器市场的上导产品之一,已广泛应用于电脑终端、程控交换和工控等领域。在该嵌入式微处理器片内,集成有DRAM RCU单元,即DRAM刷新控制单元。RCU单元可以自动产生DRAM刷新总线周期,它工作于微处理器的增益模式下。经适当编程后,RCU将向将处理器的BIU(总线接口)单元产生存储器读请求。对微处理器的存储器范围编程后,BIU单元执行刷新周期时,被编程的存储器范围片选有效。

利用CPLD技术和80C196XL时序特征实现DRAM控制器的设计

存储器是嵌入式计算机系统的重要组成部分之一。通常采用静态存储器,但是在系统需要大容量存储器的情况下,这种方式将使成本猛增。如果采用DRAM存储器,则可以大幅度降低系统设计成本;但DRAM有复杂的时序要求,给系统设计带来了很大的困难。

为了方便地使用DRAM,降低系统成本,本文提出一种新颖的解决方案:利用80C186XL的时序特征,采用CPLD技术,并使用VHDL语言设计实现DRAM控制器

一、80C186XL RCU单元的资源

80C186XL的BIU单元提供20位地址总线,RCU单元也为刷新周期提供20位地址总线。80C186XL能够产生刷新功能,并将刷新状态编码到控制信号中。

图1是RCU单元的方框图。它由1个9位递减定时计数器、1个9位地址计数器、3个控制寄存器和接口逻辑组成。当RCU使能时,递减定时计数器每一个CLKOUT周期减少1次,定时计数器的值减为1时,则产生刷新总线请求,递减定时计数器重载,操作继续。刷新总线周期具有高优先级,旦80C186XL总线有空,就执行刷新操作。

设计者可将刷新总线周期看成是“伪读”周期。刷新周期像普通读周期一样出现在80C186XL总线上,只是没有数据传输。从引脚BHE/RFSH和A0的状态可以判别刷新周期,如表1所列。刷新总线周期的时序要求如图2所示。

表1 刷新周期的引脚状态

80C186XL引脚BHE/RFSHA0

引脚状态11

二、80C186XL DRAM控制器的设计与运行

DRAM存在着大量、复杂的时序要求,其中访问时间的选择、等待状态以及刷新方法是至关重要的。DRAM控制器必须正确响应80C186XL的所有总线周期,必须能将DRAM的部周期和其它访问周期分辨出来,其访问速度必须足够快,以避免不必要的等待周期。

利用CPLD技术和80C196XL时序特征实现DRAM控制器的设计

在设计时,我们采用XC95C36-15 CPLD[2]以及4Mbits的V53C8258[3]DRAM作范例。15ns的CPLD,速度相对较高,价格比较便宜。用它设计成的DRAM控制器允许80C186XL的工作速度高达20MHz,并且XC95C36有异步时钟选择项。这种特性对本设计有很大的好处。

图3是80C186XL DRAM控制器和存储器的功能框图。

DRAM控制器由80C186XL状态信号S2、S1和S0的解码来检测总线的开始、类型和结束。这些状态线是在CLKOUT的上升沿开始有效,在CLKOUT的下降沿失效的。DRAM控制器发出的RAS和CAS信号应该在CLKOUT的下降沿同时有效,行列地址应该在CLKOUT上升沿附近提供。

DRAM控制器应该在CLKOUT的两个沿都应能正常操作。通过启用XC95C36的异步时钟选择项,每个XC95C36宏单元可以从可编程与阵列获得时钟。DRAM控制器使用80C186XL的CLKOUT信号作时钟输入。

DRAM控制器主要由两个相互联的状态机构成。这两个状态机,使得DRAM的控制与80C186XL是否进行等待状态无关。

利用CPLD技术和80C196XL时序特征实现DRAM控制器的设计

状态机A和地址多路控制信号(MUX)在CLKOUT的上升沿锁存。状态机B和RAS及CAS的逻辑在CLKOUT的下降沿锁存。DRAM控制器完整的VHDL语言[4,5]的源代码可Email给cnhsx@sina.com索取。

DRAM控制器的状态图如图4所示,状态机A和B的起始条件分别是A0和B0。状态机A初始化DRAM控制器的序列,状态机B终止该序列。

在T2的下降沿,RAS逻辑采样状态机A的状态,锁存的地址线和总经状态信号。如果状态机A在A1状态(存储器读、写或刷新周期)并且总线周期为DRAM使用,则XC95C36插入RAS信号。

在T2的上升沿,状态机A也采样锁存的地址线。如果总线周期被DRAM占用,状态机A将从状态A1转移到A2,否则状态机A转换到A3。至此控制转移到状态机B。MUX逻辑采样RAS和BHE引脚的状态。如果RAS有效(指示DRAM在访问),并且总线周期下是刷新周期,XC95C36将插入MUX。MUX在行列地址之间切换,以便进行DRAM的读写操作。

在T3的下降沿,状态机B采样状态机A。如果状态机A处于状态A2(DRAM访问)或状态A3(存储器读或写,但不是DRAM访问),状态机B从状态B0转到B1。如果总线周期是一个DRAM访问周期,XC95C36继续保持RAS有效。CAS逻辑采样MUX的状态、锁存地址A0、BHE和总线周期状态。如果MUX有效(指示DRAM读或写),并且访问低字节,则XC95C36插入LCAS;如果MUX有效,并且微处理器访问高字节,XC95C36插入UCAS。DRAM读访问和DRAM刷新访问不同之处在于:对刷新来说,不需要MUX、UCAS和LCAS。

在T3的上升沿,状态机A等待状态机B中断此序列。如果MUX有效(DRAM读或写),它将保持有效。

有下一个降沿,状态机B采样总线状态信号。如果状态信号仍然有效,则此状态为等待状态Tw,状态机B保持在状态B1。如果这个状态是等待状态,并且RAS有效(DRAM访问),RAS保持有效;如果状态为等待状态,并且UCAS和LCAS有效(DRAM读或写),UCAS和LCAS保持有效。

在等待状态的上升沿,状态机A继续等待状态机B来中断此序列。如果MUX有效(DRAM读或写),则它在T3状态里保持有效。

如果微处理器状态信号无效,这个状态则是一个T4状态,状态机B从B1转到B2.如果状态是一个T4状态,并且RAS有效(DRAM访问),则RAST4状态,并且RAS有效(DRAM访问),则RAS逻辑也检测无效状态信号,并且XC95C36关闭RAS信号;如果状态是一个T4状态,并且UCAS和LCAS有效(DRAM读或写),则CAS逻辑也采样总线状态信号;如果状态信号无效,则XC95C36关闭UCAS和LCAS信号。

利用CPLD技术和80C196XL时序特征实现DRAM控制器的设计

在T4的上升沿,状态机A采样状态机B的状态。在状态机B处于B2状态的情况下,状态机A从A2状态(DRAM访问)或A3状态(存储器读或写,但不是DRAM访问)转到A0。如果MUX有效,MUX逻辑检查RAS的状态;如果RAS无效(指示一个终止周期),XC95C36关闭MUX。

在下一个CLKOUT下降沿,状态机B无条件地从状态B2转到B0,终止DRAM序列。控制转移给状态机A。

三、80C186XL RCU单元的编程

要使DRAM正常工作,就必须对80C186XL中与DRAM刷新有关的寄存器进行正确编程。这些寄存器包括:刷新时钟间隔寄存器(RFTIME寄存器)、刷新基地址寄存器(RFBASE寄存器)和刷新控制寄存器(RFCON寄存器)。

刷新时钟间隔寄存器(RFTIME寄存器)的编程公式为:Trefresh×fcpu/(Rrow+Rrows×补偿因子)。V53C8258的技术参数规定,其刷新周期Trefresh为8ms,存储阵列行数Rrows为512。考虑到RCU取得总线控制权的延时,补偿因子取0.05。因此,微处理器在fcpu=20MHz工作频率下,RFTIME寄存器的取值为:0.008×20×10 6/(512+512×0.05),约为297.

刷新基地址寄存器(RFBASE寄存器)的编程。该寄存器的高7位,规定了DRAM容量大小。系统使用两片V53C8258情况下,RFBASE的取值为00H,DRAM占用微处理器的存储空间的00000H~7FFFFH(512KB)。

最后通过将刷新控制寄存器(RFCON寄存器)的REN位置位,来启动刷新控制单元。

若使用80C186XL的节电模式,则要求重新编程这些值。在写节电控制寄存器前,必须先用要时钟分频值去除原先设置在刷新间隔寄存器的值,来重新设置寄存器。

结束语

现在DRAM、CPLD的价格非常低,这样设计者有机会在嵌入式计算机系统设计中考虑采用DRAM。80C186XL嵌入式微处理器广泛应用于嵌入式计算机、程控通信工业控制系统中,具有良好的性价比,其性能和功能是80C31、80C196等单片机无法比拟的,并能充分利用大量的PC平台软件。本解决方案已在家庭电子证券产品中采用,获得了良好的经济效益和社会效益。

掌握CPLD技术和VHDL语言设计技巧是提升产品技术含量的重要途径。上述CPLD还留在一些引脚和内部资源未使用,只要设计者将VHDL源代码稍微作一些修改,就可以用这些引脚控制新增加的DRAM,提供总线准备输出信号或DMA响应信号。

如果采用引脚数和宏单元较多的XC9672或XC95108CPLD,就可以将D触发器(74HC74)、多路地址切换器(74HC157)、数据收发器(74HC245)和地址总线锁存器(74HC373)等其它分立逻辑器件的功能全部集成到CPLD中,这样系统集成度和可靠性将更加提高。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • cpld
    +关注

    关注

    32

    文章

    1259

    浏览量

    173322
  • 控制器
    +关注

    关注

    114

    文章

    17644

    浏览量

    190261
  • 寄存器
    +关注

    关注

    31

    文章

    5589

    浏览量

    129067
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    深入剖析Z80C30/Z85C30 CMOS SCC串行通信控制器

    深入剖析Z80C30/Z85C30 CMOS SCC串行通信控制器 在当今的电子通信领域,串行通信控制器扮演着至关重要的角色。Zilog公司的Z80
    的头像 发表于 11-26 16:22 544次阅读
    深入剖析Z<b class='flag-5'>80C</b>30/Z85<b class='flag-5'>C</b>30 CMOS SCC串行通信<b class='flag-5'>控制器</b>

    AG32 内置的CPLD 的DMA功能如何实现

    CPLD进行通信 2、DMA配置流程 •在MCU端预先配置DMA控制器,设置读取CPLD中已准备数据的参数 •配置完成后,DMA控制器进入待命状态 3、数据传输
    发表于 10-31 15:42

    基于FPGA的DDR控制器设计

    DDR控制协议 DDR3读写控制器主要用于生成片外存储DDR3 SDRAM进行读写操作所需要的时序,继而实现对片外存储
    发表于 10-21 14:30

    MCP22350 USB Type-C™ PD 3.1端口控制器技术解析

    MAC与合作伙伴的USB Type-C器件实现基带通信。MCP22350控制器包括八个可配置的通用I/O引脚,采用4mm x 4mm 28-QFN封装。
    的头像 发表于 09-30 15:26 610次阅读
    MCP22350 USB Type-<b class='flag-5'>C</b>™ PD 3.1端口<b class='flag-5'>控制器</b><b class='flag-5'>技术</b>解析

    ‌MCP22301 USB Type-C™ PD 3.1控制器技术解析与应用指南

    独立的小尺寸控制器可为USB Type-C插座提供电缆插头方向和检测。MCP22301 PD控制器通过集成的USB PD 3.1 MAC实现与合作伙伴USB Type-
    的头像 发表于 09-30 15:21 643次阅读
    ‌MCP22301 USB Type-<b class='flag-5'>C</b>™ PD 3.1<b class='flag-5'>控制器</b><b class='flag-5'>技术</b>解析与应用指南

    LM5149 80V同步降压DC/DC控制器技术解析

    Texas Instruments LM5149/LM5149-Q1同步降压直流/直流控制器是一款80V、超低I~Q~同步降压直流/直流控制器,用于大电流、单输出应用。该控制器采用峰值
    的头像 发表于 08-27 14:55 708次阅读
    LM5149 <b class='flag-5'>80</b>V同步降压DC/DC<b class='flag-5'>控制器</b><b class='flag-5'>技术</b>解析

    如何使用GPIO模拟ARGB2 LED定时序列,并在M258系列微控制器(MCU)上实现彩虹波ARGB2 LED效果?

    使用GPIO模拟ARGB2 LED定时序列,并在M258系列微控制器(MCU)上实现彩虹波ARGB2 LED效果
    发表于 08-20 06:55

    ‌LM3880三轨简单电源时序控制器技术文档总结

    :ADAS系统、摄像头模块 工业设备:安防摄像头、FPGA供电时序控制 计算领域:服务、网络设备处理电源管理 ‌ 3. 技术
    的头像 发表于 08-19 14:23 708次阅读
    ‌LM3880三轨简单电源<b class='flag-5'>时序</b><b class='flag-5'>控制器</b><b class='flag-5'>技术</b>文档总结

    Texas Instruments UC284xL/UC284xL-Q1 PWM控制器特性/应用/框图

    Texas Instruments UC284xL/UC284xL-Q1 PWM控制器是引脚对引脚兼容控制器件,是一款UC284xAQ/UC284xA-Q1升级版本。该
    的头像 发表于 07-02 15:20 513次阅读
    Texas Instruments UC284<b class='flag-5'>xL</b>/UC284<b class='flag-5'>xL</b>-Q1 PWM<b class='flag-5'>控制器</b>特性/应用/框图

    高性能系列微控制器XL32F001开发板

    控制器的工作温度范围为-40°C ~ 85°C,工作电压范围  1.7V ~ 5.5V 。芯片提供 sleep/stop 低功耗工作模式,可以满足不同的低功耗应用。 XL32F001
    的头像 发表于 06-10 11:22 519次阅读
    高性能系列微<b class='flag-5'>控制器</b><b class='flag-5'>XL</b>32F001开发板

    LM5035C PWM 控制器,集成半桥和 5V SyncFET 驱动输出技术资料

    LM5035C半桥控制器和栅极驱动包含所有必要的功能 使用电压模式控制和线路电压实现半桥拓扑功率转换
    的头像 发表于 03-28 17:15 770次阅读
    LM5035<b class='flag-5'>C</b> PWM <b class='flag-5'>控制器</b>,集成半桥和 5V SyncFET 驱动输出<b class='flag-5'>技术</b>资料

    I3C控制器角色转移如何实现

    I3C 控制器角色转移如何实现
    发表于 03-14 10:08

    AN-1267: 使用ADSP-CM408F ADC控制器的电机控制反馈采样时序

    电子发烧友网站提供《AN-1267: 使用ADSP-CM408F ADC控制器的电机控制反馈采样时序.pdf》资料免费下载
    发表于 01-14 14:59 9次下载
    AN-1267: 使用ADSP-CM408F ADC<b class='flag-5'>控制器</b>的电机<b class='flag-5'>控制</b>反馈采样<b class='flag-5'>时序</b>

    AN-0973: 超级时序控制器的EEPROM擦除和编程

    电子发烧友网站提供《AN-0973: 超级时序控制器的EEPROM擦除和编程.pdf》资料免费下载
    发表于 01-09 13:43 0次下载
    AN-0973: 超级<b class='flag-5'>时序</b><b class='flag-5'>控制器</b>的EEPROM擦除和编程

    XL32F001微控制器规格书

    XL32F001是芯岭技术推出的一款高性价比微控制器,基于ARM Cortex-M0+内核的32位MCU。专为低成本嵌入式应用设计,以满足多样化的市场需求。包括高性能、低功耗、宽工作电压范围
    的头像 发表于 12-18 09:51 955次阅读
    <b class='flag-5'>XL</b>32F001微<b class='flag-5'>控制器</b>规格书