一句话或一张图讲清楚系列之——IDELAYE2的用法

主要参考:

Xilinx IDELAYE2应用笔记及仿真实操-CSDN博客

xilinx原语介绍及仿真——IDELAYE2 & IDELAYCTRL_idelayctrl原语使用说明-CSDN博客

1 原理

        IDELAYE2一般用于对输入lvds高速信号进行延时微调,可以把时钟和数据都单独微调;如果数据在PCB布线时保证等长,也可以只对时钟进行延时微调;如果布线等长,不微调也可以。

        FPGA的每个引脚都有一个IDELAYE2,FPGA外部输入信号可以通过IDELAYE2的IDATAIN引脚进入IDELAYE2进行延时,FPGA内部逻辑可以通过IDELAYE2的DATAIN引脚进入IDELAYE2进行延时。

        延时值可以在综合实现前通过例化属性IDELAY_VALUE决定并固定不变;或在运行过程中通过LD控制引脚加载CNTVALUEIN引脚上的值,还可以通过CE与INC引脚的配合对延时值进行递增或递减。

2 系统框图

常与ISERDESE2配合使用,先微调,再串转并


3    模块引脚

4    引脚说明

LD在FIX模式下无效,VARIABLE模式下可以加载属性IDELAY_VALUE定义的延时值,VARIABLE_LOAD模式下可以加载引脚CNTVALUEIN上的延时值。

DE和INC配合使用,可在VARIABLE和VARIABLE_LOAD模式下递增或递减延时值。

端口名称 I/O位宽描述
CI1时钟输入,用于VARIABLE、VAR_LOAD、VAR_LOAD_PIPE模式,LOAD模式只需要时钟
REGRSTI1Pipeline寄存器的复位,只用于VAR_LOAD_PIPE模式
LDI1在VARIABLE模式,加载IDELAYE2延时的值;LD、CE、INC配合使用
CEI1使能增加/减少功能
INCI1增加或减少延时值
CINVCTRLI1动态转换时钟极性
CNTVALUEINI5动态加载延时值,用于VAR_LOAD模式
IDATAINI1需要延时的输入信号来自IBUF
DATAINI1需要延时的输入信号来自FPGA逻辑
LDPIPEENI1使能PIPELINE寄存器用于加载数据
DATAOUTO1延时后的信号输出
CNTVALUEOUT O5延时值的输出,用于监控

5    属性

IDELAYE2 #(
      .CINVCTRL_SEL("FALSE"), // Enable dynamic clock inversion (FALSE, TRUE)
      .DELAY_SRC("IDATAIN"), // Delay input (IDATAIN, DATAIN)
      .HIGH_PERFORMANCE_MODE("TRUE"), // Reduced jitter ("TRUE"), Reduced power ("FALSE")
      .IDELAY_TYPE("FIXED"), // FIXED, VARIABLE, VAR_LOAD, VAR_LOAD_PIPE
      .IDELAY_VALUE(0), // Input delay tap setting (0-31)
      .PIPE_SEL("FALSE"), // Select pipelined mode, FALSE, TRUE
      .REFCLK_FREQUENCY(200.0), // IDELAYCTRL clock input frequency in MHz (190.0-210.0, 290.0-310.0).
      .SIGNAL_PATTERN("DATA") // DATA, CLOCK input signal
   )

属性取值范围描述
IDELAY_TYPEFIXED
VARIABLE
VAR_LOAD
VAR_LOAD_PIPE
FIXED    FIXED:固定延时值
VARIABLE:动态调节延时值
VAR_LOAD:动态加载延时值
VAR_LOAD_PIPE:与VAR_LOAD类似
DELAY_SRCIDATAIN
DATAIN
信号来源
HIGH_PERFORMANCE_MODETRUE
FALSE
减少抖动或减少功耗
IDELAY_VALUE0~31

FIXED模式下制定延时值

VARIABLE模式下,加载延时值
另两种模式不适用,置0

SIGNAL_PATTERNDATA
CLOCK
输入信号是数据还是时钟
REFCLK_FREQUENCY190~210
290~310
390~410

参考时钟,决定延时精度

200MHz,78ps
300MHz,52ps

CINVCTRL_SELTRUE
FALSE
切换时钟极性
PIPE_SELTRUE
FALSE 
只用于选择VAR_LOAD_PIPE模式

6    延时精度

delay_resolution = 1/(32 * 2 * f)*1000000

