【技术实现步骤摘要】
一种寄存器模型初值配置方法
[0001]本专利技术涉及微电子
,且特别是有关于一种寄存器模型初值配置方法
。
技术介绍
[0002]随着集成电路技术的不断发展,硬件设计的规模和功能复杂程度也日益提升,越来越多的功能模块被集成到同一颗集成电路上,而各个功能模块的行为往往与该模块对应的寄存器配置挂钩
。
在基于
UVM
寄存器模型的使用下,验证人员配置寄存器已经变得相对简单
。
通常,对寄存器模型进行操作有以下几种方法: read
操作(对寄存器及其字段进行读取)
、write
操作(对寄存器及其字段进行写入的行为)
、peek
操作(用于读取仿真环境中的信号
、
寄存器或内存的值)
、poek
操作(用于写入仿真环境中的信号
、
寄存器或内存的值)
、get
操作(获取寄存器或寄存器字段的当前值或特定属性)
、set
操作(设置寄存器或寄存器字段的值或特定属性)
、update
操作(更新寄存器或寄存器字段的值)和
randomize
操作(随机生成和设置寄存器模型中字段值)
。
[0003]现在常用的的配置方式是在测试环境中重复调用寄存器模型中的
write
操作来实现对寄存器的配置,但是如果功能模块内使用到的寄存器数量较多,在环境中或者具体的测试用例中对寄存器进行配置,验证 ...
【技术保护点】
【技术特征摘要】
1.
一种寄存器模型初值配置方法,其特征在于,包括,步骤
S1
,搭建
UVM
验证环境;步骤
S2
,基于
Python
脚本识别寄存器表单,生成标准的寄存器抽象层文件;步骤
S3
,根据寄存器抽象层文件使用
ralgen
命令生成寄存器模型;步骤
S4
,利用
Python
脚本解析寄存器抽象层文件,解析模块名,寄存器名以及字段名,存储每个字段的属性
、
位宽以及默认值;步骤
S5
,利用
Python
脚本识别寄存器或字段是否为保留域;步骤
S6
,对不是保留域且属性为可读可写或只写的域段生成一个参数配置文件
plus_aaa_ral
,每个所述不是保留域且属性为可读可写或只写的域段均对应一个变量,所述参数配置文件
plus_aaa_ral
包含对上述各个变量的声明;步骤
S7
,在寄存器模型中添加
set_cfg
()函数,
set_cfg
()函数内部调用寄存器模型中的
set
函数;步骤
S8
,在测试用例中,通过传递参数对所述参数配置文件
plus_aaa_ral
中的各个变量进行赋值,通过
set_cfg
()函数将对各个变量赋的值配置到各变量对应的寄存器的期望值中;步骤
S9
,在测试环境的配置阶段中调用封装函数,所述封装函数包括
update
函数,
update
函数检查期望值与镜像值是否一致,若不一致,就会将期望值写入被测器件,并将镜像值更新到和期望值一样
。2. 如权利要求1所述一种寄存器模型初值配置方法,其特征在于,所述步骤
S6
中,变量的声明格式为
static bit [width
‑
1:0] block_name_reg_name_field_name
,表示这个变量属于模块
block_name
的寄存器
reg_name
的字段
field_name
,
width
表示变量需要的位宽,
static
表示这个变量为静态变量
。3.
如权利要求2所述一种寄存器模型初值配置方法,其特征在于,
set
函数按照如下命令对寄存器模型的期望值进行操作
block_name.reg_name.field_name.set(plus_aaa_ral::block_name_reg_name_field_name)
,表示将参数配置文件
plus_aaa_ral
中模块
block_...
【专利技术属性】
技术研发人员:付佳成,王澳,郭帆,张高明,杨清,
申请(专利权)人:深圳市楠菲微电子有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。