热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

基于CycloneIIIFPGA的DDR2接口设计-mysql教程

欢迎进入IT技术社区论坛,与200万技术人员互动交流进入DDRSDRAM是DoubleDataRateSDRAM的缩写,即双倍速率同步动态随机存储器。DDR内存是在SDRAM内存基础上发展而来的,能够在时钟的上升沿和下降沿各传输一次数据,可以在与SDRAM相同的总线时钟频率下

欢迎进入IT技术社区论坛,与200万技术人员互动交流 >>进入 DDR SDRAM是Double Data Rate SDRAM的缩写,即双倍速率同步动态随机存储器。DDR内存是在SDRAM内存基础上发展而来的,能够在时钟的上升沿和下降沿各传输一次数据,可以在与SDRAM相同的总线时钟频率下

欢迎进入IT技术社区论坛,与200万技术人员互动交流 >>进入

>  DDR SDRAM是Double Data Rate SDRAM的缩写,即双倍速率同步动态随机存储器。DDR内存是在SDRAM内存基础上发展而来的,能够在时钟的上升沿和下降沿各传输一次数据,可以在与SDRAM相同的总线时钟频率下达到更高的数据传输率。虽然DDR2和DDR一样,都采用相同采样方式进行数据传输,但DDR2拥有两倍于DDR的预读取系统命令数据的能力。也就是说,在同样100MHz的工作频率下,DDR的实际频率为200MHz,而DDR2则可以达到400MHz。DDR2还引入了三项新的技术,它们是OCD、ODT和Post CAS。

  我们的设计(图1)采用Altera公司Cyclone III系列型号为EP3C16F484C6N的FPGA作为控制器,以Micron公司生产的型号为MT47H16M16BG-5E(16M×16bit)的DDR2 SDRAM为存储器。用一个IP核完成对4片DDR2的控制(带宽为64bit),且DDR2的最高速率可达200MHz,以此完成对数据的高速大容量存储。由于采用一个DDR2的IP核进行控制,所以4片DDR2以地址和控制线共用、数据线独立的方式进行管脚连接。

  图1 接口总框图

  EP3C16只有TOP和BOTTOM边的BANK支持200MHz DDR2接口(因为DDR2管脚的特殊要求,DQS、DQ、DM管脚在FPGA上都需要专用管脚),且最高速率可达200MHz。

  表1中Column I/O是指Top和Bottom I/O,Row I/O是指Right和Left I/O。Hybrid mode是指由Column和Row I/O混合。

  从表1中可以看出,Cyclone III只有6系列的FPGA在Top和Bottom BANK才支持200MHz频率的DDR2。为了满足设计要求,我们将4片DDR2分别挂在FPGA的Top和Bottom的4个BANK。

  表1 FPGA BANK管脚速度

  从表2中可以看到,EP3C16 F484封装系列的FPGA每个边所支持的DQS和DQ组。因为在DDR中若干个DQ是由一个DQS进行采样的,所以FPGA以若干个DQ和一个DQS为最小单位进行分组。

  表2 FPGA BANK DQ

  如Number of ×8 Groups,其中×8就是指8个DQ,一个DQS即和8个DQ组成一个Group(即这8个DQ由这一个DQS进行采样)。FPGA分别有Left、Right、Top和Bottom四边,其表示FPGA的每边都支持4个DQS和DQ组,而每一边有两个Bank,即每个Bank都支持两个×8架构的DQS和DQ组。图2展示了FPGA的DQS和DQ组的分配。

  由于设计中采用Top和Bottom边的Bank,这里以第3个Bank的DQS为例进行说明。在图2可以看到,FPGA的Bank3有三个DQS,分别为DQS1B、DQS3B和DQS5B。由于每组DQ都要和各自对应的DQS配对,所以理论上DQS1B应该和DQ1B为一组,DQS3B应该和DQ3B为一组,DQS5B应该和DQ5B为一组。

  图2 FPGA BANK DQS/DQ

  表3中展示了FPGA管脚中的DQ分配。可以看到,对于×8架构的DDR2,Bank3只有DQ3B和DQ5B,且DQ3B和DQ5B各自都有9个,DQS1B其实没有属于自己的DQ。其实在Bank4中还有1个DQS2B和8个DQ2B,1个DQS4B和8个DQ4B。

  而对于×16架构的DDR2,则有18个DQ3B和1个DQ5B,DQS1B没有属于自己的DQ,其实在Bank4中还有17个DQ5B,这样在Bank3和Bank4中一共就有18个DQ5B。

  表3 FPGA BANK Pin

  在×32架构的DDR2中则有19个DQ5B,没有DQ1B和DQ3B,在Bank4中还有17个DQ5B,这样在Bank3和Bank4中一共就有36个DQ5B。

  对于×9/×18/×36这里暂不讨论,其为QDRII SRAM设计,其多余DQ做奇偶校验使用。

  表4 不同架构DDR2的支持数量

  从表4可以看出FPGA是如何支持不同架构的DDR2的,还可以知道同一组的DQ不一定在同一个Bank,不是每个DQS都有自己的DQ,即使DQS有自己的DQ,其DQ数量也不一定相同。

  图3 FPGA DQ/DQS Pin

  除了DQS和DQ外,DM也有自己专用的管脚,在DDR中DM为数据信号(DQ)屏蔽位,由于DM是以8bit为单位起作用的,所以理论上只要有8个DQ便会有一个DM。事实上在FPGA的Bottom边Bank中DM的分配如表5所示。

  表5 FPGA的Bottom边Bank中DM的分配

  了解清楚FPGA中的DQS,DQ和DM分配,我们再来看看DDR2的架构。DDR2选用Micron生产的MT47H16M16BG-5E,其大小为16M×16bit,每一片分为4个Bank,每个Bank为4M×16bit。如果看到×16,你就认为这是一片×16架构的DDR2,再按照FPGA上×16架构的管脚去设计,那就大错特错了。

  虽然该DDR2是16位的带宽,但其却有两个DQS,分别是LDQS和UQDS,也就是说其实两个DQS分别采样低8位和高8位数据。请注意,即使是32位带宽的DDR,其也有4个DQS,每个DQS也仅采样8位数据。至于有没有一个DQS能采样16位或32位数据的DDR,这就不为人知了。

  确定了DDR2的架构,就确定了DDR2和FPGA的DQS,DQ和DM的连接方式。由于我们采用的是×8架构的DDR2,所以一组内的DQ仅需要8个,而有的DQS带有9个DQ,在选用该DQ的时候只要任意选取其中的8个就可以。

  在SSTL-18电平标准中,为了实现更高的信号频率,输入信号需要和一个参考电压(VREF)进行比较输出后才被认为是实际输入。因为DDR2采用1.8V的SSTL电平进行数据传输,所以DDR2所在FPGA 的Bank电压必须是1.8V,FPGA就必须在该Bank使用VREF参考电压。在FPGA的每个Bank都有两个VREF参考电压输入,该Bank的I/O分属这两个VREF组,如在Bank3存在VREFB3N0和VREFB3N1。

  当FPGA的一个Bank存在VREF输入或双向的管脚时,为了防止输出的开关噪声转移到VREF和限制输送到VCCIO的噪声水平,FPGA输入输出IO的位置有如下限制(BGA封装的FPGA):

  每个VREF最多支持32个输入;

  在Top和Bottom Bank每12个连续的管脚最多只支持9个输出。在Right和Left Bank每14个连续的管脚最多只支持9个输出;

  在VREF和输出管脚(除了DQ和DQS)之间必须用两个输入或空脚进行隔离。一般是空着,因为输入会因为输出管脚引来的噪声而导致读入不正确;

  如果不需VREF参考,一般在一个BANK中只要全部是同组数据总线或地址总线时,输出个数不受限制(即受同一个OE控制的不受限制)。如果不是同一个OE控制就要满足上面约束关系,以及驱动型接口要考虑驱动能力。

  图4所示,输出脚必须和VREF用两个输入或空脚进行隔离。另外,由于DDR2的地址和控制线都是输出管脚,所以在手动分配管脚的时候很容易超出2所述的限制,而且FPGA是BGA封装,只从SYMBOL上很难看出管脚的连续性。FPGA的管脚在外部看来是方阵排列,但其在FPGA的内部却是线性的排列,所以硬件设计时最好通过软件去看管脚的连续性。在原理图设计分配DDR2所在Bank的输出管脚时,建议采用Quartus II软件自动分配,这样才能更好地避免错误。

  图4 FPGA Output Pad

  此外,还要注意:

  在Cyclone III系列的FPGA中,不支持差分的DQS,该FPGA的IP只在写模式下用到DQS,在读数据时不用(因为IP复位时IP会发送接收训练序列自校正产生捕获时钟);

  多余不用的DQ可以当做普通I/O使用;

  Quartus II软件自动分配管脚时不会区分同一组的DQ和DM,即DQ和DM可以互换(在EP3C16时仅有TOP边的DQ和DM可以互换);

  DDR2的地址和控制线在FPGA上没有专用管脚,可以任意使用其它IO(只要符合输入输出位置限制);

  可以使用任何一对临近的差分I/O管脚当作DDR2的时钟。


