SV——自定义类型

SV——自定义类型
关键词:typedef 类似于c
所谓自定义就是用户用一个具有意义的词语去简单的描述一个很长,很难理解的量。并且这个新的词在SV语法里面是没有定义的。
【1】它经常和enum和struct一起使用
enum来创建枚举类型;
struct来创建结构体类型。
Verilog没有这样的语法,SV提供用户构造更高的抽象类型。
typedef int unsigned uint; 这就是uint对int unsigned的指代;

当再一次使用的时候,uint a,b; //定义的就是int unsigned类型。
“自定义名字_t” typedef不一定只是和enum或者struct进行指代,它可以和任意的类型进行指代。

枚举类型
[enum]:描述一个抽象的变量(类似于状态机中的具有状态“idle,state,…”),合法的范围。
例题: enum {red, green,blue} RGB; //RGB的初始值是red。

Verilog没有所谓的枚举类型语法规则,因此Verilog中不得不采用parameter和
`define来定义各个合法的宏名称。(在状态机的时候)

枚举类型默认是int,既32位的二值逻辑数据类型。
enum logic[1:0] { waite, load, ready} state ;// 没有赋值的时候,将会是默认从0开始递增,既waite=0(00);load=1(01);ready=2(10).
也可以赋予初值
enum logic[2:0] { waite=3’b001, load=3’b010, ready=3’b100} state ;

枚举类型能赋值给整形,但是整形不可以赋值给枚举类型。
4. 枚举类型也可以声明为自定义类型,这就使得可以用同一个枚举类型来声明多个变量或者线网。
5. typedef enum{WAITE, LOAD, READY} states_t; //声明了一个类型 states_t
6. states_t state, next_state; //用这个类型又声明了两个变量
7. note: 如果没有 typedef 这个关键字限定的话, states_t 是一个变量。
8. 如果枚举类型没有伴随typedef,那么该枚举类型指的则是一个匿名枚举类型(anonymous enumerated type)

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值