芯片EDA实战:新一代芯片验证语言Eagle和PVM验证平台
- ISBN:9787111754909
- 装帧:平装-胶订
- 册数:暂无
- 重量:暂无
- 开本:16开
- 页数:403
- 出版时间:2024-07-01
- 条形码:9787111754909 ; 978-7-111-75490-9
本书特色
本书从芯片验证的目的出发,完善了功能覆盖率的定义,阐述了新的随机测试方法,即“功能覆盖率直接驱动的随机测试方法”,以及一种新的验证语言EagleLang,即Eagle语言。该编程语言具有类似脚本语言的简洁语法,专用于芯片验证,也可以用于文本处理、数学计算、多线程编程等应用领域。该语言的编译执行具有接近C 语言的效率,eagle是该语言的编译器工具。
内容简介
本书从芯片验证的目的出发,完善了功能覆盖率的定义,阐述了新的随机测试方法,即“功能覆盖率直接驱动的随机测试方法”,以及一种新的验证语言EagleLang,即Eagle语言。该编程语言具有类似脚本语言的简洁语法,专用于芯片验证,也可以用于文本处理、数学计算、多线程编程等应用领域。该语言的编译执行具有接近C 语言的效率,eagle是该语言的编译器工具。
芯片仿真验证效率是影响芯片项目周期的主要因素,本书提出了新一代的验证方法学PVM(Parallel Verification Methodology),采用多核并行技术搭建的PVM验证平台,具有执行效率高的特点,可以有效实现芯片仿真验证加速。另外,在PVM验证平台中采用工厂模式和动态编程技术,可以实现验证组件、测试用例的动态生成,减少验证平台、测试用例的编译时间。
本书主要适合芯片验证工程师、芯片驱动软件开发工程师、芯片系统建模工程师、芯片设计工程师阅读。本书也可以作为从事芯片EDA工具开发的软件工程师、编译器开发软件工程师的参考书籍。本书还可以作为高校师生了解芯片设计与验证技术的参考书籍。
目录
**篇验证方法学基础
芯片验证目的/
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.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编程语言
Eagle语言概述/
3.1验证语言设计背景/
3.1.1芯片验证语言发展历史/
3.1.2验证语言设计需求/
3.1.3Eagle语言设计思想和理念/
3.2语言概况/
3.2.1初识Eagle语言/
3.2.2代码源文件/
3.2.3package程序包/
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关键字和操作符/
芯片EDA实战:新一代芯片验证语言Eagle和PVM验证平台3.8预定义系统参数/
3.9控制语法/
3.9.1if条件控制语句/
3.9.2for[]循环控制语句/
3.9.3for()循环控制语句/
3.9.4foreach…in…循环控制语句/
3.9.5while和dowhile循环控制语句/
3.9.6switch… case… others…条件
控制语句/
3.9.7break和continue循环控制
语句/
3.9.8return返回语句/
基本数据类型/
4.1数字常量/
4.2字符串常量/
4.3参数常量/
4.4枚举类型/
4.5变量的类型及作用域/
4.6打印输出语句/
4.6.1信息输出级别/
4.6.2一般语法/
4.6.3格式化打印输出/
4.7bool类型/
4.7.1bool类型定义/
4.7.2逻辑运算/
4.7.3逻辑表达式/
4.8int类型/
4.9uint类型/
4.10float类型/
4.11string类型/
4.11.1字符串定义/
4.11.2切片操作/
4.11.3常用操作函数/
4.11.4字符串支持的运算符/
4.12list/rlist数据结构设计/
4.12.1list定义/
4.12.2list元素切片/
4.12.3对象替换操作符(.=)/
4.12.4list的操作函数/
4.13dict/rdict数据结构设计/
4.13.1dict定义/
4.13.2dict元素切片/
4.13.3dict操作函数/
验证专用数据类型/
5.1bit数据结构设计/
5.1.1bit类型定义/
5.1.2bit位切片/
5.1.3bit位标记/
5.1.4bit位域定义/
5.1.5点等操作符“.=”/
5.1.6bit数据类型交叉赋值/
5.1.7bit操作函数/
5.1.8bit位运算/
5.1.9bit算术运算/
5.2byte数据结构设计/
5.2.1byte数据类型定义/
5.2.2byte数据类型字节切片方式/
5.2.3byte数据类型切片标记/
5.2.4byte位域定义/
5.2.5点等操作符“.=”/
5.2.6基于标记进行byte类型数据
比较/
5.2.7byte数据类型交叉赋值/
5.2.8byte操作函数/
5.3cover数据结构设计/
5.3.1cross交叉组合/
5.3.2comb排列组合/
5.3.3sequence顺序组合/
5.3.4复杂cross交叉组合定义/
5.3.5trans跳变序列/
5.3.6变量关联约束/
5.3.7cover数据结构定义/
5.3.8cover数据结构实现定向测试和
随机测试/
5.3.9feedby()函数/
5.3.10cover数据操作函数/
多线程编程/
6.1设计背景/
6.2生产者-消费者模型/
6.3tube通信管道/
6.4函数多线程执行/
6.5对象多线程执行/
6.6线程安全变量/
库及库开发/
7.1系统库/
7.1.1randint类/
7.1.2系统函数/
7.1.3math数学库/
7.1.4time库/
7.1.5算法库/
7.2目录和文件库/
7.2.1dir类/
7.2.2file类/
7.3正则表达式/
7.3.1正则表达式语法/
7.3.2regexp类/
7.4sqlite3数据库/
7.4.1eglSQLite3DB类/
7.4.2eglSQLite3Statement类/
7.4.3eglSQLite3Query类/
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验证平台
PVM验证平台并行架构设计/
8.1验证平台设计需求/
8.1.1数字芯片常用类型/
8.1.2验证平台功能需求/
8.1.3工程类需求/
8.2PVM验证平台设计/
8.2.1传统验证平台架构分析/
8.2.2PVM基础验证平台/
8.2.3数据检测验证组件(monVC)/
8.2.4驱动验证组件(drvVC)/
8.2.5寄存器块(regBlock)/
8.2.6存储器验证组件(memVC)/
8.2.7服务验证组件(svrVC)/
8.3PVM验证平台整体架构/
8.3.1PVM验证平台架构层次/
8.3.2PVM执行过程/
8.3.3PVM启动/
8.3.4PVM集成/
8.4DPI接口函数/
8.4.1DPI接口函数总表/
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.5simduv接口函数/
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.1验证组件简介/
9.1.1验证组件类型/
9.1.2验证组件执行阶段/
9.1.3pvmID和vcID/
9.1.4验证组件对象容器/
9.1.5验证组件循环执行/
9.1.6tube管道容量设置/
9.2packet数据包类/
9.2.1packet类设计需求/
9.2.2packet类设计/
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.10PVM接口函数/
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.4mTxVC发送BFM设计指南/
9.5.5sTxVC发送BFM设计指南/
9.5.6功能覆盖率定义和随机约束/
9.6接收验证组件设计指南/
9.6.1接收验证组件调度器设计/
9.6.2mRxVC接收BFM设计指南/
9.6.3sRxVC接收BFM设计指南/
9.7MON数据检测验证组件设计指南/
9.7.1monVC验证组件调度器/
9.7.2monVC验证组件接口设计/
9.8驱动验证组件设计指南/
9.8.1驱动验证组件使用架构/
9.8.2driver基类/
9.8.3数据包接口设计指南/
9.8.4驱动BFM设计指南/
9.9行为级参考模型验证组件设计指南/
9.10多功能验证组件设计指南/
9.11记分牌验证组件设计指南/
9.11.1mScbVC接口设计指南/
9.11.2snScbVC接口设计指南/
9.12存储器验证组件设计指南/
9.13服务验证组件设计指南/
9.14仿真控制函数/
验证平台配置与重用/
10.1变量配置机制/
10.1.1操作函数/
10.1.2变量配置文件/
10.1.3变量查找规则/
10.1.4变量设置优先级/
10.2Message信息配置机制/
10.2.1Message信息分类/
10.2.2Message信息输出函数/
10.2.3Message输出控制函数/
10.2.4Message配置文件/
10.2.5日志查看工具logview/
10.3factory工厂机制/
10.3.1factory工厂实现/
10.3.2PVM与UVM的factory机制比较/
10.3.3类的虚函数重载机制/
10.4proxy类代理机制/
10.4.1proxy类代理机制实现原理/
10.4.2代理类对象存储层次结构/
10.5测试用例和验证平台配置/
测试用例设计/
11.1cover定义和随机约束/
11.1.1定义功能覆盖率/
11.1.2随机约束:A类功能覆盖率/
11.1.3B类功能覆盖率/
11.1.4功能覆盖率目标达成/
11.1.5测试用例目录管理/
11.1.6测试用例配置文件/
11.1.7两级测试用例文件配置/
11.1.8功能覆盖率报告/
11.2升降旗和看门狗机制/
11.2.1PVM升降旗实现原理/
11.2.2看门狗机制/
DVM验证平台设计/
12.1DVM验证平台应用场景/
12.2虚集成/虚连接技术/
12.3DVM验证平台架构设计/
12.4验证组件接口函数/
第四篇PVM验证平台配套工具
寄存器模型/
13.1寄存器属性/
13.2regBlock类/
13.2.1按属性读写/
13.2.2后门读写/
13.2.3前门读写/
13.2.4批量后门读写/
13.2.5批量前门读写/
13.2.6其他常用函数/
信号故障注入工具/
14.1获取信号值/
14.2高精度时钟/
14.3单信号故障注入/
14.4基于事件的信号故障注入/
14.5时钟信号故障注入/
14.6状态机故障注入/
验证平台示例/
15.1sha模块验证平台:shaDemo/
15.1.1shaDemo验证平台架构/
15.1.2BFM设计/
15.1.3验证组件设计/
15.1.4测试用例设计/
15.2可重用PVM验证平台:
socDemoI/
15.2.1验证平台架构/
15.2.2eth8023数据包/
15.2.3发送验证组件设计/
15.2.4发送BFM设计/
15.2.5驱动验证组件设计/
15.2.6寄存器读写BFM设计/
15.2.7接收BFM设计/
15.2.8接收验证组件设计/
15.2.9brmVC验证组件设计/
15.2.10snScbVC验证组件设计/
15.2.11测试用例设计/
15.3级联PVM验证平台:
socDemoII/
15.4DVM分布式验证平台:
socDemoIII/
附录A术语/
作者简介
易敏,男,毕业于武汉测绘科技大学电子工程专业,济南新语软件科技有限公司CEO。曾就职于华为公司、海思半导体,从2001年开始,先后从事芯片验证项目交付、验证技术研究、验证工具开发和芯片CAD工具开发工作,主导的多款芯片CAD工具在海思半导体得EDA仿真工具实战:EagleLang芯片验证专用编程语言、PVM多核并行仿真验证平台设计到广泛应用。后任职于中芯国际设计服务部门,2022年创办济南新语软件科技有限公司,从事芯片验证EDA工具软件开发业务。
-
深度学习的数学
¥43.5¥69.0 -
全图解零基础word excel ppt 应用教程
¥12.0¥48.0 -
机器学习
¥59.4¥108.0 -
有限与无限的游戏:一个哲学家眼中的竞技世界
¥37.4¥68.0 -
智能硬件项目教程:基于ARDUINO(第2版)
¥31.9¥65.0 -
硅谷之火-人与计算机的未来
¥14.3¥39.8 -
元启发式算法与背包问题研究
¥38.2¥49.0 -
AI虚拟数字人:商业模式+形象创建+视频直播+案例应用
¥62.9¥89.8 -
UNIX环境高级编程(第3版)
¥164.9¥229.0 -
剪映AI
¥52.8¥88.0 -
深度学习高手笔记 卷2:经典应用
¥90.9¥129.8 -
纹样之美:中国传统经典纹样速查手册
¥76.3¥109.0 -
UG NX 12.0数控编程
¥22.1¥45.0 -
MATLAB计算机视觉与深度学习实战(第2版)
¥90.9¥128.0 -
界面交互设计理论研究
¥30.8¥56.0 -
微机组装与系统维护技术教程(第二版)
¥37.8¥43.0 -
明解C语言:实践篇
¥62.9¥89.8 -
Linux服务器架设实战(Linux典藏大系)
¥83.3¥119.0 -
Visual Basic 语言程序设计基础(第6版)
¥32.0¥45.0 -
贝叶斯推理与机器学习
¥139.3¥199.0