K7 IDELAY2 仿真实验
FPGA类型
xilinx K7
仿真记录
模块例化
IDELAYE2 #(.CINVCTRL_SEL("FALSE"), // Enable dynamic clock inversion (FALSE, TRUE).DELAY_SRC("IDATAIN"), // Delay input (IDATAIN, DATAIN).HIGH_PERFORMANCE_MODE("FALSE"), // Reduced jitter ("TRUE"), Reduced power ("FALSE").IDELAY_TYPE("FIXED"), // FIXED, VARIABLE, VAR_LOAD, VAR_LOAD_PIPE.IDELAY_VALUE(31), // 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)IDELAYE2_inst (.CNTVALUEOUT(), // 5-bit output: Counter value output.DATAOUT(data_out), // 1-bit output: Delayed data output.C(1'b1), // 1-bit input: Clock input.CE(1'b1), // 1-bit input: Active high enable increment/decrement input.CINVCTRL(1'b0), // 1-bit input: Dynamic clock inversion input.CNTVALUEIN(0), // 5-bit input: Counter value input.DATAIN(1'b0), // 1-bit input: Internal delay data input.IDATAIN(data_in), // 1-bit input: Data input from the I/O.INC(1), // 1-bit input: Increment / Decrement tap delay input.LD(1), // 1-bit input: Load IDELAY_VALUE input.LDPIPEEN(1'b0), // 1-bit input: Enable PIPELINE register to load data input.REGRST(1'b0) // 1-bit input: Active-high reset tap-delay input);
modelsim仿真波形
仿真结果
rgmii_rx_ctl_delay和rgmii_rxd_delay信号是RGMII接口输入信号rgmii_rx_ctl和rgmii_rxd经过IDELAYE2延迟的信号,RGMII接口输出信号rgmii_tx_ctl和rgmii_txd是rgmii_tx_ctl_nodelay和rgmii_txd_nodelay信号经过ODELAYE2延迟的信号,IDELAYE2和ODELAYE2的输入输出本身有600ps的延迟,另外可以通过设置IDELAYE2和ODELAYE2里的IDELAY_VALUE和ODELAY_VALUE参数来增加延迟,这两个参数取值在0到31之间,表示增加几个标准延迟tap,tap与参考时钟频率f之间的关系是:tap=1/(64*f),单位为ps,参考时钟频率f一般为200MHz或300MHz,如果f为200M,则tap=78ps,如果f为300M,则tap=52ps。以200M为例,当IDELAY_VALUE/ODELAY_VALUE参数值设为0,则IDELAYE2/ODELAYE2的延迟为600ps,当IDELAY_VALUE/ODELAY_VALUE参数值设为31,则IDELAYE2/ODELAYE2的延迟为(600+31*78)ps。在本仿真中,IDELAY_VALUE设的是8,ODELAY_VALUE设的是24,因此IDELAYE2的延迟为(600+8*78)=1224ps,ODELAYE2的延迟为(600+24*78)=2472ps。这两个参数值在正式工程中可根据实际情况调整。
仿真文件
//
// Design Name:
// Module Name: example
// Project Name:
// Target Devices: xc7k325tffg900-2
// Tool Versions: Vivado 2016.4
//
`timescale 1ns/1psmodule tb_idelay();//**************************** Wire & reg Declarations ******************localparam IDELAY_EN = "YES" ;reg lvds_clk_p ;wire lvds_clk_n ;wire lvds_clk_ibuf ;wire lvds_clk_dly ;reg clk_200m ;wire [4:0] delay_tapout ;reg [4:0] delay_tapin ;reg rst ;
//******************************** main code *****************************initial begin lvds_clk_p = 1'b0 ;forever #4000 lvds_clk_p = !lvds_clk_p ;end assign lvds_clk_n = !lvds_clk_p ; initial begin clk_200m = 1'b0 ;forever #2500 clk_200m = !clk_200m ; end initial begin rst = 1'b1 ;delay_tapin = 5'd10 ;#1000000 ; rst = 1'b0 ;delay_tapin = 5'd1 ;#1000000 ;delay_tapin = 5'd8 ;#1000000 ;delay_tapin = 5'd15 ;#1000000 ;delay_tapin = 5'd23 ;#1000000 ;delay_tapin = 5'd31 ;#1000000 ;$stop ;end IBUFDS #(.DIFF_TERM("FALSE"), // Differential Termination.IBUF_LOW_PWR("TRUE"), // Low power="TRUE", Highest performance="FALSE" .IOSTANDARD("DEFAULT") // Specify the input I/O standard) IBUFDS_inst (.O(lvds_clk_ibuf), // Buffer output.I(lvds_clk_p), // Diff_p buffer input (connect directly to top-level port).IB(lvds_clk_n) // Diff_n buffer input (connect directly to top-level port));generate if(IDELAY_EN == "YES" )begin : idelay_enable IDELAYE2 #(.CINVCTRL_SEL ( "FALSE" ),// Enable dynamic clock inversion (FALSE, TRUE).DELAY_SRC ( "IDATAIN" ),// Delay input (IDATAIN, DATAIN).HIGH_PERFORMANCE_MODE( "FALSE" ),// Reduced jitter ("TRUE"), Reduced power ("FALSE").IDELAY_TYPE ( "VAR_LOAD" ),// 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 ( "CLOCK" ) // DATA, CLOCK input signal)IDELAYE2_inst (.CNTVALUEOUT ( delay_tapout ), // 5-bit output: Counter value output.DATAOUT ( lvds_clk_dly ), // 1-bit output: Delayed data output.C ( clk_200m ), // 1-bit input: Clock input.CE ( 1'b0 ), // 1-bit input: Active high enable increment/decrement input.CINVCTRL ( 1'b0 ), // 1-bit input: Dynamic clock inversion input.CNTVALUEIN ( delay_tapin ), // 5-bit input: Counter value input.DATAIN ( 1'b0 ), // 1-bit input: Internal delay data input.IDATAIN ( lvds_clk_ibuf), // 1-bit input: Data input from the I/O.INC ( 1'b0 ), // 1-bit input: Increment / Decrement tap delay input.LD ( 1'b1 ), // 1-bit input: Load IDELAY_VALUE input.LDPIPEEN ( 1'b0 ), // 1-bit input: Enable PIPELINE register to load data input.REGRST ( rst ) // 1-bit input: Active-high reset tap-delay input);//(* IODELAY_GROUP = <iodelay_group_name> *) // Specifies group name for associated IDELAYs/ODELAYs and IDELAYCTRLend else begin : idelay_disable assign lvds_clk_dly = lvds_clk_ibuf ;end
endgenerateendmodule
K7 IDELAY2 仿真实验相关推荐
- matlab最小二乘法参数辨识,基于最小二乘法的MATLAB辨识仿真实验
<工业控制计算机>2013 年第 26 卷第 7 期基于最小二乘法的 MATLAB 辨识仿真实验 崔秀美 刘文杰 陈 澄 (苏州大学机电工程学院,江苏 苏州 215021) Experim ...
- 对示波器测量正弦波幅值和相位仿真实验
在昨天博文 使用数字示波器DS6104测量交流信号的幅值和相位 中对于使用示波器测量正弦交流信号的幅值和相位进行了分析和实验研究.但是对测量出的幅值和相位结果中的误差随着示波器的时基( time ba ...
- 物理实验计算机仿真单摆实验,大学物理实验仿真实验实验报告.doc
仿真实验 (单摆测重力加速度和单透镜焦距的测定) 引言 随着计算机应用的普及,在各个应用领域都采用计算机设计和仿真,在大学物理实验课教学中,除了实际操作外还可以进行计算机仿真实验,对有些内容采用仿真实 ...
- matlab搭建sdn,软件定义网络SDN简介和简单仿真实验
阅读: 11,620 SDN是在2009年左右出现的一种新型网络结构,它将数据层面与控制层面分离,使用中央控制器完成网络的操作和管理,并通常采用OpenFlow协议作为其核心通信协议,拥有着集中式控制 ...
- 系统仿真基础与计算机实现,计算机综合仿真实验系统的研究与开发
摘要: 计算机仿真实验系统是实验教学的理想平台.目前,我国高校因扩招而出现实验教学与理论教学比例失衡的问题,且现有自控原理实验设备已不能满足过程控制仿真要求.针对这一现状,本文在对国内外仿真实验室建设 ...
- matlab概率论实验 分别掷硬币1,基于Matlab的概率论仿真实验
-61- 基于Matlab 的概率论仿真实验 可以看到,当z 在区间度是线性减函数,仿真结果与之吻合很好.再考虑一个离散的例子:抛掷两个均匀的骰子,考虑最小点数的分布.在等可能的点. 采用Matlab ...
- 计算机应用虚拟仿真实验答案,虚拟仿真 实验教学+.ppt
一 二 三 虚拟仿真实验概述 虚拟仿真实验教学 虚拟仿真实验中心建设 一 二 三 虚拟仿真实验概述 虚拟仿真实验教学 虚拟仿真实验中心建设 随着计算机.互联网等先进技术的迅速发展和大面积普及推广,虚拟 ...
- 无穷大功率电源matlab仿真,MATLAB-Simulink系统建模与仿真-实验报告
MATLAB/Simulink 电力系统建模与仿真 实验报告 姓名: ****** 专业:电气工程及其自动化 班级: ******************* 学号:****************** ...
- 虚拟计算机组成,计算机组成原理虚拟仿真实验平台研究
摘要: 现如今,随着现代化信息技术的快速发展,为解决传统实验教学的不足,各高等院校逐渐推出了一种新型的网上虚拟实验教学模式.虚拟实验是一种借助于网络技术,虚拟现实技术以及多媒体技术而模拟真实实验场景的 ...
最新文章
- Linux驱动技术(一) _内存申请
- 有道概率题:一个有趣的抛硬币问题
- Spark RDD使用详解4--Key-Value型Transformation算子
- 办公室分配方案python_Python自动化办公室(1),python,一
- Substitute Algorithm(替换算法)
- CentOS 7 安装 Python 3.6
- 强一致、高可用、自动容灾能力背后,阿里X-Paxos的应用实践
- knx智能照明控制系统电路图_智能照明控制系统应用效果
- 第15届创新英语大赛范文
- 快捷键截屏_笔记本电脑截屏的快捷键是什么
- 【图像隐写】基于matlab DWT数字水印嵌入+攻击+提取【含Matlab源码 1759期】
- matlab如何求解定积分,matlab如何求解定积分
- java1.4.2中文下载_j2sdk1.4.2-j2sdk下载1.4.2_19官方安装版-西西软件下载
- MFC程序设计——标尺的例子
- python菜鸟教程网址是什么-Python菜鸟教程
- three.js将fbx文件转为glb文件,并且压缩处理
- 计算机软件方面的基金,天天基金
- 参数错误。 (异常来自 HRESULT:0x80070057 (E_INVALIDARG))
- 通过调试微信小程序示例代码解析flex布局参数功能(一)
- oracle读写速率,Oracle、PostgreSQL与Mysql数据写入性能对比
热门文章
- android 开源库osmdroid绘制点线面(比例尺,缩小放大,导航图标等)
- 干货(附源代码) | 爬取一万条b站评论,分析9.7分的新番凭啥这么火?
- 【Java基础1】Java开发工具包JDK
- 蓝桥杯2020年填空题既约分数
- 出门问问CEO李志飞:巨头失控打架时 我们就修炼内功
- u-collapse折叠面板双层for循环渲染无法加载内层
- 阿里P8大神给予迷茫的程序员一些中肯建议,不要再虚度光阴了
- iDoctor李旭东:打造管理慢性病的平板电脑
- Office 2003 sp3(CVE-2012-0158)漏洞分析报告
- 2021年高考防骗预警,6大骗局,防骗指南,考生、家长请注意