博客园 首页 联系 订阅 管理

随笔分类 -  UVM基础

摘要:对于一名芯片验证师而言,他可能面临的任务可能是模块级(module level)、子系统级(subsystem level)或者系统级(chip level)的验证。但是俗话说"条条大路通罗马",它们用得方式是一样的,当前业界通常采用 systemverilog 和 UVM 来验证 DUT。 UVM 阅读全文
posted @ 2019-11-21 19:48 DreamCll 阅读(9407) 评论(0) 推荐(1)

摘要:uvm环境工作流程主要包含以下几个步骤: module test_top module test 模板 module test_top; ... initial begin run_test(); end endmodule uvm 环境是在 module 中通过调用 run_test()<UVM 阅读全文
posted @ 2019-11-21 19:34 DreamCll 阅读(1796) 评论(0) 推荐(0)

摘要:####1.phase机制 uvm 验证环境通过 phase 机制,引入了一套自动化的运行流程,通过该机制我们可以清晰的了解 UVM 仿真阶段的层次化,因为 verilog 中有阻塞和非阻塞赋值,相应的仿真平台中,也要实现 NBA 区域 和 Actice 区域,在不同的 phase 区域中做不同的事 阅读全文
posted @ 2019-11-03 17:18 DreamCll 阅读(5009) 评论(0) 推荐(0)

摘要:####1. uvm_objection 和 uvm_component 基础 uvm_objection 和 uvm_component 是 uvm 中两大基础类,刚开始学习的时候,对两个东西认识不深,以为它们俩差不多,谁知道它两是一个是“爷爷”,一个是孙子的关系,两者贯穿整个 uvm 验证方法学 阅读全文
posted @ 2019-10-30 13:28 DreamCll 阅读(3380) 评论(0) 推荐(1)

摘要:写过 verilog 硬件代码的同学应该都知道 DUT 会包含很多寄存器,它们是模块间交互的接口,其用途大致可以分为两类: a. 通过读出寄存器当前的值获取 DUT 当前的状态,该类寄存器称为状态寄存器; b. 通过对寄存器进行配置,可以使得 DUT 工作在一定模式下,该类寄存器称为配置寄存器。 在 阅读全文
posted @ 2019-10-29 09:29 DreamCll 阅读(10712) 评论(0) 推荐(1)

摘要:一个基本的 uvm 验证环境结构如下图所示,包含两个 agent,其中 in_agent 用于驱动 DUT ,同时将驱动数据同时传递给 reference model, out_agent 用于按照协议采集 DUT 的输出数据,并将数据传递给 scoreboard,在 scoreboard 收集到 阅读全文
posted @ 2019-10-29 09:08 DreamCll 阅读(5461) 评论(0) 推荐(0)

摘要:在第一节中我们提过,为什么不把 transaction 实例化、随机和驱动全部放入 driver 中完成,我们验证的主要工作量,除了搭建验证环境之外,还有一大工作-拼凑场景case,其中不同场景中 transaction 的发送给数量和组织形式各有差异,我们如果把 transaction 放入dri 阅读全文
posted @ 2019-10-29 09:07 DreamCll 阅读(7769) 评论(0) 推荐(0)