标签:function systermverilog 变量 句柄 扩展 基类 super 类中
相信super/this是你在看sv代码经常遇见的。
按照我的理解: super就是到基类中去找对应的变量或者function/task.
this就是指定作用域。
例子一:基类和扩展类有同名变量
- B找src的时候,就会先在B里面找,如果找到以后,就认为已经找到了。
- A也同理。
例子二:扩展类可以看到基类的变量
- B首先会在自己类的范围内找dst,没有找到,然后再去基类里面找。
例子三:基类的句柄指向扩展类的对象
- OOP一个很重要的应用就是用virtual修饰task/function,当基类的句柄指向扩展类的时候,就会用扩展类的task/function的定义。这在UVM源码中几乎无处不在。
- 从仿真结果来看,变量却不是如此!
例子四:扩展类中访问同名的基类变量
- super就是帮助你从基类里面找。
例子五:基类句柄指向扩展类的对象,通过基类句柄访问扩展类中的变量
- 也就是说基类的句柄虽然指向扩展类的对象,但是基类的句柄是不能访问扩展类对象中独有的变量的。这其实跟virtual function/task是一样的。
- 详情可以参考:https://www.cnblogs.com/xuqing125/p/15928599.html
例子六:this指定作用域
- this就是指定变量的作用域
标签:function,systermverilog,变量,句柄,扩展,基类,super,类中 来源: https://www.cnblogs.com/xuqing125/p/15931202.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。