其中f是参考时钟频率,即IDELAYCTRL的引脚REFCLK上的时钟频率,单位是MHz,delay_resolution的单位是ps

例如:

f=200MHz时,delay_resolution=78ps

f=300MHz时,delay_resolution=52ps

f=400MHz时,delay_resolution=39ps

7 延时值

总延时值还要加上固定的600ps(与参考时钟频率无关)

delay_time=600ps + tap * delay_resolution

8    延时模式

属性IDELAY_TYPE可以选择不同的延时模式

8.1    FIXED固定延迟模式

延时值由属性IDELAY_VALUE决定,且固定不变。不可通过加载引脚LD加载CNTVALUEIN引脚上的输入延时值,也不可通过递增/递减引脚CE和INC改变延时值。输出延时值CNTVALUEOUT始终保持不变。

8.2    VARIABLE可变延迟模式

延时值可通过加载引脚LD加载属性IDELAY_VALUE定义的值,也可通过递增/递减引脚CE和INC改变延时值。输入引脚上的延时值CNTVALUEIN无效。

8.3    VARIABLE_LOAD可加载、可变延迟模式

与VARIABLE模式的区别是LD加载的是输入引脚上的延时值CNTVALUEIN。

9 IDELAYCTRL

IDELAYCTRL模块使用用户提供的REFCLK,连续校准其区域内的IDELAY和ODELAY,以减少工艺、电压和温度变化的影响。


 
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/2093.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

pdf加水印怎么加?自己原创的PDF资料分享到网络上需要采取一些版权保护的措施,添加水印就是个不错的选择

一,水印的基本概念 水印通常是一种用于标识文件来源、版权信息或防止非法复制的标记。它可以是文字、图形或图像等形式,以半透明或半淡化的方式嵌入到文件中,既不影响文件的正常阅读,又能起到标识和保护的作用。 二,…

熊猫电竞赏金赛系统源码 APP+H5双端源码附搭建教程下载

熊猫电竞赏金系统简介 熊猫电竞赏金电竞系统 赏金赛源码,用户通过平台打比赛,赢了获得奖金奖励, 金币赛、赏金赛、vip赛等种赛事 可开王者荣耀、和平精英比赛 支持1v1、单排、双排组、战队排等多种比赛模式 支持QQ区、微信区 游戏玩的好…

【前后端】django前后端交互

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、django是什么二、django前后端交互指引三、总结 前言 随着开发语言及人工智能工具的普及,使得越来越多的人会主动学习使用一些开发语言&#x…

《庆余年》开发衍生短剧,阅文迈向短剧市场的一大步

《庆余年》竟然也要拍短剧了。 据悉,《庆余年》衍生短剧《庆余年之少年风流》预计将于5月1日开机,等了五年都没等到《庆余年2》,没想到先等到了衍生短剧。 由组讯消息可知,《庆余年之少年风流》讲述的是少年庆帝李云潜“扮猪吃老…

Redis入门到通关之数据结构解析-IntSet

文章目录 概述IntSet升级简易源码总结 欢迎来到 请回答1024 的博客 🍎🍎🍎欢迎来到 请回答1024的博客 关于博主: 我是 请回答1024,一个追求数学与计算的边界、时间与空间的平衡,0与1的延伸的后端开发者。 …

【SAP HANA 15】SQL锁表 (查询,解锁)

锁表查看 --锁表检查语句 SELECT C.CONNECTION_ID,PS.STATEMENT_STRINGFROM M_CONNECTIONS C JOIN M_PREPARED_STATEMENTS PSON C.CONNECTION_ID PS.CONNECTION_ID AND C.CURRENT_STATEMENT_ID PS.STATEMENT_IDWHERE C.CONNECTION_STATUS RUNNINGAND C.CONNECTION_TYPE Re…

pyCharm导入pyspark中的sparkconf和sparkcontext错误

背景:学习黑马程序员python课程的pyspark实战部分时按照下图导入pysark包时发现sparkconf和sparkcontext无法导入和运行。 首先想到是不是在CMD窗口下载的pySpark路径及安装是否正确? 通过下图发现第三方库都安装正确,然后就考虑库的路径&a…

反射理解【精细】

目录 什么是反射 从编程的角度来说 : 从生活的角度来说 : Class类 记住一句话: 获取Class对象的三种方法 : 通过Class.forName("包名.类名")获取class对象 (方法一) 通过类名.class获取Class对象(方法二) 通过 对象.class …

使用Jest测试框架测试JS项目

