A Practical Guide to Adopting the Universal Verification Methodology中文版.pdf

所需积分/C币:33 2019-05-28 16:52:21 5.68MB PDF
51
收藏 收藏
举报

a practical guide to adopting the universal verification methodology的中文版,制作精良
日录 创建 Collector和 Monitor 54 7.52序列和 Sequencer控制 5.5.1连接 Collector和 Monitor 56 rutal Sequencer和Ⅵruta序列 .100 UⅦM模型拓扑.. 7.6.1 virutal Sequencer 101 Agent创建... 58 7.6.2创建 viruta序列....,...101 5.7.1使用 connect()连接组件,,,..59 7.6.3控制其他 Sequencer 102 5.7.2 Agent配置 60 7.6.4 virutal Sequencer和子Se 创建UWM验证组件 61 quench的连接. 102 5.8.1环境类 61检查dut. 103 5.8.2点对点的环境 62 7.7.1 Score board 103 5.83UVM配置机制 63实现覆盖模型 .104 5.8.4没定 Agent虚接口 65 7.8.1选择覆盖方式 105 创建UMM序列 67 7.8.2实现功能覆盖的模型 105 5.9.1用户定制序列 68总结 105 5.9.2预定义序列 70 配置 Sequencer的默认序列 718激励生成 06 5.10.1控制 Sequencer以及生成序列 71序列的生成控制 106 5.10.2重载序列项和序列 72并发执行多个序列 107 5.10.3构建可重用的序列库 8.2.1序列body中使月fork/oin和 EOT的协调 uvm do 108 5.11.1UVM窗口机制 8.22并行多个序列 108 5.11.2EOT的窗口机制 使丿 用p_ sequencer 108 5.11.3跟踪窗口信息 74使用 pre body和 post body方法 108 5.11.4设定等待时间 74仲裁控制 109 5.11.5标记处理的缺失 74中断序列 .109 与协议相关的覆盖和检查,.. 77分层协议 110 5.12.1放置覆盖组 77 87.1协议的分层 111 5.12.2实现检查 78 872分层和序列 5.12.3使能和失效覆盖和检查... 8.7.3分层风格 113 5.124接口的覆盖和检查 7 8.74使用分层 Sequencer. .115 处理复位 5.13.1UVC接口的复位方式..,·80, 117 UVC接口的封装 819寄存器和内存包 118 5.14.1接口∪VC的目录结构. 82与寄存器关联的术语 118 5.142文件命名的约定.. 82 寄存器包的预览 119 5.14.3UVC包 82 9.2.1寄存器包的使用流程 119 总结 83 9.2.2 gm的连接和数据流 119 6UVC创建的自动化 84 9.2.3寄存器数据库( RGM DB) 120 ,,,,,,,.120 UVC的开发流程 84 924随机化和注入 9.2.5监控 120 代码生成器 85 Checklist 使用 uvm rgm包 121 自动检查 87 9.3.1定义寄存器和内存模型. 121 总结 87 932创建| P-XACT文件 121 9.3.3创建 uvm rgm类, 122 7简单 testbench集成 9.34扩展可自动生成的 uvm rgm类..126 testbench和测试 88连接 testbench的 uvm rgn组件 126 7.1.1 testbench类 88 94.1寄存器组件 bench的连接..126 7.1.2测试类 88 94.2总线主 Sequencer中加入必要的 创建一个简单 testbench 框架 126 72.1在 testbench中实例化UVC 89 9.4.3 testbench的连接和实例化 128 testbench配置. 91 9.44复位处理 130 73.1UVC配置参数 91寄存器控制 130 7.32UVC配置机制 9.5.1寄存器操作 131 7.3.3使用配置类. 92 9.52寄存器的读写序列 131 创建测试 93 9.53多个寄存器序列的操作 132 74.1创建基本测试 ..93 9.54序列重用 133 7.4.2使用基本测试创建测试库 93使用 uvm rgm进行检查 133 74.3测试选择 94 9.6.1使用影子模型进行检查 133 创建有价值的测试 94 9.6.2高级寄存器检查.,., 133 7.5.1数据项约束 94 9.6.3寄存器获取函数 .,.133 日录 更新寄存器数据庠模型 134 10.52 irtual Sequencer和寄存器Se- 9.7.1模∪VC的更新 134 quencher 147 寄存器操作的覆盖收集 ..,,135 10.53接口∪VC护展 .147 9.8.1 uvm rgm的自动覆盖功能.....135序列. 148 982用户定制覆盖 136 106.1开发可重用序列 148 控制覆盖采样的时间 136覆盖 149 总结 136 10.7.1模块UVC的覆盖. 149 10.7.2系统级覆盖 151 10系统UVC和 testbench集成 137互换模式 151 介绍 137系统验证的扩展 153 模块和系统UVC的架构 138 10.91随机化和激励生成 153 10.2.1模块和系统UVC的重用......138 109.2覆盖 153 10.2.2模决UVC架构 139 10.93消息 153 10.2.3系统∪VC架构 139模块UVC的目录结构... 154 模块和系统∪VC的子组件 140总结 154 10.3.1 Monitor 140 10.32内存块和寄存器文件 14211UVM的未来 155 10.3.3激活互换模式 142商用∪VM验证|P 155 10.34模抉∪VC类 ..142关库的增强 155 模块UVC配置 143 112.1寄存器包 155 10.4.1标准配置模式 143 112.2实时阶段 155 10.4.2模块UVC的重新配置 144 11.2.3多语言的集成 .156 testbench 144多个域的UVM 157 105.1UART控制器的 testbench策略..146总结 157 前言 5f A Practical Guide to Adopting the Universal Verification Methodology UVM介绍 υ∨M提供了一套优秀实用的完整方法学,可用于高效完备的验证·其中的一个关键概念就是开发可重用的验证纽 件,乜被称为Uvc{ UVM Verification Component,UVM既可验证小设计,也可以在基于P的大型Soc( system-On chip)设计中使用 υ∨M提供的所有验证特性和功能,都已经被证明是可以使用的 稳定,uⅥM代码基于oM( Open Verification Methodology)库,有些代码直接来自己论证的OVM代码. 开源,它是一类开源的 Accellera标准(将来有可能成为lEEE标准) 兼容性和移植性,在所有主流的商用仿真器中都可以进行测试 在技尺层面上,UM捉供一种通用的面对对象的υⅥM验证组件{UνV℃)的用法模型,这使得所有与∪VM兼容的 ∪C可以相互操作,而不必关心UC是由那种语言所开发的,并且∪MM中还包含了以下特性 数据设计,通过方法学和库代码,使得包含在特殊数据项和组件集合中的验证环境能被划分,另外∪M还提 供了大量的可简单应用的內建功能,例如文本打印,对象的图形化观察,层次化设定和获取对象的数据,以及 些自动化操作,比如复制,比较和打包.这使得工程师只需关注包含的对象和它们的工作状态,而不是对应的代 码 激励生成,所提供的类和基本框架,可对序列数据流进行细粒度控制,从而实现模块级和系统级的激励生成,用 户可基于环境的当前状态进行随机,其中包含了dut状态,接口或之前生成的数据,UMM肀提供了内建的激励 生成,可定制层次化事务和事务数据流的创建 ·构建和运行 testbench,可为Soc创建一个完整的 testbench(验证环境),其中包含了多种协议,接口,以及多个 处理器,所以 testbench会变得很复杂,而∪M基类则提供了必要的自动化帮助,一个定义完备的构建流程, 允许建立一个可重用的分层环境,一个通用的配置接口可使用户定制运行时行为,以及在不修改原有实现的情 况下,定制 testbench拓扑,这也是一个关键的重用概念 覆盖模型的设计和检查策略,采用了一种流行的实现方式,也就是在可重用∪VC中,合并功能覆盖以及对物理 的,临时性的和协议的数据进行检查 用户示例,这是一个珍贵的 Systemm Verilog示例,它基于一个易理解的XBuS完整协议,在示例中包含了测 试,序列, testbench结构,以及伩用基类和方法学派生的UVC 验证规划和覆盖驱动验证 υ∨M的最终目的是帮助你更早地在设计过程中查找错误,在过去14年为客户定制验证环境的过程中,我们学会了 查找某些难于预期的错误时,采用的最好方式是随机性控制( controlled randomness),事实上我们也见到过许多用 户在使用随机性控制来査找那些不可预期的错误,而不是使用其他的验证技术,在大多数技术合冋屮,我们需要为准 备好验证自己设计的客户而工作,并会询问他们,”你是否要我们在一个星期之内找到错误?” 这时大多数工程师只能接受用户的要求,但是对于一个你并不了解的系统,如何来查找错误?这是一个在项目 特定验证中,已进行了长期工作且有经验的工程师才能办到的事情,你具备这^条件吗?正如你所猜测的,解决方案 就是随机性测试,这时我们需要与原有的设计工程师进行沟通,并抽象出协议和系统的属性,以实现随机化测试的方 案,那成功就在不远处 丿∨M提供了最好的框架,来实现覆盖驱动验证( cdv, coverage-diⅳ en verification),c小中合并了自动测试生成, 自检 testbench,以及减少验证时冋消耗的覆盖指标,cdν的目的在于 使用预定义的目标来验证 消除手动创建几百个测试所造成的时间和精力的消耗 使用实时自检简化错误的分析和调试,使之更早地接收到错误通告 ·cd流不同于传统的定向测试流,在C中,首先会在一个初始的规划过程中,设定验证目标,之后可创建一个 智能的验证环境,它可生成随机化激励,并将激劢发送给dut,覆盖监视器(moηitor)会加入到环境中,可用于检 查处理过程和标识无法执行的功能,检査器( Checker)可用于标识dut的一些非预期的行为,最后当覆盖模型 1.UVM介绍 和 testbench完成时,仿真可开始运行,那么一个比较完整的验证环境己构建好了 使用cdv,你可以通过修改 testbench参数或是修改随机的种子,对你的设计进行全面验证,测试约朿将加入到智能 架构的顶层,用于产生激励,以满足验证目标,排名( Ranking)技术可对测试和种子进行标记,以查看它们对验证目 标的贡献,并在回归测试中移除那些多余测试,图1-1对以上的验证流程给出了一个图形化的描述 验证环境 编写一个验证计划 验证架构 约束&顎盖 调整和添加约束和 sequence 仿直 加速 模拟 車定义盖模型 巨目 预落夏盖 图1.1:验证规划和执行流程 cdⅤ环境支持定向和自动测试,推荐的方式还是首先使用自动测试,让它来完成大部分工作,之后编写耗时和针对性 的测试,用于随机化很难达到的特殊测试场景,正确的规划可使验证处理具备高效和可见性的特点,创建一个可执行 的验证规划时,会包含一些验证指标,以便于你精确地检查处理过程,设计以及验证项目.使用这类可行的方羑,将使 代码覆盖在一个特殊等级上,被规划,观察,排名和报告.使用一个抽象的基于特性的描述(不依赖于具体的实现细 芍),冋样也是一个可阅读,可裁剪,可重用的验证规划,你可在多个供应商的文档中,找到更多优秀的处理过程与自 动化相关的功能 多语言和方法学 多语言的项目和验证通常不会出现在一个项目或是所有项目中,但它确实提供了一个机会,使得不同公司之间可以 共享大多数可用的验证断言,没有人会真的为新硕目,编写一个多语言的验证环境,但大多数用户都需要借用已有的 验证代码,以节省重写的时间,这与你是否包含了多个语言开发的P纽件有关,或是未来有这类需求,那现在就需 要考虑多语言方法学,对于日益工业化的今天,收购和联合开发的例子层出不穷,我们会看到更多的用户无须再云处 理意用这类细节问题,这在过去是不可想象的 υ∨MπLM(事务级建模, Transaction- Level Modeling)AP用于验证 System Verilog和其他语言(如e和 systemC)编 写的验证组件之间实现的事务级通讯,所有的语言中都使用相冋的AP,它可减少不冋语法和工具的学习难度.因此 TLM就是基于多语言(ML)的互用性, UVM TLM可在所有标准语言中使用TLM10和TLM2.0的多语言示例,已在 Cadence cνM中进行了验证,并在其产品中已经包含,实用的多语言仿真中还包含了其他一些功能,比如中央配置 机制,随机化通讯,以及坐标,消息等等 本书的特点 为了有些用户,本书首先给出了构建方面的知识,它提供一种更易入门的学习方法,本书基于作者在多个应用项目中 积累的多年经验,它可节省读者在创建自身验证方案时,进行尝试的时问.书中提供了成功开发验证的实用技巧和指 南,使你能高效编码,并避免新手所犯的一些错误.书中不会包含整个类库,但会关注到∪VM用户需要使用的一些概 念 当读者己经历过多次∪MM开发后,这份指南乜会提供一些祁助,例如建立一个标准的目录结构,对于创建可重 用组件很重要。月录结构的正确与否,虽然看上去是一件小事,但经验会告诉你,它将影响到开发团队的合作,另一个 1.UVM介绍 例子就是一致性的问题,虽然有些规则对于单用户或是小项目来说没有约束力,但是在顼目合作或是培训工程师时, 就会发现它们的重要性 如何使用本书 一个典型的验证团队屮会包含多种的组员,他们需要不同专业技能以及承担不同的责任,开发者和环境用户是不同 角色,因此他们对于验证理解的深度也会不同,所以需要在这本用户指南中,划分一下验证团队中不同角色之间的责 任: UVC开发者将创建一个可重用的 testbench框架 ·环境用户(或称集成者)需要编写测试和 testbench框架的巸置,以满足特定项目的验证目标,当然乜需要区分 不同的 testbench 集成者需要配置 testbench并实例化,而测试编写者需要创建 testbench顶层的测试 本书的结构如下 介绍∪ VM testbench和组件的结构 第二章,UMM预览 介绍而对对象的编程基础 第三章,而对对象编程 UVM库的机制和基本功能 第四章,∪VM库基础 生成一个标准可重用的接口环境,所需的组件和基本概念 第五章,接口UVC 加快∪VC开发的技术和流程 第六章,∪VC创建的自动化 将给出一个简单 testbench的创建,并包含了可重用组件和其中的粘第七章,简单 testbench的集成 合逻辑.注意:这一章将介绍∪VC接口的集成和用法,在第十章中将 介绍完整的集成方式,以及如何实现寄存器包和其他 testbench组件 的重用. 用于 sequence和随机化控制的多种技术 第八章,激励生成技术 产生与寄存器相关的可重用验证逻辑的方法学和自动化 第九章,寄存器和内存的封装 如何打包与设备相关的逻辑,以及在块,子系统或是系统集成的重用第十章,系统∪VC和 testbench集成」 给出ωVM在短期和将来所能提供的一些功能预览 第十一章,UVM的将来 在某些公司中UVC开发, testbench集成以及测试编写是同一个人,为了获得对∪VM的整体了解,我们推荐你阔读 完整本书,而不要在意验证中你所处的角色.当然本书的纽织有利于环境用户快速学习对应的知识,以及那些无须了 解的所有方法学 14.1如何运行例子(略) 由于原文使用的是js综合环境,但这个软件不太妤找,所以此处给予省略 142文本风格的约定(略) 原文的文本风格不可能继承下来,所以这一节略去,并加入翻译版本的风格约定 蓝色表示原文给出的补充 褐色表示翻译者给予的补充 下划线表示给予补充的名词或是需要强调的句子 14.3缩略语 缩略语 定义 AHB Advanced High-performance Bus AMBA Advanced microcontroller bus architecture AOP Aspect-Oriented Programming APB AMBA Advanced Peripheral Bus API Application Programming Interface ATM Asynchronous Transfer Mode 1.UVM介绍 AVM Advanced Verification Methodology BEM Bus functional model CDV Coverage-Driven Verification CPU Central Processing Unit DMA Direct Memory Access DUT Device under tes eRM e Reuse Methodology ESL Electronic System Level FPGA Field-Programmable Gate Array HDL Hardware Description Language HVL High-Level Verification Language HW Hardware lES Incisive@ Enterprise Simulator Intellectual Property LRM anguage Reference Manual ML Multi-Language OOP Object-Oriented Programming OSCI Open SystemC Initiative AHB Advanced High-performance Bus AMBA Advanced microcontroller bus architecture AOP Aspect-Oriented Programming APB AMBA Advanced Peripheral Bus API Application Programming Interface ATM Asynchronous Transfer Mode AVM Advanced Verification Methodology BEM Bus Functional model OVM Open Verification Methodology PCI-E Peripheral component interconnect Express RDB Register Database RTL Register Transfer Leve RVM Reuse Verification Methodology System C Soc System-on-Chip System Verilog SW Software TCP Transmission control protocol TLM Transaction-Level Modeling UART Universal Asynchronous Receiver/Transmitter URM Universal Reuse Methodology UML Unified Modeling Language UVC Universal Verification Component VIF Verification Interface VIP Verification iP VMM Verification Methodology Manual UVM概述 木章提供了 UVM testbench和纽件的结构预览,并包含了如何使用∪VM创建 SystemVerilog testbench,以及∪VM 验证组件的推荐架构 UVM testbench和环境 UVM testbench将会组合一些可重用的UVC(满足∪M规则的通用验证组件,如未特殊声明,夲书所指的∪VC都 将兼容∪ⅧM),而UvC可用于封装,应用和配置验证环境,这些环境可以是接口协议,设计子模甚至是软件验证 每亼UvC都遵循一致性的架构,并包含一组完整的用于激励发送的成员集合,并能对特殊协议或是设计的覆盖信息 进行检查和收集 应用于dut( device under test)的VC接口,可用于协议逻辑设计或是dut编程意图的验证实现,例如在buS(总 线)νC中,可模拟CPU( central processing unit)与DMA( direct memory access)设备之间的交互,模块∪VC可包 含一λ子系统或是模块的内部验证逻缉,并可使能一个大型系统中的子系统验证,UVC可加快dut的 testbench的 高效创建,并伩用HDL( hardware description language)和HVL( high-level verification language)进行结构仳编程, 这些语言包括了 Verilog,VHDL,e, System Verilog, SystemC 验证组件仓库 验证环境 bus yc mon drive bus yc mon ][n DUT CPU Mem vc 2 Periph Periph mon][drver mon driver 图例 n monitor Lmon ar 验证组件的接口 seq fencer ve x 图2.1: UVM testbench示例 上图给出了一个验证环境的示例,其中包含了三个接口UVC和一个模块∪VC,这些∪VC会保存在一个仓库中,并 能被多个验证环境所重用,而这些∪VC的配置和实例化,都有一个所需的操作模式,验证环境中还可包含一个多通 道的序列机制(也就是一个Ⅵ virtual sequencer),用于在不同的接口之间同步数据和时间,也可允许在特定测试中控制 测试环境,比如Ⅶ virtual sequelηcer可请求总线接口∪νC执行 configure_dut(配置du)序列,之后在轮询dut状态的 5

...展开详情
试读 127P A Practical Guide to Adopting the Universal Verification Methodology中文版.pdf
立即下载 身份认证后 购VIP低至7折
一个资源只可评论一次,评论内容不能少于5个字
您会向同学/朋友/同事推荐我们的CSDN下载吗?
谢谢参与!您的真实评价是我们改进的动力~
  • GitHub

  • 脉脉勋章

  • 签到达人

  • 分享宗师

关注 私信
上传资源赚钱or赚积分
最新推荐
A Practical Guide to Adopting the Universal Verification Methodology中文版.pdf 33积分/C币 立即下载
1/127
A Practical Guide to Adopting the Universal Verification Methodology中文版.pdf第1页
A Practical Guide to Adopting the Universal Verification Methodology中文版.pdf第2页
A Practical Guide to Adopting the Universal Verification Methodology中文版.pdf第3页
A Practical Guide to Adopting the Universal Verification Methodology中文版.pdf第4页
A Practical Guide to Adopting the Universal Verification Methodology中文版.pdf第5页
A Practical Guide to Adopting the Universal Verification Methodology中文版.pdf第6页
A Practical Guide to Adopting the Universal Verification Methodology中文版.pdf第7页
A Practical Guide to Adopting the Universal Verification Methodology中文版.pdf第8页
A Practical Guide to Adopting the Universal Verification Methodology中文版.pdf第9页
A Practical Guide to Adopting the Universal Verification Methodology中文版.pdf第10页
A Practical Guide to Adopting the Universal Verification Methodology中文版.pdf第11页
A Practical Guide to Adopting the Universal Verification Methodology中文版.pdf第12页
A Practical Guide to Adopting the Universal Verification Methodology中文版.pdf第13页
A Practical Guide to Adopting the Universal Verification Methodology中文版.pdf第14页
A Practical Guide to Adopting the Universal Verification Methodology中文版.pdf第15页
A Practical Guide to Adopting the Universal Verification Methodology中文版.pdf第16页
A Practical Guide to Adopting the Universal Verification Methodology中文版.pdf第17页
A Practical Guide to Adopting the Universal Verification Methodology中文版.pdf第18页
A Practical Guide to Adopting the Universal Verification Methodology中文版.pdf第19页
A Practical Guide to Adopting the Universal Verification Methodology中文版.pdf第20页

试读结束, 可继续阅读

33积分/C币 立即下载