SystemVerilog的类型和数据类型(三)

SystemVerilog的增强特性与变量初始化
本文介绍了SystemVerilog相对于Verilog在变量赋值、数据类型、内嵌初始化以及变量声明上的增强特性。SystemVerilog允许不指定进制即可给所有位赋1,提供了两态逻辑类型如bit和logic,并详细阐述了它们的隐式和显示声明。此外,还讨论了静态和自动变量的区别及其在仿真和综合中的应用,以及initial过程块的执行顺序和内嵌初始化的确定性。文章还提到了const常量的声明以及静态和动态强制类型转换的使用注意事项。
  1. 如果一个多位的变量,要把它赋值全0,其实很容易,但是如果赋值全1,在verilog中必须要把所有位都要写全;但是在SystemVerilog中增强了该功能,不用指定进制就可以给所有位赋予相同的值。
// Verilog中必须全部写齐,如果位宽是参数,可以在例化的时候修改,那么就更麻烦了
wire [63:0] data1;
assign data1 = 64'hffff_ffff_ffff_ffff;
wire [127:0] data2;
assign data2 = 64'hffff_ffff_ffff_ffff_ffff_ffff_ffff_ffff;
// 将data的所有位都赋予1,反引号后面是1
assign data = '1;
  1. SystemVerilog中的信号同时具有类型和数据类型。类型表示信号是线网还是变量,SV使用所有的Verilog变量类型,如reginteger(这两个有四态逻辑0,1,x,z),并且还增加了一些其他变量类型byteint(这两个是两态逻辑0,1),SV没有对Verilog的线网类型进行任何扩展。数据类型表示线网和变量的值的类型也就是有两态逻辑还是四态逻辑所有的线网类型只能是四态类型

下面这些是两态类型:

  • bit —— 1位两态整数
  • byte ——8位两态整数
  • shortint ——16位两态整数
  • int ——32位两态整数
  • longint ——64位两态整数
    当两态或四态数据类型
  1. 最常用的bit和logic,其实并不是变量类型,它们只是一个数据类型,表示信号具有两态逻辑还是四态逻辑。通常情况下,直接使用bit或logic,会默认认定它们是变量(类似于reg),也就叫隐式声明。但是也可以对它们进行显示声明,可以将他们显示声明为线网或者变量。
// 隐式声明,推断出一个四态和两态数据类型的变量
logic [63:0] addr1;
bit [63:0] addr2;
// 显示声明为变量
var logic [63:0] addr1;
var bit [
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值