当前位置: 首页 > news >正文

Xilinx DCI技术

Xilinx DCI技术

  • DCI技术概述
    • Xilinx DCI技术实际使用
    • 某些Bank特殊DCI要求
  • DCI级联技术
  • DCI端接方式
    • 阻抗控制驱动器(源端接)
    • 半阻抗控制阻抗驱动器(源端接)
    • 分体式DCI(戴维宁等效端接到VCCO/2)
    • DCI和三态DCI(T_DCI)
  • Vivado设置DCI与内部参考电压
    • DCI与内部参考电压
    • 创建DCI_CASCADE约束
    • 创建INTERNAL_VREF约束

DCI技术概述

随着FPGA容量越来越大,系统时钟速度越来越快,PC电路板设计和制造更加困难。随着更快的信号边沿速率,保持信号完整性成为关键问题。PC电路板必须恰当的端接避免反射和振铃。如下图为信号过冲波形。
在这里插入图片描述
为了端接PCB走线,附加的电阻需要添加到接收器或者驱动器以匹配走线阻抗。然而随着随着器件I/O数量增加,附加的电阻会增加电路板面积和组件数量,在某些情况下增加电路板尺寸是不可能的。为了解决此问题达到更好的信号完整性,Xilinx开发了数字阻抗控制(DCI,Digitally Controlled Impedance)技术。包括两个功能:

  • 控制驱动器的输出阻抗
  • 为驱动器或发送器添加一个并行端接,在传输线上得到精确的特征阻抗匹配,以提高信号完整性。

基于I/O标准,DCI可以控制输出驱动阻抗或者添加一个并行端接在驱动器或者接收器,最终的目标都是精确匹配传输线阻抗,保证信号传输完整性。DCI主动调整I/O内部的阻抗,以校准VRN和VRP引脚上的外部精密参考电阻。它可以补偿因逻辑处理、温度和电压变化而引起的I/O阻抗变化。

对于可控阻抗驱动器的I/O标准,DCI控制驱动器阻抗匹配两个参考电阻,或者对于某些标准,匹配一半这些参考电阻的值。

对于使用可控并行端接I/O标准,DCI为驱动器和接收器提供并行端接。这消除了电路板上端接电阻,较小了PCB布线的难度和器件数量,并且改善信号完整性。DCI特性只能在HP bank中应用,HR bank不具有该特性。

HR bank虽然没有DCI功能,但也支持内部的阻抗匹配,也称为IN_TERM。它和DCI差异可以总结为不支持自动校正和补偿,只是固定40欧、50欧和60欧,通过约束方式来调整。当然,这里我们需要选择支持IN_TERM的电气标准。
NET "pad_net_name"IN_TERM=“UNTUNED_SPLIT_50”;

Xilinx DCI技术实际使用

在每个bank中,DCI使用两个多功能参考管脚控制驱动器阻抗或者并行端接值。N参考管脚(VRN)必须通过参考电阻上拉到VCCO,P参考管脚(VRP)必须通过另外一个参考电阻下拉到GND。每个参考电阻的值等于电路板走线特性阻抗或者2倍于特征阻抗值。

在设计中实现DCI:

  • 分配DCI I/O标准到HP bank
  • 将VRN多功能管脚通过精确电阻上拉到该bank的VCCO电源轨
  • 将VRP多功能管脚通过精确电阻下拉到GND

下面的部分内容将讨论如何决定不同I/O标准的VRN和VRP管脚的精确电阻值。同一个bank内的所有DCI标准共享相同的外部精确电阻。如果在相同的I/O bank列中,几个I/O bank使用DCI,并且这几个bank使用相同的VRN/VRP电阻值,则内部VRN/VRP节点可以级联,此时,这同一列中的所有 I/O bank要求的精确电阻只需要一对管脚连接,无需每个I/O bank都要连接精确电阻。这种特性称为DCI级联。该部分也会描述如何判定I/O bank位于相同的I/O bank列中。如果DCI I/O标准在该bank中使用,则该bank可以作为普通I/O使用。

DCI通过选择打开或关闭I/O内部的晶体管调整I/O阻抗,该阻抗匹配外部参考电阻。该调整发生在器件启动时。默认情况下,DONE管脚不会拉高直到第一部分阻抗调整完毕。DCI校准可以通过例化DCIRESET原句实现复位。

DCI配置输出驱动器有以下两种类型:

  • 控制阻抗驱动器(源端接)
  • 使用半阻抗控制阻抗驱动器(源端接)

对于支持并行端接的I/O标准,DCI产生一个戴维宁等效或者分割阻抗到VCCO/2。

