q___b552 2024-05-25 12:40 采纳率: 0%
浏览 30

Vivado调用的时钟IP仿真出现问题

代码如下:

module CMTdemo(
    input clk_in1,reset,
    output clk_out1,locked
    );
    
    clk_wiz_0 instance_name
     (
      // Clock out ports
      .clk_out1(clk_out1),     // output clk_out1
      // Status and control signals
      .reset(reset), // input reset
      .locked(locked),       // output locked
     // Clock in ports
      .clk_in1(clk_in1));      // input clk_in1
  // INST_TAG_END ------ End INSTANTIATION Template ---------
endmodule

测试代码如下:

module CMTdemo_tb(
    );
    reg clk_in1;
    reg reset;
    wire clk_out1;
    wire locked;
    CMTdemo CMTdemo_inst(
        .clk_in1(clk_in1),
        .clk_out1(clk_out1),
        .reset(reset),
        .locked(locked)
    );
    always begin
       clk_in1=~clk_in1;
       #1;
    end
    
    initial begin
       clk_in1=0;
       reset=0;
       #1000;
       reset=1;
       #10;
       reset=0;
    end
endmodule

IP核设置只修改了clk_out1为30MHZ,其他均默认
然后行为仿真出的结果如下图,现象不正常:

img

img

img

  • 写回答

1条回答 默认 最新

  • 阿里嘎多学长 2024-05-25 12:40
    关注

    以下内容由CHATGPT及阿里嘎多学长共同生成、有用望采纳:


    根据您提供的代码和仿真波形图,我们可以分析您的Vivado时钟IP仿真问题。首先,让我们逐步了解您的测试代码和仿真结果。

    测试代码分析

    您的测试代码中,clk_in1是一个时钟输入信号,它通过一个always块以周期性的方式翻转,这意味着它是一个时钟信号。在initial块中,您设置了初始条件,然后通过reset信号进行复位。

    • clk_in1翻转频率:由于您的always块中clk_in1=~clk_in1; #1;,这意味着每1纳秒clk_in1翻转一次,因此其频率为1GHz。
    • reset信号时序:在initial块中,reset首先保持0(低电平)1000纳秒,然后设置为1(高电平)10纳秒,最后再次设置为0。

    行为仿真结果分析

    根据您提供的波形图,我们可以观察到以下几点:

    1. clk_out1的频率似乎与预期的30MHz不匹配。这可能是由于时钟管理IP(CMT)的配置问题或测试代码中的问题。
    2. locked信号表示时钟管理IP是否成功锁定到输入时钟。如果locked信号没有正确显示,这可能意味着时钟管理IP没有正确锁定到clk_in1
    3. reset信号的行为看起来是正确的,它按照您的测试代码进行高电平复位。

    波形图分析

    • 时间单位:波形图显示的时间单位是纳秒(ns),这是FPGA设计中常用的时间单位。
    • 周期性变化:clk_in1的周期性翻转表明它是一个时钟信号,但由于频率过高(1GHz),这可能不是您期望的输入频率。

    异常现象原因

    • clk_out1频率问题:可能是由于时钟管理IP的配置不正确,或者测试代码中的时钟翻转频率过高,导致输出频率不符合预期。
    • locked信号问题:如果locked信号没有正确显示,可能是因为时钟管理IP没有正确配置或测试代码中的时钟翻转频率过高。

    解决方案

    1. 检查时钟管理IP配置:确保在Vivado中时钟管理IP的配置与您的设计要求一致,特别是输出频率设置为30MHz。
    2. 调整测试代码:考虑降低clk_in1的翻转频率,以更接近实际应用场景。
    3. 检查locked信号:确保时钟管理IP能够正确锁定到输入时钟,并且locked信号能够正确反映这一状态。

    参考资料

    请注意,由于我无法访问外部链接,上述链接仅供参考。您可以在Vivado的帮助文档或相关FPGA设计资源中找到更详细的信息。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 5月25日

悬赏问题

  • ¥15 请各位帮我看看是哪里出了问题
  • ¥15 vs2019的js智能提示
  • ¥15 关于#开发语言#的问题:FDTD建模问题图中代码没有报错,但是模型却变透明了
  • ¥15 uniapp的h5项目写一个抽奖动画
  • ¥15 hadoop中启动hive报错如下怎么解决
  • ¥15 如何优化QWebEngineView 加载url的速度
  • ¥15 关于#hadoop#的问题,请各位专家解答!
  • ¥15 如何批量抓取网站信息
  • ¥15 Spring Boot离线人脸识别
  • ¥15 使用Ant Design Pro vue的时候,使用环境变量的时候,构建报错是什么原因