图书介绍

SystemVerilog与功能验证PDF|Epub|txt|kindle电子书版本下载

SystemVerilog与功能验证
  • 钟文枫编著 著
  • 出版社: 北京:机械工业出版社
  • ISBN:9787111313731
  • 出版时间:2010
  • 标注页数:209页
  • 文件大小:161MB
  • 文件页数:225页
  • 主题词:硬件描述语言,SystemVerilog-程序设计

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

SystemVerilog与功能验证PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第1章 功能验证技术与方法学概要1

1.1 功能验证与验证平台1

1.1.1 专用芯片设计流程1

1.1.2 什么是验证2

1.1.3 验证平台可以做些什么3

1.1.4 功能验证流程5

1.2 验证技术和验证方法学8

1.2.1 黑盒、白盒与灰盒验证8

1.2.2 验证技术9

1.2.3 验证存在的挑战13

1.2.4 验证方法学13

1.2.5 断言验证15

1.2.6 覆盖率驱动验证16

1.3 硬件验证语言21

1.3.1 Open Vera21

1.3.2 e语言21

1.3.3 PSL22

1.3.4 SystemC22

1.3.5 SystemVerilog22

第2章 数据类型与编程结构24

2.1 数据类型24

2.1.1 两态数据类型25

2.1.2 枚举类型和用户自定义类型26

2.1.3 数组与队列28

2.1.4 字符串36

2.1.5 结构体和联合体37

2.1.6 常量39

2.1.7 文本表示41

2.1.8 操作符和表达式43

2.2 过程语句45

2.2.1 赋值语句45

2.2.2 控制结构46

2.3 函数和任务52

2.3.1 函数和任务的区别52

2.3.2 子程序定义53

2.3.3 子程序参数53

2.3.4 子程序返回56

2.3.5 自动存储56

2.4 编程结构57

2.4.1 模块57

2.4.2 接口59

2.4.3 过程块和语句块60

2.4.4 数据对象62

2.4.5 程序块62

2.4.6 简单的验证架构63

2.5 数据的生命周期和作用域64

2.6 数据类型转换65

2.6.1 静态类型转换66

2.6.2 动态类型转换66

第3章 并发进程与进程同步68

3.1 fork...join68

3.1.1 三种并发方式69

3.1.2 进程与变量72

3.1.3 进程控制73

3.2 mailbox74

3.2.1 mailbox的基本操作75

3.2.2 参数化mailbox77

3.2.3 mailbox应用实例77

3.3 semaphore78

3.3.1 semaphore的基本操作79

3.3.2 semaphore应用实例80

3.4 event81

3.4.1 事件触发81

3.4.2 等待事件81

3.4.3 事件的触发属性81

第4章 面向对象编程入门83

4.1 过程编程语言与面向对象编程语言83

4.2 类84

4.2.1 类的基本概念85

4.2.2 构造函数87

4.2.3 静态属性与方法89

4.2.4 this操作符91

4.2.5 对象的赋值与复制91

4.2.6 块外声明94

4.3 石头、剪刀、布仲裁器实例(基于类的验证平台)95

4.3.1 验证环境顶层96

4.3.2 验证组件99

第5章 虚接口107

5.1 虚接口的基本概念及应用107

5.1.1 虚接口的基本概念107

5.1.2 虚接口的应用109

5.2 端口模式和时钟控制块113

5.2.1 端口模式113

5.2.2 时钟控制块114

第6章 随机测试118

6.1 激励产生118

6.1.1 什么是随机119

6.1.2 潜在问题119

6.2 随机生成机制120

6.2.1 随机系统函数120

6.2.2 randcase/randsequence121

6.3 基于对象的随机生成122

6.3.1 随机变量123

6.3.2 约束定义124

6.3.3 随机方法130

6.3.4 随机使能控制131

6.3.5 约束的动态修改134

6.4 标准随机函数134

6.5 随机激励的应用135

第7章 继承与多态137

7.1 继承和多态的基本概念137

7.2 继承与子类137

7.2.1 类的继承与重写138

