iC验证笔试 平头哥

参考
Systemverilog 里面有哪些是四值变量?
logic reg wire integer time
考察:数据类型
bit 二值
int unsigned 二值32位无符号整数
int 二值32位有符号整数
shortint 二值16位有符号整数
longint 二值64位有符号整数
integer 四值32位有符号整数
time 四值64位无符号整数
real 二值双精度浮点

sv里面动态数组、关联数组、队列各自的优缺点,应用场景。
动态数组:用的时候再分配内存,用完可以释放,仿真时分配空间或调整宽度,减小内存消耗
关联数组:稀疏矩阵,当索引范围很大的时候,只对实际写入的元素分配空间,比定宽数组和动态数组占用空间小的多
队列:一类元素的有序集合,双向队列,也有链表的特点可以对任意位置增加或删减元素,且可以通过下表访问任意位置元素

function和task的区别

函数(function) 任务(task)
函数能调用另一个函数,但不能调用任务 任务能调用另一个任务,也能调用另一个函数
函数总是在仿真时刻0就开始执行 任务可以在非零时刻执行
函数一定不能包含任何延迟、事件或者时序控制声明语句 任务可以包含延迟、事件或者时序控制声明语句
函数至少有一个输入变量,可以有多个输入变量 任务可以没有或者多个输入(input)、输出(output)和双向(inout)变量
函数只能返回一个值,函数不能有输出(output)或者双向(inout)变量 任务不返回任何值,任务可以通过输出(output)或者双向(inout)变量传递多个值

数据类型怎么转换,静态强制类型转换和动态强制转换有什么区别?
静态转换:转换时指定目标类型,并在需要转换的表达式前加上单引号即可;

动态转换:使用函数 $cast

区别:静态类型转换操作不对转换值进行检查,具有一定的危险性;而动态类型转换在运行时将进行检查,如果转换失败会产生运行时错误。

virtual interface作用
参考

多态
扩展类对基类方法的重写,如果方法是虚方法,那么基类指向不同扩展类并调用相同名字的方法,呈现出不同的实现方法,就是多态。
虚方法的调用取决于句柄指向对象类型;非虚方法的调用取决于句柄类型。

uvm_phase机制
UVM采用phase机制来自动化运行testbench各个仿真过程。UVM phase支持显示或隐式的同步方案,运行过程中的线程控制和跳转。用户只要把代码填入对应的phase,这些代码就会自动在正确的时间执行。各个phase执行顺序如下图所示:

build
connect
end_of_elaboration
start_of_simulation

run(reset configure main shutdown

extract
check
report
final

自上而下:build final;其余自下而上
task:run和并行的12个小phase;其余function

objection机制
作用:控制phase的运行。在进入到某个phase时,UVM会收集此phase提出的所有objection,并且实时监测所有objection是否已经被撤销掉了,当发现所有都已经撤销之后,那么就会关闭此phase,开始进入到下一个phase。当所有phase都执行完毕后,就会调用$finish来结束整个验证平台。
callback机制的运行机制

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值