【FPGA开发】Xilinx锁相环IP核仿真输出初始有一段高电平引发的思考与探究

现象

       本来是在通过Xilinx提供的 Clocking Wizard IP核做有关锁相环的实验,在Vivado中的仿真结果如下:

       后面输出的时钟波形是对的,但4路输出前确有一小段高电平,仔细放大看一下:

       这个高电平持续了一个周期,这就奇怪了,无论是源代码还是仿真代码,都不涉及到它们四个wire类型的变量的初值之类的。

原始代码

源代码:

module ip_clk_wiz(input  sys_clk_p,input  sys_clk_n,input  sys_rst_n,output o_pll_clk);wire clk_out1;
wire clk_out2;
wire clk_out3;
wire clk_out4;assign o_pll_clk = clk_out4;clk_wiz_0 instance_name(.clk_out1  (clk_out1  ),.clk_out2  (clk_out2  ),.clk_out3  (clk_out3  ),.clk_out4  (clk_out4  ),.reset     (~sys_rst_n),.locked    (          ),.clk_in1_p (sys_clk_p ),.clk_in1_n (sys_clk_n ));endmodule

tb代码:

`timescale 100ps / 100psmodule tb_ip_clk_wiz();reg sys_clk_p;
reg sys_clk_n;
reg sys_rst_n;initial beginsys_clk_p <= 1'b0;sys_clk_n <= 1'b1;sys_rst_n <= 1'b0;#1000sys_rst_n <= 1'b1;
endalways beginsys_clk_p <= 1'b0;sys_clk_n <= 1'b1; #25;sys_clk_p <= 1'b1;sys_clk_n <= 1'b0;        #25;
endip_clk_wiz u_ip_clk_wiz(.sys_clk_p   (sys_clk_p),.sys_clk_n   (sys_clk_n),.sys_rst_n   (sys_rst_n),.o_pll_clk   ());   endmodule

探究

       一开始想着,是不是跟 IP 核的高电平复位有关,因为初始的复位是有效的,对于IP核就一直处于复位状态,然后干脆就IP核的复位都直接不接了,但还是会有这么一段高电平。

       然后,尝试把 IP 核的例化注释掉,结果如下:

       这样似乎就合乎常理了,因为 wire 类型变量按照语法,在仿真开始时,wire 变量的值是不确定的(通常表现为高阻态或未定义值,即 x 或 z ),这里就是表现为 z 高阻态。

       想到这我接着探究,既然IP核的例化都注释掉了,那再用 modelsim 仿真一下,看看,结果如下:

       与 Vivado 的结果相同。

       综合以上的尝试,我们可以知道,出现最开始现象的原因应该是与 IP 核有关,不过结合 testbench 文件仔细研究一下那个输出:

​       在 t=100ns 复位变为高电平,对于IP而言,开始有效输出,但根据波形可以看出,最终的有效时钟信号是在 200ns 以后产生的,这是因为,IP 核要获取稳定地输出需要一定的时间,与此同时也让人联想到了我前面源代码中没有接的 locked 信号,Xilinx 对它的解释如下:

       即只有稳定了以后,才会把它拉高有效,我们继续仿真试试看,把这个信号加进来。

       可以发现这个信号会在我们之前看到的有效时钟出来之后才会拉高,也进一步验证了前面的观点。对于我们的启示是,在实际使用 Clocking Wizard IP核时,最好是在判断 lock 信号拉高后再使用它输出的时钟,不然可能会出现一些隐蔽的隐患。
       后来看正点原子的视频时发现,它们也提到,实际使用时,可以再给一个内部的复位信号采用以下逻辑给出这个复位信号,然后在这个复位信号有效的情况下再去进行一些用到PLL输出的时钟的操作。

wire        locked;
wire        rst_n;
assign rst_n = sys_rst_n & locked;

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Qt-系统处理定时器相关事件(59)

目录 描述 使用 描述 qt进行了封装&#xff0c;之前也使用过了 使用 先创建一个定时器 原型 这个事件是继承自 QObject 的&#xff0c;Widget 是继承 QObject 的&#xff0c;所以我们能够直接使用 重写 如下重写过后的定时器事件&#xff0c;正常倒计时了

【2021】知识图谱导论(陈华钧)——阅读思考与笔记

tips&#xff1a;其中所有【】表示的内容为博主本人想法&#xff0c;非作者观点&#xff0c;请注意辨别。 这是一本全面覆盖知识图谱多个方面的书籍。书中不仅详细介绍了知识图谱的表示、存储、获取、推理、融合、问答和分析等七大方面&#xff0c;还深入探讨了多模态知识图谱…

2013年国赛高教杯数学建模C题古塔的变形解题全过程文档及程序

2013年国赛高教杯数学建模 C题 古塔的变形 由于长时间承受自重、气温、风力等各种作用&#xff0c;偶然还要受地震、飓风的影响&#xff0c;古塔会产生各种变形&#xff0c;诸如倾斜、弯曲、扭曲等。为保护古塔&#xff0c;文物部门需适时对古塔进行观测&#xff0c;了解各种变…

网络设备管理

一、telnet远程管理 [R2]user-interface vty 0 4 [R2-ui-vty0-4]authentication-mode password Please configure the login password (maximum length 16):123456 [R2-ui-vty0-4]<R1>telnet 192.168.12.2Press CTRL_] to quit telnet modeTrying 192.168.12.2 ...Conne…

常见锁策略总结:从悲观锁到自旋锁

欢迎浏览高耳机的博客 希望我们彼此都有更好的收获 感谢三连支持&#xff01; 在多线程编程中,锁是保证数据一致性和线程安全的重要机制.本文将直观且简洁的介绍常见的锁策略,包括它们的基本逻辑,使用场景以及优缺点. 悲观锁 与 乐观锁 悲观锁:预防性策略 悲观锁是一种主动锁…

国外解压视频素材哪里找?五个海外解压视频素材网站推荐

国外解压视频素材哪里找&#xff1f;五个海外解压视频素材网站推荐 如果你正在寻找国外的解压视频素材&#xff0c;那么今天这篇文章一定能帮助你。无论是修牛蹄、洗地毯&#xff0c;还是切肥皂、玩解压游戏等&#xff0c;下面分享的几个网站都是你找到高质量海外解压视频素材…

微信收藏的超能力:五大秘籍让你生活更高效

在当今这个信息爆炸的时代&#xff0c;我们每天都会接触到大量的信息&#xff0c;而如何有效地管理这些信息便成为了一个关键的问题。微信&#xff0c;作为一款几乎人人都在使用的社交软件&#xff0c;其功能远不止于聊天交友。 微信收藏功能&#xff0c;就是一个常常被忽视却…

【系统集成中级】线上直播平台开发项目质量管理案例分析

【系统集成中级】线上直播平台开发项目质量管理案例分析 一、案例二、小林在项目质量管理中存在的问题&#xff08;一&#xff09;计划阶段缺失&#xff08;二&#xff09;测试用例编制与执行问题&#xff08;三&#xff09;质量管理流程问题&#xff08;四&#xff09;质量保证…

中科星图GVE(案例)——AI实现建筑用地变化前后对比情况

目录 简介 函数 gve.Services.AI.ConstructionLandChangeExtraction(image1,image2) 代码 结果 知识星球 机器学习 简介 AI可以通过分析卫星图像、航拍影像或其他地理信息数据&#xff0c;实现建筑用地变化前后对比。以下是一种可能的实现方法&#xff1a; 数据获取&am…

uniapp-小程序开发0-1笔记大全

uniapp官网&#xff1a; https://uniapp.dcloud.net.cn/tutorial/syntax-js.html uniapp插件市场&#xff1a; https://ext.dcloud.net.cn/ uviewui类库&#xff1a; https://www.uviewui.com/ 柱状、扇形、仪表盘库&#xff1a; https://www.ucharts.cn/v2/#/ CSS样式&…

ICML 2024 | 牛津提出合作图神经网络Co-GNNs,更灵活的消息传递新范式

引用次数:9 引用格式:Finkelshtein B, Huang X, Bronstein M, et al. Cooperative graph neural networks[J]. arXiv preprint arXiv:2310.01267, 2023. 一、摘要 本文提出了一种训练图神经网络的新框架“合作图神经网络”(Co-GNNs),其中每一个节点可以被看作一个独立的玩…

CLIP——多模态预训练模型介绍

CLIP: Contrastive Language-Image Pre-training CLIP: 对比语言-图像预训练 CLIP的是由 OpenAI 2021年在 Learning Transferable Visual Models From Natural Language Supervision【利用文本的监督信号训练一个迁移能力强的视觉模型】中提出的一种多模态预训练模型&#xff…

PN8036非隔离DIP7直插12V500MA开关电源芯片

PN8036宽输出范围非隔离交直流转换芯片 &#xff0c;集成PFM控制器及650V高雪崩能力智能功率MOSFET&#xff0c;用于外围元器件极精简的小功率非隔离开关电源。PN8036内置650V高压启动模块&#xff0c;实现系统快速启动、超低待机功能。该芯片提供了完整的智能化保护功能&#…

提升邮件营销设计精准度秘诀,效率与效果实践

邮件营销通过确定目标群体、数据分析、邮件设计、测试优化、保持频率时效性及结合其他渠道实现精准营销&#xff0c;提高市场效益。ZohoCampaigns集成CRM、自动化功能和客户细分提升效果。 1、确定目标群体 精准营销的第一步是了解并确定你的目标群体。标定目标群体包括年龄、…

前端必知必会-Bootstrap 5 工具提示Tooltip

文章目录 Bootstrap 5 工具提示如何创建工具提示定位工具提示 总结 Bootstrap 5 工具提示 工具提示组件是一个小的弹出框&#xff0c;当用户将鼠标指针移到元素上时会出现&#xff1a; 如何创建工具提示 要创建工具提示&#xff0c;请将 data-bs-toggle“tooltip” 属性添加…

xss-labs靶场第六关测试报告

目录 一、测试环境 1、系统环境 2、使用工具/软件 二、测试目的 三、操作过程 1、注入点寻找 2、使用hackbar进行payload测试 3、绕过结果 四、源代码分析 五、结论 一、测试环境 1、系统环境 渗透机&#xff1a;本机(127.0.0.1) 靶 机&#xff1a;本机(127.0.0.…

jupyterlab的安装与使用攻略/包括汉化方法

官网链接 Project Jupyter | Home 1.第一步安装 打开控制台 使用pip工具安装 pip install jupyterlab 如图 2.安装成功后启动 jupyter lab 会自动启动它的web页面 然后就可以正常使用咯&#xff01;&#xff01; 如果需要更换浏览器访问 新开控制台执行下面命令 jupy…

C++面向对象多态篇

目录 1. 什么是多态&#xff1f; 2. 多态的概念 3. 函数覆盖 4. 虚函数的定义 5. 多态实现 6. 多态的原理 7. 虚析构函数&#xff08;掌握&#xff09; 8. 类型转换 8.1 static_cast 8.2 dynamic_cast 8.3 const_cast&#xff08;了解&#xff09; 8.4 reinterpret…

3D打印矫形器市场报告:未来几年年复合增长率CAGR为10.8%

3D 打印矫形器是指使用 3D 打印技术制作的定制外部支撑装置。它们有助于稳定、引导、缓解或纠正肌肉骨骼状况&#xff0c;并根据个体患者的解剖结构进行设计&#xff0c;通常使用 3D 扫描和建模技术。3D 打印在矫形器方面的主要优势是能够生产精确适合患者解剖结构的定制装置&a…

sherpa-ncnn 语言模型简单对比

在昨天把系统搞崩溃前&#xff0c;对sherpa-ncnn的中文模型做了一个简单的对比。这次使用的分别是sherpa-ncnn-streaming-zipformer-bilingual-zh-en-2023-02-13&#xff08;以下简称bilingual-zh-en-2023-02-13&#xff09;和sherpa-ncnn-streaming-zipformer-small-bilingual…