uvm设计分析——field automation】的更多相关文章

uvm中的field_automation主要实现了class中的基础元素的copy,compare等函数, 实现方式分为两种:1)用户注册,field系列宏:uvm内部调用static status container中的function:     2)用户自己实现do_copy,do_print等函数,调用static printer内的函数: uvm_object中实现了print,sprint等函数,实现调度接口,调度status_container和do_function: statu…
项目中的reg_model一般只有一份,set到reg_sequence上,所以多个sequence并行启动结束的时候,reg model会成为一个共享资源. uvm_reg_field中的volatile,主要来设置m_check的变量, m_check,主要用在uvm_reg的mirror task,以及read task,(需要map中配置check_on_read) uvm_reg_field中的desired,mirrored,m_parent,m_access变量都是local的,继…
uvm的factory机制,通过实例一个static类型default factory,并且通过宏将所有例化extend出来的object,component register到该factory的内部变量中:所以有了可以override的条件: register通过注册一个proxy,该proxy是一个参数化的class,实现对被代理class的create: uvm_component_registry,是对uvm_component的proxy基类,目标component通过定义一个参数化的…
tlm模块,用来在不同模块之间实现实时通信,主要基于两个定义在通信双方的port类来实现. 两个port之间,通过connect函数,来拿到双方的class指针,进而调用对方的function. 但是uvm规定,控制流(调用function与被调用方)只能按一定的方向来执行,所以只有某一类port类可以调对应port的function. 由于imp所在的class中,每次通信可能实现的function不同,而且做virtual function的重载也会引入新的class, 所以imp中的por…
uvm_callback,设计者在进行class的function设计时,有意留下的一些hook,总是遍历某个pool中的对象: 使用者在使用时,将实现添加到某个pool中: callback中,最重要的三个class: 1)pool类,uvm_callbacks,实现pool的register和add: 2)调用接口类,uvm_callback_iter,实现对pool中对象的遍历: 3)uvm_callback,供extend的基础类,只是定义了callback的mode: uvm_call…
uvm_report实现中的类图,如下: 1)uvm_component均从uvm_report_object extend而来,其中定义了report_warning,error,info,fatal等方法接口: 2)uvm_report_message和uvm_report_handle,是一个中介者的角色,实现调用接口和实现的分离:将report信息, 打包成一个message的对象:并处理各种severity的override: 3)uvm_report_server,实现该messag…
UVM的调度也具有其独特的挑战,尤其是在调试的领域.其中的一些挑战如下: 1. Phase的管理:objections and synchronization 2. 线程调试 3. Tracing issues through automatically generated code, macro expansion, and parameterized classes 4. 默认的错误信息详细但是难以捉摸 5. 扩展带有方法的类里面有些隐式的功能也许是不期望的 6. 对象ID跟对象句柄不同 7…
UVM的调度也具有其独特的挑战,尤其是在调试的领域.其中的一些挑战如下: 1. Phase的管理:objections and synchronization 2. 线程调试 3. Tracing issues through automatically generated code, macro expansion, and parameterized classes 4. 默认的错误信息详细但是难以捉摸 5. 扩展带有方法的类里面有些隐式的功能也许是不期望的 6. 对象ID跟对象句柄不同 7…
1. 类: 面向对象基础传统的面向对象编程与systemverilog类的特点,类的定义,成员与方法,构造函数,对象的复制和深/浅拷贝,父类/子类关系,类的继承,作用域的规则,对象的句柄以及赋值,方法的扩展和重写,local/protected关键字,虚基类,虚方法,虚接口. 2. UVM基础 :UVM的发展历史,可配置的测试组件,类库结构,UVM核心基类的介绍,include/macro,UVM交易(data),基本测试组件 (testbench components),组件的phase结构,…
Automation Anywhere是基于CLIENT-SERVER架构(control room和客户端),客户端主要是Bot Creator 和 BotRunner 主要构成: 1.WEBCR:就是control room,是用于管理用户,进程及其执行顺序的库 2.Bot Creator:开发机器人(Bots) 3.Bot Runner:部署,执行,管理开发好的机器人 业务分析:Process Maturity Model(PMM,流程成熟度模型) 基本步骤: Automation Pip…