在SV代码中,当看到一个变量时:

第一,判断它的类型是变量类型variable还是线网类型net;

第二,判断它的数据类型是四态逻辑还是二态逻辑。

在verilog中,reg并不一定会被综合成寄存器register,它只是用来与线网类型相对照,表示存储数据的变量。

在SV中,使用logic(数据类型,四态逻辑)来达到通用的存储硬件数据的目的。它既可以被声明为变量类型variable,也可以被声明为线网类型net(wire),默认为变量类型

二态逻辑bit的类型默认为变量类型

在RTL(寄存器转换级电路Register Transfer Level)级别:

四态中的X值是用来捕捉设计错误的,例如寄存器未初始化;

四态中的Z值则用来表示未连接或者三态的设计逻辑。

但在系统级或者事务级,X和Z很少被使用。

可以在有符号类型的后面添加unsigned来表示无符号类型。

例如:

有符号类型byte,数值范围是[-128,127],

而byte unsigned则表示无符号类型,等同于bit [7:0],数值范围是[0,255]。

在验证环境里做激励驱动时,只需要使用二值逻辑0和1,无需关注硬件的底层逻辑X和Z值。

在SV中,void类型表示空类型,常用在函数定义时,表示不会返回数值,此用法与C语言中的void用法相同。

在SV中,shortreal类型表示32位的单精度浮点类型,等同于C语言中的float。

在Verilog中,real类型表示双精度浮点类型,等同于C语言中的double。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