《数字SoC设计、验证与实例》王卫江 | PDF下载|ePub下载
数字SoC设计、验证与实例 版权信息
- 出版社:机械工业出版社
- 出版时间:2023-09-01
- ISBN:9787111732433
- 条形码:9787111732433 ; 978-7-111-73243-3
数字SoC设计、验证与实例 本书特色
循序渐进地向读者展示了数字SoC从规划、设计、仿真、验证再到综合实现的全流程
数字SoC设计、验证与实例 内容简介
本书聚焦于数字片上系统(SoC)设计领域,从数字集成电路的发展历程与基础知识入手,首先介绍了硬件描述语言Verilog HDL的设计规则和核心EDA工具VIVADO与Design Compiler的使用方法,随后详细讨论了数字SoC设计、验证过程中的关键技术,并对难点问题进行了归纳和总结。此外,本书提供了多个数字SoC设计、验证的实际案例,循序渐进地向读者展示了数字SoC从规划、设计、仿真、验证再到综合实现的全流程。
本书内容由浅入深,能使读者深刻了解数字SoC设计过程和基本方法,既适合作为微电子与集成电路专业的高年级本科生及从事数字SoC领域研究的研究生的教材,又可为从事相关技术的初期从业人员提供技术参考。
数字SoC设计、验证与实例 目录
前言
第1章数字集成电路与SoC介绍1
1.1数字集成电路技术1
1.1.1数字集成电路技术的发展历史1
1.1.2数字集成电路技术基础3
1.2SoC21
1.2.1SoC技术简介21
1.2.2SoC设计流程24
1.2.3两种SoC设计流程实例25
第2章数字SoC的设计基础29
2.1硬件描述语言29
2.1.1硬件描述语言与软件编程语言的区别29
2.1.2硬件描述语言的发展历史30
2.1.3Verilog HDL的可重复性30
2.1.4硬件抽象级的模型类型31
2.2Verilog HDL基本语法31
2.2.1模块的基本概念31
2.2.2常量及其数据类型32
2.2.3变量及其数据类型34
2.2.4运算符及表达式35
2.2.5块语句42
2.2.6赋值语句43
2.2.7结构语句 44
2.2.8条件语句和循环语句45
2.2.9testbench的编写48
2.3Verilog HDL与数字电路50
2.3.1数字电路的类型50
2.3.2Verilog HDL的可综合与不可综合51
2.3.3组合逻辑电路的Verilog HDL实例52
2.3.4时序逻辑电路的Verilog HDL实例53
2.3.5状态机的Verilog HDL实例55
第3章FPGA开发工具——VIVADO基础入门59
3.1FPGA与VIVADO基本介绍59
3.1.1FPGA基础原理介绍59
3.1.2以Xilinx7系列为例的 FPGA 内部结构简介60
3.1.3VIVADO操作界面简介67
3.2VIVADO中的仿真72
3.2.1仿真的含义72
3.2.2仿真的分类72
3.3VIVADO中的综合基础72
3.3.1综合的含义72
3.3.2综合策略介绍73
3.4VIVADO中的实现基础77
3.4.1实现的含义77
3.4.2实现的过程简介78
3.5VIVADO中的约束管理81
3.5.1约束的含义81
3.5.2创建约束的两种方式82
3.6VIVADO中的IP核86
3.6.1IP核的概念86
3.6.2IP核的分类86
3.7VIVADO示例——并行乘法器设计、仿真、综合及其IP核的定制与调用89
3.7.1四位二进制并行乘法器设计原理89
3.7.2四位并行乘法器代码编写以及分析90
3.7.3仿真设计文件代码编写92
3.7.4在VIVADO软件中进行乘法器设计92
3.7.5在VIVADO软件中进行仿真操作100
3.7.6在VIVADO软件中进行综合操作107
3.7.7并行乘法器IP核的定制108
3.7.8并行乘法器IP核的调用115
3.8VIVADO示例——全流程实现基于7Z-Lite开发板的流水灯功能119
3.8.1流水灯代码编写119
3.8.2流水灯代码的行为级仿真120
3.8.3综合及引脚约束121
3.8.4流水灯实现过程122
3.8.5流水灯配置文件生成与下载125
第4章Design Compiler的使用127
4.1Design Compiler介绍127
4.1.1ASIC全流程127
4.1.2Design Compiler流程概述128
4.1.3Design Compiler配置129
4.2Synopsys工艺库使用133
4.2.1什么是工艺库133
4.2.2库的结构134
4.2.3库类135
4.2.4库级属性135
4.2.5环境描述137
4.2.6单元描述142
4.2.7延时模型与计算143
4.3设计与环境约束145
4.3.1环境约束145
4.3.2设计约束149
4.3.3时钟约束154
4.3.4综合示例156
4.4优化设计159
4.4.1DC的两种综合模式159
4.4.2DC自动优化的三大阶段160
4.4.3结构级优化161
4.4.4逻辑级优化164
4.4.5门级优化166
4.4.6多个实例解析167
4.4.7编译设计167
4.4.8层次划分169
4.4.9优化时钟网络171
4.4.10优化面积172
第5章高级数字SoC设计与验证173
5.1时钟域173
5.1.1时钟域的基本概念173
5.1.2同步与异步174
5.1.3门控时钟180
5.1.4跨时钟域184
5.1.5非理想时钟194
5.2静态时序分析196
5.2.1静态时序分析基本概念196
5.2.2静态时序分析相关参数197
5.2.3时序路径201
5.2.4关键参数计算202
5.2.5时序违例的修复方法202
5.2.6FPGA时序分析206
5.3数字SoC验证211
5.3.1验证的基本概念 211
5.3.2UVM验证方法学212
5.3.3验证的策略219
5.3.4验证的方法225
5.3.5验证的评估227
5.3.6验证案例228
第6章基于FPGA的数字SoC设计243
6.1设计需求243
6.2设计方案243
6.2.1SoC整体架构243
6.2.2串口简介244
6.2.3AMBA总线简介250
6.2.4ARM Cortex-M0 微处理器简介261
6.3系统设计265
6.3.1系统硬件搭建265
6.3.2C语言控制程序编写268
6.4功能仿真271
6.4.1UART模块仿真271
6.4.2挂载于APB的UART模块仿真278
6.4.3基于Cortex-M0 的SoC仿真278
6.5SoC综合与布局布线281
第7章AES加密模块设计285
7.1AES算法简介285
7.1.1AES加密算法原理285
7.1.2AES加密模块算法实现288
7.2AES算法硬件加速模块设计292
7.2.1整体接口设计292
7.2.2顶层模块设计293
7.2.3输入模块接口设计295
7.2.4输入模块状态机设计295
7.2.5加密核模块接口设计298
7.2.6加密核模块299
7.2.7输出模块接口设计305
7.2.8输出模块设计305
7.3AES算法硬件加速模块仿真307
7.3.1Testbench编写307
7.3.2ModelSim仿真308
7.3.3仿真结果分析315
7.3.4ModelSim仿真中可能出现的问题316
7.3.5其他ModelSim常用操作318
7.4AES算法硬件加速模块综合319
7.4.1脚本文件介绍319
7.4.2设计文件修改324
7.4.3Design Compiler综合操作325
7.4.4综合结果分析329
参考文献334
第1章数字集成电路与SoC介绍1
1.1数字集成电路技术1
1.1.1数字集成电路技术的发展历史1
1.1.2数字集成电路技术基础3
1.2SoC21
1.2.1SoC技术简介21
1.2.2SoC设计流程24
1.2.3两种SoC设计流程实例25
第2章数字SoC的设计基础29
2.1硬件描述语言29
2.1.1硬件描述语言与软件编程语言的区别29
2.1.2硬件描述语言的发展历史30
2.1.3Verilog HDL的可重复性30
2.1.4硬件抽象级的模型类型31
2.2Verilog HDL基本语法31
2.2.1模块的基本概念31
2.2.2常量及其数据类型32
2.2.3变量及其数据类型34
2.2.4运算符及表达式35
2.2.5块语句42
2.2.6赋值语句43
2.2.7结构语句 44
2.2.8条件语句和循环语句45
2.2.9testbench的编写48
2.3Verilog HDL与数字电路50
2.3.1数字电路的类型50
2.3.2Verilog HDL的可综合与不可综合51
2.3.3组合逻辑电路的Verilog HDL实例52
2.3.4时序逻辑电路的Verilog HDL实例53
2.3.5状态机的Verilog HDL实例55
第3章FPGA开发工具——VIVADO基础入门59
3.1FPGA与VIVADO基本介绍59
3.1.1FPGA基础原理介绍59
3.1.2以Xilinx7系列为例的 FPGA 内部结构简介60
3.1.3VIVADO操作界面简介67
3.2VIVADO中的仿真72
3.2.1仿真的含义72
3.2.2仿真的分类72
3.3VIVADO中的综合基础72
3.3.1综合的含义72
3.3.2综合策略介绍73
3.4VIVADO中的实现基础77
3.4.1实现的含义77
3.4.2实现的过程简介78
3.5VIVADO中的约束管理81
3.5.1约束的含义81
3.5.2创建约束的两种方式82
3.6VIVADO中的IP核86
3.6.1IP核的概念86
3.6.2IP核的分类86
3.7VIVADO示例——并行乘法器设计、仿真、综合及其IP核的定制与调用89
3.7.1四位二进制并行乘法器设计原理89
3.7.2四位并行乘法器代码编写以及分析90
3.7.3仿真设计文件代码编写92
3.7.4在VIVADO软件中进行乘法器设计92
3.7.5在VIVADO软件中进行仿真操作100
3.7.6在VIVADO软件中进行综合操作107
3.7.7并行乘法器IP核的定制108
3.7.8并行乘法器IP核的调用115
3.8VIVADO示例——全流程实现基于7Z-Lite开发板的流水灯功能119
3.8.1流水灯代码编写119
3.8.2流水灯代码的行为级仿真120
3.8.3综合及引脚约束121
3.8.4流水灯实现过程122
3.8.5流水灯配置文件生成与下载125
第4章Design Compiler的使用127
4.1Design Compiler介绍127
4.1.1ASIC全流程127
4.1.2Design Compiler流程概述128
4.1.3Design Compiler配置129
4.2Synopsys工艺库使用133
4.2.1什么是工艺库133
4.2.2库的结构134
4.2.3库类135
4.2.4库级属性135
4.2.5环境描述137
4.2.6单元描述142
4.2.7延时模型与计算143
4.3设计与环境约束145
4.3.1环境约束145
4.3.2设计约束149
4.3.3时钟约束154
4.3.4综合示例156
4.4优化设计159
4.4.1DC的两种综合模式159
4.4.2DC自动优化的三大阶段160
4.4.3结构级优化161
4.4.4逻辑级优化164
4.4.5门级优化166
4.4.6多个实例解析167
4.4.7编译设计167
4.4.8层次划分169
4.4.9优化时钟网络171
4.4.10优化面积172
第5章高级数字SoC设计与验证173
5.1时钟域173
5.1.1时钟域的基本概念173
5.1.2同步与异步174
5.1.3门控时钟180
5.1.4跨时钟域184
5.1.5非理想时钟194
5.2静态时序分析196
5.2.1静态时序分析基本概念196
5.2.2静态时序分析相关参数197
5.2.3时序路径201
5.2.4关键参数计算202
5.2.5时序违例的修复方法202
5.2.6FPGA时序分析206
5.3数字SoC验证211
5.3.1验证的基本概念 211
5.3.2UVM验证方法学212
5.3.3验证的策略219
5.3.4验证的方法225
5.3.5验证的评估227
5.3.6验证案例228
第6章基于FPGA的数字SoC设计243
6.1设计需求243
6.2设计方案243
6.2.1SoC整体架构243
6.2.2串口简介244
6.2.3AMBA总线简介250
6.2.4ARM Cortex-M0 微处理器简介261
6.3系统设计265
6.3.1系统硬件搭建265
6.3.2C语言控制程序编写268
6.4功能仿真271
6.4.1UART模块仿真271
6.4.2挂载于APB的UART模块仿真278
6.4.3基于Cortex-M0 的SoC仿真278
6.5SoC综合与布局布线281
第7章AES加密模块设计285
7.1AES算法简介285
7.1.1AES加密算法原理285
7.1.2AES加密模块算法实现288
7.2AES算法硬件加速模块设计292
7.2.1整体接口设计292
7.2.2顶层模块设计293
7.2.3输入模块接口设计295
7.2.4输入模块状态机设计295
7.2.5加密核模块接口设计298
7.2.6加密核模块299
7.2.7输出模块接口设计305
7.2.8输出模块设计305
7.3AES算法硬件加速模块仿真307
7.3.1Testbench编写307
7.3.2ModelSim仿真308
7.3.3仿真结果分析315
7.3.4ModelSim仿真中可能出现的问题316
7.3.5其他ModelSim常用操作318
7.4AES算法硬件加速模块综合319
7.4.1脚本文件介绍319
7.4.2设计文件修改324
7.4.3Design Compiler综合操作325
7.4.4综合结果分析329
参考文献334