《零点起步 Altera CPLD/FPGA轻松入门与开发实例》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:薛冰,沈峰,凌欢等编著
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2012
  • ISBN:9787111372455
  • 页数:364 页
图书介绍:本书面向FPGA初中级读者,全书共分11章,首先较系统地介绍了可编程逻辑器件的结构原理以及VHDL硬件描述语言基础知识、语法结构和常用基本数字电路的实例,使读者能够轻松入门并巩固数字电路基础知识;其次详细分析了目前主流的可编程逻辑器件和开发工具,并介绍了逻辑电路设计过程中的一些基本问题和处理方法,以及如何在Altera公司的CPLD/FPGA芯片上运行VHDL程序,其中包含一些常用数字信号处理算法和接口控制器的设计实例;最后基于FPGA的嵌入式系统设计,介绍了基于SOPC的嵌入式设计的具体工作流程和设计方法,并结合实际工程设计,说明如何采用可编程逻辑器件实现典型的嵌入式系统。

第1章 可编程逻辑器件概述 1

1.1 EDA技术及其应用 1

1.2 可编程逻辑器件的分类及原理 3

1.2.1 EPLD和CPLD 3

1.2.2 FPGA 3

1.2.3 FPGA与CPLD的比较 6

1.3 PLD的设计开发 7

1.3.1 PLD设计方法 7

1.3.2 PLD设计流程 8

1.4 Altera可编程逻辑器件 12

1.4.1 Stratix系列 12

1.4.2 Arria系列 21

1.4.3 Cyclone系列 22

1.4.4 MAX系列 29

1.5 思考与练习 33

第2章 VHDL基础 34

2.1 VHDL概述 34

2.1.1 硬件描述语言概述 34

2.1.2 VHDL的特点及设计流程 35

2.2 VHDL程序基本结构 37

2.2.1 实体 37

2.2.2 结构体 39

2.2.3 配置 45

2.2.4 程序包 46

2.3 VHDL中的数据 48

2.3.1 标识符 49

2.3.2 数据对象 49

2.3.3 数据类型 54

2.4 VHDL中的表达式 60

2.5 VHDL描述语句 64

2.5.1 顺序描述语句 64

2.5.2 并行描述语句 78

2.6 思考与练习 80

第3章 VHDL程序设计 81

3.1 基本数字电路的VHDL描述 81

3.1.1 基本逻辑门电路 81

3.1.2 编码器和译码器电路 85

3.1.3 数据选择器 90

3.1.4 加法器 91

3.1.5 乘法器 93

3.1.6 触发器电路 95

3.1.7 寄存器电路 102

3.1.8 计数器电路 108

3.1.9 存储器 115

3.2 有限状态机 116

3.2.1 有限状态机的基本描述 116

3.2.2 有限状态机状态编码方式 117

3.2.3 有限状态机的输出和复位 122

3.3 应用实例——表决器、双口RAM的读取 126

3.4 思考与练习 127

第4章 Altera开发工具的使用 128

4.1 Quartus Ⅱ集成开发环境 128

4.1.1 概述 128

4.1.2 Quartus Ⅱ的安装 129

4.1.3 Quartus Ⅱ10.0图形用户界面 132

4.1.4 设计输入 135

4.1.5 对设计工程进行设置和约束 138

4.1.6 设计综合 141

4.1.7 布局布线 144

4.1.8 仿真 149

4.1.9 时序分析 151

4.1.10 编程与配置 157

4.2 在Altera CPLD/FPGA中运行第一个程序 161

4.2.1 实验目的、环境及实验原理 162

4.2.2 实验步骤 162

4.3 应用实例——MAX Ⅱ内嵌UFM模块的使用 164

4.3.1 实验目的、环境及实验原理 165

4.3.2 实验步骤 165

4.4 思考与练习 169

第5章 可编程逻辑设计的基本问题 170

5.1 可编程逻辑设计基本原则 170

5.1.1 面向硬件原则 170

5.1.2 系统性原则 170

5.1.3 面积与速度之间的互换关系 172

5.1.4 同步设计原则 172

5.2 常用设计思想与技巧 172

5.2.1 串并转换 173

5.2.2 应用实例——RS232数据串并转换 173

5.2.3 乒乓操作 174

5.2.4 流水线操作 175

5.3 常见问题及处理方法 180

5.3.1 竞争冒险产生的原因和处理方法 180

5.3.2 时钟设计常见问题和处理方法 181

5.3.3 建立和保持时间的处理方法 182

5.4 应用实例——利用FIFO缓存器做高速缓存 182

