《System Verilog验证测试平台编写指南》读书笔记:第二章 数据类型

上一篇 / 下一篇  2017-08-18 19:23:22 / 个人分类:专业学习

2.1内建数据类型

logic拥有的功能:变量所有功能(regintegertimereal),被连续赋值(assign语句中),被门驱动(直接使用not()等),被模块驱动(直接调用模块)。注:只能有一个驱动。

数据类型:bitintshortintlongintbyteintegertimereal

2.2定宽数组

声明时可以只给出数组宽度。多维数组声明时同样可以只给出数组宽度。

从越界地址读数时会返回数组元素类型的缺省值。

使用单引号加大括号来初始化数组。初始化多维数组。

foreach数组和多维数组的格式。遍历二维数组的一个维度。

数组的复制和比较可采用聚合操作,而算数运算和逻辑操作不能采用聚合操作。

Verilog-2001sv均可同时使用位下标和数组下标。

合并数组的声明与使用方法,合并/非合并混合数组的声明与使用方法。任何数组类型都可以合并,包括动态数组、队列、关联数组、定宽数组。需要等待数组的变化时(@),为了方便建议使用合并数组。

2.3动态数组

动态数组声明、初始化、分配空间、分配空间同时复制,有了数据之后重新分配空间将会删除原来的数据。可将定宽数组复制给一个动态数组。

2.4队列

声明,不要对队列使用new[],初始化与定宽数组和动态数组不同。操作有:insertdeletepush_frontpush_backpop_frontpop_back。上述操作还有一种新的方法可以实现。$在下标串联时的用法。

当然可将定宽数组和动态数组复制给队列。

2.5关联数组

声明、初始化和使用。和hash类似,关联数组也可以使用字符串作为索引进行寻址。可用exists()来检查元素是否存在。

2.22sv读取文件的用法。

2.6链表

    建议不使用。

2.7数组的方法  à不适用于合并数组

数组缩减sumproductandorxor

利用$urandom_range来随机选取一个元素。$size()(适用于定宽数组、动态数组、队列、关联数组)与.size(适用于动态数组与队列)的适用范围不同。针对关联数组需要逐个访问之前的元素。

数组定位:返回一个队列。数组定位函数有:maxminunique(采用.function的方式)。withitem关系式)的用法。find相关函数有:findfind_indexfind_firstfind_lastfind_first_indexfind_last_index

数组排序:函数有reversesortrsortshuffle。其中reverseshuffle不能带with条件语句。

可使用数组定位方法建立记分板。

2.8选择存储类型

2.9使用typedef创建新的类型(定义一种通用的类型)

约定用户自定义类型带后缀_t。新的数组类型定义。

2.10创建用户自定义结构

struct创建新类型(_s标示)。初始化方式与数组类似。

创建不同类型的联合union_u标示)。

合并结构struct packed_p_s标示)。

2.11类型转换

静态转换:转换时指定目标类型,并在需要转换的表达式前加上单引号即可,表达式用括号包围。

动态转换:$cast

流操作符:《从左向右,》从右向左。用法:{《或者》{单个或者多个数组}}

2.12枚举类型

enum_e标示)。

可遍历枚举类型的函数:firstlastnextnextN)、prevprevN)。

枚举类型缺省值为双状态int,因此可被赋给其他非枚举变量int

$castab):将b赋给a,如果数值越界,不进行赋值,该函数返回0

2.13常量

2.14字符串

svstring类型可用来保存长度可变的字符串,单个字符为byte类型。字符串相关的函数:getcN)、touppertolowerputcMC)、substrstartend)。

2.15表达式的位宽


TAG:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2017-09-19  
     12
3456789
10111213141516
17181920212223
24252627282930

数据统计

  • 访问量: 934
  • 日志数: 8
  • 建立时间: 2017-07-04
  • 更新时间: 2017-08-18

RSS订阅

Open Toolbar