万本电子书0元读

万本电子书0元读

顶部广告

芯片EDA实战:新一代芯片验证语言Eagle和PVM验证平台电子书

本书从芯片验证的目的出发,完善了功能覆盖率的定义,阐述了新的随机测试方法,即“功能覆盖率直驱动的随机测试方法”,以及一种新的验证语言EagleLang,即Eagle语言。该编程语言具有类似脚本语言的简洁语法,专用于芯片验证,也可以用于文本处理、数学计算、多线程编程等应用领域。该语言的编译执行具有近C 语言的效率,eagle是该语言的编译器工具。

售       价:¥

纸质售价:¥100.10购买纸书

0人正在读 | 0人评论 6.6

作       者:易敏

出  版  社:机械工业出版社

出版时间:2024-07-15

字       数:17.3万

所属分类: 科技 > 计算机/网络 > 计算机理论与教程

温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印

为你推荐

  • 读书简介
  • 目录
  • 累计评论(条)
  • 读书简介
  • 目录
  • 累计评论(条)
本书从芯片验证的目的出发,完善了功能覆盖率的定义,阐述了新的随机测试方法,即“功能覆盖率直驱动的随机测试方法”,以及一种新的验证语言EagleLang,即Eagle语言。该编程语言具有类似脚本语言的简洁语法,专用于芯片验证,也可以用于文本处理、数学计算、多线程编程等应用领域。该语言的编译执行具有近C 语言的效率,eagle是该语言的编译器工具。 芯片仿真验证效率是影响芯片项目周期的主要因素,本书提出了新一代的验证方法学PVM(Parallel Verification Methodology),采用多核并行技术搭建的PVM验证平台,具有执行效率高的特,可以有效实现芯片仿真验证加速。另外,在PVM验证平台中采用工厂模式和动态编程技术,可以实现验证组件、测试用例的动态生成,减少验证平台、测试用例的编译时间。 本书主要适合芯片验证工程师、芯片驱动软件发工程师、芯片系统建模工程师、芯片设计工程师阅读。本书也可以作为从事芯片EDA工具发的软件工程师、编译器发软件工程师的参考书籍。本书还可以作为高校师生了解芯片设计与验证技术的参考书籍。<br/>【推荐语】<br/>本书从芯片验证的目的出发,完善了功能覆盖率的定义,阐述了新的随机测试方法,即“功能覆盖率直驱动的随机测试方法”,以及一种新的验证语言EagleLang,即Eagle语言。该编程语言具有类似脚本语言的简洁语法,专用于芯片验证,也可以用于文本处理、数学计算、多线程编程等应用领域。该语言的编译执行具有近C 语言的效率,eagle是该语言的编译器工具。<br/>【作者】<br/>易敏,男,毕业于武汉测绘科技大学电子工程专业,济南新语软件科技有限公司CEO。曾就职于华为公司、海思半导体,从2001年始,先后从事芯片验证项目交付、验证技术研究、验证工具发和芯片CAD工具发工作,主导的多款芯片CAD工具在海思半导体得EDA仿真工具实战:EagleLang芯片验证专用编程语言、PVM多核并行仿真验证平台设计到广泛应用。后任职于中芯国际设计服务部门,2022年创办济南新语软件科技有限公司,从事芯片验证EDA工具软件发业务。<br/>
目录展开

前言 PREFACE

第一篇 验证方法学基础

第1章 芯片验证目的

1.1 芯片验证与芯片质量

1.2 芯片验证质量度量方法

1.2.1 代码覆盖率

1.2.2 断言覆盖率

1.2.3 功能覆盖率

1.2.4 覆盖率度量方法比较

1.3 功能覆盖率

1.3.1 验证目标定义

1.3.2 芯片系统模型

1.3.3 激励数据模型

1.3.4 功能覆盖率定义

1.3.5 交叉组合功能覆盖率

1.3.6 顺序组合功能覆盖率

1.3.7 功能覆盖率直接驱动的随机验证方法学

第2章 芯片验证方法

2.1 仿真验证方法

2.1.1 芯片验证方法演进

