关于Vivado仿真时,时钟信号初值设置方法导致仿真结果不一致的问题分析

这篇具有很好参考价值的文章主要介绍了关于Vivado仿真时,时钟信号初值设置方法导致仿真结果不一致的问题分析。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本文以余3码加法计数器的设计为例,说明仿真激励过程中遇到的问题,解决方法及分析。

加法器电路的实现代码如下:

module m10counterGU(clk,state);
    input clk;
    output reg [3:0]state;
    //Excess-3 code
    parameter S0=4'b0011,S1=4'b0100,
               S2=4'b0101,S3=4'b0110,
               S4=4'b0111,S5=4'b1000,
               S6=4'b1001,S7=4'b1010,
               S8=4'b1011,S9=4'b1100;
   always @(negedge clk)
         case (state)
            S0:state<=S1;
            S1:state<=S2;
            S2:state<=S3;
            S3:state<=S4;
            S4:state<=S5;
            S5:state<=S6;
            S6:state<=S7;
            S7:state<=S8;
            S8:state<=S9;
            S9:state<=S0;
            default:state<=S0;
        endcase

endmodule

仿真激励文件1的代码如下:

module sim_m10counterGU(   );
    reg clk;
    wire [3:0]state;
    
    m10counterGU uu(clk,state);
    
    initial begin clk = 1; end
    
    always begin #10;clk = ~clk;  end
endmodule

仿真结果如下图所示:

vivado数字钟fangzhen,fpga开发

 这里,clk信号的初值设为1,得到的仿真结果,说明了,在clk的下降沿状态会发生转移。在前10ns,由于未出现下降沿,则状态值是不确定的。

如果,在仿真激励文件中,将clk信号的初值设为0,见下面这个仿真激励文件2,则得到的结果如下:

module sim_m10counterGU(   );
    reg clk;
    wire [3:0]state;
    m10counterGU uu(clk,state);
    initial begin clk = 0; end
    always begin #10;clk = ~clk;  end
endmodule

vivado数字钟fangzhen,fpga开发

 得到这个结果,说明,在vivado里仿真时,clk的低电平状态也会触发always语句块描述的电路去动作。此时,低电平状态跟下降沿的作用是相同的。因此,上图红色框标出的地方,在计数器从初值开始计数。

问题讨论:

     由于这个现象的存在,在进行仿真测试的时候,建议采用方法1进行测试。因为,采用方法2,会隐藏计数器初值设置功能必要性的问题。会造成这样的误解:就是不需要设置初值,计数器会自动开始从初值开始计数。文章来源地址https://www.toymoban.com/news/detail-522331.html

到了这里,关于关于Vivado仿真时,时钟信号初值设置方法导致仿真结果不一致的问题分析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vivado 预设文件、IP设置(_P)、用户参数、以太网时钟处理、GT位置限制、当前可识别板的IP列表

    了解预设文件 预设文件有助于在特定配置中自定义IP核心。PS7、axi_emc和当linear_flash或DDR3_SDRAM 界面是在Vivado IP集成商的Board选项卡中选择的。预设文件使用XML格式。preset_file是为特定的Board文件定义的,可以是用于将预设应用于多个IP。 ip_presets schema=\\\"1.0\\\" ip_preset preset_proc_name=

    2024年01月23日
    浏览(45)
  • 关于时钟模块完备性验证方法第五章

    第五章 时钟strobe检查 文章目录 目录 系列文章目录 文章目录 前言 一、什么时钟strobe? 二、使用步骤 1.自动化checker代码如下 总结 只所以要进行时钟strobe检查,是因为很多时候设计中有下图时序的要求,这种场景一般在两个频率不同的时钟域内进行数据交互的时候会用到,

    2024年02月04日
    浏览(35)
  • 【常见 Error & Bug】Vivado仿真报错 ERROR: [XSIM 43-3322] 解决方法

    在进行 DDR3 实验时,仿真时出现以下报错信息。 ERROR: [XSIM 43-3322] Static elaboration of top level Verilog design unit(s) in library work failed. 谷歌翻译为:错误:[XSIM 43-3322]顶层Verilog设计单元在库工作中静态精化失败。 经过仔细检查,发现出现这个报错主要可能有以下两种原因: 例化名写错

    2024年02月11日
    浏览(67)
  • 【工具篇】拉格朗日动力学建模及系统设置初值求变量

    机器人的动力学方程通常可以通过 牛顿-欧拉公式 或 拉格朗日动力学公式 得到。 关于机器人动力学是什么,可以参考Robitics公众号的这一系列文章干货 | 机械臂的动力学(二):拉格朗日法;或者在CSDN上找,资料很多,如机器人动力学——拉格朗日法 ——简单来说, 牛顿

    2024年02月07日
    浏览(38)
  • 关于 xilinx sdk软核elf文件与xilinx vivado bit文件合并的方法

    xilinx 软核elf文件与xilinx vivado bit文件合并的方法 一、背景 在版本的Vivado 配套的 软件工具是 SDK ,当vivado中使用软核时候,需要将软核生成的elf文件与vivado生成的bit文件合并成一个最终的BIT文件,然后再将此BIT文件下载到FPGA中,或者转化为MCS文件固化到Flash中,这样才不用每

    2024年02月08日
    浏览(53)
  • 关于蒙特卡罗方法及其在信号处理中的应用

        最近想探讨一下毫米波雷达测量准确度及其改善的问题,这个话题下可供讨论的问题有很多,蒙特卡罗方法(或者说基于蒙特卡罗方法对测量准确度以及精度的评估)是其中之一,该方法是一个十分有效的工具,在科研(发paper)上也是不可少的。在探讨测量的准确度之前,我

    2024年02月05日
    浏览(42)
  • Vivado时钟IP核

    本文以Xilinx ZYNQ为例对FPGA的时钟资源进行介绍。 时钟资源主要有以下几方面: 全局时钟 (Global clocks)为整个设备提供时钟; 区域时钟 (Regional clocks)为一个区域(和相邻区域)的时钟提供时钟; IO 时钟 (IO clocks)为 IO 结构提供时钟; 时钟管理模块 (Clock management tiles)

    2024年02月02日
    浏览(33)
  • 关于解决使用kali无线网卡无法扫描到WiFi信号的方法

    1.插入能够渗透用的无线网卡(我的无线网卡是3071类型的,免驱)并在物理机上禁用它,使kali能够独享整个无线网卡(注:若在物理机上找不到无线网卡,则需要下载驱动精灵安装驱动或者更新本机的网卡驱动)   2.需要安装扫描WiFi用的必要的软件包,命令为:apt-get insta

    2024年02月11日
    浏览(94)
  • 无线路由器无线信号加密详细设置方法

    本文介绍高安全级别的无线信号加密方法:WPA-PSK/WPA2-PSK AES11g无线路由器设置方法: 登陆路由器管理界面依次选择“无线参数”->“基本设置”,按下图所示配置:安全类型选择“WPA-PSK/WPA2-PSK”加密方法选择“AES”“PSK密码”处设置8位以上的密码,此密码即无线信号密码

    2024年02月06日
    浏览(49)
  • 【Vivado那些事儿】动态时钟的使用

    时钟是每个 FPGA 设计的核心。如果我们正确地设计时钟架构、没有 CDC 问题并正确进行约束设计,就可以减少与工具斗争的时间。 但对于某些应用,我们希望能够更改某些IP中的时钟频率。其中一个例子是在图像处理管道中,输出分辨率可以动态变化,从而需要改变像素时钟

    2024年02月12日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包