* 作者:JK ZHAN,本文首发于微信公众号“IC Talking”(ID:HelloICTalking),芯片技术文章分享平台。
在上一篇文章《SystemVerilog枚举》中,介绍了枚举类型的本质和使用语法。本文接着介绍SV中同样不可忽略的结构体(structure)和自定义类型(typedef),最后也会给出一小段涵盖绝大部分语法点的例程。个人觉得编程语言的熟练掌握更多在平时练习和思考,语法忘掉了随时可以查阅。
01 认识结构体
结构体(structure)是一种可以包含不同数据类型元素的集合类型。这一点跟数组、队列等集合类型是不一样的,数组和队列只能包含相同数据类型的元素。结构体在引用的时候,可以对这些元素进行整体引用,也可以通过元素名称来对元素进行单独引用。
基于这个特性,结构体通常可以用来表征一个包含了诸多不同类型属性的对象。比如,当我们想要表征一个人的所有属性的时候,名字元素可以用string类型,年龄元素可以用int类型,存款元素可以用real类型等等,最后可以通过对整体引用来获得一个人的所有属性,也可以通过元素名称来获得单个属性。
另一个栗子,可以使用结构体来定义某个寄存器的结构。在结构体类型定义的时候,我们可以在内部使用logic [n:m]等基本数据类型来定义寄存器的不同域段。这样一来,我们不但可以对寄存器进行整体