《FPGA设计技巧与案例开发详解 第2版》PDF下载

  • 购买积分:18 如何计算积分?
  • 作  者:韩彬,于潇宇,张雷鸣,宋恒,林海全编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2016
  • ISBN:9787121278969
  • 页数:626 页
图书介绍:本书由浅入深、由表及里,从FPGA技术的探索到资源的发现与利用,从硬件版图规划与设计到逻辑电路验证与实现,从模块化功能的研究与积累到系统集成的综合与Timingquest时序优化,系统、全面地介绍Altera FPGA的开发流程。本书的所有例程均经过千锤百炼,相关FPGA设计的资源均由笔者多年整理归纳,希望读者能够妥善利用。

第1章 浅谈FPGA技术、优势、学习途径 1

1.1 FPGA的诞生、发展 1

1.1.1 FPGA的诞生 1

1.1.2 FPGA的发展与未来 4

1.1.3 博弈,在入门之前 7

1.2 Altera FPGA介绍及发展、应用 8

1.2.1 Altera公司介绍 8

1.2.2 Altera产品介绍 9

1.2.3 Altera FPGA的开发平台 15

1.2.4 Altera FPGA的动态与应用 17

1.2.5 Altera FPGA的应用 20

1.2.6 对比ARM与DSP,认清FPGA 23

1.3 善用网络资源,不断总结自我 26

第2章 Quartus Ⅱ 13.0套件的下载及安装 29

2.1 写在前面的话 29

2.2 Quartus Ⅱ 13.0软件下载 30

2.3 Quartus Ⅱ 13.0组件安装 32

2.4 Quartus Ⅱ 13.0 Device安装 36

2.5 USB Blaster下载器驱动程序的安装 39

第3章 Verilog HDL语法简介 43

3.1 What is Verilog HDL? 43

3.2 设计层次 44

3.3 设计流程 44

3.4 基本语法介绍 46

3.4.1 模块module 46

3.4.2 注 释 47

3.4.3 大小写 47

3.4.4 参数声明parameter 48

3.4.5 预处理指令 48

3.4.6 常量 49

3.4.7 变量 50

3.4.8 运算符 51

3.5 Verilog HDL建模 54

3.5.1 结构建模 54

3.5.2 数据流建模 56

3.5.3 行为建模 57

3.5.4 关于状态机 66

第4章 MAX Ⅱ CPLD/Cyclone Ⅱ/Ⅳ FPGA设PCB Layout设计 76

4.1 浅谈PCB Layout 76

4.2 MAX Ⅱ CPLD核心电路设计 77

4.2.1 MAX ⅡCPLD背景及简介 77

4.2.2 EPM240T100C5N设计需求研究及分析 79

4.2.3 EPM240T100C5N核心板原理图设计 83

4.2.4 EPM240T100C5N核心板布局布线 87

4.3 Cyclone Ⅱ FPGA核心电路设计 88

4.3.1 Cyclone Ⅱ FPGA背景及简介 88

4.3.2 Cyclone Ⅱ数据手册解读与EP2C8Q208C8N的设计研究 89

4.3.3 EP2C8Q208C8N核心板原理图设计 101

4.3.4 FPGA核心板Layout注意事项 110

4.4 Cyclone Ⅳ FPGA核心电路设计 113

4.4.1 Cyclone Ⅳ FPGA简介 113

4.4.2 Cyclone Ⅳ FPGA数据手册分析与EP4CE6E22C8N的设计研究 115

4.4.3 Cyclone Ⅳ FPGA核心电路设计 121

4.5 FPGA/CPLD电路焊接、调试经验总结 124

4.6 本书配套FPGA开发平台硬件介绍 128

4.6.1 VIPBoard 3.0硬件资源介绍 128

4.6.2 VIPBoard 3.0相关外设实物介绍 130

第5章 Verilog HDL设计与Testbench文件架构 134

5.1 Verilog HDL设计 134

5.1.1 Verilog HDL与VHDL的对比 134

5.1.2 Verilog HDL的发展 135

5.1.3 Verilog HDL代码设计风格 136

5.2 Testbench文件架构 141

5.2.1 Testbench 的介绍 141

5.2.2 Testbench代码设计风格 142

5.3 Quartus Ⅱ工程目录文件夹的定制 145

第6章 4位计数器的设计与仿真验证 147

