对FPGA而言,时钟就是脉搏,必须理解透彻!


汇总篇:

Xilinx平台DDR3设计保姆式教程(汇总篇)——看这一篇就够了


时钟太重要了,单开一篇来说。


目录

一、如何知道器件所支持的时钟频率?

1.1DDR3芯片的带宽、位宽和最大IO时钟频率

1.3FPGA所支持的最大频率

二、时钟结构

三、MIG IP核的时钟:

3.1clock period时钟

3.2 ui_clk

3.3 input clock period

3.4 Reference clock

四、行业术语


一、如何知道器件所支持的时钟频率?

举例说明:

DDR3 型号: MT41J256M16xx-125

(记住这个常用型号,后文还是以此型号讲解)

FPGA 型号: XC7K325TFFG900-2 (常用FPGA型号)

datasheet : MT41J512M8RH-125:E(DDR3)、DS182(FPGA)

1.1DDR3芯片的带宽、位宽和最大IO时钟频率

翻看DDR3对应型号MT41J256M16XX-125的数据手册,可以看到:

图1. DDR3 Part Numbers

IO时钟频率:

根据Part Number 中的“-125”我们就可以找到图中的tCK = 1.25ns,就可以算出芯片支持的最大IO时钟频率:1/1.25ns = 800Mhz;此处的IO时钟频率也就是DDR3的频率;

位宽:

根据Part Number 中的“256M16”我们可以找到图中2所指出的地方,这里的16是代表芯片的数据位宽是16位(也就是16根数据线)。

注意:

  1. 当一个FPGA上挂多个DDR,如4片ddr3,位宽则会相应增大;16*4 = 64bit,再乘以DDR3的突发长度BL=8;那么程序设计里DDR3的读写位宽就变成了16*4*8=512bit; (这里留个印象,再后文IP例化及程序设计部分还会讲到,到时候对应起来看更容易理解)
  2. 明明是512M的DDR,为什么又写成256M呢?因为256M16是16根数据线16bit,对应过来就是2个byte;256M *16bit = 512MByte; 一般大B 指的是Byte,小b指的是bit;

带宽:

由于是DDR方式传输数据(上升和下降沿都传输),所以芯片的一根数据线上的传输速率 = 2*800Mhz = 1600MT/s。其实就是1600Mbit/s;

带宽就是16根数据线同时传输的数据速率 = 1600Mbit/s x 16 = 25600Mbit/s = 3200Mbyte/s = 3.125GByte/s

​​​​​​​1.3FPGA所支持的最大频率

翻看k7数据手册ds182可以看到:

图2. k7系列支持的DDR速率

k7系列的FPGA所支持的DDR3传输速率高达1866MT/s,这里需要跟硬件工程师具体了解了解,实际使用最高还是1600MT/s,对应频率= 1600M/2= 800Mhz;

​​​​​​​二、时钟结构

图3. 时钟结构

从图中,我们可以看到,主要有两个时钟:

①参考时钟 : 必须为200Mhz

②系统时钟 : 系统输入时钟

那么对应到MIG IP核又是如何定义的呢?继续往下走

三、MIG IP核的时钟:

3.1clock period时钟

图4.  Clock Period

这里①Clock Period设置的参数就是 MIG 的PHY 接口对DDR3的时钟,也就是DDR3芯片实际跑的IO时钟频率,它由system clock(主时钟)倍频而来,最大频率不能超过DDR3 和MIG支持的最大频率中的最小值(前文已讲解如何查看器件所支持的最大频率)。

对应到MIG 例化的信号:

.ddr3_ck_p     (ddr3_ck_p ),    //连接DDR管脚.ddr3_ck_n     (ddr3_ck_n ),

3.2 ui_clk

图4下面②有个4:1,说明MIG 输出到app接口上的时钟ui_clk =  800M/4=200M ,即到时我们在写RTL逻辑代码时操作MIG核时,用的就是这个200M时钟;

注:当我们选择800M时钟时,下面的PHY to Controller Clock Ratio 只能选择4:1;对应过来ui_clk最大为200M;当我们clock period时钟选择小于800M时,这里可以选择4:1 / 2:1;

3.3 input clock period

图5. input clock period

input clock period 对应的时钟就是MIG核的系统时钟,由PLL/MMCM输入;对应到例化代码就是:

.sys_clk_i         (sys_clk_i ),    //系统时钟输入

我们配置MIG核时选择多少M时钟,那么这里就要输入多少M

注:

推荐选择200Mhz,因为参考时钟也是200Mhz,配置的时候参考时钟可以直接使用系统时钟,减少端口信号

3.4 Reference clock

图6.参考时钟

参考时钟必须为200Mhz!

当我们系统时钟为200M时,参考时钟就可以直接使用系统时钟(use system clock)

​​​​​​​四、行业术语

  1. 核心频率:核心频率就是DDR物理层(PHY)IO时钟频率,对应到MIG就是第一个配置的“CLOCK PERIOD”,上文我们选择的是800Mhz
  2. 工作频率:核心频率* 2 (上下沿)= 1600M核心频率* 2 = 1600M
  3. 传输速率:核心频率* 2 = 1600MT/s
  4. 带宽:传输速率*位宽 = 1600M * 16 = 25600Mbit/s = 3200Mbyte/s = 3.125GByte/s

