【问题标题】:How do I fix "Error-[IBLHS-NT] Illegal behavioral left hand side"?如何修复“错误-[IBLHS-NT] 非法行为左侧”?
【发布时间】:2014-09-08 23:57:05
【问题描述】:

我正在尝试调试如下所示的代码。我根本无法让它工作。附加的 Verilog 文件有两个模式:1)“平等”,它定义了被测设备(DUT)和 2)“测试”,它生成用于测试 DUT 的输入。模块“平等”有一个编码错误。让我知道你是否可以给我一个提示。谢谢!

我收到的错误是:

Error-[IBLHS-NT] Illegal behavioral left hand side
ECE413/src/Equality_bugs_Test_Bench.v, 7
  Net type cannot be used on the left side of this assignment.
  The offending expression is : Equal
  Source info: Equal = 1;

Error-[IBLHS-NT] Illegal behavioral left hand side
ECE413/src/Equality_bugs_Test_Bench.v, 9
  Net type cannot be used on the left side of this assignment.
  The offending expression is : Equal
  Source info: Equal = 0;

我的 SystemVerilog 代码是:

module equality (Equal, a, b); // This module defines the DUT.
 input[3:0] a, b;
 output Equal;
 always @ (a or b)
   begin
      if (a == b)
         Equal = 1;
      else
         Equal = 0;
    end
endmodule
//
//
//
module test; // This is the test bench. It specifies input signals to drive the DUT.

 reg [3:0] a, b;
 wire Equal;

equality Eq1 (Equal, a, b); // This line instantiates the DUT.

initial 
  begin
     a = 4'b0000; // Initialize "a" to 0.
     b = 4'b0000; // Initialize "b" to 0.
     #512 $finish; // Simulate for 32x16 = 512 time steps to exercise the entire truth table.
          // (32 steps/cycle x 16 cycles)

  end

// The next four lines clock the bits of input "b" so as to count up from 0 to 15.
  always  #2 b[0] = ~b[0]; // (Note: all procedural blocks run concurrently.)
  always  #4 b[1] = ~b[1]; 
  always  #8 b[2] = ~b[2];
  always #16 b[3] = ~b[3]; // One complete cycle is 2x16 = 32 time steps.

  always #32 a = a+1; // "a" is incremented by one after each complete count of "b".  

endmodule 

【问题讨论】:

    标签: verilog system-verilog


    【解决方案1】:

    必须对声明为reg 的信号进行程序分配(在always 块内)。变化:

     output Equal;
    

    到:

     output reg Equal;
    

    对于更短的等效版本:

    module equality (
        output Equal,
        input [3:0] a, b
    );
        assign Equal = (a == b);
    endmodule
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-04-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多