随机约束是否可以在子类中,而已在基类中声明。如果是,如何?

问题描述 投票:-1回答:1
class AAA;

  rand int a;
  rand bit b;

  constraint aaa;

  class BBB extends AAA ;

    constraint aaa {a>4 && a<67 ; b>10 && b<90 ;}

  endclass
endclass

module mode;

  AAA p;
  AAA::BBB q;

  initial begin
    p=new;
    q=new;
    repeat(10)
      begin
        assert(p.randomize());

        $display("%0d , %0d",q.a,q.b);
      end


  end

endmodule
system-verilog uvm
1个回答
0
投票

您正在将继承(IS-A)与容器(HAS-A)和嵌套声明混合在一起。使用继承,您只需构造扩展类。如果构造基类,则该对象不知道对其的任何扩展,包括带有嵌套类声明的类。

除非您需要从通用名称空间中隐藏嵌套类类型的名称,否则没有理由使用嵌套类。否则,嵌套类的行为与未声明嵌套的情况下相同。

© www.soinside.com 2019 - 2024. All rights reserved.