《基于FPGA的现代数字电路设计》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:陈欣波,伍刚编著
  • 出 版 社:北京:北京理工大学出版社
  • 出版年份:2018
  • ISBN:9787568262644
  • 页数:303 页
图书介绍:本书是基于课堂教学、电子技术综合实训和大学生电子设计竞赛的需要而编写的,通过基础知识和项目设计简明而系统地介绍基于FPGA的设计技术。本书分上下两篇,共九章。上篇由6章组成,讲述基础知识。第1章介绍基于可编程逻辑器件的数字设计的基本知识,使读者了解在数字系统设计的方式,了解可编程逻辑器件实现数字设计的基本思想。第2章讲述VHDL语言的基础知识,使读者掌握使用VHDL语言描述电路的基本方法,能读懂简单的VHDL程序。第3章讲述Verilog HDL语言的基础知识,使读者掌握使用Verilog HDL语言描述电路的基本方法,能读懂简单的Verilog HDL程序。第4章讲述Quartus II软件的使用方法,通过具体的实例来介绍输入文件的创建和基于Quartus II软件的开发设计流程。第5章讲述基本逻辑电路的设计,使读者掌握组合逻辑电路、时序逻辑电路和有限状态机电路的设计方法。第6章讲述宏模块和LPM函数的使用方法。通过具体例子使读者掌握使用宏模块和LPM函数的设计过程和方法。下篇由3章组成,讲述基于FPGA的项目训练。第7章讲述在基于FPGA设计中常见的基础模块。第8章讲述控制类电路设

上篇 基础知识 3

第1章 EDA技术概述 3

1.1 EDA技术及发展 3

1.1.1 何谓EDA技术 3

1.1.2 基于大规模可编程逻辑器件的数字系统设计 4

1.2 可编程逻辑器件的发展简介 4

1.2.1 逻辑设计基本流程 5

1.2.2 可编程逻辑器件PAL 6

1.2.3 从PAL到PLD再到复杂可编程逻辑器件CPLD 7

1.2.4 从CPLD到FPGA的产生 9

1.2.5 在系统编程问题的解决 9

1.3 FPGA系统结构和资源 10

1.3.1 可编程逻辑单元(LE) 10

1.3.2 可编程布线 12

1.3.3 可编程I/O 12

1.3.4 嵌入式存储器RAM 13

1.3.5 嵌入式乘法器 13

1.3.6 时钟 13

1.3.7 锁相环 13

1.3.8 FPGA与CPLD的对比 14

1.4 FPGA的设计流程 15

1.5 Altera公司FPGA低成本器件——CycloneⅡ 15

1.5.1 主要特性 16

1.5.2 基于数字信号处理(DSP)应用 17

1.5.3 专用外部存储器接口 17

1.5.4 嵌入式锁相环 18

1.5.5 单端I/O特性 19

1.5.6 差分I/O特性 19

1.5.7 自动CRC校验 20

1.5.8 支持NiosⅡ嵌入式处理器 20

1.6 Altera公司FPGA高成本器件——StratixⅢ器件 21

1.6.1 主要特性 21

1.6.2 体系架构 22

1.6.3 TriMatrix嵌入式存储器 23

1.6.4 DSP模块 24

1.6.5 时钟网络和锁相环 25

1.6.6 高速I/O信号和接口 25

1.6.7 设计安全性 26

第2章 VHDL语言基础 28

2.1 VHDL语言基本结构 28

2.1.1 实体 30

2.1.2 结构体 32

2.1.3 配置 32

2.1.4 库 34

2.2 VHDL语言要素 36

2.2.1 VHDL文法规则 36

2.2.2 VHDL数据对象 38

2.2.3 数据类型 40

2.2.4 操作符 42

2.3 顺序语句 45

2.3.1 赋值语句 45

2.3.2 IF语句 46

2.3.3 CASE语句 48

2.3.4 LOOP语句 49

2.3.5 跳出循环的语句 51

2.3.6 RETURN语句 52

2.3.7 NULL语句 53

2.4 并行语句 53

2.4.1 并行信号赋值语句 53

2.4.2 进程(PROCESS)语句 55

2.5 子程序 59

2.5.1 过程 59

2.5.2 函数 62

2.6 VHDL语言描述风格 66

2.6.1 行为描述 66

2.6.2 数据流描述 67

2.6.3 结构化描述 68

第3章 Verilog HDL语言基础 72

3.1 Verilog HDL语言基本结构 72

3.2 功能的定义 74

3.2.1 用“assign”语句定义功能 74

3.2.2 用“always”块语句定义功能 75

3.2.3 用例化语句调用其他模块来定义逻辑功能 75

3.3 Verilog HDL基本语法 76

3.3.1 标识符 76

3.3.2 常量 77

3.3.3 变量数据类型 80

3.3.4 运算符及表达式 81

