SystemVerilog里面向对象的基本知识点.doc_第1页
SystemVerilog里面向对象的基本知识点.doc_第2页
SystemVerilog里面向对象的基本知识点.doc_第3页
SystemVerilog里面向对象的基本知识点.doc_第4页
SystemVerilog里面向对象的基本知识点.doc_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

面向对象编程OOP一、OOP术语1.class类:包含变量和子程序的基本构建块。2.对象:类的一个实例。3.句柄:指向对象的指针,一个OOP句柄就像对象的地址,但是它只能保存在一个只能指向单一类型数据类型的指针中。4.属性:存贮数据的变量。5.方法:任务和函数二、创建新对象1.区别Verilog和SV:(1)Verilog中的一个模块是在代码编译的时候例化的。SV中是运行测试平台时需要的时候才被建立的。(2)Verilog的例化是静态的,像硬件一样,只有信号值得变化。SV激励对象不断地被创建并且驱动DUT,最后这些对象所占用的内存可以被释放供新对象使用。(3)Verilog的顶层模块不会被显示的例化,但是SV类在使用之前必须要先例化。(4)Verilog实例名只可以指向一个实例。而SV句柄可以指向很多对象,当然一次只能指向一个。2.构造函数new():例化一个对象时,相当于为对象申请一个新的内存来保存对象的变量。不能有返回值,因为其返回的是指向一个类对象的句柄,其类型就是类本身。当出现多个同名的对象时,至于new()调用的是哪个new()函数,这取决于赋值操作符左边的句柄类型 Trans tr; /声明一个句柄,初始化为特殊值null tr = new(); /为一个Trans对象分配空间,将变量初始化为默认值,二值的为0,四值的为x.并返回保存对象的地址3.将声明和创建分开:若同时会引起顺序问题。若忘记使用automatic存储空间,构造函数将在开始仿真时,而非进入块的时候调用。*4.声明一个句柄来创建一个对象,在仿真中一个句柄可以指向多个对象。 Trans tr1,tr2;/声明两个句柄 tr1=new();/ 为第一个类对象分配地址空间 tr2=tr1;/复制,指向同一个地址,都指向第一个对象 tr1=new();/为第二个Trans对象分配地址*5.SV中分辨对象不再被引用的方法是记住指向它的句柄的数量,当最后一个句柄不在引用某个对象了,SV就将释放这个对象。三、静态变量1.静态变量使用范围只在这个类中。通常在声明时初始化,引用时无需句柄,可以用作用域操作符:2.不允许静态方法读写非静态变量四、类的方法默认为自动存储五、this是什么?将局部变量赋给类一级变量 class tr; string a; function new(string a); this.a=a; /类变量a=局部变量a endfunction endclass六、在类内使用另一个类:通过指向对象的句柄,一个类内部可以包含另一个类的实例。在调用其他类的成员时要记得例化,否则句柄为null,调用失败,一般在构造函数中实现例化。七、动态对象:在OOP中可能有很多对象,但是只有少数句柄。句柄可能存储在数组或者队列中1.将对象传给方法:当调用方法的时候,传递的是对象的句柄而不是对象本身。2.当调用一个标量变量(存储单个数据,不是数字也不是对象)的方法时并且使用ref关键词,SV传递该标量变量的地址,所以方法可以改变标量变量的值。若不带ref则是把标量变量的值复制到参数变量中,对该参数变量的任何改变不会影响原变量的值。若忘记给参数前加ref则在方法的内部对参数的修改不会被调用该方法的代码看到*3.方法可以改变一个对象,即使方法的句柄参数没有使用ref关键词。因为方法可以在不改变句柄的情况下,将对象改变。如果不想让对象在被方法调用中改变,那就传递一个对象的拷贝给方法,这样就可以保证原来的对象不变。下面例子中由于没有对参数进行ref声明,尽管在sss中修改了参数tr,调用块中的句柄t仍是null。 function void sss(trans tr); /应改为(ref trans tr) tr=new(); tr.addr=42; . endfuction trans t; initial begin sss(t);/创建一个trans $display(t.addr);/失败,因为t=null end4.句柄数组:保存并且引用多个对象,数组的每一个元素指向一个对象(或者多个对象?),由句柄构成,而不是对象构成,所以需要在使用它们之前创建所有对象。*5对象的复制:防止对象的方法修改原始对象的值 (1)浅复制(shallow copy)使用new复制一个对象,句柄的复制而不是数据data的复制 Trans src,dst; initial begin src=new;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论