[验证百花筒] 聊聊模块级寄存器模型如何复用到系统级

本文介绍了如何在UVM环境下,将模块级的寄存器模型复用到系统级,通过改变adapter、调整地址映射和顶层寄存器模型的设计,实现在不同接口间的无缝切换,同时强调了package复用和良好编程习惯的重要性。

[验证百花筒] 聊聊模块级寄存器模型如何复用到系统级

1. 引言

这篇文章主要应某位粉丝的要求写的,主要从应用角度讲解如何把模块级的寄存器模型复用到系统级,就不去细究UVM源码的实现原理了,所以就没有放在[UVM源代码分析]的专栏里。

寄存器模型有个很基础的概念,就是寄存器模型本身是与接口协议无关的,它只跟spec定义的寄存器地址位宽、读写属性、默认值相关,所以同样一套寄存器模型可以用在多种接口实现上,接口的类型主要体现在uvm_reg_adapter的实现上。所以我们在做SOC开发时,模块级的寄存器实现可能是通过apb或者mdio等串口进行访问的,但是到了系统级的访问接口有可能就换成了AHB或者AXI等高速接口,但是对于寄存器模型本身而言不需要做任何的修改可以直接复用,只需要把对应的adapter换掉即可。

本文以ahb2apb_adapter的环境为例,介绍下sub_system的环境中,如何将模块级的两个子环境spi和uart的模块级寄存器模型复用到sub_system中。

2. 验证环境背景介绍

本sub_system验证环境分别包含了3个模块级的验证环境,分别spi、uart和ahb2apb_bridge,其中spi和uart定义了自己模块的寄存器,需要使用寄存器模型,ahp2apb_bridge模块只做接口ahb到apb的转换,没有定义寄存器,不需要寄存器模型。

2.1 模块级验证环境

图1-图3分别为三个模块级验证环境的框图。

图1 spi验证环境

在这里插入图片描述

图2 uart验证环境

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值