在Verilog中所有数据类型都是4值,即0,1,x,z。但在test bench中,不需要这些4态值,所以,System Verilog引入了新的2值变量(包括4值logic)。

  数据类型 有/无符号 默认值
4 state reg >=1 unsigned x
wire >=1 unsigned z
logic >=1 unsigned x
integer 32 signed x
time 64 unsigned  
  real 64 unsigned 0
2 state bit >=1 unsigned 0
byte 8 signed 0
shortint 16 signed 0
int 32 signed 0
longint 64 signed 0

  数据类型转换  

  在遇到以上数据类型时,应注意它们的逻辑类型和符号类型,在变量运算时,应该尽量避免两种不一致的变量进行操作,而导致意外的错误。

  静态转换:在转换的表达式之前加上单引号,该方式不对转换值进行检查。转换在编译时发生,如果转换失败将无从得知。

    例如:integer to int    

int_data = int'(integer_data);

  动态转换:转换发生在运行时,如果转换无效,则会报告错误。所以动态转换 $cast(tgt,src) 经常被运用到转换操作中。

 

posted on 2025-06-16 17:26  易如反掌  阅读(17)  评论(0)    收藏  举报