2.1.2 验证效率成本问题

2.1.3 测试和验证的概念辨析

2.2 验证效率提升

2.2.1 当前存在的效率问题

2.2.2 编程效率和编译效率提升

2.2.3 仿真执行效率提升

2.3 芯片验证流程管理

2.3.1 芯片项目阶段划分

2.3.2 验证分层

2.3.3 全面度量管理

2.3.4 验证技术手段

2.3.5 仿真验证技术发展思考

第二篇 Eagle编程语言

第3章 Eagle语言概述

3.1 验证语言设计背景

3.1.1 芯片验证语言发展历史

3.1.2 验证语言设计需求

3.1.3 Eagle语言设计思想和理念

3.2 语言概况

3.2.1 初识Eagle语言

3.2.2 代码源文件

3.2.3 package程序包

3.2.4 编译工程

3.2.5 代码行和代码块

3.2.6 注释

3.3 函数

3.3.1 函数的定义

3.3.2 函数的参数和返回值

3.4 面向对象

3.4.1 类的基本定义

3.4.2 构造函数和析构函数

3.4.3 类的继承

3.4.4 类限定符

3.4.5 类属性符

3.4.6 对象别名

3.5 内存管理

3.6 程序越界

3.7 关键字和操作符

3.8 预定义系统参数

3.9 控制语法

3.9.1 if条件控制语句

3.9.2 for[]循环控制语句

3.9.3 for()循环控制语句

3.9.4 foreach…in…循环控制语句

3.9.5 while和dowhile循环控制语句

3.9.6 switch… case… others…条件控制语句

3.9.7 break和continue循环控制语句

3.9.8 return返回语句

第4章 基本数据类型

4.1 数字常量

4.2 字符串常量

4.3 参数常量

4.4 枚举类型

4.5 变量的类型及作用域

4.6 打印输出语句

4.6.1 信息输出级别

4.6.2 一般语法

4.6.3 格式化打印输出

4.7 bool类型

4.7.1 bool类型定义

4.7.2 逻辑运算

4.7.3 逻辑表达式

4.8 int类型

4.9 uint类型

4.10 float类型

4.11 string类型

4.11.1 字符串定义

4.11.2 切片操作

4.11.3 常用操作函数

4.11.4 字符串支持的运算符

4.12 list/rlist数据结构设计

4.12.1 list定义

4.12.2 list元素切片

4.12.3 对象替换操作符(.=)

4.12.4 list的操作函数

4.13 dict/rdict数据结构设计

4.13.1 dict定义

4.13.2 dict元素切片

4.13.3 dict操作函数

第5章 验证专用数据类型

5.1 bit数据结构设计

5.1.1 bit类型定义

5.1.2 bit位切片

5.1.3 bit位标记

5.1.4 bit位域定义

5.1.5 点等操作符“.=”

5.1.6 bit数据类型交叉赋值

5.1.7 bit操作函数

5.1.8 bit位运算

5.1.9 bit算术运算

5.2 byte数据结构设计

5.2.1 byte数据类型定义

5.2.2 byte数据类型字节切片方式

5.2.3 byte数据类型切片标记

5.2.4 byte位域定义

5.2.5 点等操作符“.=”

5.2.6 基于标记进行byte类型数据比较

5.2.7 byte数据类型交叉赋值

5.2.8 byte操作函数

5.3 cover数据结构设计

5.3.1 cross交叉组合

5.3.2 comb排列组合

5.3.3 sequence顺序组合

5.3.4 复杂cross交叉组合定义

5.3.5 trans跳变序列

5.3.6 变量关联约束

5.3.7 cover数据结构定义

5.3.8 cover数据结构实现定向测试和随机测试

5.3.9 feedby()函数

5.3.10 cover数据操作函数

第6章 多线程编程

6.1 设计背景

6.2 生产者-消费者模型

6.3 tube通信管道

6.4 函数多线程执行

6.5 对象多线程执行

6.6 线程安全变量

第7章 库及库开发

7.1 系统库

7.1.1 randint类

7.1.2 系统函数

7.1.3 math数学库