5.5 思考与练习 188

第6章 典型数字信号处理算法FPGA设计 189

6.1 坐标旋转数字计算机 189

6.1.1 CORDIC算法原理 189

6.1.2 CORDIC算法结构 193

6.1.3 CORDIC算法设计 195

6.1.4 程序分析及设计 197

6.2 有限脉冲响应数字滤波器 197

6.2.1 FIR数字滤波器原理 197

6.2.2 FIR数字滤波器程序设计 200

6.2.3 程序分析及设计 202

6.3 无限脉冲响应数字滤波器 202

6.3.1 IIR数字滤波器原理 202

6.3.2 IIR数字滤波器程序设计 204

6.3.3 程序分析及设计 206

6.4 快速傅里叶变换 206

6.4.1 FFT算法原理 207

6.4.2 FFT程序设计 208

6.4.3 程序分析及设计 209

6.5 思考与练习 209

第7章 通用接口的FPGA设计 210

7.1 通用异步收发器 210

7.1.1 UART功能简介 210

7.1.2 UART实现结构 211

7.1.3 UART程序设计 211

7.2 CAN总线控制器 219

7.2.1 CAN总线协议概述 219

7.2.2 CAN通信控制器实现框架 221

7.2.3 CAN通信控制器程序设计 223

7.3 以太网控制器 226

7.3.1 以太网基本原理 227

7.3.2 以太网控制器实现框架 228

7.3.3 以太网控制器程序设计 229

7.4 应用实例——双UART设计 236

7.5 思考与练习 238

第8章 基于SOPC的嵌入式系统设计 239

8.1 Altera SOPC技术及其设计开发流程 239

8.1.1 SOPC技术简介 239

8.1.2 SOPC Builder使用 240

8.1.3 SOPC设计开发流程 243

8.2 Nios Ⅱ处理器 244

8.3 Avalon总线 246

8.3.1 Avalon总线的特点 247

8.3.2 Avalon总线信号 248

8.4 Nios Ⅱ外围标准设备 251

8.4.1 SDRAM控制器 251

8.4.2 CFI控制器 256

8.4.3 EPCS控制器 258

8.4.4 并行输入/输出控制器 260

8.4.5 定时器控制器 262

8.4.6 UART核 265

8.4.7 JTAG UART核 268

8.4.8 SPI核 273

8.4.9 DMA控制器 275

8.4.10 PLL核 277

8.5 自定制用户外设 280

8.6 基于Nios Ⅱ系统开发实例 281

8.7 思考与练习 288

第9章 SOPC硬件开发 289

9.1 基于Nios Ⅱ的SOPC硬件系统开发流程 289

9.2 SOPC Builder硬件开发环境介绍 291

9.2.1 SOPC Builder的功能 291

9.2.2 SOPC Builder的组成 292

9.3 应用实例 295

9.3.1 创建一个Quartus Ⅱ工程 295

9.3.2 使用SOPC Builder创建Nios Ⅱ系统模块 297

9.3.3 添加CPU及外设IP模块 298

9.3.4 集成Nios Ⅱ系统到Quartus Ⅱ工程 305

9.3.5 设置编译选项并进行工程编译 310

9.3.6 将设计下载到目标FPGA中 312

9.4 思考与练习 313

第10章 SOPC软件开发 314

10.1 SOPC软件开发环境概述 314

10.1.1 Nios Ⅱ指令系统介绍 314

10.1.2 Nios Ⅱ处理器运行模式 317

10.2 Nios Ⅱ IDE 318

10.3 硬件抽象层系统库 320

10.3.1 HAL系统库的功能 321

10.3.2 使用HAL开发应用程序 321

10.4 应用实例 324

10.4.1 使用Nios Ⅱ IDE建立用户程序 324

10.4.2 创建一个新的C/C++应用工程 326

10.4.3 设置工程系统库属性和编译选项 327

10.4.4 编译连接工程 329

10.4.5 对程序进行运行调试 331

10.4.6 使用Flash Programmer下载 332

10.5 思考与练习 333

第11章 基于Nios Ⅱ的μC/OS-Ⅱ应用 334

11.1 μC/OS-Ⅱ操作系统简介 334

11.2 基于Nios Ⅱ的μC/OS-Ⅱ实验 335

11.2.1 系统结构图 335

11.2.2 SOPC系统的创建 336

11.2.3 基于NiosⅡ软核处理器的软件 353

11.2.4 测试硬件设计 355

11.2.5 编写μC/OS-Ⅱ的多任务控制程序 357

11.3 总结 360

11.4 思考与练习 360

参考文献 361