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作用

    • interface只能在module中声明,在class中要用virtual interface;
    • virtual interface是在仿真运行时才连接到DUT上,如果只是interface,在编译时就必须进行连接,在class中时是automatic,在运行的时候产生;
    • virtual interface主要完成接口的动态分配,只要在top层定义virtua
  • 25
    点赞
  • 479
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值