本书通过系统设计方法+Verilog HDL+FPGA开发EDA工具+典型实例,详细讲解了高级数字系统的设计和验证方法。
主要内容包括:可编程逻辑器件、 Verilog HDL基础知识、现代数字系统设计入门、基于EDA工具的数字系统开发流程、高级FPGA设计思想、常用接口设计实例、DDFS电路设计实例、智能小车控制电路设计实例、直接选择排序电路设计实例、SRAM故障测试电路设计实例、RISC CPU电路设计实例、图像预处理电路设计实例、卷积神经网络电路设计实例。
本书以理论为基础,以案例为主线,穿插讲解数字系统设计方法及Verilog HDL知识的运用,让读者在工程实例中体会和掌握数字系统设计的全流程。本书可以作为数字系统设计的入门书籍,也可以作为教材供电子信息工程、集成电路等相关专业的学生使用。
第1章 可编程逻辑器件 001
1.1 可编程逻辑器件概述 001
1.1.1 可编程逻辑器件发展阶段 001
1.1.2 可编程逻辑器件分类 002
1.2 PLD的基本原理与结构 004
1.2.1 PLD的基本结构 004
1.2.2 PLD电路的表示方法 004
1.3 CPLD的基本原理与结构 006
1.4 FPGA的基本原理与结构 007
1.5 FPGA/CPLD的编程与配置 009
1.6 软核、硬核以及固核 011
1.7 FPGA/CPLD概述 011
1.7.1 Intel的FPGA/CPLD 011
1.7.2 Xilinx的FPGA/CPLD 012
1.8 FPGA/CPLD的发展趋势 014
习题 014
第2章 Verilog HDL基础知识 016
2.1 Verilog HDL简介 016
2.1.1 硬件描述语言的概念及优势 016
2.1.2 Verilog HDL的发展历史及特点 017
2.1.3 Verilog HDL能力 018
2.2 Verilog HDL建模方式 018
2.2.1 模块 018
2.2.2 模块的结构 019
2.2.3 三种建模方式 020
2.3 Verilog HDL 基本语法 024
2.3.1 标识符 024
2.3.2 注释 024
2.3.3 操作数类型 024
2.3.4 数据类型 025
2.3.5 运算符 028
2.3.6 行为语句 030
2.3.7 任务和函数 040
2.3.8 实例化语句 042
2.4 典型电路模块的Verilog HDL描述 042
2.4.1 组合逻辑电路设计范例 042
2.4.2 时序逻辑电路设计范例 046
2.5 Verilog HDL有限状态机设计 049
2.5.1 FSM的描述方法 049
2.5.2 FSM的状态编码 049
2.5.3 FSM的Verilog HDL 设计的基本准则 050
2.5.4 设计举例 050
2.6 仿真和验证 054
2.6.1 仿真和验证的基础知识 054
2.6.2 基本Test Bench结构 055
2.6.3 系统函数 059
2.7 可综合的Verilog HDL子集和保留字 060
2.7.1 可综合的Verilog HDL子集 060
2.7.2 保留字 061
习题 062
第3章 现代数字系统设计入门 063
3.1 数字系统设计方法简介 063
3.1.1 传统数字系统设计方法简介 063
3.1.2 现代数字系统设计方法简介 064
3.2 现代数字系统设计流程 065
3.2.1 模块化设计 066
3.2.2 流程图设计 067
3.2.3 数据通道和控制单元设计 068
3.3 数字电路设计例程 075
3.3.1 电路设计举例1:自动售咖啡机#1 076
3.3.2 电路设计举例2:自动售咖啡机#2 081
3.3.3 电路设计举例3: 自动售咖啡机#3 087
3.4 算法电路设计例程 092
3.4.1 乘法器电路设计 093
3.4.2 RAM测试电路设计 104
3.4.3 ROM查找系统电路设计 110
3.4.4 电子掷骰子游戏电路设计 128
习题 136
第4章 基于EDA工具的数字系统开发流程 137
4.1 PLD开发工具 137
4.2 典型FPGA/CPLD开发流程 139
4.3 Quartus Prime集成开发工具 142
4.3.1 HDL设计 144
4.3.2 优化设置 155
4.3.3 时序分析 157
4.3.4 功耗分析 158
4.3.5 基于IP核的设计 158
4.4 Vivado集成开发工具 174
4.4.1 HDL设计 175
4.4.2 优化设置 188
4.4.3 时序分析 193
4.4.4 功耗分析 194
4.4.5 基于IP核的设计 194
习题 205
第5章 高级FPGA设计思想 206
5.1 复位 206
5.2 流水线设计 209
5.3 乒乓操作 212
5.4 速度与面积互换 213
5.5 跨时钟域信号处理 220
5.6 面积优化结构设计 228
5.7 功耗结构设计 229
习题 230
第6章 常用接口设计实例 231
6.1 UART接口设计 231
6.1.1 UART接口原理 231
6.1.2 UART接口电路 233
6.1.3 UART Verilog HDL描述 236
6.1.4 UART功能仿真 239
6.2 VGA接口设计 240
6.2.1 VGA接口原理 240
6.2.2 VGA接口电路 241
6.2.3 VGA Verilog HDL描述 242
6.2.4 VGA功能仿真 244
6.3 I2C接口设计 245
6.3.1 I2C接口原理 245
6.3.2 I2C接口电路 248
6.3.3 I2C Verilog HDL描述 254
6.3.4 I2C功能仿真 258
习题 259
第7章 DDFS电路设计实例 260
7.1 DDFS电路基本工作原理 260
7.2 DDFS电路需求分析及流程图设计 261
7.3 数据通道电路设计 264
7.4 控制单元电路设计 267
7.5 Verilog HDL描述 269
7.6 功能仿真 271
习题 272
第8章 智能小车控制电路设计实例 273
8.1 智能小车控制算法分析及流程图设计 273
8.2 数据通道电路设计 283
8.3 控制单元设计 286
8.4 Verilog HDL描述 286
8.5 功能仿真 289
习题 290
第9章 直接选择排序电路设计实例 291
9.1 直接选择排序算法分析及流程图设计 291
9.2 数据通道电路设计 294
9.3 控制单元设计 297
9.4 Verilog HDL描述 299
9.5 功能仿真 301
习题 303
第10章 SRAM故障测试电路设计实例 304
10.1 March LR算法分析及流程图设计 304
10.2 数据通道电路设计 308
10.3 控制单元设计 311
10.4 Verilog HDL描述 313
10.5 功能仿真 315
习题 316
第11章 RISC CPU电路设计实例 317
11.1 RISC CPU功能分析及流程图设计 317
11.2 数据通道电路设计 320
11.3 控制单元设计 322
11.4 Verilog HDL描述 324
11.5 功能仿真 325
习题 325
第12章 图像预处理电路设计实例 326
12.1 灰度变换电路 326
12.1.1 灰度变换算法分析及流程图设计 326
12.1.2 数据通道电路设计 327
12.1.3 Verilog HDL描述 328
12.1.4 功能仿真 329
12.2 边缘检测电路 330
12.2.1 边缘检测算法分析及流程图设计 330
12.2.2 数据通道电路设计 332
12.2.3 Verilog HDL描述 334
12.2.4 功能仿真 337
习题 338
第13章 卷积神经网络电路设计实例 339
13.1 卷积神经网络功能分析及流程图设计 339
13.2 数据通道电路设计 343
13.3 控制单元设计 346
13.4 Verilog HDL描述 347
13.5 仿真及验证 349
习题 351
参考文献 352