8、UVM机制(三)callback机制是用来改变组件行为的一种方法。和override类似的是,它可以修改组件中的一些行为,但不同点在于,override机制会将整个对象或者类替换掉,而且在编写替换类时,需要继承原来的类,这在大型模块验证时可能会造成继承关系混乱的问题。callback机制则是在编写组件代码时,先在相应组件中放入一个回调函数入口,然后通过编写此函数的行为...DarentTheYang...大约 6 分钟数字验证数字验证
7、UVM机制(二)UVM平台的机制是为了方便用户,所以机制本身的原理会比较复杂,对验证工程师来说可以算是透明的。验证工程师只要会用就行。但是,大致了解机制本身其实有助于弄清楚问题所在,特别是出BUG的时候。这章介绍UVM的sequence机制和TLM机制。sequence机制在很多教程中都分一般用法和高级用法, 这里也把一般用法和高级用法分开。TLM1.0则是UVM组件...DarentTheYang...大约 21 分钟数字验证数字验证
5、environment类和testcase类的创建及仿真environment是几乎涵盖所有验证平台核心组件的容器类,主要任务是配置一部分平台组件,并把它们实例化。testcase是包围environment的一个组件,目的是选择启动的sequence类型,以及完成一些配置。最后,需要在program块中启动仿真。==本章章内相关位置及末尾会给出查看示例代码的网站,文章末尾的网站仅为汇总。注意,这些示例代码...DarentTheYang...大约 2 分钟数字验证数字验证
6、UVM机制(一)这一节需要先讲一些杂散的东西,然后才继续集中研究。首先会介绍一下UVM类、factory机制、field机制、configuration机制、phase机制、UVM内嵌的信息服务机制。以后还会有一个TLM信息传输机制需要讲,这是后话。刚才提到的这些机制是基础,需要花一些时间来学,但并不会占用太久的时间(可能还是有点久的,内容不算少)。==本章章内相关位...DarentTheYang...大约 30 分钟数字验证数字验证
4、master agent、slave agent与其子对象agent分为两种模式,一种叫做active模式,一种称为passive模式。一个完整的active agent内包含三个组件,分别是sequencer、driver和monitor,它承担三个任务,每个组件各有一个任务:sequencer从sequence中取得transaction数据并发送给driver、driver解开transaction中的...DarentTheYang...大约 4 分钟数字验证数字验证
3、sequence与sequencer的任务在那张验证平台的结构图中,可以看到sequencer的位置,但找不到sequence。这表明,sequence并不属于验证平台的一个组件。但它仍然在验证时处于非常重要的位置,承担产生并向sequencer输送transaction的任务。 3.1 sequence的任务和代码 sequence的任务,主要是根据sequencer传来的请求数据信号,产生...DarentTheYang...大约 4 分钟数字验证数字验证
2、transaction和事务级仿真本文简述了事务级仿真以及transaction的部分编写规则,并使用一个简单的数据转发模块作为本文的DUT,内容与代码都仅供参考。 2.1 何为事务级仿真 在验证平台中,数据并不以pin级信号传输,而是以一种特殊的数据形式transaction存在。这里提到的transaction指的就是事务,它区别于pin级仿真。以定义transaction类来决定...DarentTheYang...大约 3 分钟数字验证数字验证
1、数字电路验证简介最近在学习数字验证方面的东西,想到了就随手记录一下,不一定对。 1.1 数字电路 仅用二值逻辑表示电路状态的电路称为数字电路。逻辑1/逻辑0并不代表实际的电压值,甚至不一定代表高电平/低电平。 一般来说,逻辑电平是人为决定的,它可以是实际电压的一个范围。例如,可以用逻辑1表示5V-3V的电压,同时逻辑0对应于2V-0V。而在负逻辑中,可能会用逻辑1代表...DarentTheYang...大约 5 分钟数字验证数字验证