FPGA设计实战

当前位置:首页 > 计算机网络 > 硬件外部设备维修 > FPGA设计实战

出版社:人民邮电出版社
出版日期:2009-7
ISBN:9787115208101
作者:Peter Wilson
页数:230页

章节摘录

  设计人员在进行定制化电子设计时,对于硬件平台其实有很多种选择,例如嵌入式处理器、专用集成电路(ASIC)、可编程微处理器(PIC)、现场可编程门阵列(FPGA)以及可编程逻辑器件(PLD)。最终选择哪种技术应该主要取决于设计需求,而不是个人对于某种技术的偏好。  例如,如果某个设计需要一种可编程器件,以便于设计的多次变更,同时算法中又包含了一些乘法和循环这样的复杂操作,那么选择某种专门的信号处理设备(女IIDSP)就更有意义,因为可以很容易地用c或者其他高级语言进行编程。如果速度要求不是特别严格,而且需要一个小而便宜的硬件平台,那么通用微处理器(如PIC)将是理想的选择。最后,如果要求硬件具有较高的性能,例如工作在数百兆赫兹,那么FPGA将是恰当的选择,因为FPGA不但有较高的性能,同时又具备可编程逻辑的灵活性和可重用性。  另外一个要考虑的因素是硬件设计中的优化等级。例如,用C语言编写一个简单的程序,然后对PIc进行编程,其性能可能很有限,因为处理器无法对关键函数进行并行操作。而这在FPGA中却可以用并行化和流水线方式很容易地实现,其处理能力要比PIC高得多。  选择硬件平台的一般原则是:先确定设计需求和硬件选项,然后在考虑这些的基础之上选择一个合适的平台。  例如,如果设计需要一个能达到100MHz的时钟,那么FPGA是不错的选择。如果时钟速率仅有3~4MHz,选择FPGA显然会使成本过高。  如果设计中需要一个灵活的处理器,尽管今天的.FPGA已经支持嵌入式处理器,但是用DSP或者PIC却显得更可取。如果设计中需要专门的硬件功能,很明显FPGA是一个合适的选择。  如果设计中需要如乘法和加法等特殊的硬件功能,那么DSP可能是最好的选择,但是如果进行定制化硬件设计,FPGA更加适合。  如果设计需要一些简单而且非常小的硬件模块,PLD或者CPLD(复杂可编程逻辑器件)可能是最好的(简单而小巧的可编程逻辑)。不过如果设计中有乘法操作,或者有复杂的控制器和特殊的硬件功能,FPGA则是最合适的。  做出这种决定还与相关硬件的复杂度有关。例如,VGA控制器或许需要一个FPGA而不是PLD器件,主要是由于硬件的复杂度。另一个有关的因素是灵活性和可编程性。如果使用了FPGA,并且其中的资源没有被用完(如使用了60%),那么若通信协议改变了,或者更新了,FPGA在将来还有足够的空间支持多次的变更或升级。  通过这些简单的指导,就可以对最好的平台做出明智的选择,而且基于这些假设可以选择好具体的器件。大多数综合软件包都有一个好处,那就是让用户在最终选定硬件前可以测试多种设计平台的性能和利用率(如PLD和FPGA等)。

前言

  本书①可以作为那些以现场可编程门阵列(FPGA)为硬件开发平台的工程师、学生和研究开发人员的桌面常备参考书。这本书是仿照Numerical Recipe系列丛书的风格编写的,这一系列书每本分别针对不同的编程语言,但目的不是教语言本身,而是教一些必要的方法与技巧,以使应用程序能够工作。本书的基本出发点与此类似,目的是提供一些方法和理解,以使读者能够开发出实际可用的、能够正确运行于FPGA上的VHDL程序。  需要重点强调的一点是,这本书并不是VHDL的语言参考手册。其实,这类手册已经出版了许多,我在书中推荐了一些。这本书有意写成一本VHDL4设计参考书,可以看作是对传统VHDL教材的一种补充。