Xilinx FPGA平台DDR3设计保姆式教程(2)DDR3各时钟频率及带宽分析相关推荐

  1. Xilinx FPGA平台DDR3设计保姆式教程(3)MIG IP核使用教程及DDR读写时序

    干货来了,用DDR搬砖,只需要会用IP就好,Xilinx官方YYDS! ---------------------------------------------------------------- ...

  2. Xilinx FPGA平台DDR3设计保姆式教程(1)DDR3基础简介

    如果我们只是拿来用ddr搬砖,那么它就简单,知道IP怎么使用就好,但是要想知其所以然,理论知识是必备的,这也是我们初学者所欠缺的东西,慢慢修炼吧! 汇总篇: Xilinx平台DDR3设计保姆式教程(汇 ...

  3. Xilinx FPGA平台GTX简易使用教程(一)GTX基础知识

    理解GTX的必备姿势,学起来! 汇总篇: Xilinx FPGA平台GTX简易使用教程(汇总篇) 目录 一.什么是GTX? 二.Quad/Channel 三.PMA与PCS 四.GTX收发处理流程 五 ...

  4. Xilinx FPGA平台GTX简易使用教程(二)GTX时钟篇

    时钟就是脉搏,能否工作全靠它! 汇总篇: Xilinx FPGA平台GTX简易使用教程(汇总篇) 目录 一.参考时钟 1.1 收发测试能跑起来的基本参考时钟设置 1.2 继续了解时钟,走着 1.3 单 ...

  5. Xilinx FPGA平台GTX简易使用教程(三)GTX复位与初始化

    所有IP核没有正确工作,原因一半是时钟,一半是复位. 汇总篇: Xilinx FPGA平台GTX简易使用教程(汇总篇) 目录 前言 一.复位与初始化 二.复位模式 三.CPLL复位 四.QPLL复位 ...

  6. Xilinx FPGA平台GTX简易使用教程(四)GTX IP核配置教程

    干货来了,GTX核配置,搬砖全靠它~~ 汇总篇: Xilinx FPGA平台GTX简易使用教程(汇总篇) 目录 前言 一.GTX  IP核配置界面 1.1第一页配置 1.2第二页配置 1.3第三页配置 ...

  7. Xilinx FPGA平台GTX简易使用教程(五)GTX收发测试及示例工程介绍

    GTX IP配置完了,你不得搞个回环测试一番? 汇总篇: Xilinx FPGA平台GTX简易使用教程(汇总篇) 目录 前言 一.示例工程Example Design 1.1 gtx_support模 ...

  8. EasyMonitor 视频监控开发平台 安装教程(保姆式教程)

    ~~ EasyMonitor 视频监控开发平台 安装教程(保姆式教程) 本教程基于虚拟机环境测试 一.虚拟机安装CENTOS7 我用的是MINI版的只有900M,附一个网盘链接: https://pa ...

  9. Xilinx FPGA平台GTX简易使用教程(汇总篇)

    GTX简易使用教程,先"知其然",慢慢再研究"所以然". 目录 一.GTX必备基础知识 二.时钟篇 三.复位与初始化 四.GTX   IP核配置介绍 五.GTX ...

  10. 合成大西瓜(西瓜雨版)及改版思路(保姆式教程)

    合成大西瓜(西瓜雨版)及改版思路(保姆式教程) 最近一款名为"合成大西瓜"的小游戏突然火了,上了几次微博热搜,身边有些人还在感慨:瓜都吃不完了,还叫我合成瓜- 自己玩了也觉得很有意 ...

最新文章

  1. HttpClient第一章(一)
  2. engnix php 插件 管理_nginx配置支持php-fpm
  3. 数楼梯——恶心的高精斐波那契数列
  4. socket 网络 编程
  5. 使用命令行工具创建WildFly OpenShift应用程序
  6. CentOS 7 Flannel的安装与配置
  7. 今年要如何准备?想去阿里/美团/头条做机器学习工程师
  8. Open3d之点云全局配准
  9. nodejs fs创建文件_节点FS – NodeJS创建文件,读取文件,写入文件
  10. 读《JavaScript语言精粹(修订版)》心得
  11. PHP Fatal error: Declaration of Hyperf\Framework\SymfonyEventDispatcher::dispatch($event) must be c
  12. 电路原理笔记整理_【盛世清北】2021清华大学827电路原理考研笔记-清华考研辅导班...
  13. 我从华为身上学到的项目管理经验 -- 概述篇
  14. 南邮《网络技术与应用,携程开源的分布式apollo技术
  15. 个人微信号API接口
  16. 华为鲲鹏云主机编译安装MySQL 8.0.17
  17. JVM(3)-垃圾收集机制
  18. 使用 EasyExcel 操作exsel文件
  19. MySQL(狂神说笔记)
  20. 什么软件可以测试sd卡,如何做SD卡测试和SD卡测试工具

热门文章

  1. 5G手机和4G手机的区别
  2. 输入一个二阶矩阵并计算主对角线元素的和 C语言
  3. Centos7 局域网邮件服务器实践
  4. VC中的_variant_t和_bstr_t
  5. 好玩好用软件推荐,让你大开眼界
  6. zigbee Zstack 中串口操作的深度解析、一
  7. html5编辑器(图片编辑器基于canvas)
  8. html表单有几部分组成,网页制作时表单由哪两部分组成
  9. 手机上html满屏飘爱心代码,微信满屏爱心怎么弄?微信满屏爱心特效方法步骤...
  10. vim的异常退出处理