钟情建网站公司,深圳网站建设工作室,wordpress添加优酷视频,上海市营业执照查询一、数据类型
1、logic
logic类型只能有一个驱动。使用wire和reg的地方均可使用logic#xff0c;但如双向总线等有多个驱动的地方#xff0c;则不可使用logic。
2、二值逻辑
对于二值逻辑变量与DUT中的四值逻辑变量连接时#xff0c;如果DUT中产生了X和Z#xff0c;会被…
一、数据类型
1、logic
logic类型只能有一个驱动。使用wire和reg的地方均可使用logic但如双向总线等有多个驱动的地方则不可使用logic。
2、二值逻辑
对于二值逻辑变量与DUT中的四值逻辑变量连接时如果DUT中产生了X和Z会被转换成双状态值。使用$isunknown操作符可以在表达式的任意位出现X或Z的时候返回1。用来检查未知值的传播。
3、定宽数组
多维数组的foreach循环以两维数组为例foreachmd[ij]。
数组下标和位下标可以同时使用。
需要等待数组中的变化 event时必须使用合并数组。
4、动态数组
只要基本数据类型相同定宽数组和动态数组之间就可以相互赋值在元素数目相同的情况下可以把动态数组的值复制到定宽数组。
5、队列
队列的常量初始化中无需使用单引号。 对于一些非合并的数据类型非连续存放需要使用单引号进行标量初始化赋值对于合并的数据类型连续存放不需要使用单引号进行标量初始化赋值 队列中的元素是连续存放的队头或队尾存取数据非常方便常用来作为FIFO。
6、数组的方法
1缩减
sumproductandorxor
对于定宽数组、动态数组、队列和关联数组从其中随机取数可以使用$urandum_range($size(array)-1)特别地队列和动态数组可以使用$urandum_range($array.size()-1)。
2定位
minmaxunique
find使用with来限定条件还有find_indexfind_firstfind_first_indexfind_lastfind_last_index返回索引的方法返回值类型为int
3排序
改变了原始的数组reversesortrsortshuffle其中sort和rsort可以带with进行条件选择
7、结构
可以将结构定义为合并结构typedef struct packed {bit[7:0] r,g,b;} pixel_p_s;
如果需要经常对整个结构体进行复制那么合并结构的效率会高一点但是对于合并结构中尺寸不规则的元素进行读写需要移位和屏蔽操作代价很高。
8、枚举
枚举默认值为从0开始递增的整数默认类型为int。
可以指定枚举值如typedef enum {INIT, DECODE 2 , IDLE} fsmtype_e;
9、字符串
string用来保存长度可变的字符串结尾不带标识符null
二、过程块和方法
1、函数和任务
参数的默认值和方向为logic输入。
允许不带ref进行数组参数的传递这时数组会被复制到堆栈区代价很大。
ref参数在任务里可以修改变量而且修改结果对调用它的函数随时可见。