图书目录

目    录

第1章  FPGA入门简介 1

1.1  FPGA发展历程 2

1.2  FPGA与ASIC、CPLD的区别 3

1.2.1  FPGA与ASIC 3

1.2.2  FPGA与CPLD 4

1.3  FPGA工作原理 5

1.3.1  FPGA的基本特点 5

1.3.2  FPGA的配置模式 6

1.4  FPGA设计流程与设计方法 6

1.4.1  关键步骤的实现 7

1.4.2  自顶向下和自底向上 9

1.4.3  基于IP核的设计 10

1.5  主要FPGA/CPLD厂家 10

1.6  FPGA的应用 11

1.7  EDA技术 13

1.8  本书的编排 15

思考题 15

第2章  FPGA设计开发工具 17

2.1  Modelsim软件使用方法 18

2.1.1  Modelsim软件安装 18

2.1.2  Modelsim仿真方法 19

2.1.3  Modelsim仿真步骤 19

2.1.4  Modelsim仿真波形 27

2.2  Quartus?II软件使用方法 30

2.2.1  Quartus?II设计流程 30

2.2.2  Quartus?II软件安装 30

2.2.3  USB-Blaster驱动安装 32

2.2.4  Quartus?II设计步骤 35

思考题 48

第3章  Verilog HDL的基础知识 49

3.1  硬件描述语言(HDL)综述 50

3.1.1  硬件描述语言的优越性 50

3.1.2  硬件描述语言的发展历史 51

3.1.3  HDL语言的主要特征 51

3.1.4  Verilog HDL与VHDL的

比较 52

3.1.5  Verilog HDL设计流程及

设计方法简介 52

3.1.6  硬件描述语言新的发展 53

3.2  程序基本结构 54

3.3  词法习俗 56

3.4  数据类型 59

3.4.1  常量 59

3.4.2  变量 59

3.5  运算符 62

3.5.1  算术运算符 62

3.5.2  关系运算符 63

3.5.3  等式运算符 64

3.5.4  逻辑运算符 64

3.5.5  位运算符 65

3.5.6  缩减运算符 66

3.5.7  移位运算符 66

3.5.8  条件运算符 67

3.5.9  位并接运算符 68

3.6  描述语句 68

3.6.1  赋值语句 68

3.6.2  条件语句 70

3.6.3  循环语句 75

3.6.4  逻辑门描述语句 77

3.7  任务和函数结构 78

3.8  时序控制 79

3.8.1  延迟控制 79

3.8.2  事件控制 80

3.8.3  等待语句 81

3.8.4  延迟定义块 82

思考题 82

第4章  设计验证——Testbench 85

4.1  验证综述 86

4.1.1  验证概念 86

4.1.2  验证方法 86

4.1.3  验证工具 90

4.1.4  验证流程 91

4.2  功能验证 93

4.2.1  Testbench基本结构 93

4.2.2  自动生成Testbench 96

4.2.3  Testbench编写方法 98

4.2.4  激励信号的产生 110

4.3  基于断言的验证 113

4.4  Modelsim验证实例 115

思考题 118

第5章  可综合模型设计 119

5.1  阻塞赋值和非阻塞赋值 120

5.2  触发器电路设计 124

5.2.1  时序电路概念 124

5.2.2  D触发器 124

5.3  计数器电路设计 127

5.3.1  基本同步计数器 127

5.3.2  具有复位端口的计数器 128

5.3.3  具有置数端口的计数器 130

5.4  存储器电路设计 131

5.4.1  存储器定义 131

5.4.2  ROM(只读存储器) 131

5.4.3  RAM(随机存储器) 132

5.4.4  FIFO存储器 133

5.5  层次化设计 134

5.5.1  元件例化 134

5.5.2  模块划分 137

5.6  可综合模型设计风格 140

5.6.1  组合电路设计应注意问题 140

5.6.2  时序电路设计的基本概念 142

5.6.3  时序电路设计应注意问题 146

5.6.4  亚稳态及其解决方法 149

5.7  系统规范 151

思考题 152

第6章  有限状态机的设计 155

6.1  有限状态机简介 156

6.2  两种状态机模型 158

6.2.1  Moore型红绿灯 158

6.2.2  Mealy型红绿灯 161

6.3  深入理解状态机 163

6.3.1  一段式状态机 163

6.3.2  两段式状态机 167

6.4  应用实例 169

6.4.1  独热码状态机 169

6.4.2  格雷码状态机 173

思考题 175

第7章  基于Verilog HDL的 FPGA

系统设计实例 177

7.1  计数译码型流水灯设计 178

7.2  交通灯控制电路设计 179

7.3  智力抢答器设计 183

7.4  点阵型显示设计 190

7.5  数字闹钟设计 194

7.6  乒乓球游戏电路设计 202

思考题 210

第8章  基于SOPC的FPGA系统设计

实例 211

8.1  SOPC系统概述 212

8.2  HELLO实验 214

8.3  流水灯实验 235

8.4  定时器实验 243

8.5  并行ADC与DAC实验 246

思考题 250