2301_81736233 2024-10-09 09:58 采纳率: 100%
浏览 37
已结题

modelsim仿真错误,如何解决?

求解
为什么测试给A,B所赋予的值,仿真的时候会变掉。
像测试代码中A=00000011;仿真的时候就为变为A=00001011;

img

img

img

  • 写回答

1条回答 默认 最新

  • 趣享先生 优质创作者: 编程框架技术领域 2024-10-09 10:05
    关注

    修改后的代码:(答题不易,还请采纳!)

    
    module MULT4B #(parameter s)(Y,A,B);
        input [s:1] A, B;
        output [2*5:1] Y;
        reg [2*5:1] Y;
        integer i;
    
        always @(A, B)
        begin
            Y = 0;
            for (i = 1; i <= s; i = i + 1)
            begin
                if (B[i])
                begin
                    Y = Y + (A << (i-1));
                end
            end
        end
    endmodule
    
    module tb_MULT4B;
        reg [8:1] A;
        reg [8:1] B;
        wire [16:1] Y;
    
        MULT4B #(8) i1 (
            .A(A),
            .B(B),
            .Y(Y)
        );
    
        initial
        begin
            #0 A = 8'b00000000; B = 8'b00000000;
            #5 A = 8'b00000011; B = 8'b00110001;
            #5 A = 8'b01000010; B = 8'b00010000;
            #5 A = 8'b00000000; B = 8'b00000000;
            $display("Running testbench");
        end
    endmodule
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

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