<?xml version="1.0" encoding="gbk"?> <rss version="2.0"><channel> <title>定阅帖子更新</title> <link>http://www.broadkey.com.cn/XML.ASP</link><description>TEAM Board - 意得法电子</description> <copyright>TEAM 2.0.5 Release</copyright><generator>TEAM Board by TEAM5.Cn Studio</generator> <ttl>30</ttl><item><link>http://www.broadkey.com.cn/Thread.asp?tid=420 </link><title>Cyclone&amp;nbsp;II的DDR&amp;nbsp;SDRAM接口实现</title><author>alan</author><pubDate>2009-12-15 9:11:23</pubDate><description><![CDATA[在不增加电路板复杂度的情况下要想增强系统性能，改善数据位宽是一个有效的手段。通常来说，可以把系统频率扩大一倍或者把数据<span>I/O管脚增加一倍来实现双倍的数据位宽。这两种方法都是我们不希望用到的，因为它们会增加整个设计系统的复杂度。在总的数据I/O管脚不变的情况下，使用双数据率（DDR）I/O管脚来传输和接收数据也能够实现双倍数据位宽的要求。DDR器件使用时钟的两个沿来传输数据，在时钟频率和数据I/O管脚不变的前提下，比单沿数据传输（SDR）器件快了一倍。DDR数据传输广泛应用于有快速数据传输需求的场合，如网络、通信、存储和图像处理等领域。</span>
<div style="line-height: 150%"><span>&nbsp;&nbsp;&nbsp; Cyclone II</span>器件支持如<span>SDR SDRAM，DDR SDRAM，DDR2 SDRAM以及QDRII RAM等外部存储器接口。下面将着重讨论Cyclone II器件如何实现DDR SDRAM接口控制的。</span></div>
<div style="line-height: 150%"><span>&nbsp;&nbsp;&nbsp; Cyclone II</span>器件有专用的与<span>DDR SDRAM接口的data（DQ），data strobe（DQS）,clock管脚。一般是8个DQ信号对应与1个DQS信号，DQS信号和DQ信号从DDR SDRAM输出时是沿对齐的。进入FPGA后要想实现中心对齐，即DQS的变化沿与DQ的中心对齐，那么必须在FPGA内部对DQS做延时处理，如Figure 9-1所示。</span></div>
<div style="line-height: 150%; text-indent: 21pt" align="center"><a target="_blank" href="http://space.ednchina.com/upload/2009/8/6/1597215d-737e-430c-8319-8548f92759bf.jpg"><img alt="点击看大图" width="520" height="290" src="http://space.ednchina.com/upload/2009/8/6/1597215d-737e-430c-8319-8548f92759bf.jpg" /></a></div>
<div style="line-height: 150%; text-indent: 21pt">DDR输入接口实现如<span>Figure 9-11所示。这也是一个涉及到异步时钟域数据通信的问题，且看它是如何进行同步的。resynch_clk是FPGA内部使用的时钟，DQS相对与和DQ同步的时钟。这两个时钟其实是同频不同相，相位偏移肯定是要满足FPGA的采样时钟和数据信号中心对齐，这涉及到DDR SDRAM的输出时钟信号的相位调整。</span></div>
<div style="line-height: 150%" align="center">&nbsp;</div>
<div style="line-height: 150%; text-indent: 21pt">输入信号<span>DQS经过反向延时后与DQ信号中心对齐，然后分别使用方向延时后的DQS信号的下降沿和上升沿锁存DQ信号前后输入的数据Q0和Q1，同时在上升沿时会对前一级采样的Q0信号再进行一次锁存，从而使Q0和Q1信号在被FPGA同步时钟采样前达到同频同相。FPGA内部时钟通过对经过处理后的Q0和Q1信号采样达到了双沿数据输入的采样。详细波形如Figure 9-12所示。</span></div>
<div style="line-height: 150%">&nbsp;</div>
<div style="line-height: 150%" align="center">&nbsp;</div>
<div style="line-height: 150%; text-indent: 21pt">DDR输出接口实现如<span>Figure 9-14所示。经过90度相移的DDR SDRAM时钟先对FPGA内部时钟域的待输出信号进行一次锁存，然后由相移时钟的高低电平选择作为当前输出给DDR SDRAM的数据信号。</span></div>
<div style="line-height: 150%" align="center">&nbsp;</div>
<div style="line-height: 150%; text-indent: 21pt">详细波形如<span>Figure 9-15所示。</span></div>
<div style="line-height: 150%" align="center">&nbsp;</div>
<div style="line-height: 150%; text-indent: 21pt">双向接口的实现只是将前面讨论的输入和输出方式进行综合。不论是<span>DQ还是DQS信号，在作为FPGA的输入管脚时，内部给这个管脚的赋值为高阻态，从而确保读取的输入信号有效。</span></div>
<div style="line-height: 150%" align="center">&nbsp;</div>
<span>
<div style="line-height: 150%" align="center"><a target="_blank" href="http://space.ednchina.com/upload/2009/8/6/7ec474ea-543f-4daa-872d-7dba35efa512.jpg"><img alt="点击看大图" width="520" height="528" src="http://space.ednchina.com/upload/2009/8/6/7ec474ea-543f-4daa-872d-7dba35efa512.jpg" /></a></div>
</span>
<div style="line-height: 150%">&nbsp;</div>]]></description></item></channel></rss>