某些Bank特殊DCI要求

如果用户将任何bank14或者15(任何器件)或者bank11,12,17,18,20和21(SSI技术器件)的I/O标准设计为DCI I/O,则DCIRESET原句应该包含在设计中。这种情况下,设计应该产生RST复位脉冲给DCIRESET原句,直到该原句产生LOCKED信号后,才可以将这些管脚作为DCI标准 I/O使用。这是因为这些类型的bank I/O在器件正常初始化时没有进行初始化DCI校准功能。

DCI级联技术

使用DCI I/O标准的7系列FPGA HP I/O Bank可以选择从另一个HP I/O Bank导出DCI阻抗值。如图所示。内部分配的数控总线通过bank控制每个I/O的阻抗。下图为单个bank内的DCI使用。
在这里插入图片描述
使用DCI级联,一个I/O bank(主bank)必须将VRN/VRP管脚连接到外部参考电阻。其他和主bank在同一列的I/O bank(Slave banks)可以使用DCI标准,并且阻抗值和主bank阻抗相同。这些从bank无需将VRN/VRP管脚连接外部电阻,级联的DCI阻抗控制来自I/O主bank。下图显示了多个I/O bank实现DCI级联,其中B bank为主bank,A和C为从bank。
在这里插入图片描述
使用DCI级联时,推荐遵循以下指导:

  • DCI级联只能用于同一列中的HP I/O banks
  • DCI级联不能跨过器件边界,特别大容量器件,如Virtex-7器件
  • 主、从bank必须具有相同的VCCO和VREF电压
  • 同一HP I/O列中的I/O bank,不使用DCI标准的banks不用遵循VCCO和VREF电压
  • 所有主、从bank都必须满足DCI I/O bank兼容性规则
  • Xilinx推荐未使用的bank应该供电,因为不使用的I/O bank的VCCO不供电会降低这些管脚的ESD管脚保护等级。如果bank未供电,级联的DCI任然可以通过未供电的bank。

DCI端接方式

下图为DDR3 VRP和VRN的连接和阻值
在这里插入图片描述
下图为SSTL18_I和SSTL18_II两种电气标准的DCI应用对比
在这里插入图片描述

阻抗控制驱动器(源端接)

为了优化高速或者高性能应用信号完整性,驱动器必须有输出阻抗以匹配传输线特征阻抗,否则由于阻抗不连续将会引起信号反射。为了解决此问题,设计者有时需要在高驱动,低阻抗驱动器放置外部串行端接电阻。该电阻的阻值和驱动器输出阻抗之和应该和传输线阻抗相等。

DCI I/O标准支持:LVDCI_15/LVDCI_18/HSLVDCI_15/HSLVDCI_18/HSUL_12_DCI/DIFF_HSUL_12_DCI。

下图举例了控制阻抗驱动器(DCI驱动器)。
在这里插入图片描述

半阻抗控制阻抗驱动器(源端接)

该端接方式支持LVDCI_DV2_15和LVDCI_DV2_18电平标准。下图举例了这种端接方式驱动器(半阻抗DCI驱动器),其中R等于2×Z0,Z0为传输线阻抗。
在这里插入图片描述

分体式DCI(戴维宁等效端接到VCCO/2)

一些I/O标准(例如,HSTL和SSTL)要求输入端接电阻R上拉到VTT电压,即VCCO/2电压,如下图所示,输入端接到VCCO/2,未使用DCI。
在这里插入图片描述
上图为等效的戴维宁并行端接,为了满足图中要求,通常将VRN/VRP管脚连接100Ω精密电阻,支持DCI分立端接的标准如下图所示,所有支持分立端接的DCI I/O标准。
在这里插入图片描述
Xilinx 7系列器件分立端接DCI举例如下图所示。输入端接DCI控制,外部VRN/VRP电阻 =2R。
在这里插入图片描述

DCI和三态DCI(T_DCI)

I类SSTL和HSTL I/O标准只支持单向信号,它们要么只能作为输入或者只能作为输出,不支持双向。I类SSTL和HSTL I/O只支持输入分立端接DCI。II类SSTL和HSTL(或者SSTLII和HSTLII)支持单向和双向信号,该标准信号支持输入、输出、双向管脚分立端接DCI。使用DCI分离端接(外接电阻VRN/VRP = 2R)如下图所示。
在这里插入图片描述
当使用分立端接驱动时,DCI只控制端接阻抗,不控制驱动器。T_DCI只用于双向I/O管脚。对于单向输入管脚可以使用DCI版本标准,对于单向输出管脚non-DCI和DCI版本表均可分配。支持分离端接DCI I/O标准如下图所示,支持分离端接DCI I/O标准。
在这里插入图片描述
支持分立T_DCI I/O标准如下图所示。注意:T_DCI标准只能用于双向管脚。
在这里插入图片描述

