SV核心知识(2)

1.任务和函数

task和function的参数列表的类型有四种:input,output,inout,ref。其中,ref类似于软件的指针,调用时不会复制,而是直接引用或修改外部传入的数据对象。inout和ref的区别是:inout只有当方法结束之后才可以传递到外部,而ref可以在方法执行过程中就修改数据对象,无须等到方法结束。如果保护数据对象只被读取不被写入,则通过const的方法来限定ref声明的参数。
function和task的区别:
1.task不能通过return返回结果。
2.task可以内置耗时语句,而function不行。

2.数据的生命周期

automatic只在所在的进程或方法内生效,如果这个进程和方法结束,那么automatic变量会被销毁。
static在仿真开始时会被创建,直到仿真结束。

3.接口驱动

virtual interface 是interface的指针,interface要被软件世界引用需要通过vif来进行。

4.类的三要素

4.1类的封装
类与结构体的异同:

  • 都可以定义数据成员
  • 类需要构造函数来构建对象实体。struct在变量声明就开辟了内存。
  • 类可以声明方法,struct不能
  • struct只是一种数据结构,而类包含了数据成员以及操作方法。
    类与module的异同:
  • 二者都可以作为封闭的容器来定义和存储。
  • module必须在仿真一开始就确定是否被例化,而类可以在任何时间创建对象。
  • 封装性来看,module内部的方法是开放的,而类内部的方法可以是protected或local。
  • 继承性来看,module没有任何继承性,而类可以。
    4.2类的继承
  • 子类作用域如果与父类有相同的变量或方法名,以子类作用域为准。
  • 父类的句柄指向子类的对象,只能访问子类中属于父类的部分。
    4.3类的多态
    -利用虚方法 实现类的动态方法查找
  • 在定义虚方法时,要尽量定义在底层父类中。
  • 虚方法通过virtual声明,且只用声明一次。
  • 虚方法的继承遵循相同的参数和返回类型。
  • 通过动态转换$cast可以判断父类句柄是否成功转换为子类句柄。

随机约束

1,典型的随机分为俩大类:场景随机和接口随机。
2.应该在类中使用rand来声明随机变量,并且可以继承和复用。
3.可以使用randc来完成不重复的随机化
4.要完成随机化,例化的对象要显示调用randomize();
5.随机化生成二值逻辑。logic也只能生产二值。
6.没有在类中rand声明的变量也可以被外部随机化。

约束块

  • 使用inside产生一个值的集合。
  • 使用dist产生权重分布
  • 使用unique来产生不重复的随机数。
  • 使用foreach来完成迭代约束
  • 内部约束均为硬约束,我们可以使用soft来定义软约束,当后来的约束与软约束冲突时,以硬约束为准。

随机化的控制

  • 可以使用rand_mode来控制整个对象或某个成员的随机属性。
  • 也可以使用constraint_mode来控制和关闭约束块。
  • 我们可以使用randomize() with 来增加额外的约束。
  • 我们使用randomize()可以传递变量的一个子集,只随机化类里的几个变量。例如:r.randomize(med)只随机华med。这种应用针对的是类里所有被指定或者没有被指定rand的变量都可以作为randomize()的参数而被随机化。
  • SV可以使用foreach对数组的每一个元素进行约束。
  • 对句柄数组随机化时,要保证句柄的每一个元素都是非悬空的,需要在随机化之前为每一个元素句柄构建对象。
  • 3
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
sv convert2string是一种在编程中常用的功能,用于将一个特定的数据类型转换成字符串类型。 在多种编程语言中,sv convert2string通常是通过内置的函数或方法来实现的。它的作用是将不同类型的数据转换成字符串形式,方便进行输出、存储或者处理。当我们需要将一个数字、布尔值、日期、时间、对象等转换成字符串时,就可以使用sv convert2string来实现。 例如,在JavaScript中,我们可以使用toString()方法来实现sv convert2string的功能。对于一个数字变量,可以通过如下方式将其转换成字符串: ```javascript let num = 123; let numString = num.toString(); console.log(typeof numString); // 输出: "string" ``` 同样地,在Python中,我们可以使用str()函数来实现sv convert2string的功能。以下是一个示例: ```python num = 123 numString = str(num) print(type(numString)) # 输出: <class 'str'> ``` 使用sv convert2string的好处是,它可以将不同类型的数据转换成字符串,使得数据的处理更加灵活和方便。无论是需要将数据输出到控制台、存储在文件中,还是进行字符串拼接等操作,sv convert2string都能够起到重要的作用。 综上所述,sv convert2string是一种将数据转换成字符串类型的功能,在编程中具有广泛的应用。无论是数字、布尔值、日期、时间还是对象,都可以通过适当的方法或函数实现sv convert2string的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值