7.2.2 子类对象与父类对象的赋值141

7.2.3 构造函数调用142

7.3 虚方法与多态144

7.3.1 虚方法145

7.3.2 多态148

7.4 虚类和参数化类148

7.4.1 虚类148

7.4.2 参数化类149

7.5 约束重写150

7.6 数据的隐藏与封装151

第8章 功能覆盖率153

8.1 覆盖率153

8.1.1 目标覆盖率153

8.1.2 代码覆盖率154

8.1.3 功能覆盖率154

8.2 SystemVerilog的功能覆盖率155

8.2.1 覆盖组(covergroup)155

8.2.2 覆盖点(coverpoint)157

8.2.3 交叉覆盖点(cross)159

8.3 覆盖率驱动的验证平台162

第9章 断言167

9.1 断言的概念及作用167

9.2 SVA169

9.2.1 SVA的语法层次结构170

9.2.2 SVA应用实例173

9.2.3 bind175

第10章 验证重用与验证方法学178

10.1 验证重用中存在的问题178

10.2 验证方法学OVM179

10.3 OVM的四大核心技术180

10.3.1 基于Factory的验证平台动态构建181

10.3.2 动态的配置机制183

10.3.3 测试用例在验证架构的顶层184

10.3.4 激励产生与验证架构分离185

第11章 SystemVerilog与C语言的接口187

11.1 什么是DPI187

11.2 DPI的应用188

11.2.1 方法的导入188

11.2.2 方法的导出190

11.2.3 DPI的数据类型映射191

11.2.4 DPI的具体应用192

附录A 覆盖率内置参数和方法列表193

附录B 断言重复操作符和序列操作符列表195

附录C QuestaSim简要介绍198

附录D 常用术语中英文对照205

参考文献207

后记208

源代码2-1 枚举类型实例:enum_example.sv26

源代码2-2 用户自定义类型实例:typedef_example.sv28

源代码2-3 多维数组和压缩数组实例:array_example.sv30

源代码2-4 动态数组实例:dy_array_example.sv31

源代码2-5 关联数组实例:as_array_example.sv33

源代码2-6 队列实例:queue_example.sv35

源代码2-7 结构体实例:struct_example.sv38

源代码2-8 类型参数化实例:para_type_example.sv40

源代码2-9 赋值语句实例:assign_example.sv46

源代码2-10 if条件选择语句实例:if_example.sv47

源代码2-11 case条件选择语句实例:case_example.sv47

源代码2-12 for循环语句实例:for_example.sv48

源代码2-13 while循环语句实例:while_example.sv49

源代码2-14 do...while循环语句实例:dowhile_example.sv49

源代码2-15 repeat循环语句实例:repeat_example.sv50

源代码2-16 forever循环语句实例:forever_example.sv51

源代码2-17 foreach循环语句实例:foreach_example.sv51

源代码2-18 ref引用端口类型实例:ref_example.sv54

源代码2-19 模块实例:module_example.sv58

源代码2-20 接口实例:interface_example.sv59

源代码2-21 静态变量实例:static_auto_example.sv65

源代码3-1 fork...join语句实例:fork_example.sv70

源代码3-2 fork...join_any语句实例:fork_any_example.sv71

源代码3-3 fork...join_none语句实例:fork_none_example.sv71

源代码3-4 disable语句实例:disable_example.sv73

源代码3-5 mailbox应用实例:mailbox_example.sv77

源代码3-6 semaphore应用实例:semaphore_example.sv80

源代码3-7 event应用实例:event_example.sv82

源代码4-1 简单以太包的类实例:ether_packet.sv84

源代码4-2 类的构造函数实例:new_construct_example.sv88

源代码4-3 类的静态变量实例:static_var_class.sv89

源代码4-4 类的静态方法实例:static_method_class.sv90

源代码4-5 this操作符实例:this_class_example.sv91

源代码4-6 类的浅复制实例:shallow_copy.sv92

源代码4-7 类的自定义深复制实例:deep_copy.sv93