Vivado设置DCI与内部参考电压

DCI与内部参考电压

带有差分输入缓冲区的单端I/O需要一个参考电压Vref,可以使用专用的Vref管脚为每个I/O bank提供参考电压。另外也可以使用INTERNAL_VREF约束来生成内部参考电压,这样PCB上就不需要为Vref提供电源线,也可以释放Vref管脚作为通用I/O使用。每个bank都可以设置一个可选的内部参考电压。

ug471和ug571分别介绍了7系列和UltraScale系列中DCI和INTERNAL_VREF的详细信息。下文介绍在Vivado中设置与之相关的DCI_CASCADE和INTERNAL_VREF属性。

创建DCI_CASCADE约束

DCI_CASCADE约束可以将多个相邻的I/O bank级联在一起,共享DCI参考电压。其中包含DCI参考电压的称作主bank;级联的其它I/O bank称作从bank。每个级联链都必须有一个主bank和至少一个从bank。

在Device Constraints窗口中,选择DCI Cascade:
在这里插入图片描述
Unused文件夹中显示了未添加到DCI级联链中的I/O bank,选择需要添加的所有bank,右键->Add DCI Cascade创建级联链,弹出如下窗口:
在这里插入图片描述
选择主bank,点击OK则创建好级联链,显示在窗口中:
在这里插入图片描述
或者直接将某一bank拖动到另一bank上也可以完成相应操作。设置DCI_CASCADE约束对应的XDC命令如下:

set_property DCI_CASCADE {33} [get_iobanks 34]

get_iobanks选择的为主bank,{}中的是添加到级联链中的从bank,以空白为间隔。上述创建的约束需要点击保存,如果设计已经有了XDC约束文件,约束命令会添加到文件末尾。

创建INTERNAL_VREF约束

使用INTERNAL_VREF约束可以生成FPGA的内部参考电压。这样就不需要在PCB上提供Vref电源线,且可以释放Vref管脚作为通用I/O使用。

在Device Constraints窗口中选择“Internal VREF”,列出了该芯片支持的内部参考电压,NONE文件夹中的I/O bank表示没有设置INTERNAL_VREF约束。
在这里插入图片描述
创建INTERNAL_VREF约束,只需要将I/O bank拖到对应参考电压的文件夹中即可;拖到NONE中表示撤销参考电压设置。该设置对应着约束命令,需要保存到XDC约束文件中,示例如下:

set_property INTERNAL_VREF 0.75 [get_iobanks 14]
set_property INTERNAL_VREF 0.675 [get_iobanks 15]

参考:
Vivado使用技巧(12):设置DCI与内部参考电压
Xilinx 7系列FPGA架构之SelectIO结构(一)

相关文章:

Xilinx DCI技术

Xilinx DCI技术 DCI技术概述Xilinx DCI技术实际使用某些Bank特殊DCI要求 DCI级联技术DCI端接方式阻抗控制驱动器(源端接)半阻抗控制阻抗驱动器(源端接)分体式DCI(戴维宁等效端接到VCCO/2)DCI和三态DCI&…...

Kubernetes Pod 优雅关闭:如何让容器平稳“退休”?

Kubernetes Pod 优雅关闭:如何让容器平稳“退休”? 在 Kubernetes 中,Pod 是应用的基本单元。你可能会遇到需要停止某个 Pod 或容器的情况,可能是因为要更新、调整或故障恢复。在这种情况下,Pod 的优雅关闭&#xff0…...

鸿蒙应用开发(1)

可能以为通过 鸿蒙应用开发启航计划(点我去看上一节) 的内容,就足够了,其实还没有。 可是我还是要告诉你,你还需要学习新的语言 -- ArkTS。 ,ArkTS是HUAWEI开发的程序语言。你需要学习这门语言。这会花费你…...

SimForge HSF 案例分享|复杂仿真应用定制——UAVSim无人机仿真APP(技术篇)

导读 「神工坊」核心技术——「SimForge HSF高性能数值模拟引擎」支持工程计算应用的快速开发、自动并行,以及多域耦合、AI求解加速,目前已实现航发整机数值模拟等多个系统级高保真数值模拟应用落地,支持10亿阶、100w核心量级的高效求解。其低…...

使用 Adaptive Mesh Refinement 加速 CFD 仿真:最佳实践

