System verilog 什么是虚拟访问器?
此短语摘自“uvm用户指南1.1”第20页: “在SystemVerilog中,一个重要的使用模型是向事务类型添加随机化约束。这通常是通过继承、获取派生对象和向基类添加约束来完成的。这些 通过派生一个新类等,可以进一步修改或扩展约束 型号,访问器功能是虚拟的,成员受保护而不是本地的。”System verilog 什么是虚拟访问器?,system-verilog,uvm,System Verilog,Uvm,此短语摘自“uvm用户指南1.1”第20页: “在SystemVerilog中,一个重要的使用模型是向事务类型添加随机化约束。这通常是通过继承、获取派生对象和向基类添加约束来完成的。这些 通过派生一个新类等,可以进一步修改或扩展约束 型号,访问器功能是虚拟的,成员受保护而不是本地的。” 什么是存取器?为什么它必须是虚拟的?访问器意味着一个get.*函数,它只返回一个值,而不改变对象的状态。返回的值可以是成员变量,也可以是更复杂的表达式,具体取决于成员变量。例如,点类,它可以提供笛卡尔坐标和极坐标
什么是存取器?为什么它必须是虚拟的?访问器意味着一个
get.*
函数,它只返回一个值,而不改变对象的状态。返回的值可以是成员变量,也可以是更复杂的表达式,具体取决于成员变量。例如,点
类,它可以提供笛卡尔坐标和极坐标():
如果函数是虚拟函数,则可以在子类中重写它
您提到的访问器是虚拟的,这一点的重要性在您的问题中并不明显。访问器意味着一个
get.*
函数,它只返回一个值,而不改变对象的状态。返回的值可以是成员变量,也可以是更复杂的表达式,具体取决于成员变量。例如,点
类,它可以提供笛卡尔坐标和极坐标():
如果函数是虚拟函数,则可以在子类中重写它
为什么你提到的访问者必须是虚拟的,这一点从你的问题中并不明显
class point;
local int x;
local int y;
// Accessor for x coordinate, cartesian
function int get_x();
return x;
endfunction
// Accessor for r coordinate, polar
function int get_r();
return sqrt(x**2 + y**2);
endfunction
// accessors would also exist for y and phi
endclass