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

LVDS接口总结--(5)IDELAY3仿真

仿真参考资料如下:

 https://zhuanlan.zhihu.com/p/386057087

`timescale 1 ns/1 ps
module tb_idelay3_ctrl();parameter	REF_CLK		=  2.5        ;  // 400MHzparameter	DIN_CLK	    =  3.3        ;  // 300MHzreg			                ref_clk     ;reg			                clk_din     ;reg			                rst     ;wire                        din     ;reg   [8 : 0]               cntvaluein;wire  [8 : 0]               cntalueout  ;wire                        rdy         ;wire                        dout        ;reg   [15 : 0]              test_pattern = 16'h0c55;reg   [3 : 0]               data_cnt = 4'h0;initial beginrst = 1;ref_clk = 0;clk_din = 0;#500;rst = 0;endalways #(REF_CLK/2)  ref_clk = ~ref_clk;
always #(DIN_CLK/2)  clk_din = ~clk_din;always @(posedge clk_din or posedge rst)beginif(rst)data_cnt <= 4'd0;elsedata_cnt <= data_cnt +1'd1;endassign	din = test_pattern[data_cnt];always @(posedge clk_din or posedge rst)beginif(rst)cntvaluein <= 9'd0;else if(data_cnt == 4'd15)cntvaluein <= cntvaluein +1'd1;else;endidelay3_ctrl  u_idelay_ctrl (.ref_clk    ( ref_clk       ),.rst        ( rst           ),.din        ( din           ),.cntvaluein ( cntvaluein    ),.cntalueout ( cntalueout    ),.rdy        ( rdy           ),.dout       ( dout          ));   endmodule

module idelay3_ctrl(input									ref_clk		    ,input									rst		    ,input				            	    din		    ,input       [8 : 0]                     cntvaluein  ,output      [8 : 0]                     cntalueout  ,output                                  rdy         ,output  	                            dout	     );IDELAYCTRL #(.SIM_DEVICE("ULTRASCALE")  // Set the device version for simulation functionality (ULTRASCALE)) inst_IDELAYCTRL (.RDY(rdy), 					// 1-bit output: Ready output.REFCLK(ref_clk), 	// 1-bit input: Reference clock input.RST(rst) 		// 1-bit input: Active high reset input);	IDELAYE3 #(.CASCADE("NONE"),               // Cascade setting (MASTER, NONE, SLAVE_END, SLAVE_MIDDLE).DELAY_FORMAT("TIME"),          // Units of the DELAY_VALUE (COUNT, TIME).DELAY_SRC("IDATAIN"),          // Delay input (DATAIN, IDATAIN).DELAY_TYPE("VAR_LOAD"),           // Set the type of tap delay line (FIXED, VARIABLE, VAR_LOAD).DELAY_VALUE(0),                // Input delay value setting.IS_CLK_INVERTED(1'b0),         // Optional inversion for CLK.IS_RST_INVERTED(1'b0),         // Optional inversion for RST.REFCLK_FREQUENCY(400.0),       // IDELAYCTRL clock input frequency in MHz (200.0-800.0).SIM_DEVICE("ULTRASCALE_PLUS"), // Set the device version for simulation functionality (ULTRASCALE,// ULTRASCALE_PLUS, ULTRASCALE_PLUS_ES1, ULTRASCALE_PLUS_ES2).UPDATE_MODE("ASYNC")           // Determines whe     n updates to the delay will take effect (ASYNC, MANUAL,SYNC))IDELAYE3_inst (.CASC_OUT(),       // 1-bit output: Cascade delay output to ODELAY input cascade.CNTVALUEOUT(cntalueout), // 9-bit output: Counter value output.DATAOUT(dout),         // 1-bit output: Delayed data output.CASC_IN(1'd0),         // 1-bit input: Cascade delay input from slave ODELAY CASCADE_OUT.CASC_RETURN(1'd0), // 1-bit input: Cascade delay returning from slave ODELAY DATAOUT.CE(1'b0),                    // 1-bit input: Active-High enable increment/decrement input.CLK(ref_clk),                 // 1-bit input: Clock input.CNTVALUEIN(cntvaluein[8:0]),   // 9-bit input: Counter value input.DATAIN(),           // 1-bit input: Data input from the logic.EN_VTC(!rdy),           // 1-bit input: Keep delay constant over VT.IDATAIN(din),         // 1-bit input: Data input from the IOBUF.INC(1'b0),                // 1-bit input: Increment / Decrement tap delay input.LOAD(1'b1),               // 1-bit input: Load DELAY_VALUE input.RST(1'b0)                  // 1-bit input: Asynchronous Reset to the DELAY_VALUE);endmodule

delay tap =0

127ps

delay tap =1

131ps

delay tap =2

135ps

delay tap =3

139ps

 

delay tap =100

527ps

delay tap =200

927ps

delay tap =219

1003ps

delay tap =468

1999ps

delay tap =511

2171ps

根据上表可知  delay_tap = 127 + 4N  (N的取值为0到511)

根据简单的计算可知,双沿300M数据(对应单沿600M数据),数据持续时间为1.66ns,取到中间需要0.83ns,对应177taps

相关文章:

LVDS接口总结--(5)IDELAY3仿真

仿真参考资料如下&#xff1a; https://zhuanlan.zhihu.com/p/386057087 timescale 1 ns/1 ps module tb_idelay3_ctrl();parameter REF_CLK 2.5 ; // 400MHzparameter DIN_CLK 3.3 ; // 300MHzreg ref_clk ;reg …...

Vue3(1)

一.create-vue // new Vue() 创建一个应用实例 > createApp() // createRouter() createStore() // 将创建实例进行了封装&#xff0c;保证每个实例的独立封闭性import { createApp } from vue import App from ./App.vue// mount 设置挂载点 #app (id为app的盒子) createA…...

玩转适配器模式

文章目录 解决方案现实的举例适用场景实现方式适配器模式优缺点优点:缺点:适配器模式可比上一篇的工厂模式好理解多了,工厂模式要具有抽象的思维。这个适配器模式,正如字面意思,就是要去适配某一件物品。 假如你正在开发一款股票市场监测程序, 它会从不同来源下载 XML 格…...

2.11寒假作业

web&#xff1a;[SWPUCTF 2022 新生赛]js_sign 打开环境是这样的&#xff0c;随便输入进行看看 提示错误&#xff0c;看源码其中的js代码 这个代码很容易理解&#xff0c;要让输入的内容等于对应的字符串&#xff0c;显然直接复制粘贴是错的 这串字符看起来像是base64加密&…...

untiy 冰面与地面,物理材质的影响

效果 WeChat_20250211165601...

视频编解码标准中的 Profile 和 Level

视频编解码标准中的 Profile 和 Level 在视频编码标准(如 H.264/AVC、HEVC/H.265、H.266/VVC、AV1)中,Profile(配置文件) 和 Level(级别) 是两个重要的概念,它们用于定义编码器和解码器支持的特性、功能以及视频质量与编码效率之间的权衡。 Profile(配置文件) Pro…...

通用的将jar制作成docker镜像sh脚本

通用的将jar制作成docker镜像sh脚本 为了在将 JAR 制作成 Docker 镜像的过程中创建日志目录&#xff0c;可以对之前的脚本进行扩展。以下是改进后的脚本&#xff0c;会在镜像构建时在容器内创建日志目录&#xff0c;并将日志文件挂载到该目录下。 在生成的 Dockerfile 中添加…...

AUTOGPT:基于GPT模型开发的实验性开源应用程序; 目标设定与分解 ;;自主思考与决策 ;;信息交互与执行

目录 AUTOGPT是一款基于GPT模型开发的实验性开源应用程序目标设定与分解自主思考与决策信息交互与执行AUTOGPT是一款基于GPT模型开发的实验性开源应用程序 目标设定与分解 自主思考与决策 信息交互与执行 AUTOGPT是一款基于GPT模型开发的实验性开源应用程序,它能让大语言模…...

异步线程中使用RestTemplate注入空指针解决

在某种情况下&#xff0c;调用第三方或者jar文件中封装的httpClient时&#xff0c;上层调用采用异步线程调用&#xff0c;导致底层的RestTemplate注入为空&#xff0c;无法正常调用&#xff0c;需要强制将spring的上下文绑定到异步线程中。 强制传递 Spring 上下文到异步线程 …...

2024BaseCTF_week4_web上

继续&#xff01;冲冲冲 目录 圣钥之战1.0 nodejs 原型 原型链 原型链污染 回到题目 flag直接读取不就行了&#xff1f; 圣钥之战1.0 from flask import Flask,request import jsonapp Flask(__name__)def merge(src, dst):for k, v in src.items():if hasattr(dst, __geti…...

说一下 jvm 有哪些垃圾回收器?

JVM 垃圾回收器对比表 垃圾回收器类型工作方式回收方式停顿时间适用场景优点缺点常见问题常见配置Serial GC串行单线程&#xff0c;STW年轻代&#xff1a;复制算法 老年代&#xff1a;标记-整理长小内存、单核CPU&#xff0c;如桌面应用或嵌入式设备简单高效&#xff0c;适用于…...

react国际化配置react-i18next详解

react PC端项目构建TS&#xff0c;react18.2.0antdviteaxiosreduxsassts 完整版代码下载&#xff1a; https://download.csdn.net/download/randy521520/88922625 react PC端项目构建&#xff0c;react18.2.0antdviteaxiosreduxsass完整版代码下载&#xff1a; https://downloa…...

Java并发编程——上下文切换、死锁、资源限制

文章目录 1.1上下文切换&#xff08;1&#xff09;上下文切换的概念&#xff08;2&#xff09;多线程一定比单线程快吗&#xff1f;&#xff08;3&#xff09;测量上下文切换如何减少上下文切换 1.2 死锁&#xff08;1&#xff09;死锁的定义&#xff08;2&#xff09;死锁产生…...

MS08067练武场--WP

免责声明&#xff1a;本文仅用于学习和研究目的&#xff0c;不鼓励或支持任何非法活动。所有技术内容仅供个人技术提升使用&#xff0c;未经授权不得用于攻击、侵犯或破坏他人系统。我们不对因使用本文内容而引起的任何法律责任或损失承担责任。 注&#xff1a;此文章为快速通关…...

ubuntu文件同步

1. 使用 rsync 同步文件 rsync 是一个常用的文件同步工具&#xff0c;可以在本地或远程系统之间同步文件和目录。 基本用法&#xff1a; rsync -avz /源目录/ 目标目录/-a&#xff1a;归档模式&#xff0c;保留文件属性。-v&#xff1a;显示详细输出。-z&#xff1a;压缩传输…...

C++23 新特性解析

引言&#xff1a;C的持续进化 在ISO C标准委员会的不懈努力下&#xff0c;C23作为继C20后的又一重要迭代版本&#xff0c;带来了十余项核心语言特性改进和数十项标准库增强。本文将深入解析最具实用价值的五大新特性&#xff0c;介绍std::expected到模块化革命。 编译器支持 …...

算法05-堆排序

堆排序详解 堆排序&#xff08;Heap Sort&#xff09;是一种基于二叉堆数据结构的排序算法。它的核心思想是利用堆的性质&#xff08;最大堆或最小堆&#xff09;来实现排序。堆排序分为两个主要步骤&#xff1a;建堆和排序。 1. 什么是堆&#xff1f; 堆是一种特殊的完全二叉…...

Arrays工具类详解

目录 1. Arrays.toString() 方法 2. Arrays.deepToString() 方法 3. Arrays.equals(int[ ] arr1, int[ ] arr2) 方法 4. Arrays.equals(Object[] arr1, Object[] arr2) 方法 5. Arrays.deepEquals(Object[] arr1, Object[] arr2) 方法 6. Arrays.sort(int[] arr) 方法 7…...

无人机图像拼接数据的可视化与制图技术:以植被监测为例

无人机技术在生态环境监测中的应用越来越广泛&#xff0c;尤其是在植被监测领域。通过无人机获取的高分辨率影像数据&#xff0c;结合GIS技术&#xff0c;可以实现对植被覆盖、生长状况等的精确监测与分析。本文将通过一个实际案例&#xff0c;详细讲解无人机图像拼接数据的可视…...

在 debian 12 上安装 mysqlclient 报错

报错如下 Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple Collecting mysqlclientUsing cached https://pypi.tuna.tsinghua.edu.cn/packages/61/68/810093cb579daae426794bbd9d88aa830fae296e85172d18cb0f0e5dd4bc/mysqlclient-2.2.7.tar.gz (91 kB)Installi…...

保姆级教程:用MQTT.fx客户端连接电信AEP物联网平台,实现设备数据上报与远程控制

从零到一&#xff1a;用MQTT.fx玩转电信AEP物联网平台全流程实战 在物联网开发领域&#xff0c;电信AEP平台作为国内主流物联网云服务平台之一&#xff0c;为开发者提供了从设备接入到数据管理的完整解决方案。而MQTT.fx作为轻量级MQTT客户端工具&#xff0c;因其简洁直观的界面…...

YOLOFuse效果实测:低光、烟雾环境下,多模态检测精度提升明显

YOLOFuse效果实测&#xff1a;低光、烟雾环境下&#xff0c;多模态检测精度提升明显 1. 引言 在计算机视觉领域&#xff0c;目标检测技术已经取得了显著进展&#xff0c;但在低光照、烟雾等复杂环境下&#xff0c;传统基于RGB图像的单模态检测方法仍然面临巨大挑战。这些环境…...

OpenClaw技能组合拳:GLM-4.7-Flash完成跨平台内容同步

OpenClaw技能组合拳&#xff1a;GLM-4.7-Flash完成跨平台内容同步 1. 为什么需要跨平台内容同步 上周我遇到一个典型的内容创作者困境&#xff1a;在知乎看到一篇优质技术文章&#xff0c;想把它保存到Notion知识库&#xff0c;同时转换成适合公众号发布的格式。传统做法需要…...

Spring AI实战:从零构建智能聊天与图像生成应用

1. Spring AI初探&#xff1a;你的第一个智能聊天应用 记得第一次接触AI聊天功能时&#xff0c;我盯着那个能对答如流的对话框看了足足十分钟。现在用Spring AI框架&#xff0c;只需要四步就能实现同样的效果。先创建一个标准的Spring Boot项目&#xff0c;这个不用多说&#x…...

GORM实战避坑指南:从‘小白’到‘老鸟’必须知道的10个细节(含MySQL连接配置)

GORM实战避坑指南&#xff1a;从‘小白’到‘老鸟’必须知道的10个细节&#xff08;含MySQL连接配置&#xff09; 1. MySQL连接配置的隐藏陷阱 charsetutf8mb4的必要性 MySQL默认的utf8编码只支持最多3字节的字符&#xff0c;而emoji表情等特殊字符需要4字节存储。若不指定utf8…...

会议纪要助手:OpenClaw+nanobot自动提炼讨论要点

会议纪要助手&#xff1a;OpenClawnanobot自动提炼讨论要点 1. 为什么需要自动化会议纪要 每次开完会最头疼的就是整理会议纪要。作为技术负责人&#xff0c;我每周要参加至少5场会议&#xff0c;从需求评审到技术方案讨论&#xff0c;经常一开就是两小时。会后花半小时手动整…...

达摩院StructBERT中文相似度模型部署教程:Prometheus监控指标接入

达摩院StructBERT中文相似度模型部署教程&#xff1a;Prometheus监控指标接入 1. 项目概述 StructBERT中文相似度模型是阿里达摩院基于StructBERT大规模预训练模型开发的专业语义匹配工具。该模型通过强化语言结构理解能力&#xff0c;能够将中文句子转化为高质量的特征向量&…...

保姆级移植教程:将正点原子ATK-IMU901官方例程从STM32 HAL库迁移到MSPM0G3507

跨平台传感器驱动移植实战&#xff1a;从STM32 HAL到MSPM0的代码重构方法论 当我们需要将成熟的传感器驱动迁移到新硬件平台时&#xff0c;往往面临底层接口差异带来的适配难题。本文将以正点原子ATK-IMU901十轴陀螺仪模块为例&#xff0c;详解如何将其官方STM32 HAL驱动移植到…...

Qt串口开发避坑指南:从QSerialPort基础到实战封装,解决粘包和跨平台问题

Qt串口开发避坑指南&#xff1a;从QSerialPort基础到实战封装 1. 串口开发的典型痛点与解决思路 嵌入式开发中&#xff0c;串口通信就像一位性格古怪的老朋友——看似简单却暗藏玄机。许多开发者第一次使用Qt的QSerialPort类时&#xff0c;往往会被其简洁的API迷惑&#xff0c;…...

ubuntu安装openclaw接入智谱大模型和微信QQ通道配置

前置系统准备 虚拟机安装ubuntu 24.04.3 LTS server版 无需GUI 智谱api注册 注册方式如下 智谱AI 国内版 https://open.bigmodel.cn/ 也可以用我的带邀请 https://www.bigmodel.cn/invite?icodeK2pjkdweVsRYJySj5DADo0jPr3uHog9F4g5tjuOUqno%3D添加apikey https://www.bigm…...