推荐阅读
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • PHP玩家基地系统毕业设计(附源码、运行环境)的用户登录界面、游戏管理和玩家作品管理
    本文介绍了一个PHP玩家基地系统的毕业设计,包括用户登录界面、游戏管理和玩家作品管理等功能。附带源码和运行环境,并提供免费赠送本源代码和数据库的方式,请私信获取详细信息。摘要共计约XXX字。 ... [详细]
  • 本文描述了作者第一次参加比赛的经历和感受。作者是小学六年级时参加比赛的唯一选手,感到有些紧张。在比赛期间,作者与学长学姐一起用餐,在比赛题目中遇到了一些困难,但最终成功解决。作者还尝试了一款游戏,在回程的路上感到晕车。最终,作者以110分的成绩取得了省一会的资格,并坚定了继续学习的决心。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 基于layUI的图片上传前预览功能的2种实现方式
    本文介绍了基于layUI的图片上传前预览功能的两种实现方式:一种是使用blob+FileReader,另一种是使用layUI自带的参数。通过选择文件后点击文件名,在页面中间弹窗内预览图片。其中,layUI自带的参数实现了图片预览功能。该功能依赖于layUI的上传模块,并使用了blob和FileReader来读取本地文件并获取图像的base64编码。点击文件名时会执行See()函数。摘要长度为169字。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • PHP图片截取方法及应用实例
    本文介绍了使用PHP动态切割JPEG图片的方法,并提供了应用实例,包括截取视频图、提取文章内容中的图片地址、裁切图片等问题。详细介绍了相关的PHP函数和参数的使用,以及图片切割的具体步骤。同时,还提供了一些注意事项和优化建议。通过本文的学习,读者可以掌握PHP图片截取的技巧,实现自己的需求。 ... [详细]
  • 关羽败走麦城时路过马超封地 马超为何没有出手救人
    对当年关羽败走麦城,恰好路过马超的封地,为啥马超不救他?很感兴趣的小伙伴们,趣历史小编带来详细的文章供大家参考。说到英雄好汉,便要提到一本名著了,没错,那就是《三国演义》。书中虽 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • PHP设置MySQL字符集的方法及使用mysqli_set_charset函数
    本文介绍了PHP设置MySQL字符集的方法,详细介绍了使用mysqli_set_charset函数来规定与数据库服务器进行数据传送时要使用的字符集。通过示例代码演示了如何设置默认客户端字符集。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • 橱窗设计的表现手法及其应用
    本文介绍了橱窗设计的表现手法,包括直接展示、寓意与联想、夸张与幽默等。通过对商品的折、拉、叠、挂、堆等陈列技巧,橱窗设计能够充分展现商品的形态、质地、色彩、样式等特性。同时,寓意与联想可以通过象形形式或抽象几何道具来唤起消费者的联想与共鸣,创造出强烈的时代气息和视觉空间。合理的夸张和贴切的幽默能够明显夸大商品的美的因素,给人以新颖奇特的心理感受,引起人们的笑声和思考。通过这些表现手法,橱窗设计能够有效地传达商品的个性内涵,吸引消费者的注意力。 ... [详细]
  • HDU 2372 El Dorado(DP)的最长上升子序列长度求解方法
    本文介绍了解决HDU 2372 El Dorado问题的一种动态规划方法,通过循环k的方式求解最长上升子序列的长度。具体实现过程包括初始化dp数组、读取数列、计算最长上升子序列长度等步骤。 ... [详细]
  • faceu激萌变老特效的使用方法详解
    本文介绍了faceu激萌变老特效的使用方法,包括打开faceu激萌app、点击贴纸、选择热门贴纸中的变老特效,然后对准人脸进行拍摄,即可给照片添加变老特效。操作简单,适合新用户使用。 ... [详细]
author-avatar
mobiledu2502885523
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有