CFD 仿真中的网格划分挑战 技术的进步正在增强设计探索,数值仿真在优化工程设计方面发挥着至关重要的作用。通常,计算流体动力学 (CFD) 仿真从定制的手工网格开始,具有精细和粗糙的区域,以平衡分辨率和单元…...

前端-动画库Lottie 3分钟学会使用

目录 1. Lottie地址 2. 使用html实操 3. 也可以选择其他的语言 1. Lottie地址 LottieFiles: Download Free lightweight animations for website & apps.Effortlessly bring the smallest, free, ready-to-use motion graphics for the web, app, social, and designs.…...

智能工厂的设计软件 应用场景的一个例子:为AI聊天工具添加一个知识系统 之5

本文要点 前端 问题描述语言 本文继续完善 “描述” ---现在我们应该可以将它称为 “问题problem描述语言 ”。 它 通过对话框的question 引发 表征的issue 的“涌现” 最终 厘清应用程序的“problem”。即它合并了 ISO七层模型中的上面三层,通过将三层 分别形成…...

java web

流程 1.浏览器发送http协议的格式数据和url给服务器软件tomcat 2.浏览器解析http格式数据并创建request和response对象,把数据封装到request对象里。 3.tomcat解析url确定访问路径,如果是静态资源html等,直接将html数据作为http格式响应体返回&#x…...

【嵌入式软件开发】嵌入式软件计时逻辑的两种实现:累加与递减的深入对比

本文主要从四个方面详细阐述了嵌入式软件编程中计时逻辑的两种实现方式:累加和递减。让我为您详细解析各个部分: 1. 基本概念对比 累加方式 从0开始向上计数每个周期增加固定值(通常为1)类似于我们日常生活中的秒表计时方式递减方式 从预设值开始向下计数每个周期减少固定…...

如何将vCenter6.7升级7.0?

vCenter是什么? vCenter是一种虚拟化管理软件,由VMware公司开发和发布。它是VMware vSphere虚拟化平台的核心组件之一,主要用于集中管理和监控虚拟化环境中的虚拟机、虚拟存储和网络资源。vCenter可以实现对多个ESXi主机的集中管理&#xff…...

服务器网卡绑定mode和交换机的对应关系

互联网各领域资料分享专区(不定期更新): Sheet 模式类别 网卡绑定mode共有七种(0~6): bond0、bond1、bond2、bond3、bond4、bond5、bond6 mode详解 mode0 ,即:(balance-rr) Round-robin policy(平衡轮循环策略,需要配置交换机静态聚合) mode…...

Maven (day04)

什么是maven? Maven 是 Apache 旗下的一个开源项目,是一款用于管理和构建 java 项目的工具。 官网:Welcome to Apache Maven – Maven https://maven.apache.org/ Maven的作用 依赖管理(方便快捷的管理项目依赖的资源(jar包)&#xff…...

Echart实现3D饼图示例

在可视化项目中,很多地方会遇见图表;echart是最常见的;这个示例就是用Echart, echart-gl实现3D饼图效果,复制即可用 //需要安装,再引用依赖import * as echarts from "echarts"; import echar…...

UE5 Debug的一些心得

1、BUG粗略可分为两类: 一种是显性的,编译直接就通不过,必须马上解决。 第二种是隐性的,新功能完成后,编译成功顺利运行,洋洋自得,而问题隐藏在幕后,测试之后才逐渐发现有问题&…...

java中多线程的一些常见操作

Java 中的多线程是通过并发编程来提高应用程序的效率和响应速度。Java 提供了多个机制和类来支持多线程编程,包括继承 Thread 类、实现 Runnable 接口、使用线程池等。以下是 Java 中一些常见的多线程操作和应用场景。 1. 创建线程 1.1 通过继承 Thread 类创建线程…...

【gopher的java学习笔记】什么是Spring - IoC和DI

一聊到java,离不开的一个东西就是spring;当我想了解什么是spring的时候,一查,基本上都是围绕着两个词来展开的:IoC和AOP。 对于我自己来说,AOP我觉得比较好理解,因为不管是之前写golang还是pyt…...

【开源免费】基于SpringBoot+Vue.JS校园社团信息管理系统(JAVA毕业设计)

本文项目编号 T 107 ,文末自助获取源码 \color{red}{T107,文末自助获取源码} T107,文末自助获取源码 目录 一、系统介绍二、数据库设计三、配套教程3.1 启动教程3.2 讲解视频3.3 二次开发教程 四、功能截图五、文案资料5.1 选题背景5.2 国内…...

设计模式 创建型 工厂模式(Factory Pattern)与 常见技术框架应用 解析

