1.UVM是软件模块,DUT是硬件模块
软件模型中要有reference model,接收输入,输出期望数值。寄存器模块也可以做预测,硬件中的所有寄存器,在软件寄存器中也要有。
map1中有所有的信息。register initiator(UVC) 寄存器激励,可能是bus-agent。
2.类的功能
uvm-reg-block最大,包含uvm-reg-map(信息)、uvm-mem(匹配硬件模型)和uvm-reg(寄存器)。
uvm-reg包含多个uvm-reg-field,uvm-reg-field最小。
3.build-phase是component,寄存器使用build实现自动化。
在定义寄存器的时候继承uvm-reg,通过 实例.configure(),配置域,定义的属性是uvm-reg-field的。
在定义寄存器模型继承 uvm-reg-block,build函数需要做:1.实例化 2.配置 (自动化)3.配置uvm-reg的属性,通过 map实例.add-reg()。
4.
以前的BUS-agent传送的sequence(bus-transaction),包含各种信息。但是现在需要用register中的数据变成激励。所以需要一个adapter实现各自uvm-reg-bus-op与transaction的数据映射。
需要实现reg2bus()和bus2reg()函数:reg2bus()将uvm-reg-item转化成bus-seq-item。
寄存器无论读写,都应该知道总线操作之后的状态返回,都需要调用reg2bus()。