源代码4-8 仲裁器设计(石头、剪刀、布):rps_dut.sv95

源代码4-9 验证环境顶层(石头、剪刀、布):top_class_based.sv96

源代码4-10 时钟复位模块(石头、剪刀、布):rps_clock_reset.sv97

源代码4-11 验证环境库文件(石头、剪刀、布)——激励单元片段:rps_env_pkg.sv98

源代码4-12 验证环境库文件(石头、剪刀、布)——激励生成器片段:rps_env_pkg.sv99

源代码4-13 事务驱动器(石头、剪刀、布):rps_driver.sv100

源代码4-14 监控器(石头、剪刀、布):rps_monitor.sv101

源代码4-15 基于类的验证环境(石头、剪刀、布):rps_env.sv102

源代码4-16 验证环境库文件(石头、剪刀、布)——记分板片段:rps_env_pkg.sv103

源代码5-1 虚接口例子:virtual_interface_example.sv108

源代码5-2 定义虚接口(石头、剪刀、布):interface.sv109

源代码5-3 基于虚接口的事务驱动器(石头、剪刀、布):rps_driver.sv110

源代码5-4 基于虚接口的监控器(石头、剪刀、布):rps_monitor.sv111

源代码5-5 基于虚接口的验证环境(石头、剪刀、布):rps_env.sv111

源代码5-6 基于虚接口的验证顶层(石头、剪刀、布):rps_tb_top.sv112

源代码5-7 端口模式实例:interface_mode.sv113

源代码6-1 randcase实例:randcase_example.sv121

源代码6-2 randsequence实例:randsequence_example.sv122

源代码6-3 基于类的随机变量实例:class_random_example.sv123

源代码6-4 随机约束块实例:constraint_example.sv125

源代码6-5 inside操作实例:inside_example.sv125

源代码6-6 dist操作实例:dist_example.sv126

源代码6-7 foreach操作实例:foreach_random_example.sv128

源代码6-8 solve...before操作实例:solve_before_example.sv129

源代码6-9 随机变量使能模式实例:rand_mode_example.sv132

源代码6-10 随机约束使能模式实例:constraint_mode_example.sv133

源代码6-11 标准随机函数实例:std_randomize_example.sv135

源代码6-12 基于类的随机激励实例(石头、剪刀、布):rps_env_pkg.sv135

源代码7-1 类的继承实例:class_extend_example.sv139

源代码7-2 类的重写实例1:class_override_example.sv139

源代码7-3 基类与派生类实例:base_derived_example.sv141

源代码7-4 super操作实例:super_example.sv142

源代码7-5 构造函数链实例:new_chain_example.sv143

源代码7-6 类的重写实例2:base_override_example.sv144

源代码7-7 虚方法与多态实例:virtual_poly_example.sv145

源代码7-8 参数化类实例:parameterized_class.sv149

源代码7-9 约束块重写实例:constraint_override_example.sv150

源代码8-1 功能覆盖组实例:covergroup_example.sv156

源代码8-2 功能覆盖点实例:coverpoint_example.sv156

源代码8-3 功能分组柜实例:bin_example.sv158

源代码8-4 功能交叉覆盖点实例:cross_example.sv159

源代码8-5 功能覆盖模块(石头、剪刀、布):rps_coverage.sv162

源代码8-6 基于功能覆盖率验证环境(石头、剪刀、布):rps_env.sv165

源代码9-1 断言序列实例:sequence_example.sv171

源代码9-2 断言属性实例:property_example.sv172

源代码9-3 断言模块(石头、剪刀、布):rps_sva.sv173

源代码9-4 基于断言的验证顶层(石头、剪刀、布):rps_tb_top.sv174

源代码9-5 bind操作实例:bind_example.sv175

源代码11-1 外部Hello程序1(基于C):example 1/hello_c.c190

源代码11-2 DPI导入方法实例:example 1/hello.v190

源代码11-3 外部Hello程序2(基于C):example 2/hello_c.c191

源代码11-4 DPI导出方法实例:example 2/hello.v191

热门推荐