6.1 写在前面的话 147

6.2 FPGA/CPLD开发流程 147

6.3 基于Quartus Ⅱ 13.0的4位计数器设计流程 149

6.3.1 Quartus Ⅱ 工程的创建 149

6.3.2 4位计数器的逻辑电路设计 152

6.3.3 Quartus Ⅱ编译流程与工程设置分析 155

6.4 基于Modelsim-Altera 10.1d的4位计数器仿真验证流程 166

6.4.1 关于FPGA设计的各种仿真概念分析 167

6.4.2 Modelsim 版本的简要介绍 168

6.4.3 Modelsim 工程的创建 168

6.4.4 Testbench激励文件的编写 171

6.4.5 Modelsim波形的仿真与分析 174

6.5 设计思路的验证与总结 182

第7章 LED驱动电路设计 183

7.1 LED驱动电路设计方案1——入门 183

7.1.1 LED驱动电路设计方案 183

7.1.2 8位LED的自加显示实验 185

7.2 LED 驱动电路设计方案2——升级 196

7.2.1 LED 电路设计方案 196

7.2.2 74HC595驱动分析与实现 198

7.3 8位LED跑马灯显示实验 208

7.4 LED特效呼吸灯的设计 215

7.4.1 PWM协议的基本介绍 215

7.4.2 LED呼吸灯的设计 216

第8章 独立按键与矩阵键盘的FPGA驱动电路实现 227

8.1 按键及其工作模式介绍 227

8.1.1 按键抖动原理分析 228

8.1.2 硬件消抖动 228

8.1.3 软件消抖动 230

8.2 独立按键的FPGA驱动电路设计 230

8.2.1 独立按键电路设计 230

8.2.2 FSM状态机的Verilog HDL介绍 231

8.2.3 FPGA按键驱动设计方案1 234

8.2.4 FPGA按键驱动设计方案2 248

8.3 矩阵键盘的FPGA驱动电路设计 252

8.3.1 工作原理及电路设计 252

8.3.2 FPGA矩阵键盘驱动设计 255

第9章 “Hello World”的LCD1602显示驱动实现 267

9.1 LCD1602介绍及硬件设计 267

9.1.1 LCD1602字符液晶介绍 267

9.1.2 LCD1602 硬件电路设计 268

9.1.3 LCD1602的时序及初始化分析 271

9.2 LCD 1602 的FPGA驱动电路实现 275

9.2.1 LCD1602的C语言实现方案 276

9.2.2 LCD1602的Verilog HDL实现方案 277

第10章 优化设计FPGA全局时钟管理模块 290

10.1 异步复位,同步释放机制 290

10.1.1 组合电路中的竞争-冒险 291

10.1.2 时序电路中的竞争-冒险 292

10.2 无PLL的全局时钟管理模块设计 296

10.3 Quartus Ⅱ IP核介绍及PLL的定制 305

10.3.1 Quartus Ⅱ IP核的介绍 305

10.3.2 PLL IP核的定制与分析 311

10.4 带PLL的全局时钟管理模块设计 319

第11章 基于FPGA与MCU通信的SPI协议设计 325

11.1 SPI总线协议介绍及硬件的设计 325

11.1.1 SPI总线协议介绍 325

11.1.2 STM8的硬件电路设计 327

11.1.3 SPI总线协议时序分析 329

11.2 SPI总线协议的通信实现 330

11.2.1 STM8的SPI总线收发设计 330

11.2.2 边沿检测电路的 FPGA实现 332

11.2.3 SPI通信的数据接收模块设计 334

11.2.4 SPI通信的数据发送模块设计 343

第12章 基于FPGA与PC通信的UART串口设计 351

12.1 追根溯源透析串口通信 351

12.1.1 串口通信简介 351

12.1.2 串口波特率 354

12.1.3 串口协议分析 354

12.2 串口电路的设计 355

12.2.1 TTL转RS-232 电路的设计 355

12.2.2 USB→UART转换电路设计 356

12.2.3 UART 电路的调试 357

12.3 细说真正的任意分频 358

12.3.1 分频电路的重要性 358

12.3.2 任意频率发生器原理 358

12.3.3 任意频率发生器的验证 360

12.4 串口通信的硬件实现 364

12.4.1 uart receiver接收模块的设计 364

12.4.2 uart transfer发送模块的设计 372

