【问题标题】:Syntax in assignment statement l-value [duplicate]赋值语句左值中的语法
【发布时间】:2020-12-28 14:45:26
【问题描述】:
  1. 这是代码

  2. 并且无法识别错误

  3. 它将new_content 显示为错误。我更改了它的名称,但也显示错误

我认为这是一个逻辑错误

module IF_ID(new_content, instruction, newPC, clk, pwrite1);
input pwrite1, clk;
input [31:0] instruction, newPC;
output [63:0] new_content;
reg [63:0] next;
always (@negedge clk) begin
    if(pwrite1)
        new_content <= {instruction, newPC};
    else
        new_content <= 64'b0;

end

endmodule

我收到以下错误:

jdoodle.v:6: syntax error
jdoodle.v:8: Syntax in assignment statement l-value.
jdoodle.v:9: syntax error
jdoodle.v:10: error: invalid module item.
jdoodle.v:12: syntax error

【问题讨论】:

    标签: verilog system-verilog iverilog


    【解决方案1】:

    您有两种类型的语法错误。

    您需要将new_content 声明为reg,因为您在always 块中对其进行了程序分配。

    您需要将@ 放在always 行中( 的左侧。

    此代码编译对我来说没有错误:

    module IF_ID(new_content, instruction, newPC, clk, pwrite1);
    input pwrite1, clk;
    input [31:0] instruction, newPC;
    output reg [63:0] new_content;
    reg [63:0] next;
    always @(negedge clk) begin
        if(pwrite1)
            new_content <= {instruction, newPC};
        else
            new_content <= 64'b0;
    
    end
    endmodule
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-10-24
      • 2011-10-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-08
      相关资源
      最近更新 更多