在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) 经常被运用到转换操作中。
浙公网安备 33010602011771号