- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
嵌入式系统中DRAM控制器的CPLD解决方案
导语:?利用CPLD技术和80C196XL的时序特征设计一个低价格、功能完整的DRAM控制器的方法,并采用VHDL语言编程实现。 摘要:介绍怎样在嵌入式CPU 80C186XL DRAM刷新控制单元的基础上,利用CPLD技术和80C196XL的时序特征设计一个低价格、功能完整的DRAM控制器的方法,并采用VHDL语言编程实现。
关键词:刷新控制单元(RCU) DRAM控制器 状态机 CPLD VHDL语言
80C186XL16位嵌入式微处理器是Intel公司在嵌入式微处理器市场的上导产品之一,已广泛应用于电脑终端、程控交换和工控等领域。在该嵌入式微处理器片内,集成有DRAM RCU单元,即DRAM刷新控制单元。RCU单元可以自动产生DRAM刷新总线周期,它工作于微处理器的增益模式下。经适当编程后,RCU将向将处理器的BIU(总线接口)单元产生存储器读请求。对微处理器的存储器范围编程后,BIU单元执行刷新周期时,被编程的存储器范围片选有效。
存储器是嵌入式计算机系统的重要组成部分之一。通常采用静态存储器,但是在系统需要大容量存储器的情况下,这种方式将使成本猛增。如果采用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 DRAM控制器的设计与运行
DRAM存在着大量、复杂的时序要求,其中访问时间的选择、等待状态以及刷新方法是至关重要的。DRAM控制器必须正确响应80C186XL的所有总线周期,必须能将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是否进行等待状态无关。状态机A和地址多路控制信号(MUX)在CLKOUT的上升沿锁存。状态机B和RAS及CAS的逻辑在CLKOUT的下降沿锁存。DRAM控制器完整的VHDL语言的源代码可Email给cnhsx@索取。
DRAM控制器的状态图如图4所示,状态机A和B的起始条件分别是A0和B0。状态机A初始化DRAM控制器的序列,状态机B终止该序列。
在T2的下降沿,RAS逻辑采样状态机A的状态,锁存的地址线和总经状态信号。如果状态机A在A1状态(存储器读、写或刷新周期)并且总线周期为DRAM使用,则XC95C36插入RAS信号。
在T2的上升沿,状态机A也采样锁存的地址线。如果总线周期被DRAM占用,状态机A将从状态
原创力文档


文档评论(0)