前言 JavaScript的测试框架有很多,这里主要记录一些自己在初次使用jest时遇到的一些问题。详细使用文档可以参照官方说明文档。 简介 Jest 是一款优雅、简洁的 JavaScript 测试框架。 Jest 支持 Babel、TypeScript、Node、React、Angular、Vue 等诸多框架&#…

深度学习之基础模型——循环神经网络RNN

相关资料 (1)What are Recurrent Neural Networks? | IBM (2)浅析循环神经网络(RNN)的反向求导过程 - 知乎 (zhihu.com) 总共有四篇 (3)循环神经网络(RNN)浅析 - 简书 (jianshu.co…

【React】Day6

项目搭建 基于CRA创建项目 CRA是一个底层基于webpack快速创建React项目的脚手架工具 # 使用npx创建项目 npx create-react-app react-jike# 进入到项 cd react-jike# 启动项目 npm start调整项目目录结构 -src-apis 项目接口函数-assets 项目资源文件&…

springboot3 集成knife4j

knife4j介绍 Knife4j是一个集Swagger2 和 OpenAPI3为一体的增强解决方案。 springdoc地址:OpenAPI 3 Library for spring-boot Knife4j官网地址:Knife4j 集Swagger2及OpenAPI3为一体的增强解决方案. | Knife4j 环境介绍 java:17 Spring…

java 溯本求源之基础(十八)之Monitoring--jmc

1.JMC概述 JMC全称Java Mission Control,集成了多个功能强大的组件,其中最核心的两部分是管理控制台和Java Flight Recorder。管理控制台允许开发者实时监控应用的运行状态,捕捉各种性能指标;而Java Flight Recorder则提供了一种高…

ELK日志系统的搭建

文章目录 简介软件准备安装JDK下载Elasticsearch软件修改配置信息创建ElasticSearch运行用户、启动服务添加防火墙策略ElasticSearch-Head插件安装 安装Kibana下载软件包修改配置启动服务 安装Logstash安装包下载安装服务配置修改配置pipeline流水线服务配置文件 启动服务 全流…

腾讯云轻量应用服务器和CVM S5服务器有什么区别?

腾讯云轻量应用服务器和CVM云服务器S5有什么不同?性能哪个更好一些?CVM S5云服务器CPU采用2.5GHz主频的Intel Xeon Cascade Lake或者Intel Xeon Cooper Lake处理器,轻量不支持指定CPU,从功能、内网连通性、集群及公网带宽等方面对…

邂逅JavaScript逆向爬虫-------基础语法篇之面向对象

目录 一、概念二、对象的创建和操作2.1 JavaScript创建对象的方式2.2 对象属性操作的控制2.3 理解JavaScript创建对象2.3.1 工厂模式2.3.2 构造函数2.3.3 原型构造函数 三、继承3.1 通过原型链实现继承3.2 借用构造函数实现继承3.3 寄生组合式继承3.3.1 对象的原型式继承3.3.2 …

并发编程之线程通信及Condition的原理分析

1. synchronized中的线程通信 调用wait方法会使线程处于等待状态&#xff0c;直到另一个线程调用notify线程才会唤醒等待中的某个线程&#xff0c;生产者和消费者模型可以很好的使用到该例子。 生产者代码: public class Producer implements Runnable {private Queue<Str…

虚拟现实(VR)的应用场景

虚拟现实&#xff08;VR&#xff09;技术创建和体验三维虚拟世界的计算机仿真技术。用户通过佩戴VR头显等设备&#xff0c;可以完全沉浸在虚拟世界中&#xff0c;并与虚拟世界中的物体进行交互。VR技术具有广泛的应用前景&#xff0c;可以应用于各行各业。以下是一些VR的应用场…

STM32标准库编程与51单片机直接写寄存器的区别和联系

简介&#xff1a; 在学完51单片机之后&#xff0c;我们去学习32的时候&#xff0c;会发现编程的方法有很大的区别&#xff0c;让人非常的不适应&#xff0c;但是通过不断的调用相应外设的库函数之后&#xff0c;你也可以去编程STM32&#xff0c;来实现功能&#xff0c;但是你真…

SQL的基础语句

1、select语句 select colums from table_name 2、条件语句 #查询出查询出用户id为1和3的用户记录 IN 操作符允许我们在 WHERE 子句中规定多个值。 select * from student where id in (1,3) #查询出所有姓王的同学 模糊查询 like 通配符(% 任意多个字符 _单个字符) #下例…