草庐IT

Xilinx FPGA DDR3设计(一)DDR3基础扫盲

FPGA技术实战 2023-09-02 原文

 

引言:本文我们介绍下DDR3的基础知识,涉及DDR3管脚信号、容量计算、重要参数介绍内容。

01.DDR3 SDRAM概述

DDR3 SDRAM 全称double-data-rate 3 synchronous dynamic RAM,即第三代双倍速率同步动态随机存储器。双倍速率(double-data-rate),是指时钟的上升沿和下降沿都发生数据传输;同步,是指DDR3数据的读取写入是按时钟同步的;动态,是指DDR3中的数据掉电无法保存,且需要周期性的刷新,才能保持数据;随机,是指可以随机操作任一地址的数据。

以镁光MT41K256M16RH-107为例(以下介绍均以此芯片为例),该芯片容量为512GB(4Gbit),器件内部功能模块组成如图1所示。

图1、256M×16功能框图

02.DDR3 SDRAM管脚介绍


图2、×16芯片FBGA封装管脚分布

由图1和2图所示,DDR3管脚根据不同的功能可以分为:数据组、地址组、控制组和电源组四大类型。

2.1 数据组:DQ[15:0]、UDQS/UDQS#、LDQS/LDQS#、UDM、LDM。

  • DQ[15:0]:双向信号,16位数据总线;

  • UDQS/UDQS#、LDQS/LDQS#:双向信号,数据选通信号,用于数据同步;

  • UDM、LDM:数据屏蔽信号。

2.2 地址组:BA[2:0]、A[14:0]。

  • BA[2:0]:Bank地址信号;

  • A[14:0]:地址总线。

2.3 控制组:CK/CK#、CKE、CS#、RAS#、CAS#、WE#、RESET#、ODT、 ZQ#

  • CK/CK#:时钟信号,双沿采样DQ数据;

  • CKE:时钟使能信号;

  • CS#:DDR3片选信号,低有效;

  • RAS#:行选通信号;

  • CAS#:列选通信号;

  • WE#:写使能信号;

  • ODT:片上终端使能信号。DDR3芯片数据组是有片上端接的,无需外部端接,而控制信号和地址信号为保证信号完整性需要端接匹配;

  • ZQ:校准管脚,下拉240Ω电阻到VSSQ。

2.4 电源组:

  • VDD:电源电压,1.5V±5%;

  • VDDQ:DQ供电,1.5V±5%;

  • VREFCA:控制、命令和地址参考电压,电压为VDD/2;

  • VREFDQ:数据参考电压,电压为VDD/2;

03.DDR3 寻址及容量计算

3.1 DDR3数据寻址

图3、DDR存储阵列示意

如图3所示,DDR3的内部是一个存储阵列,类似一张二维表格,数据读写操作即对这个阵列进行操作。所谓寻址就是操作指定表格单元(图中黄色单元格)所需的步骤,即读写某个表格单元,需要先指定一个行(Row),再指定一个列(Column)。这个表格通常称为逻辑Bank,一个DDR3有多个Bank组成。

3.2 容量计算

以镁光MT41K256M16RH-107为例。

图4、DDR3地址组成

由图4可以,Row address = 15bit,Column address = 10bit,Bank address = 3bit,则器件总存储单元为:

2^15×2^10×2^3 = 2^28= 256M单元格,每个单元格为16bit,总计容量为:256M×16bit = 512MB(4Gbit)。

04.DDR3 关键参数解析

DDR3器件手册给出了非常详尽的参数介绍,里面有几个非常重要的参数下面来介绍一下。

4.1 突发传输及突发长度

图5、非连续突发读操作

突发是指在同一行中相邻的存储单元连续进行数据传输的方式。如图5所示,突发长度BL=8,即送出一次读命令和读地址,连续输出8个数据。

另外,连续读取操作,即控制好两次突发读间隔时间,即可实现连续读输出操作,如图6所示,图中需要控制好参数tCCD。

图6、连续读操作

4.2 CAS Latency(CAS潜伏期)

该参数又称读取潜伏期或列地址脉冲选通潜伏期,简写成CL,该参数以时钟周期为单位,该参数表示从读命令和地址有效发出后,数据稳定数据的延迟时钟个数。如图7所示,当CL=6时,有效数据在6个时钟之后输出。

图7、读延迟周期CL = 6

4.3 tRCD:RAS至CAS延迟

tRCD表示行地址选通脉冲到列地址选通脉冲延迟,如图8所示,该参数以时钟周期为单位。

图8、读操作

4.4  附加延迟(AL)

如图8所示,AL = 5,CL = 6,由此读操作有效数据在RL = AL + CL = 11个时钟后输出。

4.5 tRP预充电周期

图9、tRP预充电周期

预充电有效周期,在发出预充电命令之后,要经过一段时间才能允许发送RAS行有效命令打开新

FPGA项目实战圈来啦(限时优惠)!

