摘要:7.3 Unions 联合体是一种使用指定成员数据类型,表示可以被访问的单个存储块的数据类型。一次只能使用联合体中的一种数据类型。默认情况下,联合体是非合并的,这意味着没有必要表示该联合体成员的存储方式。动态类型和chandle类型只能在标记的联合体中使用。 联合声明的语法见语法7-2。 13)当s
阅读全文
摘要:7. Aggregate data types 7.1 General 本条款描述以下内容: — 结构定义和用法 — 联合体的定义和使用 — 合并数组、非合并数组、动态数组、关联数组和队列 — 数组查询和操作方法 7.2 Structures 结构体表示可以作为一个整体引用的数据类型的集合,或者组成
阅读全文
摘要:7.9 Associative array methods 除了索引操作符,还提供了几个内置的方法,允许用户分析和操作关联数组,以及迭代其索引或键。 7.9.1 Num() and size() Num()和size()方法的语法如下: function int num(); function in
阅读全文
摘要:7.8 Associative arrays 动态数组对于处理数量动态变化的连续变量集合很有用。当集合的大小未知或数据空间稀疏时,关联数组是更好的选择。关联数组在被使用之前不会分配任何存储空间,并且索引表达式不限于整数表达式,而可以是任何类型。 关联数组实现其声明类型的元素的查询表。要用作索引的数据
阅读全文
摘要:7.11 Array querying functions SystemVerilog提供了返回数组信息的系统函数。这些是
left,right,
low,high,
increment,size,
dimensions和unpacked_dimensions。这些函数将在20.7中
阅读全文
摘要:21.3.3 Formatting data to a string 数据格式化为字符串 swrite任务族和sformat系统任务的语法见语法21-6。 swrite任务家族是基于fwrite任务家族的,它接受与它所基于的任务相同类型的参数,但有一个例外:swrite的第一个参数应该是一个整数、非
阅读全文
摘要:9.2 Structured procedures 结构化语句 SystemVerilog中的所有结构化过程都是在以下结构之一中指定的: initial过程,用关键词initial表示(参考9.2.1) always过程,用以下关键词表示: always(参考9.2.2.1) always_comb
阅读全文
摘要:7.10 Queues 队列是大小可变,同类元素的有序集合。队列支持对所有元素常量时间访问,常量时间插入和在对列的开始和末尾删除的操作。队列中的每个元素通过一个序号标识,这个序号代表了元素在对列中的位置,0代表第一个元素,
$代表最后一个元素。队列是和可以自动增长和收缩的一维的非合并数组类似。因此,
阅读全文
摘要:7.5 Dynamic arrays 动态数组是非合并数组,它的大小可以在仿真运行时可以被设置或改变。未初始化的动态数组大小是零。动态数组的大小是通过new构造函数或数组赋值设置。动态数组支持所有的数据类型作为元素类型,包括数组。 动态数组的维度在数组声明中表示。任何在数组声明中的非合并维度可能是一
阅读全文
摘要:首先说一下SystemVerilog中标量和向量的区别 声明为reg、logic或bit(或匹配的用户定义类型或隐式为逻辑)而没有范围规范的数据对象应被视为1位宽,并被称为标量。 这些类型之一的多位数据对象应通过指定一个范围来声明,称为向量。向量是标量的压缩数组。 11.5.1 Vector bit
阅读全文
摘要:6.5 Nets and variables 数据对象有两组:变量和线网。这两组不同之处在于它们被赋值和保持值的方式不同。 线网可以由一个或多个驱动连续赋值,原语输出或通过模块输出端口写入。多个驱动的结果值是由线网类型的分辨函数决定。线网不可以使用过程赋值。如果端口一侧的线网被另一侧的变量驱动,则里
阅读全文