《EDA技术与VHDL设计》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:黄沛昱,刘科征,谭钦红,雷芳编著
  • 出 版 社:西安:西安电子科技大学出版社
  • 出版年份:2013
  • ISBN:9787560631325
  • 页数:327 页
图书介绍:本书共9章,分为EDA技术概述、基础电路设计、系统电路设计三个层次,具体介绍了EDA相关软硬件知识、可编程逻辑器件;VHDL语言的基本语法结构、语言要素、基本语句和状态机设计;程序包和子程序、仿真测试平台及数字电子系统设计等内容。

第1章 EDA技术概述 1

1.1 EDA技术及其发展 1

1.1.1 EDA技术的概念 1

1.1.2 EDA技术的发展 2

1.2 EDA设计流程 3

1.2.1 FPGA/CPLD工程设计流程 3

1.2.2 ASIC工程设计方法及流程 6

1.3 EDA设计方法 7

1.4 硬件描述语言 8

1.4.1 硬件描述语言的出现和意义 8

1.4.2 VHDL和Verilog HDL 9

1.4.3 硬件描述语言的发展 9

1.4.4 学习硬件描述语言的要点 10

1.5 常用EDA工具 11

1.5.1 集成EDA工具 11

1.5.2 专用EDA工具 12

1.5.3 EDA工具的发展趋势 13

1.6 IP核与EDA技术的关系 14

习题 15

第2章 可编程逻辑器件 16

2.1 可编程逻辑器件概述 16

2.1.1 从TTL到可编程逻辑 16

2.1.2 逻辑元件和PLD内部结构电路的符号表示 18

2.1.3 PLD的发展历程 19

2.1.4 PLD的分类 23

2.2 典型CPLD和FPGA器件结构 24

2.2.1 Altera CPLD基本结构 24

2.2.2 从CPLD到FPGA 26

2.2.3 Altera FPGA器件结构 27

2.2.4 CPLD与FPGA对比 33

2.3 CPLD和FPGA的编程与配置 34

2.3.1 CPLD和FPGA的编程与配置概述 34

2.3.2 CPLD的编程电路 37

2.3.3 FPGA的配置电路 39

2.4 典型CPLD和FPGA产品 46

2.4.1 Xilinx公司的CPLD和FPGA 46

2.4.2 Altera公司的CPLD和FPGA 48

2.4.3 Lattice公司的CPLD和FPGA 52

习题 54

第3章 VHDL语言入门 55

3.1 VHDL语言概述 55

3.2 两个简单的组合电路示例 56

3.2.1 2选1多路选择器的设计 56

3.2.2 半加器的设计 58

3.2.3 VHDL代码设计基本结构 60

3.3 库和程序包 60

3.3.1 库和程序包的种类 61

3.3.2 库和程序包的使用 63

3.3.3 程序包的定义 63

3.4 实体描述 64

3.4.1 实体描述语句的结构 64

3.4.2 端口声明 65

3.4.3 类属声明 66

3.5 结构体描述 67

3.5.1 结构体描述语句结构 67

3.5.2 说明语句 68

3.5.3 功能描述语句 68

3.6 配置 72

3.7 层次结构的VHDL描述 74

3.7.1 元件声明和元件例化 74

3.7.2 类属参量的应用 76

3.8 简单时序电路的描述 78

习题 80

第4章 VHDL语言要素 82

4.1 VHDL文字规则 82

4.1.1 数值型文字 82

4.1.2 标识符 83

4.2 数据对象 84

4.2.1 常量 84

4.2.2 变量 85

4.2.3 信号 86

4.2.4 变量与信号的比较 88

4.3 VHDL的数据类型 93

4.3.1 预定义数据类型 93

4.3.2 用户自定义数据类型 97

4.3.3 数据类型的转换 102

4.4 VHDL操作符 104

4.4.1 分配操作符 104

4.4.2 逻辑操作符 105

4.4.3 算术操作符 106

4.4.4 关系操作符 108

4.4.5 移位操作符 109

