register model 在uvm的验证环境里是必不可缺少的一部分,涉及到对dut的寄存器的操作都需要通过register model。register model不同与uvm 其它component,它比较独立。register model里涉及到了一些概念,uvm_filed,uvm_reg,uvm_block。这三者具有层层包含的关系,最终生成一个完整的register_model。如果同过手动的方式去写register_model,对于变动比较的小register_model简单改下就行,但是对于变化比较大的register model就会花费大量时间,考虑到register model的生成是具有一定规律的,因此可以考虑通过python去生成,通过制定一些规则给DE,让DE按规填写excel 表格,然后DV可以根据表格可以生成需要的registermodel
from openpyxl import load_workbook
import sys
import numpy as np
import functools
def reg(reg):#例化reg 内部的filed,filed需要指定各个parameter
reg_name=reg['reg_name']
filed_name=reg['filed_name']
size=reg['size']
filed_size=reg['filed_size']
filed_offset=reg['filed_offset']