内容概要

Peter Wilson博士,著名电子设计技术专家。IEEE1076.1.1标准(VHDLAMS的多能量域支持用组件)副主席,IEEE行为建模与仿真工作组技术项目组长。现任教于英国南安普敦大学,同时担任美国阿肯色大学客座教授。其主要研究领域为建模与仿真,先后发表过百余篇颇有影响的技术论文。

书籍目录

第一部分 概述 第1章 绪论  第2章 FPGA基础知识   2.1 引言   2.2 FPGA的发展   2.3 可编程逻辑器件   2.4 现场可编程门阵列   2.5 FPGA设计技术   2.6 FPGA的设计约束   2.7 小结  第3章 VHDL基础   3.1 引言   3.2 实体:模型接口    3.2.1 实体定义    3.2.2 端口    3.2.3 通用属性语句    3.2.4 常数    3.2.5 实体举例   3.3 构造体:模型的行为    3.3.1 构造体的基本定义    3.3.2 构造体声明    3.3.3 构造体语句   3.4 进程:VHDL中的基本功能单元   3.5 基本的变量类型和操作符    3.5.1 常数    3.5.2 信号    3.5.3 变量    3.5.4 布尔操作符    3.5.5 算术操作符    3.5.6 比较操作符    3.5.7 移位函数    3.5.8 拼接   3.6 判断与循环    3.6.1 if-then-else语句    3.6.2 case语句    3.6.3 for语句    3.6.4 While循环       3.6.5 exit语句    3.6.6 next语句   3.7 层次化设计    3.7.1 函数    3.7.2 包    3.7.3 元件    3.7.4 过程   3.8 调试模型   3.9 基本数据类型    3.9.1 基本类型    3.9.2 数据类型:bit    3.9.3 数据类型:boolean    3.9.4 数据类型:integer    3.9.5 数据类型:字符型    3.9.6 数据类型:实数    3.9.7 数据类型:时间   3.10 小结  第4章 设计自动化与FPGA测试   4.1 仿真    4.1.1 测试平台    4.1.2 测试平台的目标    4.1.3 简单的测试平台:实例化元件    4.1.4 增加测试激励   4.2 库    4.2.1 引言    4.2.2 库的使用    4.2.3 标准逻辑库    4.2.4 std_logic类型定义   4.3 综合    4.3.1 综合设计流程    4.3.2 综合相关事项    4.3.3 RTL设计流程   4.4 物理设计流程   4.5 布局布线   4.6 时序分析   4.7 设计缺陷   4.8 FPGA设计中的VHDL问题    4.8.1 初始化    4.8.2 浮点数及其操作   4.9 小结 第二部分 应用 第5章 图像与高速处理   5.1 引言   5.2 摄像头接口    5.2.1 硬件接口    5.2.2 数据率    5.2.3 拜尔模式    5.2.4 存储器需求   5.3 开始   5.4 确定接口   5.5 定义顶层设计   5.6 系统模块定义与接口    5.6.1 系统分解    5.6.2 鼠标和键盘接口    5.6.3 存储器接口    5.6.4 显示接口:VGA   5.7 摄像头连接接口   5.8 PC接口   5.9 小结  第6章 嵌入式处理器   6.1 引言   6.2 一个简单的嵌入式处理器    6.2.1 嵌入式处理器架构    6.2.2 基本指令    6.2.3 取指执行周期    6.2.4 嵌入式处理器的寄存器分配    6.2.5 一个基本的指令集    6.2.6 结构级还是行为级    6.2.7 机器码指令集    6.2.8 微处理器的结构单元    6.2.9 处理器函数包    6.2.10 程序计数器    6.2.11 指令寄存器    6.2.12 算术和逻辑单元    6.2.13 存储器    6.2.14 微控制器    6.2.15 简单微处理器总结   6.3 FPGA中的软核处理器   6.4 小结 第三部分 设计工具箱 第7章 串行通信   7.1 引言   7.2 曼彻斯特编解码   7.3 不归零编解码   7.4 不归零反转编解码   7.5 RS-232    7.5.1 引言    7.5.2 RS-232波特率产生器    7.5.3 RS-232接收器   7.6 通用串行总线   7.7 小结  第8章 数字滤波器   8.1 引言   8.2 S域到Z域的变换   8.3 用VHDL实现Z域的函数    8.3.1 引言    8.3.2 增益模块    8.3.3 和与差    8.3.4 除法模型    8.3.5 单位延迟模型   8.4 基本低通滤波器模型   8.5 FIR滤波器   8.6 IIR滤波器   8.7 小结  第9章 安全系统   9.1 块加密简介   9.2 费斯特尔格子的结构   9.3 数据加密标准    9.3.1 引言    9.3.2 DES的VHDL实现    9.3.3 DES的验证   9.4 高级加密标准   9.5 小结  第10章 存储器   10.1 引言   10.2 用VHDL对存储器进行建模   10.3 只读存储器   10.4 随机存取存储器   10.5 SRAM   10.6 Flash存储器   10.7 小结  第11章PS/2鼠标接口   11.1 引言   11.2 PS/2鼠标基础   11.3 PS/2鼠标命令   11.4 PS/2鼠标数据包   11.5 PS/2操作模式   11.6 PS/2滚轮鼠标   11.7 基本PS/2鼠标处理模块VHDL代码  11.8 修改后的PS/2鼠标处理模块VHDL代码   11.9 小结  第12章 PS/2键盘接口   12.1 引言   12.2 PS/2键盘基础   12.3 PS/2键盘命令   12.4 PS/2键盘数据包   12.5 PS/2键盘操作模式    12.5.1 基本PS/2键盘处理模块VHDL代码    12.5.2 修改后的PS/2键盘处理模块VHDL代码   12.6 小结  第13章 一个简单的VGA接口   13.1 引言   13.2 基本像素时序   13.3 图像处理   13.4 VGA接口的VHDL实现   13.5 水平同步   13.6 垂直同步   13.7 水平和垂直消隐脉冲   13.8 计算正确的像素数据   13.9 小结 第四部分 优化设计 第14章 综合   14.1 引言   14.2 RTL综合支持的VHDL    14.2.1 初始条件    14.2.2 并发边沿    14.2.3 数字类型    14.2.4 wait语句    14.2.5 断言    14.2.6 循环   14.3 一些引起综合失败的情况   14.4 综合的内容    14.4.1 总体设计结构    14.4.2 控制器    14.4.3 数据路径   14.5 小结  第15章 VHDL行为建模   15.1 引言   15.2 怎样从RTL转向行为级   15.3 小结  第16章 设计优化   16.1 引言   16.2 逻辑优化技术   16.3 改善性能   16.4 关键路径分析   16.5 小结  第17章 VHDL-AMS   17.1 引言   17.2 VHDL-AMS简介   17.3 模拟引脚:TERMINAL   17.4 混合域建模   17.5 模拟变量:quantity   17.6 VHDL-AMS中的联立方程   17.7 一个VHDL-AMS的例子    17.7.1 直流电压源    17.7.2 电阻   17.8 VHDL-AMS中的微分方程   17.9 用VHDL-AMS进行混合信号建模.154   17.10 一个基本的开关模型   17.11 基本VHDL-AMS比较器模型   17.12 多领域建模   17.13 小结  第18章 设计优化举例:DES   18.1 引言   18.2 数据加密标准   18.3 MOODS   18.4 初始设计    18.4.1 简介    18.4.2 总体结构    18.4.3 数据转换    18.4.4 密钥转换   18.5 初始综合   18.6 优化数据路径   18.7 最终综合   18.8 结果   18.9 三重DES    18.9.1 引言    18.9.2 面积最小:迭代实现       18.9.3 延迟最小:流水线方式   18.10 方案比较   18.11 小结 第五部分 基本技术 第19章 计数器   19.1 引言   19.2 基本二进制计数器   19.3 综合简单的二进制计数器   19.4 移位寄存器   19.5 约翰逊计数器   19.6 BCD计数器   19.7 小结  第20章 锁存器、触发器和寄存器   20.1 引言   20.2 锁存器   20.3 触发器   20.4 寄存器   20.5 小结  第21章 串并转换与并串转换   21.1 串并转换   21.2 并串转换   21.3 小结  第22章 ALU功能   22.1 引言   22.2 逻辑功能   22.3 位加法器   22.4 n位结构化加法器   22.5 n位可配置加法器   22.6 的补码   22.7 小结  第23章 译码器与多路复用器   23.1 译码器   23.2 多路复用器   23.3 小结  第24章 VHDL中的有限状态机   24.1 引言   24.2 状态转移图   24.3 用VHDL实现有限状态机   24.4 小结  第25章 VHDL中的定点算法   25.1 引言   25.2 基本定点类型   25.3 定点函数    25.3.1 定点数向std_logic_vector的转换    25.3.2 定点数向实数的转换   25.4 测试定点数函数   25.5 小结  第26章 二进制乘法   26.1 引言   26.2 基本二进制乘法   26.3 VHDL无符号乘法器   26.4 乘法函数的综合   26.5 “简单的”乘法   26.6 小结  第27章 参考书目   27.1 引言   27.2 VHDL参考书   27.3 FPGA参考书   27.4 普通数字设计参考书 索引