3.4 Verilog HDL基本语句 84

3.4.1 赋值语句 84

3.4.2 块语句 86

3.4.3 条件语句 88

3.4.4 case语句 89

3.5 任务和函数 90

3.5.1 任务和函数的不同 90

3.5.2 task语句 91

3.5.3 function语句 93

3.6 Testbench程序设计 94

3.6.1 基本的testbench结构 95

3.6.2 生成激励的常见描写方式 98

第4章 Altera QuartusⅡ软件开发向导 100

4.1 模块编辑及设计流程 100

4.1.1 原理图输入文件的建立 100

4.1.2 图表模块输入 105

4.1.3 原理图设计流程 110

4.1.4 波形仿真 118

4.1.5 引脚分配 119

4.1.6 下载验证 120

4.1.7 QuartusⅡ的几个常用功能 123

4.2 文本编辑及设计流程 124

4.2.1 建立文本文件 124

4.2.2 文本设计流程——建立新工程 128

4.2.3 文本设计流程——编译工程 129

4.2.4 文本设计流程——建立矢量波形文件 129

4.2.5 文本设计流程——仿真波形 132

4.2.6 文本设计流程——引脚分配及下载验证 134

4.3 混合设计 135

4.3.1 建立计数器文件 135

4.3.2 建立七段译码显示电路文件 136

4.3.3 设计流程 137

4.4 使用Signal TapⅡ的实时测试 141

4.4.1 打开Signal TapⅡ的编辑窗口 142

4.4.2 调入待测信号 144

4.4.3 文件存盘 147

4.4.4 编译 147

4.4.5 启动Signal TapⅡ进行采样分析 149

4.4.6 Signal TapⅡ的其他设置和控制方法 149

第5章 基本逻辑电路设计 150

5.1 组合逻辑电路设计 150

5.1.1 门电路设计 150

5.1.2 三态门及总线缓冲器设计 153

5.1.3 编码器、译码器设计 156

5.1.4 多路数据选择器和多路数据分配器设计 159

5.2 时序逻辑电路设计 162

5.2.1 触发器设计 162

5.2.2 寄存器设计 163

5.2.3 计数器设计 166

5.3 有限状态机电路设计 172

5.3.1 有限状态机概述 172

5.3.2 有限状态机的算法描述 173

5.3.3 有限状态机的VHDL描述模式 174

5.3.4 有限状态机的Verilog HDL描述模式 178

第6章 宏模块和LPM函数的应用 184

6.1 存储器模块的用法 184

6.1.1 ROM的使用 184

6.1.2 FIFO的建立使用 190

6.2 乘法器和锁相环的使用 193

6.2.1 乘法器的使用 193

6.2.2 锁相环的使用 195

6.3 基于宏模块的设计实例 198

6.3.1 正弦波信号发生器的设计 198

6.3.2 乘累加器的设计 200

下篇 基于FPGA的项目训练 207

第7章 常用模块电路设计 207

7.1 分频电路设计 207

7.1.1 偶数分频电路 207

7.1.2 奇数分频电路 208

7.2 同步整形电路 210

7.3 按键电路设计 211

7.3.1 按键的连接方式 212

7.3.2 矩阵键盘工作原理 212

7.3.3 按键防抖电路的设计 215

7.4 数码管显示电路设计 217

7.4.1 数码管的工作原理 217

7.4.2 静态显示原理和FPGA驱动设计 218

7.4.3 动态显示原理和FPGA驱动设计 219

7.4.4 采用数码管显示的数字时钟的设计 221

第8章 控制类电路设计 222

8.1 交通信号灯控制器设计 222

8.1.1 设计要求 222

8.1.2 设计方案 222

8.1.3 程序设计 223

8.1.4 程序编译并测试 224

8.2 用FPGA控制步进电动机 224

8.2.1 设计要求 224

8.2.2 必备知识 224

8.2.3 设计方案 225

8.2.4 程序设计 225

8.2.5 程序编译并测试 226

8.3 电子琴设计 226

8.3.1 设计要求 226

8.3.2 必备知识 226

8.3.3 设计方案 227

8.3.4 程序设计 228

8.3.5 程序编译并测试 231

8.4 红外解码电路设计 231

8.4.1 设计要求 231

8.4.2 必备知识 231

8.4.3 设计方案 232

8.4.4 程序设计 233

8.4.5 程序编译并测试 233

第9章 接口电路设计 234

9.1 基于TLC549的数据采集电路设计 234

9.1.1 设计要求 234

9.1.2 必备知识 234

9.1.3 设计方案 236

9.1.4 程序设计 237

9.1.5 程序编译并测试 237

9.2 IIC总线接口电路设计 237

9.2.1 设计要求 237

9.2.2 必备知识 237

9.2.3 设计方案 240

9.2.4 程序设计 241

9.2.5 程序编译并测试 242

附录 243

参考文献 303