SystemVerilog 验证-测试平台编写指南学习笔记(1):数据类型

SystemVerilog新特性:数据类型提升与应用详解
本文详细探讨了SystemVerilog引入的新型数据类型及其优点,如双状态数据、队列、链表和枚举,对比了Verilog与SystemVerilog的内建数据类型差异,重点讲解了数组、结构、类型转换和特殊数据类型(如字符串)。此外,还涵盖了数据类型在性能、内存管理和抽象数据结构中的应用。

1 SystemVerilog引进的新的数据类型的优点?

  1. 双状态数据类型:更好的性能,更低的内存消耗。
  2. 队列、动态和关联数组:减少内存消耗,自带搜索和分类功能。
  3. 类和结构:支持抽象数据结构。
  4. 联合和合并结构:允许对同一数据有多种视图(view)。
  5. 字符串:支持内建的字符序列。
  6. 枚举类型:方便代码编写,增加可读性。

2 Verilog与SystemVerilog内建数据类型的比较?

2.1 Verilog

  • 两种数据类型:变量和线网(net)。
  • 变量:
    • 单bit或多bit无符号数 reg。
    • 32bit 有符号数 interger。
    • 64bit 无符号数 time。
    • 浮点数 real。
  • 所有数据都是静态static类型。

2.2 SystemVerilog

  • 逻辑(logic)类型

    • 为什么创建这个类型? SystemVerilog对经典reg数据类型改进,使得作为一个变量外还可以被连续赋值。为了区分寄存器类型,新建logic类型。
    • logic不能有多个结构性驱动,比如双向总线,其他情况下任何使用线网的地方均可以使用logic。
  • 双状态数据类型

    • 最简单的双状态数据类型:bit。
    • 另4种带符号的双状态数据类型:byte(8bit)、shortint(16bit)、int(32bit)和longint(64bit)。
    • 注意双状态连接到被测设计输出时X或Z会转换成双状态值。$isunknown() 检测到X或Z会返回1。

3 Verilog与SystemVerilog数组的比较

3.1 定宽数组

  • Verilog必须在声明种给出数组的上下界 int data[0:15],SystemVerilog可以只给出数据宽度int data[16]。
  • Verilog-1995数组下标和位下标不能同时使用。Verilog-2001与SystemVerilog可以 src[0][2:1] src数组0的bit2:1。
  • SystemVerilog可以创建多维定宽数组 int array[0:7][0:3] /int array[8][4] 创建一个8行4列的数组。
  • SystemVerilog操作数组最常见的方式是使用for或foreach循环。
  • SystemVerilog可以合并数组 bit [3:0][7:0] bytes,四个8bit数据合并在一起。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ChipWeaver

觉得有用的话点个赞吧 :)

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值