当前位置:   article > 正文

IC验证笔试题(平头哥)_芯片验证题

芯片验证题

平头哥笔试题

  1. Systemverilog 里面有哪些是四值变量?

    Verilog-1995中有两种基本的数据类型:

    变量和线网(net)。所谓四值变量是指他们有四种取值0,1,Z和X。

    reg(单比特或多比特的无符号数)

    wire(线网)

    time(64比特的无符号数)

    interger(32比特的有符号数)

    logic(sv改进的reg)

  2. sv里面动态数组、关联数组、队列各自的优缺点,应用场景。

    特点

    动态数组:可以在仿真时分配空间或者调整宽度,这样仿真中就可以使用最小的存储空间。

    关联数组:用来保存稀疏矩阵的元素,当一个非常大的地址空间进行寻址时,sv只对实际写入的元素分配空间,比定宽数组和动态数组所占用的空间要小得对。

    队列:结合了链表和数组的优点,可以在队列的任意位置增加或者删除元素,这类操作在性能上比动态数组小得多,可以通过索引对任意元素进行访问。

    应用场景

    动态数组:随机事务不确定位宽大小;

    关联数组:需要建立一个超大容量数组,用关联数组来存放稀疏矩阵的元素;

    队列:增加元素或者删除元素方便。

  3. function和task的区别

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

    静态转换:转换时指定目标类型,并在需要转换的表达式前加上单引号即可;

    动态转换:使用函数 $cast

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

  5. virtual interface作用

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/938638
推荐阅读
相关标签
  

闽ICP备14008679号