将对象复制到systemverilog中的句柄

时间:2014-08-19 06:33:33

标签: system-verilog

我有一个模块 mod1 ,其中包含一个类 my_test 。在 mod1 内部,有另一个模块的实例 mod2 mod2 包含一个类 my_config 。 " my_test " class还包括 my_config 类。 我想将 my_config 类的对象复制到此类的另一个句柄中,该句柄在 mod2 模块中实例化。以下是代码段,您可以按照。 my_test my_config mod1 mod2 位于不同的文件中。

class my_test;
  my_config cfg_2;     // instance of my_config class
  // here the object is created
  // here i have assigned some values to the properties of my_config class
  ...
endclass : my_test

module mod2;
  my_config cfg_1;     // instance of my_config class
  // mod2 file includes my_config class
  ...
endmodule : mod2

`include "my_test.sv" // included inside the file "mod1"  
module mod1;
  mod2 m2(..);         // module instance of module mod2
  // mod1 file includes my_test class
  m2.cfg_1 = cfg_2;    // cfg_1 is instance of my_config, inside mod2
  // In the above line i am trying to copy the object cfg_2 to the handle cfg_1
  // I AM GETTING ERROR IN THE ABOVE LINE.
  ...
endmodule : mod1

任何人都可以帮助我。感谢

1 个答案:

答案 0 :(得分:0)

您不会在此处显示my_test的实例,但假设您使用名称my_test_inst创建该实例,请执行以下操作:

module mod1();
  //...

  // you can only add procedural code in initial blocks
  initial
    m2.cfg_1 = my_test_inst.cfg_2

endmodule