12.4.3 PC2FPGA UART 联调测试 376

第13章 基于FPGA的VGA驱动显示设计 383

13.1 VGA接口、时序及驱动电路设计 383

13.1.1 VGA接口介绍 383

13.1.2 VGA 时序分析 385

13.1.3 RGB三原色模型 388

13.1.4 VGA驱动电路设计 391

13.2 VGA驱动的FPGA实现 396

13.2.1 VGA驱动时序电路的设计 396

13.2.2 任意分辨率的VGA显示控制器设计 408

13.3 “Hello World”的VGA显示驱动实现 411

13.3.1 “Hello World”字模的提取 411

13.3.2 C2Mif软件的介绍与Mif文件的生成 414

13.3.3 VGA字符显示的FPGA实现 418

13.4 彩色图像的VGA显示驱动实现 422

13.4.1 彩色图像显示的理论分析 422

13.4.2 彩色图像的数据提取 423

13.4.3 VGA彩色图像显示的FPGA实现 424

第14章 基于SDRAM的VGA显示控制器的设计与实现 427

14.1 跨时钟域数据交互 427

14.2 SDRAM的介绍及其控制器的移植与优化 431

14.2.1 SDRAM的特性及时序驱动介绍 431

14.2.2 SDRAM的硬件驱动电路设计 435

14.2.3 SDRAM控制器的移植与优化 437

14.2.4 Sdram Control 2Port的封装与协议制定 454

14.3 基于SDRAM的VGA显示控制器的实现 459

第15章 基于OV7725的摄像头视频图像采集系统 471

15.1 系统框架设计思路分析 472

15.1.1 系统框架分析 472

15.1.2 算法的实现流程 473

15.2 OV7725摄像头介绍与视频采集实现 476

15.2.1 CMOS摄像头的简介 476

15.2.2 OV7725的特性介绍及驱动电路设计 478

15.2.3 OV7725 SCCB接口及寄存器介绍 483

15.2.4 OV7725感光阵列与视频时序分析 492

15.2.5 OV7725寄存器I2C初始化设计 495

15.2.6 OV7725的视频采集模块设计 510

15.3 OV7725视频图像显示的实现 527

15.4 本章小结 537

第16章 TimeQuest的分析与实践 539

16.1 写在前面的话 539

16.2 保持裕量和建立裕量的深刻理解 539

16.3 时钟约束——内对内模型 542

16.3.1 内对内模型公式分析 542

16.3.2 约束时钟及PLL 543

16.4 output引脚约束——内对外模型 553

16.4.1 内对外模型公式分析 553

16.4.2 output引脚约束 554

16.5 input引脚约束——外对内模型 556

16.6 阶段性小总结 557

16.7 约束异常 557

16.7.1 Set Multicycle Path 557

16.7.2 Set False Path 562

16.8 决战SDRAM时序约束 562

16.9 Altium Designer查看走线报表 573

第17章 基于FPGA的系统设计 575

17.1 FPGA芯片选型 575

17.2 FPGA的与众不同——PCB布局在设计原理图之前 582

17.3 存储器的选型 583

17.4 FPGA外围器件的选择与设计 584

17.4.1 电阻 585

17.4.2 电容 585

17.4.3 磁珠 588

17.4.4 保险丝 590

17.5 基于核心板的系统设计 592

17.6 基于低功耗系统的电源选型 593

17.7 高速系统的PCB设计要点 598

17.7.1 结构布局 598

17.7.2 电路板的多层设计 598

17.7.3 过孔设计要点 599

17.7.4 防止串扰的布线原则 600

17.7.5 差分线布线原则 600

17.7.6 开关电源PCB设计要点 601

17.8 本章小结 602

第18章 基于高速相机的嵌入式视觉处理系统设计 603

18.1 视觉处理系统概述 603

18.2 嵌入式视觉处理系统结构设计 604

18.3 芯片选型 606

18.4 基于Camera Link工业相机接口的硬件设计 608

18.5 基于Camera Link接口的 FPGA程序设计要点 612

18.6 基于VGA接口的图像的实时缩小与算法结构 613

18.7 FPGA与DSP的协同工作模式 616

18.8 乒乓操作的进阶——零延时数据传输 616

18.9 系统调试 617

18.10 本章小结 618

缩略语对照表 619

符号对照表 625