EDN首页   博客首页 用户登陆  |  注册

日志档案

发表于 2009/8/6 19:30:26

标签: Cyclone  II  DDR  SDRAM  接口  

Cyclone II的DDR SDRAM接口实现

Cyclone IIDDR SDRAM接口实现

 

    在不增加电路板复杂度的情况下要想增强系统性能,改善数据位宽是一个有效的手段。通常来说,可以把系统频率扩大一倍或者把数据I/O管脚增加一倍来实现双倍的数据位宽。这两种方法都是我们不希望用到的,因为它们会增加整个设计系统的复杂度。在总的数据I/O管脚不变的情况下,使用双数据率(DDRI/O管脚来传输和接收数据也能够实现双倍数据位宽的要求。DDR器件使用时钟的两个沿来传输数据,在时钟频率和数据I/O管脚不变的前提下,比单沿数据传输(SDR)器件快了一倍。DDR数据传输广泛应用于有快速数据传输需求的场合,如网络、通信、存储和图像处理等领域。

    Cyclone II器件支持如SDR SDRAMDDR SDRAMDDR2 SDRAM以及QDRII RAM等外部存储器接口。下面将着重讨论Cyclone II器件如何实现DDR SDRAM接口控制的。

    Cyclone II器件有专用的与DDR SDRAM接口的dataDQ),data strobeDQS,clock管脚。一般是8DQ信号对应与1DQS信号,DQS信号和DQ信号从DDR SDRAM输出时是沿对齐的。进入FPGA后要想实现中心对齐,即DQS的变化沿与DQ的中心对齐,那么必须在FPGA内部对DQS做延时处理,如Figure 9-1所示。

点击看大图

DDR输入接口实现如Figure 9-11所示。这也是一个涉及到异步时钟域数据通信的问题,且看它是如何进行同步的。resynch_clkFPGA内部使用的时钟,DQS相对与和DQ同步的时钟。这两个时钟其实是同频不同相,相位偏移肯定是要满足FPGA的采样时钟和数据信号中心对齐,这涉及到DDR SDRAM的输出时钟信号的相位调整。

点击看大图 

输入信号DQS经过反向延时后与DQ信号中心对齐,然后分别使用方向延时后的DQS信号的下降沿和上升沿锁存DQ信号前后输入的数据Q0Q1,同时在上升沿时会对前一级采样的Q0信号再进行一次锁存,从而使Q0Q1信号在被FPGA同步时钟采样前达到同频同相。FPGA内部时钟通过对经过处理后的Q0Q1信号采样达到了双沿数据输入的采样。详细波形如Figure 9-12所示。

 

点击看大图 

DDR输出接口实现如Figure 9-14所示。经过90度相移的DDR SDRAM时钟先对FPGA内部时钟域的待输出信号进行一次锁存,然后由相移时钟的高低电平选择作为当前输出给DDR SDRAM的数据信号。

点击看大图 

详细波形如Figure 9-15所示。

点击看大图 

双向接口的实现只是将前面讨论的输入和输出方式进行综合。不论是DQ还是DQS信号,在作为FPGA的输入管脚时,内部给这个管脚的赋值为高阻态,从而确保读取的输入信号有效。

点击看大图 

点击看大图

 

 

 

系统分类: CPLD/FPGA   |   用户分类: FPGA设计感悟   |   来源: 原创   |   【推荐给朋友】   |   【添加到收藏夹】

该用户于2009/8/6 19:32:11编辑过该文章

2

阅读(2109)  |  评论(3)  |  收藏(2)  |  举报  

投一票您将和博主都有获奖机会!

最新评论

  • zc20060102

    2010/3/20 11:49:02

    我不知道ALTERA Cyclone 2上用的ddr sdram是哪家公司的,我用的XILINX Spartan3e xc3s500e上的是Micron,说明书上DQS都是和差分时钟上沿对其的,这是不是说明DQS由时钟触发给出的? 一下子提了这么多问题,希望前辈见谅!

  • zc20060102

    2010/3/20 11:31:54

    DQS和DQ从FPGA或DDR SDRAM出来时都是边沿对齐的,只是在读DDR SDRAM时,FPGA对DQS做相偏调整,在对DDR SDRAM写时,DDR SDRAM对DQS做相偏调整?

  • zc20060102

    2010/3/20 11:24:28

    你好,我是一个初学者,对这篇文章有点不明白,FPGA(ddr controller)和ddr SDRAM使用的是同一时钟吗。时钟之间有无相偏?