基于UVM的存储建模优化方法技术

技术编号:34538394 阅读:13 留言:0更新日期:2022-08-13 21:33
本发明专利技术公开了一种基于UVM的存储建模优化方法,包含如下步骤:搭建UVM验证环境;在UVM验证环境中将存储实体的存储单元建模为mem_entry_shadow类,获得寄存器模型;对UVM验证环境的存储模型类uvm_mem进行拓展扩展升级,获得存储数据的镜像值与实际值;对UVM验证环境的预测器进行拓展扩展升级,用于更新同步镜像值与实际值;在寄存器模型的类uvm_reg_bloock中创建chek_mem_value方法,用于仿真结束阶段检查镜像值与实际值存储镜像值与DUT实际存储值。本发明专利技术提升了验证开发人员对存储建模的开发效率的同时避免了创建存储实体所带来的内存损耗较大的仿真性能问题,减轻了开发人员的代码工作量。代码工作量。代码工作量。

【技术实现步骤摘要】
基于UVM的存储建模优化方法


[0001]本专利技术涉及芯片
,特别涉及一种基于UVM的存储建模优化方法。

技术介绍

[0002]对于数字芯片来说,其内部几乎不可能少得了寄存器,寄存器的作用非常重要,它是实现数字时序逻辑电路的基础,比如可以用来存储数据,用于高速计算和缓存,或者用于指示工作模式和状态。因此对于一个DUT(Device Under Test)来说,通常我们需要配置其工作模式或需要通过寄存器中存储的数据来告知我们其内部的工作状态。UVM(Universal Verification Methodology)提供了寄存器模型用来对上述数字芯片内部的寄存器进行建模,如图1所示,图1中寄存器模型(register model)中例化包含了有寄存器(register),地址映射表(map),存储器(mem),覆盖率收集组件(reg coverage)以及数据库(database)。这里的数据库(database)包含了验证平台中会使用到的三种对DUT中寄存器值的模拟,包括寄存器的实际值、镜像值和期望值,我们可以根据实际项目的情况综合使用上述对寄存器建模的三种不同值的类型,以对DUT中的寄存器的值进行复杂的读写操作的建模和最终的比较,从而查找出DUT中可能存在的问题,从而帮助确认DUT寄存器功能设计的正确性。
[0003]采用上述现有方案,给验证开发人员的开发工作增加了代码工作量,使用起来较为麻烦,因为需要验证开发人员自行完成如下操作:(1) UVM没有对存储建立相应的存储实体,即UVM并没有提供类似寄存器的镜像值和期望值给存储,因此需要自行创建并维护存储实体。
[0004](2)仿真结束阶段,自行对存储实体和DUT中实际存储的值进行比较。
[0005]除此之外,验证开发人员不能像UVM中寄存器那样使用三种不同值的类型的接口方法,从而方便的对存储进行复杂的读写操作的建模并作最终的比较,从而查找出DUT中可能存在的问题,从而帮助确认DUT 存储功能设计的正确性。
[0006]
技术实现思路

