SV理论知识三:类与对象

本文详细介绍了Verilog中类的概念,包括package的使用、构造函数new()和new[]的区别、local和protect关键字的作用,以及面向对象的特性如封装、继承和多态。此外,还讲解了浅拷贝和深拷贝的区别,类继承的注意事项,抽象类和纯虚方法的应用,以及回调函数的实现和优势,特别提到了回调在覆盖率收集中的作用。
摘要由CSDN通过智能技术生成

 0. package
     package将一个相关的类组织在单一的命名空间下,使得分属于不同模块验证环境的类来自于不同的package,可以通过package来解决类的归属问题。
     在包中可以定义类、静态方法和静态变量。类可以定义在module、interface和program中,但通常把类的定义打包成package,不同的package可以定义同名的类,
     package会将其隔离开,当编译成功后,package会存放在library中
  
  1. 构造函数new()函数和new[]
     (1) new[]: 用来给动态数组开辟空间的;
     (2) new(): 类的构造函数
         1)开辟空间
         2)初始化变量,二值变量初始化为0,四值变量初始化为X;
         3)执行函数体语句后,返回该对象句柄。
     (3) 旗语(semaphore) 、信箱(mailbox)在创建时,均需要new()函数,因此可以将旗语和信箱的实例也看作“对象”,对于动态数组,在重新开辟空间时(resize),需要new[]操作。
         注意,对象例化new()函数需要小括号,动态数组开辟空间new[]需要中括号,
         避坑指南:event对象的创建,是不需要new()函数的,即声明event变量时已为其开辟了空间。
  
  2. local和protect关键字

       local:只能在当前模块中访问,而不能被其他模块访

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值