白沐沐vccc 2022-09-28 15:51 采纳率: 96.2%
浏览 25
已结题

verilog如何让仿真进行一定次数就停止

我写了一位原码乘法器,希望他进行四次运算就结束本次运算,请问如何实现?还有一个问题什么也不写,是默认一直循环进行这个运算吗?感谢!

img

  • 写回答

1条回答 默认 最新

  • 老皮芽子 2022-09-28 16:29
    关注
    
    `timescale 1ns/1ns
    
    module testbench;
    
    reg            rst;
    reg            clk;
    reg    [3:0]    a;
    reg    [3:0]    b;
    wire[7:0]    c;
    
    parameter RESET_PERIOD        = 500;
    parameter CLK_PERIOD        = 100;                    //10MHz
    
    initial    clk = 0;
    always    clk = #(CLK_PERIOD/2.0) ~clk;
    
    initial    begin
        rst = 1;
        #RESET_PERIOD
        rst = 0;
        #(CLK_PERIOD*4)    $stop;    // 执行 4 个时钟之后停止
    end
    //////////////////////////////////////////////////////////////////////
    // 这部分代码是自动产生24位数 a,b 每个时钟变化一次
        always@(posedge clk)
        begin
            if(rst)
            begin
                a    <= #1 0;
                b    <= #1 1;
            end
            else
            begin
                {b,a}    <= #1 {b,a} + 1;
            end
        end
    //////////////////////////////////////////////////////////////////////
    // 要是不用上自动产生24位数,可以按下面的代码
    //initial    begin
    //    a = 0;b = 0;
    //    #RESET_PERIOD
    //    a = 1;b = 2;
    //    #CLK_PERIOD
    //    a = 3;b = 4;
    //    #CLK_PERIOD
    //    a = 5;b = 6;
    //end
    //////////////////////////////////////////////////////////////////////    
    
        mult    ux
        (
            .clk    (clk),
            .rst    (rst),
            .a        (a),
            .b        (b),
            .c        (c)
        );
    
    endmodule
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 10月8日
  • 已采纳回答 9月30日
  • 创建了问题 9月28日

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器