[0007]根据本专利技术实施例,提供了一种基于UVM的存储建模优化方法,包含如下步骤:搭建UVM验证环境;在UVM验证环境中将存储实体的存储单元建模为mem_entry_shadow类;对UVM验证环境的存储模型类uvm_mem进行扩展升级;对UVM验证环境的预测器进行扩展升级;在仿真结束阶段检查存储镜像值与DUT实际存储值。
[0008]进一步,在UVM验证环境中将存储实体的存储单元建模为mem_entry_shadow类,包含如下子步骤:在mem_entry_shadow类被构造实例化时根据传递的存储位宽计算得到占用的字节单元数;
使用动态数组,根据实际存储的存储数据位宽将动态数组切分成字节数组,并对字节数组大小空间进行声明;在mem_entry_shadow类中创建读写方法接口。
[0009]进一步,对UVM验证环境的存储模型类uvm_mem进行扩展升级,包含如下子步骤:对mem_entry_shadow类声明为关联数组,从而创建存储的镜像值与期望值实体;创建与UVM验证环境提供的存储模型相关的读写方法。
[0010]进一步,对UVM验证环境的预测器进行扩展升级包含如下子步骤:获取存储实体的寄存器存储总线操作的事务数据信息;将事务数据信息转换为通用的寄存器存储访问uvm_reg_bus_op的事务数据类型变量;调用UVM验证环境的寄存器模型的地址映射表的get_mem_by_offset方法,获取UVM验证环境提供的存储模型的句柄;获取存储模型的句柄,调用存储模型的predict_mirrored_value方法同步更新存储单元的镜像值。
[0011]进一步,获取存储模型的句柄,调用存储模型的predict_mirrored_value方法同步更新存储单元的镜像值,包含如下子步骤:调用存储模型的get_offset方法获取存储模型的基地址;获取存储单元的真实地址,使用存储单元的真实地址减去存储模型的基地址,获得存储单元的偏移地址;使用偏移地址更新同步镜像值。
[0012]进一步,在仿真结束阶段检查存储镜像值与DUT实际存储值,包含如下子步骤:在UVM验证环境的寄存器模型的类uvm_reg_block中创建check_mem_value方法;在check_mem_value方法中调用get_memories,获取UVM验证环境提供的存储模型;调用存储模型的check_mem_value方法对存储镜像值与DUT实际存储值进行检查。
[0013]根据本专利技术实施例的基于UVM的存储建模优化方法,提升了验证开发人员对存储建模的开发效率的同时避免了创建存储实体所带来的内存损耗较大的仿真性能问题,减轻了开发人员的代码工作量。
[0014]要理解的是,前面的一般描述和下面的详细描述两者都是示例性的,并 且意图在于提供要求保护的技术的进一步说明。
[0015]附图说明
[0016]图1为现有技术的原理图图2为根据本专利技术实施例基于UVM的存储建模优化方法的原理图;图3为根据本专利技术实施例基于UVM的存储建模优化方法的步骤流程图;图4为图3中的步骤S2的子步骤的流程图;图5为图3中的步骤S3的子步骤的流程图;图6为图3中的步骤S4的子步骤的流程图;
图7为图6中的步骤S44的子步骤的流程图;图8为图3中的步骤S5的子步骤的流程图。
[0017]具体实施方式
[0018]以下将结合附图,详细描述本专利技术的优选实施例,对本专利技术做进一步阐述。
[0019]首先,将结合图2~7描述根据本专利技术实施例的基于UVM的存储建模优化方法,用于存储数据,其应用场景广阔。
[0020]本专利技术实施例的基于UVM的存储建模优化方法,包含如下步骤:在S1中,如图3所示,搭建UVM验证环境。
[0021]在S2中,如图3所示,在UVM验证环境中将存储实体的存储单元建模为mem_entry_shadow类。
[0022]在S3中,如图3所示,对UVM验证环境的存储模型类uvm_mem进行扩展升级。
[0023]在S4中,如图3所示,为了实现对镜像值与实际值的更新同步,对UVM验证环境的预测器进行扩展升级,主要在其接收广播端口过来的write方法里增加对存储访问显示预测的支持功能,因为一般来说更推荐采用显示预测的方式来对镜像值进行更新,因此这里为示例,设定增加的默认预测方式为显示预测。这里预测器,派生于uvm_reg_predictor类,它与寄存器存储总线上的监测器进行连接以获取来自总线上的数据,然后匹配与寄存器有关的地址,并自动调用寄存器模型的预测方法从而完成与DUT中寄存器及存储的同步。通过外部的预测器用来对总线进行监听,该预测器里的适配器将总线事务转换为寄存器事务类型,然后使用对应的地址通过地址映射表来访问目标寄存器或存储,最后调用寄存器或存储的自动预测方法来更新寄存器模型中寄存器和存储的镜像值,使得与DUT中实际的值进行同步。本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于UVM的存储建模优化方法,其特征在于,包含如下步骤:搭建UVM验证环境;在UVM验证环境中将存储实体的存储单元建模为mem_entry_shadow类;对所述UVM验证环境的存储模型类uvm_mem进行扩展升级;对所述UVM验证环境的预测器进行扩展升级;在仿真结束阶段检查存储镜像值与DUT实际存储值。2.如权利要求1所述基于UVM的存储建模优化方法,其特征在于,在UVM验证环境中将存储实体的存储单元建模为mem_entry_shadow类,包含如下子步骤:在所述mem_entry_shadow类被构造实例化时根据传递的存储位宽计算得到占用的字节单元数;使用动态数组,根据实际存储的存储数据位宽将所述动态数组切分成字节数组,并对所述字节数组大小空间进行声明;在所述mem_entry_shadow类中创建读写方法接口。3.如权利要求1所述基于UVM的存储建模优化方法,其特征在于,对所述UVM验证环境的存储模型类uvm_mem进行扩展升级,包含如下子步骤:对所述mem_entry_shadow类声明为关联数组,从而创建存储的镜像值与期望值实体;创建与所述UVM验证环境提供的存储模型相关的读写方法。4.如权利要求1所述基于UVM的存储建模优化方法,其特征在于,对所述UVM验证环境的预测器进行扩展升级包含如下子步骤:获取所述存储实体的寄存器存储总线操作的事务数据信息;将所...

【专利技术属性】
技术研发人员:马骁
申请(专利权)人:杭州云合智网技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1