本文章大多以提问的形式给出问题,并尝试解答,主要目的是为了帮助自己复习sv基础知识,不足之处还请指正,以便共同学习!
一、数组、队列、数据结构
1.sv新增的数据类型logic,与wire,reg相比它有什么特点?
wire: 表示物理器件之间的连线,不存储值,常用于assign引导的连续赋值语句。
reg:表示存储结构,可以短暂存储数据直到下一个变化的值到来,常用于always表示的时序逻辑里面。(如果用always(*)的方式来表示组合逻辑,也需要用reg)。
logic:logic是SV中新引进的,它出了可用于reg表示的寄存器变量之外,还可像wire一样被连续赋值(可以说是对wire和reg的综合改进,更加偏向于软件环境构建),一般情况下logic可以取代reg和wire的大多数使用场景。但需要注意,logic不能有多个驱动。
2.区分四值逻辑二值逻辑有符号数以及无符号数。
二值逻辑:bit,int,byte,longint(默认返回0)
四值逻辑:logic,wire,net_type(如wire)(默认返回X)
有符号数:byte,int
无符号数:bit,logic,reg,net_type
3.定宽数组以及多维数组的表示?
定宽数组: int din[16] / int din[0:15] -----16个整数