UVM环境(一)

1)如何避免绝对路径的出现:绝对路径一般都是用在信号的连接关系上,这样可以用virtual interface,来通过句柄的赋值来动态的建立连接关系。那么顶层模块怎么

                                     样将interface的句柄赋值给driver/monitor,通过config_db,必须显式的指出路径完成句柄赋值。而且config_db是一个参数化的

                                     类,参数类型是要传输的类型。set和get是两个静态function。一般放在test的initial过程块中或其他build_phase完成参数配置。

2)objection机制:成对出现的raise_objection和drop_objection,通过event事件的触发来控制phase的运行时间。(限制:必须在第一个消耗仿真时间的语句之

                        前,进行raise)。

3)factory机制:使用宏定义机制uvm_component_utils(),注册组件在UVM环境中,这样config_db的时候也才找得到路径。当运行run_test(env)时,UVM开始

                      从自身的build_phase开始执行各个phase,所以一般在env的build_phase中引入new(),构建各个组件。相对于component而已,UVM中的顶

                      层是uvm_test_top。另一类的宏定义是uvm_object_utils。

                     主要通过参数化的类这样的方式来实现,即通过字符串的名字来实例化类

4)phase机制:UVM中的phase都是一个个function/task,只不过UVM对它们有特殊的event联系,可以直接通过run_test()启动,并严格按已规定好的执行顺序来执行

 

转载于:https://www.cnblogs.com/-9-8/p/4434680.html

EASIER UVM(Unified Verification Methodology)是个用于硬件验证的高级方法论和工具集,它是针对Verilog/VHDL设计的验证环境。EASIER是Efficient, Agile, Scalable, and Extensible缩写的首字母,旨在提供个简化、灵活且可扩展的验证流程。 以下是搭建EASIER UVM环境的基本步骤: 1. **安装UVM库**:确保你已经在你的Verilog/VHDL环境中安装了官方的UVM库,这通常包含在Xilinx或Cadence等EDA工具的版本中。 2. **创建项目结构**:按照EASIER UVM的推荐结构,设置目录包括基类库、顶层模块、测试库、配置库等。 3. **编写基类**:创建基类库,这是所有自定义UVM类的起点,如环境类(uvm_env)、时序类(uvm_sequence_base)、进程类(uvm_task_base)等。 4. **创建测试框架**:创建个顶层测试类(如uvm_testbench),继承自uvm_component,并使用uvm_top_level来管理测试环境和其他组件。 5. **编写自定义类**:根据被测模块的功能编写特定的验证类,比如接口类(uvm_agent_extension)、模型类(uvm_object)、接口类(uvm_sequence_item)等。 6. **配置和连接**:配置UVM环境中的各个组件,设置适当的端口映射和连接。 7. **编写测试代码**:使用自定义类编写测试用例,调用相关的接口,执行预期的行为并检查结果。 8. **执行测试**:在仿真器或硬件平台上运行测试,观察UVM日志,确认测试是否通过。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值