编辑推荐

  对于电路设计工程师和高校电气工程专业的师生来说,阅读《FPGA设计实战》是快速入门并成为设计高手的一条捷径。  FPGA技术成本低、使用灵活,已经成为应用广泛的电路设计解决方案,应用范围遍及消费电子、汽车电子、通信和工业控制等领域。  《FPGA设计实战》是一部实例丰富的实战宝典,涵盖了电路设计的完整流程,从FPGA基础知识入手,不但介绍了“FPGA做什么”,更详细解读了“用FPGA怎么做”。作者首先简洁而全面地概述了FPGA9口标准设计流程的基础知识,然后详细阐述了两个典型的综合实例——高速视频监视系统和嵌入式处理器,并且给出了具体的代码框架,为设计者点明实际应用中的关键点和设计精髓。接下来,《FPGA设计实战》针对电路设计中几个最常见的关键任务,如串行通信、数字滤波器、安全系统、存储器建模等,给出了可以直接应用于实际项目的代码示例。书的最后介绍了综合和行为建模等设计后期的优化。

作者简介

《FPGA设计实战》是为FPGA工程师量身定制的设计参考指南,不仅介绍了FPGA基本概念,还介绍了设计逻辑和技巧,使读者能够开发出实际高效的代码。《FPGA设计实战》适用于电子工程师阅读,也可作为高等院校相关专业师生的参考指南。

图书封面


 FPGA设计实战下载



发布书评

 
 


精彩短评 (总计12条)

  •     书的内容还可以,对于有一定基础的人比较适用
  •     是用VHDL语言写的有很多实用的程序
  •     写的太泛,没实用性。
  •     书本没有想像中的那么好。
  •     帮别人买的。。应该还可以。。
  •     值得看看!!
  •     不适合高级开发人员,对入门的人来说是本学习VHDL编程技巧的好书。现在经典的书太难找了。
  •     这本书很一般不适合初学者,也不适合高手
  •     里面错误重重,很多不可以实现,参考价值有限
  •     非常好!定了!
  •     书很薄,但是内容很好
  •     内容比较深,讲的有些难
 

外国儿童文学,篆刻,百科,生物科学,科普,初中通用,育儿亲子,美容护肤PDF图书下载,。 零度图书网 

零度图书网 @ 2024