版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、本文介绍了Synopsys公司推出的基于VMM的寄存器抽象层验证技术和方案,简称RAL(Register Abstraction Layer)。该技术是Synopsys针对芯片验证中如何简便、高效地完成寄存器/存储器相关的验证任务这一问题而开发的解决方案。该方案构建在 Synopsys的VMM验证方法基础上,使用了VMM中的通用技术,可以在VMM的验证环境中非常方便地集成和重用。 本文首先简述了在芯片验证中和寄存器/存储器相关的任务需求,然后介绍RAL的基本结构和相关模块,随后介绍如何在VMM的验证环境中集成RAL,最后介绍如何通过RAL完成验证过程中各种实际任务。本文中所有实例的源代码均采用
2、SystemVerilog硬件描述验证语言。验证需求和寄存器/存储器相关的验证任务主要包括两类,一类是对寄存器/存储器本身功能的验证,寄存器/存储器是芯片中控制和数据的存储场所,决定着芯片能否正常运行,因此,对寄存器/存储器本身的功能的验证,一般是整个验证过程中最先要完成的任务。另一类和寄存器/存储器相关的验证任务,是在对芯片进行其它功能验证的过程中,验证环境需要对寄存 器/存储器进行操作,例如,用写寄存器配置芯片的功能,用读寄存器检查芯片的状态。这类对寄存器/存储器进行操作的任务,是在芯片验证过程中,始终存在并且频繁出现的。芯片中的寄存器/存储器具有数量大和不断变化的特点。一般来说,芯片中的
3、寄存器数目往往达到几十个,上百个,甚至近千个,有的芯片有着为数不少的存储器。而且,这些寄存器/存储器的设计规范在不断变化中,甚至在芯片的验证过程中,寄存器/存储器的设计仍在变化。这两个特点使得测试平台对寄存器/存储器的维护十分困难。一旦在设计中增加或减少了寄存器/存储器,或者修改了寄存器字段的长度、位置、属性、初始值、或者修改了存储器的容量、字长等等,工程师就必须在整个验证环境和所有测试文件中,对于发生变化的寄存器/存储器进行相应的修改。这种维护工作是非常繁琐,耗时和容易出错的。因此,一方面,和寄存器/存储器相关的验证任务是不可缺少的,频繁出现的;另一方面,测试平台对寄存器/存储器的维护是耗时
4、和容易出错的。这样一来,本可以花在验证更复杂功能上的时间和精力,却被花在相对简单却很耗时的寄存器/存储器维护工作上了。这种矛盾导致了对简便,高效的寄存器/存储器验证解决方案的强烈需求。Synopsys正是在这种强烈需求的背景下推出了基于VMM的寄存器/存储器抽象层(RAL)验证解决方案。该方案的中心思想是,在验证环境中的一个特定模型内,进行寄存器/存储器的管理、维护和操作,一旦寄存器/存储器的设计规范发生变化,工程师对验证环境和测试文件的维护修改工作将尽可能地降低到最少的程度。 基本结构和工作机制Synopsys的VMM验证环境是层次化的验证环境,分为指令层(Command Layer)、功能
5、层(Functional Layer)、场景层(Scenario Layer)等,而RAL是隶属于Functional Layer的。RAL的基本结构包含三个部分,分别是RAL模型(RAL Model)、RAL处理器(RAL Transactor)以及RAL访问管理器(RAL Access)。如图1所示。 RAL的各个组成部分RAL Model封装了DUT中寄存器/存储器的一切描述信息,是DUT中寄存器/存储器在测试环境中的映射,RAL Model为寄存器保存、维护镜像值。但存储器在RAL Model中是没有镜像值的,这是因为对存储器的存取相对简单,并且存储器较大的存储容量会导致较大的镜像空间
6、,从而大大降低模拟效率。RAL Transactor负责把RAL Transaction转换为Command Layer Transaction并传递给Command Layer中的BFM。RAL Access负责管理RAL Model和RAL Transactor之间的交互,它将RAL Model中的操作封装为一个RAL Transaction传递给RAL Transactor,并根据这个Transaction完成后的结果或状态,更新RAL Model中的数据信息。BFM并不属于RAL的范畴,它是VMM测试环境中Command Layer的一个模块,负责将Command Layer Tran
7、saction驱动到DUT接口上实际的高低电平逻辑信号。 RAL的工作机制测试平台对RAL Model进行的操作,会映射到对DUT内寄存器/存储器的操作。这种操作通过RAL Access,封装在RAL Transaction中,传递到RAL Transactor, RAL Transactor又将这个Transaction翻译为Command Layer的Transaction,传递给BFM,BFM将这个Transaction按照DUT的接口协议和时序,驱动DUT接口上的信号,实现对 DUT内部寄存器/存储器的存取访问。RAL Access根据这个操作的结果和状态,维护RAL Model中的数
8、据信息。 RAL的实现Synopsys VMM的验证环境是基于面向对象编程方法开发的,因此,RAL是通过一系列的类(Class)来实现的。RAL库提供了一系列的类,最大限度地封装寄存器/存储器相关的通用的数据结构和方法,由此节省用户开发寄存器/存储器验证环境的工作量,而用户只需要通过扩展RAL库中的基类来定义自己所需的类,添加待测芯片中的寄存器/存储器的特定信息。 用RALF文件生成RAL Model虽然RAL库提供了封装寄存器/存储器描述信息的一系列的基类,但和特定的待测芯片相关的寄存器/存储器的设计规范,必须由用户添加在各个RAL基类扩展而得的子类中。用户必须对待测芯片中的每个寄存器字段,
9、每个寄存器,每个存储器,以及由寄存器/存储器构成的集合,通过扩展相应的基类来定义新的 类,从而封装它们的设计规范信息。这个过程是比较繁琐和耗时的。为了最大限度节省工程师的工作量,在Synopsys RAL验证解决方案中,RAL Model不需要由用户来实现,而是由RAL模型生成器(简称ralgen)根据用户编写的RAL格式文件(采用.ralf为后缀名)自动生成的。用户只需要按照简明的RAL格式编写寄存器/存储器设计规范文件,再交给ralgen工具,就可自动生成RAL Model所需的所有的扩展类。 验证环境集成将RAL集成在VMM验证环境中,只需要以下四个步骤:第一步,构建Command La
10、yer中和DUT的寄存器/存储器访问有关的Data, Channel和BFM的类。第二步,按照寄存器/存储器设计规范,编写RALF文件,然后用ralgen工具生成RAL Model。第三步,构建RAL Transactor,实现RAL和CommandLayer间Transaction的翻译。第四步,构建顶层验证环境,该环境包含图1中所示的RAL Access、RAL Model和RAL Transactor。在验证环境的build(过程中,简化上述对象,并将RAL Model和RAL Transactor和RAL Access关联起来。最后在hw_reset(过程中,实现对DUT的reset。
11、注意,在vmm_ral_env中,无需扩展reset_dut (,而只要扩展hw_reset(,而reset_dut(会自动调用hw_reset(。 实际应用在将RAL集成到VMM验证环境中以后,我们就可以在测试代码中实现各种测试任务所要求的和寄存器/存储器有关的操作。这里举例说明一些最常用的应用。用户可根据自己的验证要求,利用RAL实现更多更复杂的功能。1查询寄存器/存储器 查询寄存器/存储器或字段的各种属性,例如字节数,比特数,访问模式等。int byte_count, bit_count;byte_count = my_reg.get_n_bytes(;bit_count =
12、my_fld.get_n_bits(;vmm_ral:access_e access_mode;access_mode = my_fld.get_access(;int mem_size, bits_per_loc;mem_size = my_mem.get_size(;bits_per_loc = my_mem.get_n_bits(; 2写单个字段3写多个字段4读某个字段或寄存器调用read(就可以进行读操作并取得该字段或寄存器的值。vmm_rw:status_e status;bit63:0 value;5更新镜像值RAL Model能根据测试平台对寄存器的操作来维护其镜像值
13、,但如果寄存器是被DUT内部逻辑更新的,RAL Model便无法探测并对镜像值进行这一更新。所以需要读取寄存器并更新镜像值。可以对字段,寄存器或者整个模型来更新镜像值。vmm_rw:status_e status;6读取并检查字段的值检查字段的值,是将镜像值作为期望值,读取该字段的值,和期望值比较。如果不同,就会产生出错信息。同样调用mirror(,但其check参数的值为vmm_ral:VERB。vmm_rw:status_e status;如果当前镜像值不是期望值,我们需要将期望值设置到镜像中。有两种方式,一种是predict(,无条件地将镜像值强制设置为指定值;一种是set(,按照字段的访问模式设置为指定值。例如,如果字段为只读属性,则镜像值就不会被改变。vmm _rw:status_e status;或者7组合基本应用,实现更复杂的测试任务sp; regsi.mirror(status, vmm_ral:VERB; if (status != vmm_rw:IS_O
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中国红木原木行业市场调研及未来发展趋势预测报告
- 2025年中国鱼肝油行业市场深度分析及投资战略规划研究报告
- 2024年白色污染调查总结报告
- 年产2000台套数控弹簧机械设备项目申请可行性研究报告
- 2019-2025年中国肉类加工市场运行态势及行业发展前景预测报告
- 2025年中国氨基酸行业市场竞争格局分析及投资方向研究报告
- 阈值分割法课程设计
- 蓄热式工业炉课程设计
- 西湖文化美术课程设计
- 2022-2027年中国康复设备行业发展监测及投资战略咨询报告
- 2024年高纯氮化铝粉体项目可行性分析报告
- 危险性较大分部分项工程及施工现场易发生重大事故的部位、环节的预防监控措施
- 继电保护试题库(含参考答案)
- 《榜样9》观后感心得体会四
- 2023事业单位笔试《公共基础知识》备考题库(含答案)
- 《水下抛石基床振动夯实及整平施工规程》
- 《住院患者身体约束的护理》团体标准解读课件
- 酒店一线员工绩效考核指标体系优化研究
- 《铁路货车运用维修规程》2018年10月
- 水利工程竣工验收报告表格(共5页)
- 《有效备课、上课、听课、评课》读书笔记
评论
0/150
提交评论