《基于VHDL的FPGA开发快速入门·技巧·实例》PDF下载

  • 购买积分:11 如何计算积分?
  • 作  者:罗力凡,常春藤等编著
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2009
  • ISBN:9787115196859
  • 页数:300 页
图书介绍:本书从最基本VHDL硬件描述语言讲起,先是通过VHDL概念、语法、基本电路编程方法的讲解让读者掌握FPGA的开发语言;接着通过对FPGA开发工具、开发思想、开发技巧的详细阐述让读者从根本上理解FPGA开发的深层内涵;最后通过大量的工程实例,将FPGA开发语言、开发工具、开发思想和实际工程实现的完美的结合。本书把读者的实际需求作为内容的切入点。在讲述抽象理论时注重引用实例去将理论形象化,在讲述实例时又注重将优秀的设计理念巧妙融合。全书讲述清楚,内容由浅入深,书中的大量实例凝结了作者多年的实际开发经验,具有较高的参考意义和实用价值。它既可作为广大从事数字电路设计工程人员的设计指南,也可以作为高等院校电子、通信、计算机类专业的研究生、本科生的教材和参考书。

第1章 VHDL语言概述及基本结构 1

1.1 VHDL语言概述 1

1.1.1 VHDL语言的产生历史 1

1.1.2 用VHDL语言进行硬件设计的主要优势 2

1.1.3 用VHDL语言设计的基本流程 3

1.1.4 VHDL语言与Verilog HDL语言的比较 4

1.2 VHDL语言程序的基本模型结构 5

1.2.1 VHDL语言程序的基本结构单元 5

1.2.2 VHDL语言结构体的3种描述方法 9

1.2.3 VHDL语言结构体的子结构描述 13

第2章 VHDL的语法要素 21

2.1 VHDL语言的数据操作要素 21

2.1.1 VHDL语言的数据对象 21

2.1.2 VHDL语言的数据类型 23

2.2 VHDL语言的运算操作符 28

2.2.1 逻辑运算符 28

2.2.2 算术运算符 29

2.2.3 关系运算符 30

2.2.4 并置运算符 31

2.2.5 运算符的优先级 31

2.3 VHDL语言的词法规定 32

2.3.1 字符 32

2.3.2 分界符 33

2.3.3 标识符 33

2.3.4 注释 34

2.4 VHDL语言中的库 35

2.4.1 库的概念 35

2.4.2 常见的库 36

2.5 VHDL语言中的程序包 37

2.5.1 程序包的基本概念 37

2.5.2 常见的程序包 38

第3章 VHDL语言的描述语句 40

3.1 顺序描述语句 40

3.1.1 WAIT语句 40

3.1.2 顺序赋值语句 42

3.1.3 IF语句 44

3.1.4 CASE语句 47

3.1.5 LOOP语句 49

3.1.6 NEXT语句与EXIT语句 50

3.1.7 ASSERT语句 52

3.1.8 RETURN语句 53

3.2 并行描述语句 53

3.2.1 并行信号赋值语句 53

3.2.2 并行子结构语句 56

3.2.3 参数传递与元件语句 56

3.2.4 生成语句 59

3.3 VHDL语言中的属性描述语句 63

3.3.1 数值属性 63

3.3.2 函数属性 64

3.3.3 信号类属性 66

第4章 基于VHDL的基础逻辑电路的设计 67

4.1 基础组合逻辑电路的VHDL程序设计 67

4.1.1 组合逻辑电路的分析方法 67

4.1.2 基本门电路 68

4.1.3 基本编码译码器电路 71

4.1.4 基本选择器电路 74

4.1.5 基本比较器电路 75

4.2 基础时序逻辑电路的VHDL程序设计 76

4.2.1 时序逻辑电路的分析方法 76

4.2.2 基本触发器电路 77

4.2.3 基本寄存器电路 81

4.2.4 基本计数器电路 84

第5章 基于VHDL的小型数字电路的设计 86

5.1 7段数码显示器 36

5.1.1 7段数码显示器的原理 86

5.1.2 7段数码显示器的VHDL设计 87

5.2 分频器 89

5.2.1 4分频电路 90

5.2.2 任意偶数分频电路 92

5.2.3 3分频电路 93

5.3 键盘扫描电路 96

5.3.1 键盘扫描电路原理 96

5.3.2 键盘扫描电路的VHDL设计 97

5.4 状态机 102