7.1.4 time库

7.1.5 算法库

7.2 目录和文件库

7.2.1 dir类

7.2.2 file类

7.3 正则表达式

7.3.1 正则表达式语法

7.3.2 regexp类

7.4 sqlite3数据库

7.4.1 eglSQLite3DB类

7.4.2 eglSQLite3Statement类

7.4.3 eglSQLite3Query类

7.4.4 数据库使用示例

7.5 库开发工程

7.5.1 编程接口

7.5.2 编译工程类型

7.5.3 库开发:Eagle源文件

7.5.4 库开发:C/C++源文件

7.5.5 库开发:Eagle、C/C++源文件

7.5.6 库开发:Eagle源文件、动态库

7.5.7 库开发:C/C++源文件、动态库

7.5.8 库开发:Eagle、C/C++源文件、动态库

第三篇 PVM和DVM验证平台

第8章 PVM验证平台并行架构设计

8.1 验证平台设计需求

8.1.1 数字芯片常用类型

8.1.2 验证平台功能需求

8.1.3 工程类需求

8.2 PVM验证平台设计

8.2.1 传统验证平台架构分析

8.2.2 PVM基础验证平台

8.2.3 数据检测验证组件(monVC)

8.2.4 驱动验证组件(drvVC)

8.2.5 寄存器块(regBlock)

8.2.6 存储器验证组件(memVC)

8.2.7 服务验证组件(svrVC)

8.3 PVM验证平台整体架构

8.3.1 PVM验证平台架构层次

8.3.2 PVM执行过程

8.3.3 PVM启动

8.3.4 PVM集成

8.4 DPI接口函数

8.4.1 DPI接口函数总表

8.4.2 发送验证组件DPI接口函数

8.4.3 接收验证组件DPI接口函数

8.4.4 驱动验证组件DPI接口函数

8.4.5 行为级参考模型验证组件DPI接口函数

8.4.6 多功能验证组件DPI接口函数

8.4.7 记分牌验证组件DPI接口函数

8.4.8 存储器验证组件DPI接口函数

8.4.9 服务验证组件DPI接口函数

8.4.10 数据处理DPI接口函数

8.5 simduv接口函数

8.5.1 调试用接口函数总表

8.5.2 发送验证组件接口函数

8.5.3 接收验证组件接口函数

8.5.4 驱动验证组件接口函数

8.5.5 行为级参考模型验证组件接口函数

8.5.6 多功能验证组件接口函数

8.5.7 记分牌验证组件接口函数

8.5.8 存储器验证组件接口函数

8.5.9 服务验证组件接口函数

8.5.10 数据处理服务函数

8.5.11 模拟仿真时间递增

8.6 事件机制

8.6.1 时钟同步

8.6.2 硬件中断

8.6.3 硬件事件

8.6.4 定时事件

8.6.5 软事件

第9章 验证组件设计指南

9.1 验证组件简介

9.1.1 验证组件类型

9.1.2 验证组件执行阶段

9.1.3 pvmID和vcID

9.1.4 验证组件对象容器

9.1.5 验证组件循环执行

9.1.6 tube管道容量设置

9.2 packet数据包类

9.2.1 packet类设计需求

9.2.2 packet类设计

9.3 验证组件接口函数

9.3.1 验证组件接口函数总表

9.3.2 验证组件通用接口函数

9.3.3 发送验证组件接口函数

9.3.4 接收验证组件接口函数

9.3.5 驱动验证组件接口函数

9.3.6 获取数据包接口函数

9.3.7 记分牌验证组件接口函数

9.3.8 存储器验证组件接口函数

9.3.9 服务验证组件接口函数

9.3.10 PVM接口函数

9.4 访问验证组件函数

9.4.1 访问验证组件函数总表

9.4.2 数据包复制函数

9.4.3 访问发送验证组件函数

9.4.4 访问驱动验证组件函数

9.4.5 访问行为级参考模型验证组件函数

9.4.6 访问多功能验证组件函数

9.4.7 访问记分牌验证组件函数

9.5 发送验证组件设计指南

9.5.1 发送验证组件实现方案

