使用< = vs =。类任务中的赋值运算符

时间:2016-01-26 16:28:04

标签: system-verilog

我很困惑为什么我不能使用<=在我的类中分配变量?我之前在任务中使用过<=,这只是一个问题,我正在分配一个类的局部变量吗?这是有问题的代码:

package MyPackage;

class test;
  logic b_val;

  task set_val;
    //this.b_val = 1'b1;   // WORKS
    this.b_val <= 1'b1; // ERROR
  endtask
endclass // test

endpackage

module Test;
  import MyPackage::*;
  test t1 = new;

  initial 
    begin  
      t1.set_val;
    end  
endmodule : Test

我收到的错误是:

# ** Fatal: (SIGSEGV) Bad handle or reference.
#    Time: 0 ns  Iteration: 0  Process: /Test/#INITIAL#18 File: C:/Projects/SystemVerilog/sim/test.sv
# Fatal error in Task MyPackage/test::set_val at C:/Projects/SystemVerilog/sim/test.sv line 8

1 个答案:

答案 0 :(得分:1)

允许对类成员进行非阻塞分配是SystemVerilog的一个相对较新的功能。您将需要2012年之后发布的模拟器版本。即使如此,我也无法在早期版本中重现您的错误。