赞
踩
Systemverilog 里面有哪些是四值变量?
Verilog-1995中有两种基本的数据类型:
变量和线网(net)。所谓四值变量是指他们有四种取值0,1,Z和X。
reg(单比特或多比特的无符号数)
wire(线网)
time(64比特的无符号数)
interger(32比特的有符号数)
logic(sv改进的reg)
sv里面动态数组、关联数组、队列各自的优缺点,应用场景。
特点:
动态数组:可以在仿真时分配空间或者调整宽度,这样仿真中就可以使用最小的存储空间。
关联数组:用来保存稀疏矩阵的元素,当一个非常大的地址空间进行寻址时,sv只对实际写入的元素分配空间,比定宽数组和动态数组所占用的空间要小得对。
队列:结合了链表和数组的优点,可以在队列的任意位置增加或者删除元素,这类操作在性能上比动态数组小得多,可以通过索引对任意元素进行访问。
应用场景:
动态数组:随机事务不确定位宽大小;
关联数组:需要建立一个超大容量数组,用关联数组来存放稀疏矩阵的元素;
队列:增加元素或者删除元素方便。
function和task的区别
函数(function) | 任务(task) |
---|---|
函数能调用另一个函数,但不能调用任务 | 任务能调用另一个任务,也能调用另一个函数 |
函数总是在仿真时刻0就开始执行 | 任务可以在非零时刻执行 |
函数一定不能包含任何延迟、事件或者时序控制声明语句 | 任务可以包含延迟、事件或者时序控制声明语句 |
函数至少有一个输入变量,可以有多个输入变量 | 任务可以没有或者多个输入(input)、输出(output)和双向(inout)变量 |
函数只能返回一个值,函数不能有输出(output)或者双向(inout)变量 | 任务不返回任何值,任务可以通过输出(output)或者双向(inout)变量传递多个值 |
数据类型怎么转换,静态强制类型转换和动态强制转换有什么区别?
静态转换:转换时指定目标类型,并在需要转换的表达式前加上单引号即可;
动态转换:使用函数 $cast
区别:静态类型转换操作不对转换值进行检查,具有一定的危险性;而动态类型转换在运行时将进行检查,如果转换失败会产生运行时错误。
virtual interface作用
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。