9.5.2 发送验证组件调度器设计

9.5.3 发送验证组件升降旗

9.5.4 mTxVC发送BFM设计指南

9.5.5 sTxVC发送BFM设计指南

9.5.6 功能覆盖率定义和随机约束

9.6 接收验证组件设计指南

9.6.1 接收验证组件调度器设计

9.6.2 mRxVC接收BFM设计指南

9.6.3 sRxVC接收BFM设计指南

9.7 MON数据检测验证组件设计指南

9.7.1 monVC验证组件调度器

9.7.2 monVC验证组件接口设计

9.8 驱动验证组件设计指南

9.8.1 驱动验证组件使用架构

9.8.2 driver基类

9.8.3 数据包接口设计指南

9.8.4 驱动BFM设计指南

9.9 行为级参考模型验证组件设计指南

9.10 多功能验证组件设计指南

9.11 记分牌验证组件设计指南

9.11.1 mScbVC接口设计指南

9.11.2 snScbVC接口设计指南

9.12 存储器验证组件设计指南

9.13 服务验证组件设计指南

9.14 仿真控制函数

第10章 验证平台配置与重用

10.1 变量配置机制

10.1.1 操作函数

10.1.2 变量配置文件

10.1.3 变量查找规则

10.1.4 变量设置优先级

10.2 Message信息配置机制

10.2.1 Message信息分类

10.2.2 Message信息输出函数

10.2.3 Message输出控制函数

10.2.4 Message配置文件

10.2.5 日志查看工具logview

10.3 factory工厂机制

10.3.1 factory工厂实现

10.3.2 PVM与UVM的factory机制比较

10.3.3 类的虚函数重载机制

10.4 proxy类代理机制

10.4.1 proxy类代理机制实现原理

10.4.2 代理类对象存储层次结构

10.5 测试用例和验证平台配置

第11章 测试用例设计

11.1 cover定义和随机约束

11.1.1 定义功能覆盖率

11.1.2 随机约束:A类功能覆盖率

11.1.3 B类功能覆盖率

11.1.4 功能覆盖率目标达成

11.1.5 测试用例目录管理

11.1.6 测试用例配置文件

11.1.7 两级测试用例文件配置

11.1.8 功能覆盖率报告

11.2 升降旗和看门狗机制

11.2.1 PVM升降旗实现原理

11.2.2 看门狗机制

第12章 DVM验证平台设计

12.1 DVM验证平台应用场景

12.2 虚集成/虚连接技术

12.3 DVM验证平台架构设计

12.4 验证组件接口函数

第四篇 PVM验证平台配套工具

第13章 寄存器模型

13.1 寄存器属性

13.2 regBlock类

13.2.1 按属性读写

13.2.2 后门读写

13.2.3 前门读写

13.2.4 批量后门读写

13.2.5 批量前门读写

13.2.6 其他常用函数

第14章 信号故障注入工具

14.1 获取信号值

14.2 高精度时钟

14.3 单信号故障注入

14.4 基于事件的信号故障注入

14.5 时钟信号故障注入

14.6 状态机故障注入

第15章 验证平台示例

15.1 sha模块验证平台:shaDemo

15.1.1 shaDemo验证平台架构

15.1.2 BFM设计

15.1.3 验证组件设计

15.1.4 测试用例设计

15.2 可重用PVM验证平台:socDemoI

15.2.1 验证平台架构

15.2.2 eth8023数据包

15.2.3 发送验证组件设计

15.2.4 发送BFM设计

15.2.5 驱动验证组件设计

15.2.6 寄存器读写BFM设计

15.2.7 接收BFM设计

15.2.8 接收验证组件设计

15.2.9 brmVC验证组件设计

15.2.10 snScbVC验证组件设计

15.2.11 测试用例设计

15.3 级联PVM验证平台:socDemoII

15.4 DVM分布式验证平台:socDemoIII

附录A 术语

累计评论(条) 个书友正在讨论这本书 发表评论

发表评论

发表评论,分享你的想法吧!

买过这本书的人还买过

读了这本书的人还在读

回顶部