UVM Summary
蛋炒饭的蛋蛋
icer,DV——记录自己学习成长过程,助攻技术、间杂生活杂记。
展开
-
谈谈UVM中事务级建模(TLM)的Analysis Ports 和Exports
前面描述的TLM port都要求在仿真开始之前与一个export正确地连接。如果port未连接,则会从UVM输出一条错误消息,提示你完成连接。当我们构建monitor等组件时,需要一个可以不连接或者连接到多个组件的port。这是因为monitor通常是整个验证环境中的passive components,被动地收集数据事务并将其传递给其他组件而不直接影响激励的生成。UVM中的Analysis ports与常规TLM port类似,但是可以不连接或者连接到任意数量的analysis exports。从c转载 2020-06-25 15:19:52 · 648 阅读 · 0 评论 -
数字IC验证系列之基本的TLM通信
提高验证生产力的关键之一就是在合适的抽象层次思考问题和完成验证工作,为此UVM提供了事务级别(transaction level)的通信接口(Transaction-Level Modeling,TLM)。在UVM中,Transactions建模了两个组件之间通信所需的信息(变量、约束等等)。下面是一个简单的总线协议事务示例:class simple_trans extends uvm_transaction; rand data_t data; rand addr_t addr; ran转载 2020-06-25 15:04:35 · 592 阅读 · 0 评论 -
数字IC验证系列之factory &create
在文章数字IC验证系列之config_db&virtual interface中我们已经简单地描述过factory设计模式或者说factory机制,在这篇文章中将阐述factory机制在UVM中的具体应用。在UVM中,我们不应该一直使用new()构造新的components和transactions,而应该从某个查找表中申请创建新的components和transactions,这种创建方式称为factory机制。首先在定义components和transactions的时候同时将其注册到查找表转载 2020-06-25 14:36:23 · 373 阅读 · 0 评论 -
数字IC验证系列之objection mechanism
UVM中,component的task phase是消耗仿真时间的,各个components的task phase之间需要完成同步。只有在所有components的相同task phase结束之后,才能进入下一个task phase。UVM中通过objection mechanism中的raise/drop objection来控制phase的开始和停止。当仿真器进入某个消耗时间的task phase时,首先会收集所有component**提起(raise)的objection,然后按顺序执行所有com转载 2020-06-25 11:30:48 · 397 阅读 · 0 评论 -
UVM-FLM-FIFO
UVM-FLM-FIFO在基本TLM通信put示例中,producer和consumer在同一个进程当中,consumer仅在put()方法调用时才处于活动状态。在许多情况下,可能需要不同速率的组件(components)独立运行,UVM提供了uvm_tlm_fifo通道以支持此类通信。uvm_tlm_fifo,顾名思义就是具有所有TLM接口方法的FIFO,producer可以将transaction放入uvm_tlm_fifo,consumer独立地从fifo获取transaction在上图中c转载 2020-06-25 10:41:30 · 802 阅读 · 0 评论 -
SystemVerilog和UVM到底是啥关系?
SystemVerilog和UVM到底是啥关系?UVM提供了丰富的基类库和验证方法学,并且被主流的EDA工具、IP供应商和设计公司采用。现在,使用SystemVerilog基本上等同于使用UVM验证。如果你要问我,SystemVerilog和UVM到底是啥关系,我觉得汉字和诗的比喻也许比较恰当。我自然不会说是code language和library的关系,太没有想象空间。当天空下雪了,SystemVerilog+UVM:忽如一夜春风来,千树万树梨花开。Only UVM:thousands of转载 2020-06-25 10:43:50 · 4125 阅读 · 0 评论