《FPGA应用开发入门与典型实例》

图书作者:华清远见 丛书名称: 嵌入式开发系列 出版日期: 2010年6月 PDF电子版免费下载

编辑推荐理由

推荐评分:5.0分

多年嵌入式人才培养及项目研发经验总结

数百家企业嵌入式研发岗位人才需求汇总

数十所嵌入式专业大学院校教学现状调研

侧重实践及案例分析并辅以代码加以讲解

图书简介

fpga(现场可编程逻辑器件)以其体积小、功耗低、稳定性高等优点被广泛应用于各类电子产品的设计中。本书全面讲解了fpga系统设计的背景知识、硬件电路设计,硬件描述语言verilog hdl的基本语法和常用语句,fpga的开发工具软件的使用,基于fpga的软核嵌入式系统,fpga设计的基本原则、技巧、ip核, fpga在接口设计领域的典型应用,fpga+dsp的系统设计与调试,以及数字变焦系统和pci数据采集系统这两个完整的系统设计案例。
  • 本书内容全面、实例丰富,适合fpga系统设计初学者,大专院校通信工程、电子工程、计算机、微电子和半导体相关专业师生,硬件系统工程师和ic设计工程师学习使用。

图书目录

  • ※ 第1章 fpga系统设计基础

  • 1.1 fpga技术的发展历史和动向
  •  1.1.1 fpga技术的发展历史
  •  1.1.2 fpga技术的发展动向
  • 1.2 fpga的典型应用领域
  •  1.2.1 数据采集和接口逻辑领域
  •  1.2.2 高性能数字信号处理领域
  •  1.2.3 其他应用领域
  • 1.3 fpga的工艺结构
  •  1.3.1 基于sram结构的fpga
  •  1.3.2 基于反融丝结构的fpga
  •  1.3.3 基于flash结构的fpga
  • 1.4 主流的fpga芯片厂家及其代表产品
  •  1.4.1 xilinx公司的代表产品
  •  1.4.2 altera公司的代表产品
  • 1.5 工程项目中fpga芯片选择策略和原则
  •  1.5.1 尽量选择成熟的产品系列
  •  1.5.2 尽量选择兼容性好的封装
  •  1.5.3 尽量选择一个公司的产品
  • ※ 第2章 从零开始设计fpga最小系统

  • 2.1 fpga最小系统的概念
  • 2.2 fpga最小系统电路分析
  •  2.2.1 fpga管脚设计
  •  2.2.2 下载配置与调试接口电路设计
  •  2.2.3 高速sdram存储器接口电路设计
  •  2.2.4 异步sram(asram)存储器接口电路设计
  •  2.2.5 flash存储器接口电路设计
  •  2.2.6 开关、按键与发光led电路设计
  •  2.2.7 vga接口电路设计
  •  2.2.8 ps/2鼠标及键盘接口电路设计
  •  2.2.9 rs-232串口
  •  2.2.10 字符型液晶显示器接口电路设计
  •  2.2.11 usb 2.0接口芯片cy7c68013电路设计
  •  2.2.12 电源电路设计
  •  2.2.13 复位电路设计
  •  2.2.14 时钟电路设计
  • 2.3 fpga硬件系统的设计技巧
  •  2.3.1 管脚兼容性设计
  •  2.3.2 根据电路布局来分配管脚功能
  •  2.3.3 预留测试点
  • 2.4 fpga硬件系统的调试方法
  • 2.5 典型实例1:在altera的fpga开发板上运行第一个fpga程序
  •  2.5.1 实例的内容及目标
  •  2.5.2 平台简介
  •  2.5.3 实例详解
  •  2.5.4 小结
  • 2.6 典型实例2:在xilinx的fpga开发板上运行第一个fpga程序
  •  2.6.1 实例的内容及目标
  •  2.6.2 平台简介
  •  2.6.3 实例详解
  •  2.6.4 小结
  • ※ 第3章 硬件描述语言verilog hdl基础

  • 3.1 verilog hdl语言简介
  •  3.1.1 verilog hdl的历史和进展
  •  3.1.2 vhdl和verilog hdl语言对比
  • 3.2 verilog hdl程序基本结构
  •  3.2.1 verilog hdl程序入门
  •  3.2.2 模块的框架
  • 3.3 verilog hdl语言的数据类型和运算符
  •  3.3.1 常用数据类型
  •  3.3.2 常用运算符
  • 3.4 verilog hdl语言的赋值语句和块语句
  •  3.4.1 非阻塞赋值和阻塞赋值
  •  3.4.2 块语句
  •  3.4.3 关键词
  • 3.5 verilog hdl语言的条件语句
  •  3.5.1 if语句
  •  3.5.2 case语句
  •  3.5.3 其他条件语句
  • 3.6 verilog hdl语言的其他常用语句
  •  3.6.1 循环语句
  •  3.6.2 结构说明语句
  • 3.7 verilog hdl语言实现组合逻辑电路
  •  3.7.1 assign语句实现组合逻辑
  •  3.7.2 always块实现组合逻辑
  • 3.8 verilog hdl语言实现时序逻辑电路
  • 3.9 verilog hdl语言与c语言的区别与联系
  • 3.10 verilog hdl程序设计经验
  • 3.11 典型实例3:数字跑表
  •  3.11.1 实例的内容及目标
  •  3.11.2 原理简介
  •  3.11.3 代码分析
  •  3.11.4 参考设计
  • 3.12 典型实例4:ps/2接口控制
  •  3.12.1 实例的内容及目标
  •  3.12.2 原理简介
  •  3.12.3 实例详解
  •  3.12.4 参考设计
  • 3.13 典型实例5:交通灯控制器
  •  3.13.1 实例的内容及目标
  •  3.13.2 原理简介
  •  3.13.3 代码分析
  •  3.13.4 参考设计
  • ※ 第4章 硬件描述语言verilog hdl设计进阶

  • 4.1 task和function说明语句的区别
  • 4.2 verilog hdl高级语法结构——任务(task)
  • 4.3 verilog hdl高级语法结构——任务(function)
  • 4.4 有限状态机的设计原理及其代码风格
  •  4.4.1 有限状态机(fsm)设计原理
  •  4.4.2 fsm设计实例
  •  4.4.3 设计可综合状态机的指导原则
  • 4.5 逻辑综合的原则以及可综合的代码设计风格
  •  4.5.1 always块语言指导原则
  •  4.5.2 可综合风格的verilog hdl模块实例
  • 4.6 典型实例6:状态机应用
  •  4.6.1 实例的内容及目标
  •  4.6.2 实例详解
  •  4.6.3 参考设计
  • 4.7 典型实例7:自动转换量程频率计控制器
  •  4.7.1 实例内容及目标
  •  4.7.2 原理简介
  •  4.7.3 代码分析 
  •  4.7.4 参考设计 
  • 4.8 典型实例8:使用函数实现简单的处理器 
  •  4.8.1  实例的内容及目标 
  •  4.8.2 原理简介 
  •  4.8.3 代码分析 
  • ※ 第5章 fpga设计开发软件quartus ii的使用技巧 

  • 5.1 quartus ii软件简介 
  • 5.2 quartus ii软件新特性 
  • 5.3 quartus ii软件的安装与启动 
  • 5.4 quartus ii软件设计流程 
  • 5.5 创建工程设计文件 
  •  5.5.1 创建工程 
  •  5.5.2 添加设计文件 
  • 5.6 编译及仿真工程 
  •  5.6.1 编译 
  •  5.6.2 仿真 
  • 5.7 约束及配置工程 
  •  5.7.1 器件选择 
  •  5.7.2 管脚分配 
  •  5.7.3 时序约束 
  •  5.7.4 配置工程 
  • 5.8 logiclock逻辑锁定工具使用技巧 
  •  5.8.1 逻辑锁定方法学 
  •  5.8.2 逻辑锁定优势 
  •  5.8.3 逻辑锁定参数设置 
  •  5.8.4 逻辑锁定流程 
  • 5.9 signaltap ii在线逻辑分析仪的使用方法 
  •  5.9.1 signaltap ii介绍 
  •  5.9.2 使用signaltap ii操作流程 
  •  5.9.3 设置触发器 
  • 5.10 典型实例9:signaltap ii功能演示 
  •  5.10.1 实例的内容及目标 
  •  5.10.2 实例详解 
  •  5.10.3 小结 
  • 5.11 典型实例10:logiclock功能演示 
  •  5.11.1 实例的内容及目标 
  •  5.11.2 实例详解 
  • ※ 第6章 fpga设计开发软件ise使用技巧 

  • 6.1 ise软件简介 
  •  6.1.1 ise软件简介 
  •  6.1.2 ise 7.1i特点 
  • 6.2 ise软件的安装与启动 
  •  6.2.1 ise软件的安装 
  •  6.2.2 ise软件的启动 
  • 6.3 ise软件的设计流程 
  • 6.4 创建设计工程 
  • 6.5 编译与仿真设计工程 
  • 6.6 增量式设计(incremental design)技巧 
  •  6.6.1 增量式设计的必要性 
  •  6.6.2 增量设计流程 
  •  6.6.3 小结 
  • 6.7 片上逻辑分析仪(chipscope pro)使用技巧 
  •  6.7.1 chipscope pro概述 
  •  6.7.2 chipscope pro设计流程 
  •  6.7.3 chipscope pro core inserter简介 
  •  6.7.4 chipscope pro analyzer简介 
  •  6.7.5 小结 
  • 6.8 典型实例11:chipscope功能演示 
  •  6.8.1 实例的内容及目标 
  •  6.8.2 基于chipscope pro core generator的实现流程 
  •  6.8.3 基于chipscope pro core inserter的实现流程 
  •  6.8.4 小结 
  • 6.9 典型实例12:增量式设计(incremental design)演示 
  •  6.9.1 实例的内容及目标 
  •  6.9.2 实例详解 
  •  6.9.3 小结 
  • ※ 第7章 fpga系统设计的仿真验证 

  • 7.1 fpga设计仿真验证的原理和方法 
  •  7.1.1 fpga设计仿真验证 
  •  7.1.2 fpga设计仿真的切入点 
  • 7.2 modelsim仿真工具简介 
  •  7.2.1 标题栏 
  •  7.2.2 菜单栏 
  •  7.2.3 工具栏 
  •  7.2.4 工作区 
  •  7.2.5 状态栏 
  • 7.3 modelsim的仿真流程 
  •  7.3.1 modelsim的安装 
  •  7.3.2 使用modelsim进行功能仿真 
  • 7.4 功能仿真和时序仿真的区别和实现方法 
  •  7.4.1 功能仿真 
  •  7.4.2 时序仿真 
  • 7.5 仿真测试文件(testbench)的设计方法 
  •  7.5.1 测试文件的用途 
  •  7.5.2 测试文件设计方法 
  •  7.5.3 测试常用语句 
  • 7.6 典型实例13:sdram读写控制的实现与modelsim仿真 
  •  7.6.1 实例的内容及目标 
  •  7.6.2 sdram简介 
  •  7.6.3 sdram控制器的modelsim仿真 
  •  7.6.4 小结 
  • ※ 第8章 基于fpga的片上可编程系统(sopc)设计 

  • 8.1 基于fpga的sopc系统组成原理和典型方案 
  •  8.1.1 soc及sopc简介 
  •  8.1.2 xilinx的sopc解决方案 
  • 8.2 altera公司的nios ii解决方案 
  •  8.2.1 nios的主要特点 
  •  8.2.2 nios技术实现方式 
  • 8.3 基于nios ii的开发设计流程 
  •  8.3.1 硬件开发流程 
  •  8.3.2 软件开发流程 
  • 8.4 典型实例14:基于niosii处理器的“hello led”程序设计 
  •  8.4.1 实例的内容及目标 
  •  8.4.2 实例详解 
  •  8.4.3 小结 
  • 8.5 典型实例15:基于niosii处理器的数字钟设计 
  •  8.5.1 实例的内容及目标 
  •  8.5.2 软件规划 
  •  8.5.3 实例步骤 
  •  8.5.4 小结 
  • ※ 第9章 fpga系统设计原则和技巧 

  • 9.1 fpga系统设计的3个基本原则 
  •  9.1.1 面积与速度的平衡互换原则 
  •  9.1.2 硬件可实现原则 
  •  9.1.3 同步设计原则 
  • 9.2 fpga系统设计的3种常用技巧 
  •  9.2.1 乒乓操作技巧 
  •  9.2.2 串并/并串转换技巧 
  •  9.2.3 硬件流水线操作技巧 
  • 9.3 fpga系统设计的3种常用ip模块 
  •  9.3.1 片上存储器的使用方法 
  •  9.3.2 锁相环的使用方法 
  •  9.3.3 高速串行收发器的使用方法 
  • ※ 第10章 利用fpga实现外设通信接口 

  • 10.1 fpga在外设接口实现方面的优势 
  •  10.1.1 充足的用户i/o资源 
  •  10.1.2 灵活的可编程逻辑 
  •  10.1.3 支持多种电平接口标准 
  • 10.2 利用fpga实现rs-232c串行接口 
  •  10.2.1 rs-232c接口概述 
  •  10.2.2 rs-232c接口的电气标准 
  •  10.2.3 rs-232c的通信协议 
  •  10.2.4 rs-232c接口的典型应用 
  • 10.3 利用fpga实现usb 2.0通信接口 
  •  10.3.1 usb 2.0接口的实现方式 
  •  10.3.2 fx2接口芯片的slave fifo传输模式 
  •  10.3.3 slave fifo模式的典型操作时序 
  •  10.3.4 fx2的固件程序设计 
  •  10.3.5 usb 2.0接口的典型应用 
  • 10.4 利用fpga实现常用显示接口(display interface) 
  •  10.4.1 七段数码显示接口的设计与实现 
  •  10.4.2 字符型lcd显示接口的设计与实现 
  •  10.4.3 vga显示接口的设计与实现 
  • 10.5 利用fpga实现a/d、d/a转换器接口 
  •  10.5.1 a/d、d/a转换器接口的特点 
  •  10.5.2 a/d、d/a转换器接口的实现方法 
  •  10.5.3 ad/da转换器接口的注意事项 
  • 10.6 典型实例16:rs-232c(uart)接口的设计与实现 
  •  10.6.1 实例内容及目标 
  •  10.6.2 实例详解 
  •  10.6.3 blockram的实现方法 
  •  10.6.4 fpga代码的设计实现 
  •  10.6.5 波特率的设定 
  •  10.6.6 modelsim仿真验证 
  •  10.6.7 小结 
  • 10.7 典型实例17:usb 2.0接口的设计与实现 
  •  10.7.1 实例的内容及目标 
  •  10.7.2 usb接口通信实战步骤 
  •  10.7.3 usb接口通信实例结果 
  •  10.7.4 fpga代码的设计实现 
  •  10.7.5 小结 
  • 10.8 典型实例18:字符lcd接口的设计与实现 
  •  10.8.1 实例的内容及目标 
  •  10.8.2 字符lcd接口实例内容 
  •  10.8.3 fpga代码设计实现 
  •  10.8.4 modelsim仿真验证 
  •  10.8.5 小结 
  • 10.9 典型实例19:vga接口的设计与实现 
  •  10.9.1 实例内容及目标 
  •  10.9.2 vga接口实例内容 
  •  10.9.3 fpga代码设计实现 
  •  10.9.4 modelsim仿真验证 
  •  10.9.5 小结 
  • ※ 第11章 fpga与dsp协同处理系统设计 

  • 11.1 基于fpga+dsp协同处理平台的优势和适用领域 
  •  11.1.1 基于fpga的信号处理系统的特点 
  •  11.1.2 基于dsp的信号处理系统的特点 
  •  11.1.3 基于fpga+dsp的信号处理系统优势和应用领域 
  • 11.2 基于fpga+dsp的协同处理平台的设计流程 
  •  11.2.1 fpga与dsp的功能划分 
  •  11.2.2 fpga+dsp的系统设计流程 
  • 11.3 fpga与dsp的通信接口设计 
  •  11.3.1 基于tms320c64x系列的emif接口设计 
  •  11.3.2 基于tms320系列dsp的主机接口(hpi)设计 
  • 11.4 fpga+dsp协同平台的调试技巧和注意事项 
  •  11.4.1 fpga和dsp的隔离调试技术 
  •  11.4.2 fpga测试点的设计 
  •  11.4.3 借助fpga的内部逻辑分析仪来辅助调试 
  • 11.5 典型实例20:fpga片上硬件乘法器的使用 
  •  11.5.1 实例的内容及目标 
  •  11.5.2 硬件乘法ip的使用方法 
  •  11.5.3 小结 
  • 11.6 典型实例21:整数dct变换的设计与实现 
  •  11.6.1 实例的内容及目标 
  •  11.6.2 整数dct变换的原理 
  •  11.6.3 实例步骤 
  •  11.6.4 小结 
  • ※ 第12章 数字图像倍焦系统设计与实现综合实例 

  • 12.1 设计需求分析与芯片选型 
  •  12.1.1 需求分析 
  •  12.1.2 芯片选型 
  • 12.2 系统工作原理分析 
  • 12.3 系统原理框图 
  • 12.4 fpga内部结构设计 
  •  12.4.1 fpga内部结构框图 
  •  12.4.2 各个模块功能描述 
  • 12.5 系统硬件配置方案 
  •  12.5.1 fpga的配置 
  •  12.5.2 video decoder(saa7113h)的配置 
  •  12.5.3 video encoder(saa7128)的配置 
  •  12.5.4 印刷电路板(pcb)设计 
  • 12.6 fpga在其他视频和图像处理系统中的应用 
  • ※ 第13章 高速pci信号采集卡设计与实现综合实例 

  • 13.1 设计需求分析与功能定义 
  •  13.1.1 信号与信号采集系统 
  •  13.1.2 设计需求分析 
  •  13.1.3 选型及功能定义 
  • 13.2 系统工作原理分析 
  •  13.2.1 数据总线 
  •  13.2.2 控制总线 
  •  13.2.3 地址总线 
  •  13.2.4 信号采集系统控制机制 
  • 13.3 pci接口芯片pci9054与fpga的接口设计 
  •  13.3.1 pci9054的特性 
  •  13.3.2 pci9054工作模式 
  •  13.3.3 pci设备空间配置 
  •  13.3.4 pci9054与fpga接口设计 
  • 13.4 pci卡的驱动程序设计 
  •  13.4.1 wdm驱动程序模型 
  •  13.4.2 设备和驱动程序的层次结构 
  •  13.4.3 pci设备驱动程序例程 
  • 13.5 主机应用程序和驱动程序的接口设计 
  •  13.5.1 驱动程序例程的封装 
  •  13.5.2 plx api函数 
  •  13.5.3 api函数调用 
  •  13.5.4 pci9054驱动程序安装 
  • 13.6 fpga内部结构设计 
  •  13.6.1 构框图 
  •  13.6.2 设计方法 
  • 13.7 硬件系统实现 
  •  13.7.1 fpga配置 
  •  13.7.2 pci9054配置 
  •  13.7.3 pci9054 pci总线连接规范 
  •  13.7.4 电源系统 
  • 13.8 样机的调试方法和技巧 
  •  13.8.1 没有pci控制的跑马灯 
  •  13.8.2 基于pci控制的跑马灯 
  • 13.9 产品稳定性和可靠性测试 
  • 13.10 产品定型和设计文档备案