有关Xilinx FPGA DDR3设计(一)DDR3基础扫盲的更多相关文章

  1. ruby-on-rails - Rails - 子类化模型的设计模式是什么? - 2

    我有一个模型:classItem项目有一个属性“商店”基于存储的值,我希望Item对象对特定方法具有不同的行为。Rails中是否有针对此的通用设计模式?如果方法中没有大的if-else语句,这是如何干净利落地完成的? 最佳答案 通常通过Single-TableInheritance. 关于ruby-on-rails-Rails-子类化模型的设计模式是什么?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.co

  2. ruby-on-rails - 使用 rails 4 设计而不更新用户 - 2

    我将应用程序升级到Rails4,一切正常。我可以登录并转到我的编辑页面。也更新了观点。使用标准View时,用户会更新。但是当我添加例如字段:name时,它​​不会在表单中更新。使用devise3.1.1和gem'protected_attributes'我需要在设备或数据库上运行某种更新命令吗?我也搜索过这个地方,找到了许多不同的解决方案,但没有一个会更新我的用户字段。我没有添加任何自定义字段。 最佳答案 如果您想允许额外的参数,您可以在ApplicationController中使用beforefilter,因为Rails4将参数

  3. postman接口测试工具-基础使用教程 - 2

    1.postman介绍Postman一款非常流行的API调试工具。其实,开发人员用的更多。因为测试人员做接口测试会有更多选择,例如Jmeter、soapUI等。不过,对于开发过程中去调试接口,Postman确实足够的简单方便,而且功能强大。2.下载安装官网地址:https://www.postman.com/下载完成后双击安装吧,安装过程极其简单,无需任何操作3.使用教程这里以百度为例,工具使用简单,填写URL地址即可发送请求,在下方查看响应结果和响应状态码常用方法都有支持请求方法:getpostputdeleteGet、Post、Put与Delete的作用get:请求方法一般是用于数据查询,

  4. 软件测试基础 - 2

    Ⅰ软件测试基础一、软件测试基础理论1、软件测试的必要性所有的产品或者服务上线都需要测试2、测试的发展过程3、什么是软件测试找bug,发现缺陷4、测试的定义使用人工或自动的手段来运行或者测试某个系统的过程。目的在于检测它是否满足规定的需求。弄清预期结果和实际结果的差别。5、测试的目的以最小的人力、物力和时间找出软件中潜在的错误和缺陷6、测试的原则28原则:20%的主要功能要重点测(eg:支付宝的支付功能,其他功能都是次要的)80%的错误存在于20%的代码中7、测试标准8、测试的基本要求功能测试性能测试安全性测试兼容性测试易用性测试外观界面测试可靠性测试二、质量模型衡量一个优秀软件的维度①功能性功

  5. LC滤波器设计学习笔记(一)滤波电路入门 - 2

    目录前言滤波电路科普主要分类实际情况单位的概念常用评价参数函数型滤波器简单分析滤波电路构成低通滤波器RC低通滤波器RL低通滤波器高通滤波器RC高通滤波器RL高通滤波器部分摘自《LC滤波器设计与制作》,侵权删。前言最近需要学习放大电路和滤波电路,但是由于只在之前做音乐频谱分析仪的时候简单了解过一点点运放,所以也是相当从零开始学习了。滤波电路科普主要分类滤波器:主要是从不同频率的成分中提取出特定频率的信号。有源滤波器:由RC元件与运算放大器组成的滤波器。可滤除某一次或多次谐波,最普通易于采用的无源滤波器结构是将电感与电容串联,可对主要次谐波(3、5、7)构成低阻抗旁路。无源滤波器:无源滤波器,又称

  6. 计算机毕业设计ssm+vue基本微信小程序的小学生兴趣延时班预约小程序 - 2

    项目介绍随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱小学生兴趣延时班预约小程序的设计与开发被用户普遍使用,为方便用户能够可以随时进行小学生兴趣延时班预约小程序的设计与开发的数据信息管理,特开发了小程序的设计与开发的管理系统。小学生兴趣延时班预约小程序的设计与开发的开发利用现有的成熟技术参考,以源代码为模板,分析功能调整与小学生兴趣延时班预约小程序的设计与开发的实际需求相结合,讨论了小学生兴趣延时班预约小程序的设计与开发的使用。开发环境开发说明:前端使用微信微信小程序开发工具:后端使用ssm:VU

  7. ES基础入门 - 2

    ES一、简介1、ElasticStackES技术栈:ElasticSearch:存数据+搜索;QL;Kibana:Web可视化平台,分析。LogStash:日志收集,Log4j:产生日志;log.info(xxx)。。。。使用场景:metrics:指标监控…2、基本概念Index(索引)动词:保存(插入)名词:类似MySQL数据库,给数据Type(类型)已废弃,以前类似MySQL的表现在用索引对数据分类Document(文档)真正要保存的一个JSON数据{name:"tcx"}二、入门实战{"name":"DESKTOP-1TSVGKG","cluster_name":"elasticsear

  8. ruby-on-rails - 设计注册确认 - 2

    我在我的项目中有一个用户和一个管理员角色。我使用Devise创建了身份验证。在我的管理员角色中,我没有任何确认。在我的用户模型中,我有以下内容:devise:database_authenticatable,:confirmable,:recoverable,:rememberable,:trackable,:validatable,:timeoutable,:registerable#Setupaccessible(orprotected)attributesforyourmodelattr_accessible:email,:username,:prename,:surname,:

  9. ruby-on-rails - 设计通过 reset_password_token 获取用户 - 2

    我正在尝试创建密码规则来设计可恢复的密码更改。我通过passwords_controller.rb做了一个父类(superclass),但我需要在应用规则之前检查用户角色,但我所拥有的只是reset_password_token。 最佳答案 假设您的模型是用户:User.with_reset_password_token(your_token_here)Source 关于ruby-on-rails-设计通过reset_password_token获取用户,我们在StackOverflow

  10. ruby-on-rails - Rails 5,公寓和设计 : sign in with subdomains are not working - 2

    我已经使用Apartment设置了一个Rails5应用程序(1.2.0)和Devise(4.2.0)。由于某些DDNS问题,应用只能在app.myapp.com下访问(请注意子域app)。myapp.com重定向到app.myapp.com。我的用例是每个注册该应用的用户(租户)都应该通过他们的子域(例如tenant.myapp.com)访问他们的特定数据。用户不应限定在其子域内。基本上应该可以从任何子域登录。重定向到租户的正确子域由ApplicationController处理。根据Devise标准,登录页面位于app.myapp.com/users/sign_in。这就是问题开始的

随机推荐