【发布时间】:2021-09-16 10:43:39
【问题描述】:
我正在尝试了解 uvm 中相同扩展类之间的情况,如下例所示,
module test_module ();
class A; endclass
class B extends A; endclass
class C extends A; endclass
A a_h;
B b_h;
C c_h;
initial begin
c_h = new();
b_h = c_h;
$cast(c_h, b_h);
end
endmodule : test_module
我得到了 xrun: 20.09-s003: (c) 版权所有 1995-2020 Cadence Design Systems, Inc. b_h = c_h; | xmvlog: *E,TYCMPAT (testbench.sv,20|12):赋值运算符类型检查失败(期望数据类型与 'class test_module::B' 兼容,但找到了 'class test_module::C')。 错误信息。
我认为 b_h 和 c_h 是由同一个类扩展的。
但是 b_h 和 c_h 不是同一个类类型所以。
我分配 b_h = c_h;
但是为什么assign会出错呢?
【问题讨论】:
标签: system-verilog