5.4.1 状态机的原理和分类 102

5.4.2 状态机的VHDL设计 103

第6章 FPGA原理及当前发展现状 108

6.1 可编程逻辑器件FPGA/CPLD的概念与区别 108

6.1.1 CPLD和FPGA的概念和产生历史 108

6.1.2 CPLD和FPGA的区别 109

6.2 FPGA的原理及内部结构 110

6.2.1 查找表的原理 110

6.2.2 基于查找表的FPGA结构 111

6.3 FPGA主要厂商及其主要产品介绍 114

6.3.1 Xilinx公司FPGA产品介绍 114

6.3.2 Altera公司FPGA产品介绍 117

6.3.3 Lattice公司FPGA产品介绍 118

第7章 用ISE9.1i开发FPGA 121

7.1 设计开始 121

7.1.1 ISE9.1i及Modelsim6.OSE的安装 121

7.1.2 ISE9.1i的运行及Modelsim6.OSE的配置 121

7.2 工程及源文件创建 122

7.3 设计仿真 127

7.3.1 创建Testbench波形源文件 127

7.3.2 调用Modelsim6.0进行行为仿真 129

7.3.3 调用Modelsim6.0进行转换后仿真 130

7.3.4 调用Modelsim6.0进行映射后仿真 132

7.3.5 调用Modelsim6.0进行布线后仿真 133

7.4 时序约束 134

7.5 管脚分配 136

7.6 程序下载 138

第8章 FPGA常用设计思想与技巧 142

8.1 FPGA设计中的几个基本概念 142

8.1.1 建立时间和保持时间 142

8.1.2 FPGA中的竞争和冒险现象 143

8.1.3 正确处理清零和置位信号 145

8.1.4 正确认识和使用触发器和锁存器 146

8.2 FPGA设计的原则与常用思想 147

8.2.1 面积和速度的平衡互换原则 147

8.2.2 基于硬件的原则 148

8.2.3 基于系统的原则 149

8.2.4 同步设计的原则 149

8.2.5 基于乒乓操作的设计思想 150

8.2.6 串并转换的设计方法 151

8.2.7 流水线操作的设计思想 152

8.2.8 数据接口同步的方法 152

8.3 FPGA各种设计技巧详解 154

8.3.1 利用IF语句和CASE语句的特点实现速度与面积的平衡 154

8.3.2 灵活利用IF语句对设计进行局部调整 156

8.3.3 利用资源共享提高资源利用率 157

8.3.4 正确选择和使用加法电路 160

8.3.5 在状态机设计中实现组合逻辑和时序逻辑的分离 161

8.3.6 减少关键路径的逻辑级数 164

8.3.7 合理采用流水线操作 165

8.3.8 复制电路减少扇出提高设计速度 166

8.3.9 利用电路的等价性巧妙地分配延时 167

8.3.10 高效利用IOB资源 167

8.3.11 合理使用RAM资源 169

8.4 有关FPGA可靠性设计的一些注意事项总结 170

8.5 有关FPGA管脚分配技巧的说明 172

第9章 基于FPGA的大中型实例设计 175

9.1 通用串行异步收发接口的FPGA设计 175

9.1.1 UART简介 175

9.1.2 UART的设计与实现 176

9.2 I2C总线接口的FPGA实现 188

9.2.1 I2C总线的特点及原理 188

9.2.2 用FPGA设计12C总线的思路分析 189

9.2.3 I2C总线的FPGA实现 190

9.3 PS/2接口的FPGA设计 205

9.3.1 PS/2接口的基础知识介绍 205

9.3.2 PS/2接口的FPGA设计 207

9.4 FIFO的FPGA设计 222

9.4.1 FIFO的基本知识介绍 222

9.4.2 同步FIFO的FPGA设计 222

9.4.3 异步FIFO的FPGA设计 228

9.5 话音通信实例 238

9.5.1 CMX649芯片功能简介 238

9.5.2 CMX649寄存器配置时序要求 239

9.5.3 S通信协议简介 240

9.5.4 话音通信的FPGA实现 240

9.6 HDLC协议的FPGA设计 262

9.6.1 HDLC协议的基础内容 262

9.6.2 HDLC协议的顶层模块设计 263

9.6.3 HDLC存储器的设计 270

9.6.4 HDLC数据发送模块设计 278

9.6.5 HDLC协议接收模块的设计 288

参考文献 300