工厂模式(Factory Pattern)是一种创建型设计模式,它提供了一种封装对象创建过程的方式,使得对象的创建与使用分离,从而提高了系统的可扩展性和可维护性。 一、核心思想 工厂模式的核心思想是将“实例化对象”的操作与…...

pip 下载安装时使用国内源配置

pip 是 Python 的包管理工具,用于安装和管理第三方库。然而,在某些情况下,默认的 PyPI(Python Package Index)源可能由于网络原因导致下载速度慢或者连接不稳定。幸运的是,我们可以轻松地配置 pip 使用国内…...

【数据结构】数据结构简要介绍

数据结构是计算机科学中用于组织、管理和存储数据的方式,以便于高效地访问和修改数据。 数据结构的分类: 数据结构可以大致分为两类:线性结构和非线性结构。 1. 线性结构 线性结构中的数据按顺序排列,每个元素有唯一的前驱和后…...

数据分析-Excel

数据类型和函数初步 Excel中有文本类型和数值类型–但是无法用肉眼分辨出来isnumber来区分是否是数值类型text和value函数可以完成数值类型以及文本类型的转换单元格第一位输入’方式明确输入的是文本sum函数必须是数值类型 文本连接-and-or-not-if-mod-max函数 字符串的连接…...

Yocto项目—机器配置文件详解

引言 在Yocto项目中,机器配置文件(Machine Configuration File)是系统定制化的重要组成部分,直接决定了构建的目标平台硬件特性和能力。本文将深入探讨Yocto项目中的机器配置文件,从其作用、结构到具体配置方法&#…...

30天开发操作系统 第 10 天 -- 叠加处理

前言 得益于昨天的努力,我们终于可以进行内存管理了。不过仔细一看会注意到,bootpack.c都已经有254行了。笔者感觉这段程序太长了,决定整理一下,分出一部分到memory.c中去。(整理中)…好了,整理完了。现在bootpack.c变…...

第十讲 比特币的社会与文化影响

比特币作为一种革命性的数字货币,不仅在经济领域产生了深远的影响,也在社会和文化层面引发了广泛的讨论和变革。本文将探讨比特币如何塑造我们的社会观念、文化趋势以及对未来的展望。 一、比特币与社会观念的变迁 比特币的出现挑战了传统的货币观念和…...

Unity2D无限地图的实现(简单好抄)

说明:本教程实现的是在2D游戏中玩家在游戏中上下左右移动的时候自动进行地图拼接的功能,如果你只想实现左右移动的无限地图,那么这篇博客也能起到一定参考作用。 思路 第一步: 创建一个10*10的2D游戏对象当做地图 第二步创建一个…...

TCP网络编程(一)—— 服务器端模式和客户端模式

这篇文章将会编写基本的服务器网络程序,主要讲解服务器端和客户端代码的原理,至于网络名词很具体的概念,例如什么是TCP协议,不会过多涉及。 首先介绍一下TCP网络编程的两种模式:服务器端和客户端模式: 首先…...

03-类和对象(上)

一、类的概述 1.类的引入 类的封装:将数据和方法封装在一起,加以权限区分,用户只能通过公共方法访问私有数据。 为什么要将数据和方法封装在一起呢,而且还要通过公共方法才能访问私有数据? C语言中数据和方法分开可…...

PCL点云库入门——PCL库点云滤波算法之统计滤波(StatisticalOutlierRemoval)

1、算法原理 统计滤波算法是一种利用统计学原理对点云数据进行处理的方法。它主要通过计算点云中每个点的统计特性,如均值、方差等,来决定是否保留该点。算法首先会设定一个统计阈值,然后对点云中的每个点进行分析。如果一个点的统计特性与周…...

【机器学习】Kaggle实战信用卡反欺诈预测(场景解析、数据预处理、特征工程、模型训练、模型评估与优化)

构建信用卡反欺诈预测模型 建模思路 本项目需解决的问题 本项目通过利用信用卡的历史交易数据,进行机器学习,构建信用卡反欺诈预测模型,提前发现客户信用卡被盗刷的事件。 项目背景 数据集包含由欧洲持卡人于2013年9月使用信用卡进行交的…...

【RISC-V CPU debug 专栏 4 -- RV CSR寄存器介绍】

文章目录 Overview1. CSR寄存器访问指令2. 为何CSR地址不是4字节对齐(1) CSR寄存器空间是独立的地址空间(2) 节省编码空间(3) 对硬件实现的简化 3. CSR的物理大小和对齐无关4. RISC-V 中的 GPR 寄存器及其作用GPR 的详细用途CSR(控制状态寄存器)与 GPR 的…...