UVM验证平台搭建一:reg model 生成

10 篇文章 27 订阅


一、概述

在做验证时,寄存器模型是验证平台中必不可少的,而且项目更新,寄存器也需要跟着进行更新,所以需要快速的生成UVM寄存器模型,本文采用VCS中的ralgen来实现:
1.根据spec中寄存器的描述,用ods、CSV、XML等来描述寄存器信息;
2.根据寄存器描述文件通过脚本批量生成.ralf格式的寄存器文件;
3.通过VCS中的ralgen命令生成UVM register model。
本文通过表格来描述寄存器的相关信息,然后通过python写好的脚本,来解析该表格生成ralf文件。最后通过ralgen命令读取ralf文件生成验证平台需要的寄存器模型。下面以spi模块为例,介绍寄存器生成的过程。

二、寄存器描述表格

  • 寄存器名称、地址和复位值的描述
reg_namereg_addrreg_rst
spi_cr100000
spi_cr240700
spi_sr80002
spi_drc0000
spi_crcpr100007
spi_rxcrcr140000
spi_txcrcr180000
spi_i2scfgr1c0000
spi_i2spr200000
  • spi_cr1寄存器总各个bit位的描述

spec中spi_cr1寄存器各位的信息:

1514131211109876543210
bidimodebidioecrcencrcnextdffrxonlyssmssilsbfirstspebr[2]br[1]br[0]mstrcpolcpha
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw

通过表格来描述spi_cr1寄存器的bit位信息如下(其他寄存器类似):

bit_namebit_sitebit_widthbit_access
cpha01rw
cpol11rw
mstr21rw
br33rw
spe61rw
lsbfirst71rw
ssi81rw
ssm91rw
rxonly101rw
crcl111rw
crcnext121rw
crcen131rw
bidioe141rw
bidimode151rw

三、生成.ralf寄存器文件

通过实现写好的python脚本,读取寄存器描述表格,生成.ralf文件。
部分.ralf结果如下:
在这里插入图片描述
在这里插入图片描述

具体.ralf文件格式以及其他option请参考ralf user guide

四、ralgen生成寄存器模型

生成RAL model命令:
ralgen [option] -t topname -I dir -uvm {filename.ralf}

  • -t topname
    RALF文件中顶层模块或者系统的名称,生成的RAL model文件名称为ral_topname.sv
  • -uvm
    声明是UVM方法学
  • -I dir
    realgen搜索源文件的可选目录列表
  • filename.ralf
    .ralf后缀不是必须的
    最后通过ralgen命令生成的spi_reg_model文件,部分内容如下:
    在这里插入图片描述

生成寄存器模型后就可以集成到验证环境中,使用了!后续如果项目更新只要更新下表格中的寄存器描述信息,然后直接运行脚本,就可以直接快速生成新的寄存器模型。

相关参考文档:ralf和ralgen参考文档

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值