UVM实战 PDF 高清电子书 免费下载 完整版 在线阅读- 高飞网
UVM实战

UVM实战

张强
UVM 实战
浏览人数:334
读者:                   ...
  张强编著的这本《UVM实战(卷Ⅰ)》主要介绍UVM 的使用。全书详尽介绍了UVM的factory机制、 sequence机制、phase机制、objection机制及寄存 器模型等的使用。此外,本书还试图引导读者思考 UVM为什么要引入这些机制,从而使读者知其然,更 知其所以然。
     本书以一个完整的示例开篇,使得读者一开始就 对如何使用UVM搭建验证平台有总体的概念。本书提 供大量示例代码,这些代码都经过实际的运行。全书 内容力求简单易懂,尽量将UVM中的概念与读者已有 的概念联系起来。在第11章还专门介绍了OVM与UVM的 区别,为那些从OVM迁移到UVM的用户提供很大帮助。
     本书主要面向UVM的初学者及想对UVM追根寻底的 中级用户。针对没有面向对象编程基础的用户,本书 在附录中简要介绍了面向对象的概念及 SystemVerilog中区别于其他编程语言的一些特殊语 法。

前言    
第1章与UVM的第一次接触    
1.1UVM是什么    
1.1.1验证在现代IC流程中的位置    
1.1.2验证的语言    
1.1.3何谓方法学    
1.1.4为什么是UVM    
1.1.5UVM的发展史    
1.2学了UVM之后能做什么    
1.2.1验证工程师    
1.2.2设计工程师    
第2章一个简单的UVM验证平台    
2.1验证平台的组成    
2.2只有driver的验证平台    
2.2.1最简单的验证平台    
2.2.2加入factory机制    
2.2.3加入objection机制    
2.2.4加入virtualinterface    
2.3为验证平台加入各个组件    
2.3.1加入transaction    
2.3.2加入env    
2.3.3加入monitor    
2.3.4封装成agent    
2.3.5加入referencemodel    
2.3.6加入scoreboard    
2.3.7加入field_automation机制    
2.4UVM的终极大作:sequence    
2.4.1在验证平台中加入sequencer    
2.4.2sequence机制    
2.4.3default_sequence的使用    
2.5建造测试用例    
2.5.1加入base_test    
2.5.2UVM中测试用例的启动    
第3章UVM基础    
3.1uvm_component与uvm_object    
3.1.1uvm_component派生自uvm_object    
3.1.2常用的派生自uvm_object的类    
3.1.3常用的派生自uvm_component的类    
3.1.4与uvm_object相关的宏    
3.1.5与uvm_component相关的宏    
3.1.6uvm_component的限制    
3.1.7uvm_component与uvm_object的二元结构    
3.2UVM的树形结构    
3.2.1uvm_component中的parent参数    
3.2.2UVM树的根    
3.2.3层次结构相关函数    
3.3fieldautomation机制    
3.3.1fieldautomation机制相关的宏    
3.3.2fieldautomation机制的常用函数    
3.3.3fieldautomation机制中标志位的使用    
3.3.4fieldautomation中宏与if的结会    
3.4UVM中打印信息的控制    
3.4.1设置打印信息的冗余度阈值    
3.4.2重载打印信息的严重性    
3.4.3UVM_ERROR到达一定数量结束仿真    
3.4.4设置计数的目标    
3.4.5UVM的断点功能    
3.4.6将输出信息导入文件中    
3.4.7控制打印信息的行为    
3.5config_db机制    
3.5.1UVM中的路径    
3.5.2set与get函数的参数    
3.5.3省略get语句    
3.5.4跨层次的多重设置    
3.5.5同一层次的多重设置    
3.5.6非直线的设置与获取    
3.5.7config_db机制对通配符的支持    
3.5.8check_config_usage    
3.5.9set_config与get_config    
3.5.10config_db的调试    
第4章UVM中的TLM1.0通信    
4.1TLM1.0    
4.1.1验证平台内部的通信    
4.1.2TLM的定义    
4.1.3UVM中的PORT与EXPORT    
4.2UVM中各种端口的互连    
4.2.1PORT与EXPORT的连接    
4.2.2UVM中的IMP    
4.2.3PORT与IMP的连接    
4.2.4EXPORT与IMP的连接    
4.2.5PORT与PORT的连接    
4.2.6EXPORT与EXPORT的连接    
4.2.7blocking_get端口的使用    
4.2.8blocking_transport端口的使用    
4.2.9nonblocking端口的使用    
4.3UVM中的通信方式    
4.3.1UVM中的analysis端口    
4.3.2一个component内有多个IMP    
4.3.3使用FIFO通信    
4.3.4FIFO上的端口及调试    
4.3.5用FIFO还是用IMP    
第5章UVM验证平台的运行    
5.1phase机制    
5.1.1taskphase与functionphase    
5.1.2动态运行phase    
5.1.3phase的执行顺序    
5.1.4UVM树的遍历    
5.1.5super.phase的内容    
5.1.6build阶段出现UVMERROR停止仿真    
5.1.7phase的跳转    
5.1.8phase机制的必要性    
5.1.9phase的调试    
5.1.10超时退出    
5.2objection机制    
5.2.1objection与taskphase    
5.2.2参数phase的必要性    
5.2.3控制objection的最佳选择    
5.2.4set_drain_time的使用    
5.2.5objection的调试    
5.3domain的应用    
5.3.1domain简介    
5.3.2多domain的例子    
5.3.3多domain中phase的跳转    
第6章UVM中的sequence    
6.1sequence基础    
6.1.1从driver中剥离激励产生功能    
6.1.2sequence的启动与执行    
6.2sequence的仲裁机制    
6.2.1在同一sequencer上启动多个sequence    
6.2.2sequencer的lock操作    
6.2.3sequencer的grab操作    
6.2.4sequence的有效性    
6.3sequence相关宏及其实现    
6.3.1uvm_do系列宏    
6.3.2uvm_create与uvm_send    
6.3.3uvm_rand_send系列宏    
6.3.4start_item与finish_item    
6.3.5pre_do.mid_do与post_do    
6.4sequence进阶应用    
6.4.1嵌套的sequence    
6.4.2在sequence中使用rand类型变量    
6.4.3transaction类型的匹配    
6.4.4p_sequencer的使用    
6.4.5sequence的派生与继承    
6.5virtualsequence的使用    
6.5.1带双路输入输出端口的DUT    
6.5.2sequence之间的简单同步    
6.5.3sequence之间的复杂同步    
6.5.4仅在virtualsequence中控制objection    
6.5.5在sequence中慎用forkjoin_none    
6.6在sequence中使用config_db    
6.6.1在sequence中获取参数    
6.6.2在sequence中设置参数    
6.6.3wait_modified的使用    
6.7response的使用    
6.7.1put_response与get_response    
6.7.2response的数量问题    
6.7.3responsehandler与另类的response    
6.7.4rsp与req类型不同    
6.8sequencelibrary    
6.8.1随机选择sequence    
6.8.2控制选择算法    
6.8.3控制执行次数    
6.8.4使用sequence_library_cfg    
第7章UVM中的寄存器模型    
7.1寄存器模型简介    
7.1.1带寄存器配置总线的DUT    
7.1.2需要寄存器模型才能做的事情    
7.1.3寄存器模型中的基本概念    
7.2简单的寄存器模型    
7.2.1只有一个寄存器的寄存器模型    
7.2.2将寄存器模型集成到验证平台中    
7.2.3在验证平台中使用寄存器模型    
7.3后门访问与前门访问    
7.3.1UVM中前门访问的实现    
7.3.2后门访问操作的定义    
7.3.3使用interface进行后门访问操作    
7.3.4UVM中后门访问操作的实现:DPI+VPI    
7.3.5UVM中后门访问操作接口    
7.4复杂的寄存器模型    
7.4.1层次化的寄存器模型    
7.4.2reg_file的作用    
7.4.3多个域的寄存器    
7.4.4多个地址的寄存器    
7.4.5加入存储器    
7.5寄存器模型对DUT的模拟    
7.5.1期望值与镜像值    
7.5.2常用操作及其对期望值和镜像值的影响    
7.6寄存器模型中一些内建的sequence    
7.6.1检查后门访问中hdl路径的sequence    
7.6.2检查默认值的sequence    
7.6.3检查读写功能的sequence    
7.7寄存器模型的高级用法    
7.7.1使用reg_predictor    
7.7.2使用UVM_PREDICTDIRECT功能与mirror操作    
7.7.3寄存器模型的随机化与update    
7.7.4扩展位宽    
7.8寄存器模型的其他常用函数    
7.8.1get_root_blocks    
7.8.2get_reg_by_offset函数    
第8章UVM中的factory机制    
8.1SystemVerilog对重载的支持    
8.1.1任务与函数的重载    
8.1.2约束的重载    
8.2使用factory机制进行重载    
8.2.1factory机制式的重载    
8.2.2重载的方式及种类    
8.2.3复杂的重载    
8.2.4factory机制的调试    
8.3常用的重载    
8.3.1重载transaction    
8.3.2重载sequence    
8.3.3重载component    
8.3.4重载driver以实现所有的测试用例    
8.4factory机制的实现    
8.4.1创建一个类的实例的方法    
8.4.2根据字符串来创建一个类    
8.4.3用factory机制创建实例的接口    
8.4.4factory机制的本质    
……    
第9章UVM中代码的可重用性    
第10章UVM高级应用    
第11章OVM到UVM的迁移    
附录ASystemVerilog使用简介    
附录BDUT代码清单    
附录CUVM命令行参数汇总    
附录DUVM常用宏汇总   
看过本书的人还看过