商品详情
商品基本信息 | |
商品名称: | UVM实战 |
作者: | 张强 编著 |
市场价: | 79.00 |
ISBN号: | 9787111470199 |
版次: | 1-1 |
出版日期: | 2014-08 |
页数: | |
字数: | |
出版社: | 机械工业出版社 |
目录 | |
目 录 前言 第1章 与UVM的第一次接触1 1.1 UVM是什么1 1.1.1 验证在现代IC流程中的位置1 1.1.2 验证的语言2 1.1.3 何谓方法学3 1.1.4 为什么是UVM4 1.1.5 UVM的发展史5 1.2 学了UVM之后能做什么6 1.2.1 验证工程师6 1.2.2 设计工程师6 第2章 一个简单的UVM验证平台7 2.1 验证平台的组成7 2.2 只有driver的验证平台8 *2.2.1 最简单的验证平台8 *2.2.2 加入factory机制13 *2.2.3 加入objection机制14 *2.2.4 加入virtual interface16 2.3 为验证平台加入各个组件20 *2.3.1 加入transaction20 *2.3.2 加入env23 *2.3.3 加入monitor25 *2.3.4 封装成agent28 *2.3.5 加入reference model32 *2.3.6 加入scoreboard36 *2.3.7 加入field_automation机制38 2.4 UVM的终极大作:sequence41 *2.4.1 在验证平台中加入sequencer41 *2.4.2 sequence机制44 *2.4.3 default_sequence 的使用48 2.5 建造测试用例50 *2.5.1 加入base_test50 *2.5.2 UVM中测试用例的启动52 第3章 UVM基础56 3.1 uvm_component与uvm_object56 3.1.1 uvm_component派生自uvm_object56 3.1.2 常用的派生自uvm_object的类57 3.1.3 常用的派生自uvm_component的类58 3.1.4 与uvm_object相关的宏61 3.1.5 与uvm_component相关的宏62 3.1.6 uvm_component的限制62 3.1.7 uvm_component与uvm_object的二元结构63 3.2 UVM的树形结构64 3.2.1 uvm_component中的parent参数64 3.2.2 UVM树的根66 3.2.3 层次结构相关函数67 3.3 field automation机制69 3.3.1 field automation机制相关的宏69 3.3.2 field automation机制的常用函数71 *3.3.3 field automation机制中标志位的使用72 *3.3.4 field automation中宏与if的结合74 3.4 UVM中打印信息的控制76 *3.4.1 设置打印信息的冗余度阈值76 *3.4.2 重载打印信息的严重性78 *3.4.3 UVM_ERROR到达一定数量结束仿真79 *3.4.4 设置计数的目标80 *3.4.5 UVM的断点功能81 *3.4.6 将输出信息导入文件中82 *3.4.7 控制打印信息的行为84 3.5 config_db机制85 3.5.1 UVM中的路径85 3.5.2 set与get函数的参数87 *3.5.3 省略get语句88 *3.5.4 跨层次的多重设置89 *3.5.5 同一层次的多重设置91 *3.5.6 非直线的设置与获取93 *3.5.7 config_db机制对通配符的支持94 *3.5.8 check_config_usage95 3.5.9 set_config与get_config97 3.5.10 config_db的调试98 第4章 UVM中的TLM1.0通信100 4.1 TLM1.0100 4.1.1 验证平台内部的通信100 4.1.2 TLM的定义102 4.1.3 UVM中的PORT与EXPORT102 4.2 UVM中各种端口的互连104 *4.2.1 PORT与EXPORT的连接104 *4.2.2 UVM中的IMP106 *4.2.3 PORT与IMP的连接109 *4.2.4 EXPORT与IMP的连接111 *4.2.5 PORT与PORT的连接111 *4.2.6 EXPORT与EXPORT的连接113 *4.2.7 blocking_get端口的使用114 *4.2.8 blocking_transport端口的使用116 4.2.9 nonblocking端口的使用117 4.3 UVM中的通信方式119 *4.3.1 UVM中的analysis端口119 *4.3.2 一个component内有多个IMP121 *4.3.3 使用FIFO通信124 4.3.4 FIFO上的端口及调试126 *4.3.5 用FIFO还是用IMP128 第5章 UVM验证平台的运行132 5.1 phase机制132 *5.1.1 task phase与function phase132 5.1.2 动态运行phase134 *5.1.3 phase的执行顺序134 *5.1.4 UVM树的遍历139 5.1.5 super.phase的内容140 *5.1.6 build阶段出现UVM_ERROR停止仿真141 *5.1.7 phase的跳转142 5.1.8 phase机制的必要性146 5.1.9 phase的调试147 5.1.10 超时退出147 5.2 objection机制148 *5.2.1 objection与task phase148 *5.2.2 参数phase的必要性152 5.2.3 控制objection的最佳选择152 5.2.4 set_drain_time的使用154 *5.2.5 objection的调试156 5.3 domain的应用158 5.3.1 domain简介158 *5.3.2 多domain的例子158 *5.3.3 多domain中phase的跳转161 第6章 UVM中的sequence163 6.1 sequence基础163 6.1.1 从driver中剥离激励产生功能163 *6.1.2 sequence的启动与执行165 6.2 sequence的仲裁机制166 *6.2.1 在同一sequencer上启动多个sequence166 *6.2.2 sequencer的lock操作170 *6.2.3 sequencer的grab操作172 6.2.4 sequence的有效性172 6.3 sequence相关宏及其实现175 6.3.1 uvm_do系列宏175 *6.3.2 uvm_create与uvm_send176 *6.3.3 uvm_rand_send系列宏178 *6.3.4 start_item与finish_item178 *6.3.5 pre_do、mid_do与post_do180 6.4 sequence进阶应用181 *6.4.1 嵌套的sequence181 *6.4.2 在sequence中使用rand类型变量183 *6.4.3 transaction类型的匹配185 *6.4.4 p_sequencer的使用186 *6.4.5 sequence的派生与继承189 6.5 virtual sequence的使用190 *6.5.1 带双路输入输出端口的DUT190 *6.5.2 sequence之间的简单同步191 *6.5.3 sequence之间的复杂同步192 6.5.4 仅在virtual sequence中控制objection197 *6.5.5 在sequence中慎用fork join_none198 6.6 在sequence中使用config_db200 *6.6.1 在sequence中获取参数200 *6.6.2 在sequence中设置参数201 *6.6.3 wait_modified的使用203 6.7 response的使用204 *6.7.1 put_response与get_response204 6.7.2 response的数量问题205 *6.7.3 response handler与另类的response206 *6.7.4 rsp与req类型不同208 6.8 sequence library209 6.8.1 随机选择sequence209 6.8.2 控制选择算法211 6.8.3 控制执行次数213 6.8.4 使用sequence_library_cfg214 第7章 UVM中的寄存器模型216 7.1 寄存器模型简介216 *7.1.1 带寄存器配置总线的DUT216 7.1.2 需要寄存器模型才能做的事情218 7.1.3 寄存器模型中的基本概念220 7.2 简单的寄存器模型221 *7.2.1 只有一个寄存器的寄存器模型221 *7.2.2 将寄存器模型集成到验证平台中224 *7.2.3 在验证平台中使用寄存器模型227 7.3 后门访问与前门访问229 *7.3.1 UVM中前门访问的实现229 7.3.2 后门访问操作的定义2 |
内容简介 | |
本书主要介绍UVM的使用。全书详尽介绍了UVM的factory机制、sequence机制、phase机制、objection机制及寄存器模型等的使用。此外,本书还试图引导读者思考UVM为什么要引入这些机制,从而使读者知其然,更知其所以然。本书以一个完整的示例开篇,使得读者一开始就对如何使用UVM搭建验证平台有总体的概念。本书提供大量示例代码,这些代码都经过实际的运行。全书内容力求简单易懂,尽量将UVM中的概念与读者已有的概念联系起来。在第11章还专门介绍了OVM与UVM的区别,为那些从OVM迁移到UVM的用户提供很大帮助。本书主要面向UVM的初学者及想对UVM追根寻底的中级用户。针对没有面向对象编程基础的用户,本书在附录中简要介绍了面向对象的概念及SystemVerilog中区别于其他编程语言的一些特殊语法。 |
- 机械工业出版社旗舰店 (微信公众号认证)
- 扫描二维码,访问我们的微信店铺
- 随时随地的购物、客服咨询、查询订单和物流...