数字IC验证学习(一)

2023-10-27

一、数据类型

1、logic

logic类型只能有一个驱动。使用wire和reg的地方均可使用logic,但如双向总线等有多个驱动的地方,则不可使用logic。

2、二值逻辑

对于二值逻辑变量与DUT中的四值逻辑变量连接时,如果DUT中产生了X和Z,会被转换成双状态值。使用($isunknown)操作符,可以在表达式的任意位出现X或Z的时候返回1。用来检查未知值的传播。

3、定宽数组

多维数组的foreach循环,以两维数组为例:foreach(md[i,j])。

数组下标和位下标可以同时使用。

需要等待数组中的变化(@ event)时,必须使用合并数组。

4、动态数组

只要基本数据类型相同,定宽数组和动态数组之间就可以相互赋值,在元素数目相同的情况下,可以把动态数组的值复制到定宽数组。

5、队列

队列的常量初始化中,无需使用单引号。

对于一些非合并的数据类型(非连续存放),需要使用单引号进行标量初始化赋值;对于合并的数据类型(连续存放),不需要使用单引号进行标量初始化赋值

队列中的元素是连续存放的,队头或队尾存取数据非常方便,常用来作为FIFO。

6、数组的方法

1)缩减

sum,product,and,or,xor

对于定宽数组、动态数组、队列和关联数组,从其中随机取数可以使用$urandum_range($size(array)-1);特别地,队列和动态数组可以使用$urandum_range($array.size()-1)。

2)定位

min,max,unique

find:使用with来限定条件;还有find_index,find_first,find_first_index,find_last,find_last_index(返回索引的方法,返回值类型为int)

3)排序

改变了原始的数组,reverse,sort,rsort,shuffle,其中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参数在任务里可以修改变量而且修改结果对调用它的函数随时可见。

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

数字IC验证学习(一) 的相关文章

随机推荐

  • MySQL中 数据库 和 表 的基操

    一 数据库 的操作 1 显示 数据库 2 创建 数据库 3 使用 数据库 4 删除 数据库 二 表 的操作 1 查看表结构 2 创建 表 3 删除 表 4 查看数据库中的表 三 常用的数据类型 一 数据库 的操作 1 显示 数据库 show
  • html css js 完整案例,html+css+js实例

    实例简介 用html css js做的一个简单小网页 可以作为初学者的参考资料 实例截图 核心代码 travel travel css css images 0 PNG 100 jpg 101 jpg 102 jpg 103 jpg 104
  • java语言的运算符

    目录 小白的疑惑 大白话运算符概念 运算符概念 运算符分类 特别注意 代码定天下 二元运算符 关系运算符代码 逻辑运算符 位运算符 拓展运算符 三目运算符 小白的疑惑 很多没接触编程的小伙伴都会顿感疑惑 啥是运算符 大白话运算符概念 小学算
  • VSCode 下载缓慢或者下载失败解决方案

    最近发现在VSCode官网上下载vscode十分缓慢 甚至经常断网或者是直接导致下载失败 我们可以使用国内镜像 让下载飞起来 附图 从官网上下载网速极其缓慢 我们将链接复制下来 黑框 https az764295 vo msecnd net
  • 版本发布流程

    文章目录 一 版本发布流程 1 增加 变更功能流程 1 需求确认 2 产品开发 3 alpha测试 4 问题修复 5 beta测试 6 版本发布 2 问题修复流程 1 问题确认 2 问题修复 3 alpha测试 4 版本发布 二 CHANG
  • 每天一个---- 吉尔德定律和迈特卡尔定律

    吉尔德定律 即主干网带宽的增长速度至少是运算性能增长速度的三倍 因为运算性能增长速度主要是由摩尔定律决定的 所以根据每18个月运算性能提高一倍计算 主干网的网络带宽的增长速度大概是每6个月增长一倍 而主干网的网络带宽的不断增长意味着各种新的
  • centos安装nc

    yum install y nc
  • el-button按下后背景颜色不恢复

    绑定的点击事件 const One click using evt gt let target evt target if target nodeName SPAN target evt target parentNode target b
  • 什么是MES系统?本文解释得很清楚了

    MES 英文Manufacturing Execution System的缩写 即生产执行系统 是近几年发展起来的企业信息化系统 目前在发达国家已经普遍推广 MES软件是介于ERP 企业资源计划系统 和自控系统 DCS PLC等 之间的系统
  • Android APK反编译技巧全讲解

    导言 在我们安卓开发当中 我们不仅需要掌握基础的开发技能 也需要掌握软件的安全技能 这样才可以让我们的软件能够成为一款能够真正可以进行发布的软件 同时也可以让自己的核心技术不会被别人所盗取 首先我们应当了解的是 对于反编译我们一共需要三个工
  • 《英雄联盟》丢失d3dcompiler_47.dll怎么办,推荐这个修复方案

    不知道大家有么有遇到过 在打开 英雄联盟 的时候 计算机提示丢失d3dcompiler 47 dll 无法继续执行此代码 d3dcompiler 47 dll是一个动态链接库文件 它是与Direct3D编译器相关的组件之一 像是photos
  • HTML <tt> 标签

    HTML5 中不支持
  • 也谈SDH、MSTP、OTN、PTN的区别和联系

    首先要说的是TDM的概念 TDM就是时分复用 就是将一个标准时长 1秒 分成若干段小的时间段 8000 每一个小时间段 1 8000 125us 传输一路信号 SDH系统的电路调度均以TDM为基础 所以看到很多人说SDH业务就是TDM业务
  • 求解全排列与幂集

    全排列 include
  • Hexo+GitHub搭建个人博客,实现云端编辑、一键发文

    操作环境 Windows10 Node Git ssh 前置准备
  • 最新八股文面试题

    Java面向对象有哪些特征 如何应用 面向对象编程是利用类和对象编程的一种思想 万物可归类 类是对于世界事物的高度抽象 不同的事物之间有不同的关系 一个类自身与外界的封装关系 一个父类和子类的继承关系 一个类和多个类的多态关系 万物皆对象
  • 探究Softmax的替代品:exp(x)的偶次泰勒展开式总是正的

    PaperWeekly 原创 作者 苏剑林 单位 追一科技 研究方向 NLP 神经网络 刚看到一个有意思的结论 对于任意实数 x 及偶数 n 总有
  • 通过PIL判断一张图片是不是灰度图

    灰度图有一个通道 可以理解为一个像素点用1个8bits数据表示 1个8bits表示范围是0 255 彩色图有三个通道 一个像素点用3个8bits数据表示 三个0 255的数字 def check gray image img path fr
  • B树的原理及代码实现、B+树和B*树介绍及应用

    目录 一 B树介绍 一 B树存在意义 二 B树的规则 二 B树实现原理及代码 一 实现原理 二 代码 三 B 树 一 概念 二 应用 MyISAM InnoDB 四 B 树 一 B树介绍 一 B树存在意义 B树主要用于磁盘文件的检索操作 众
  • 数字IC验证学习(一)

    一 数据类型 1 logic logic类型只能有一个驱动 使用wire和reg的地方均可使用logic 但如双向总线等有多个驱动的地方 则不可使用logic 2 二值逻辑 对于二值逻辑变量与DUT中的四值逻辑变量连接时 如果DUT中产生了