4.4.6 串联操作符 111

4.4.7 符号操作符 112

4.4.8 操作符优先级 112

4.5 属性 112

4.5.1 预定义属性 112

4.5.2 用户自定义属性 114

习题 114

第5章 VHDL基本语句 119

5.1 并行语句 119

5.1.1 并行语句的特点 119

5.1.2 进程语句 122

5.1.3 元件例化语句 126

5.1.4 并行信号赋值语句 127

5.1.5 块语句 130

5.1.6 并行过程调用语句 133

5.1.7 生成语句 133

5.2 顺序语句 138

5.2.1 顺序赋值语句 138

5.2.2 IF语句 138

5.2.3 CASE语句 141

5.2.4 LOOP语句 144

5.2.5 WAIT语句 150

5.2.6 NULL语句 152

5.3 常用语句的比较 152

5.3.1 IF语句与CASE语句的比较 152

5.3.2 IF语句与WHEN/ELSE语句的比较 154

5.3.3 CASE语句与WITH/SELECT/WHEN语句的比较 154

5.4 组合逻辑电路的设计 155

5.4.1 三态门电路和双向端口的设计 155

5.4.2 编码器和译码器的设计 158

5.4.3 串行进位加法器的设计 161

5.4.4 计算矢量中“0”个数的电路设计 162

5.5 时序逻辑电路的设计 164

5.5.1 边沿JK触发器的设计 164

5.5.2 移位寄存器的设计 166

5.5.3 数字分频器的设计 167

5.5.4 两位十进制计数器的设计 170

习题 175

第6章 状态机的设计 178

6.1 状态机概述 178

6.2 状态机的分类 181

6.2.1 按状态个数分类 181

6.2.2 按信号输出分类 181

6.2.3 按结构分类 182

6.2.4 按状态的表达方式分类 182

6.2.5 按与时钟的关系分类 183

6.3 MOORE型状态机 183

6.3.1 一个简单的MOORE型状态机的设计 183

6.3.2 序列检测器的多进程状态机设计 186

6.3.3 序列检测器的单进程状态机设计 188

6.4 MEALY型状态机 190

6.5 状态编码和剩余状态处理 192

6.5.1 状态编码 192

6.5.2 剩余状态的处理 197

6.6 利用Quartus Ⅱ软件的图形化工具设计状态机 198

6.7 状态机设计实例 201

6.6.1 八进制约翰逊计数器的设计 201

6.6.2 彩灯控制器的设计 205

6.6.3 信号发生器的设计 208

习题 210

第7章 程序包和子程序 213

7.1 程序包 213

7.2 子程序 216

7.2.1 函数的创建和调用 216

7.2.2 函数的重载 221

7.2.3 决断函数 226

7.2.4 过程的创建与调用 229

7.2.5 过程的重载 233

7.2.6 函数与过程的比较 234

习题 235

第8章 仿真测试平台 236

8.1 VHDL仿真概述 236

8.2 几种常见的Test Bench模型 240

8.2.1 简单Test Bench 241

8.2.2 带有独立源的Test Bench 246

8.2.3 使用TEXTIO的Test Bench 250

8.3 ASSERT语句 257

习题 260

第9章 数字电子系统设计及典型实例 261

9.1 数字电子系统的构成 261

9.2 数字电子系统设计基本流程 262

9.3 数字电子系统设计实例 263

9.3.1 数字跑表的设计 263

9.3.2 十字路口交通信号灯控制系统的设计 279

9.3.3 离线误码检测仪的设计 288

习题 299

附录A 预定义程序包 301

A.1 STD库程序包 301

A.1.1 standard程序包 301

A.1.2 textio程序包 308

A.2 IEEE库程序包 311

A.2.1 std_logic_1164程序包 311

A.2.2 std_logic_arith程序包 314

A.2.3 std_logic_unsigned程序包 320

A.2.4 std_logic_signed程序包 321

A.2.5 std_logic_textio程序包 323

附录B VHDL保留关键字 326

参考文献 327