FPGA/ASIC技术
本书系统地论述了Xilinx FPGA开发方法、开发工具、实际案例及开发技巧,内容涵盖Xilinx器件概述、Verilog HDL开发基础与进阶、Xilinx FPGA电路原理与系统设计、基于ISE Foundation的逻辑设计、时序分析、逻辑开发专题、基于EDK的嵌入式系统设计、基于System Generator的DSP系统设计、数字信号处理专题以及SERDES技术专题共10章。各章均以实战开发为目的,结合最新版本的软硬件特征,覆盖了FPGA的各主要应用领域。配套光盘中包含了书中所有的实例代码,便于读者快速动手实践。书中融汇了作者多年的工程开发经验,希望能够极力帮助读者提高工程开发能力。
本书适合作为电子信息工程、通信工程、自动化、计算机科学与技术等相关专业的高年级本科生及研究生的教学用书,也可以作为从事FPGA设计工作的工程师的参考图书。
赛灵思(Xilinx)公司作为可编程器件(PLD)的领导厂商,占有超过50%的市场份额,为客户提供可编程逻辑芯片(CPLD、FPGA和PROM)、软件设计工具、不同等级的知识产权核(IP Core)以及系统级的完整解决方案。
随着工艺和设计水平的不断提高,FPGA在数字系统中所扮演的角色也从逻辑胶合者提升到处理核心。从2006年起,赛灵思公司的FPGA就涵盖了逻辑应用、数字信号处理以及嵌入式三大应用领域。到目前为止,赛灵思已成为完整的解决方案提供者。例如,量产的Spartan 6系列FPGA采用45nm工艺,广泛应用在中低规模系统中,如机器视觉、机顶盒以及广泛的多媒体处理等; 量产的Virtex?5/6系列FPGA分别采用65nm、40nm工艺,主要面向高端应用,如高速互联网络、无线通信、宽带接入以及汽车工业等。28nm的7系列FPGA(Artix、Kintex和Virtex三个低、中、高系列)也已逐渐量产,进一步提升FPGA系统设计能力。此外,Zynq?7000可扩展处理平台(EPP)将ARM Cortex?A9 双核处理器系统与可编程逻辑紧密集成在一起,为业界带来革命性的创新解决方案。
基于赛灵思公司的领先技术,更多的工程师和研究人员已加入到赛灵思FPGA的开发队伍中。在过去四年中,赛灵思公司通过大学和开源社区OpenHard,开展了三届开源硬件创新大赛以及多个网络研讨会,但切入点都比较零散,不能形成系统化知识体系。《Xilinx FPGA开发实用教程》第一版于2008年出版,弥补了上述不足,帮助广大技术人员、在校的研究生和高年级本科生尽快掌握Xilinx FPGA的开发流程,连续印刷4次,深受读者欢迎。由于FPGA技术发展迅速,因此作者更新了原书内容,并以最新的ISE13.x版本和量产的6系列器件为例进行介绍,更加符合FPGA发展趋势。
整体而言,本书具有以下三项特色: 首先,从逻辑设计、数字信号处理、嵌入式系统设计和高速连接四个方面系统地介绍了Xilinx FPGA的开发与应用,条理清晰、思路明确,符合FPGA目前和未来的发展趋势; 其次,较为详细地介绍了Xilinx FPGA的开发技巧,融入了作者的工程开发经验,对于初学者和工程开发人员来讲都具有较强的可读性; 最后,极为全面地介绍了赛灵思公司的ISE、System Generator以及EDK开发软件,非常系统和完整。
因此,对于在校研究生、高年级本科生及从事FPGA开发的工程师来说,本书是一本较为理想的EDA教材和工程工具书,我郑重地将其推荐给大家!希望通过本书的出版,使更多的读者掌握赛灵思FPGA的开发技能,更好地促进FPGA开发技术的普及和推广。
赛灵思(Xilinx)公司中国区大学计划经理谢凯年博士2012年6月
2008年10月,作者有幸聆听了Xilinx公司全球CTO Ivo Bolsens先生在清华大学所作的题为“FPGA:The future platform for transforming, transporting and computing”的演讲,感触颇深。Ivo Bolsens先生指出了FPGA的三大应用领域:数字处理中的信号变换、高速交换中的数据收发以及求解中的复杂计算。作者带着感慨基于当时的ISE 9.1软件版本,编写了《Xilinx FPGA开发实用教程》一书,受到读者青睐,多次重印。经过3年多的发展,Xilinx公司的软、硬件均有大幅升级,ISE软件已升级到13.x版本,FPGA已经发展到28nm的“7”系列芯片。因此作者在第1版的基础上,结合ISE软件和FPGA特征,重新整理了原稿,删除了部分冗余、陈旧的内容,形成了此次的修订版版本。
同第1版一样,修订版版本中的全部内容都是作者实际项目开发经验和Xilinx公司各类文档、书籍的结合体,全部信息几乎都可以从Xilinx网站以及Google上找到渊源,不过我们仍然向您推荐本书,因为网络的信息是分散的、杂乱的,且正确性不是100%的,本书各章内容的安排是从大量的实践中总结出来的,循序渐进,条理清楚,且都经过作者验证,我们的目的就是从Ivo Bolsens先生的观点出发,结合项目开发,将网络上尽可能多的相关信息以相对较高的质量组合起来。
本书适合电子、通信以及计算机等相关专业的研究生和高年级本科生使用,同时也适合于从事Xilinx系列FPGA设计和开发的工程师。毫无疑问,市场上已经有很多关于FPGA设计的书籍,我们也不认为本书是其中最重要的一本,但我们意识到FPGA开发一定要结合芯片特点以及提供商的诸多建议和协议,只有这样才能真正掌握其开发之道。
在第1版中,由于未配备光盘,缺少实际的工程和电子版本代码,不利于快速学习,广大读者多次给作者指出这一不足。因此,在修订版本中,我们将全书所有内容都移植在小巧的S6 CARD板卡(基于Spartan 6 LX9的开发板,和身份证大小一样,通过USB供电和调试,无须下载线缆)上,并将所有的工程文件附在光盘上,为读者提供通用的验证平台。S6 CARD板卡的详细信息可参考与非网相关介绍(http://www.openhw.org/shop/index.php?action=product&id=248)。
全书各章由徐文波、田耘共同完成编写。此外,在成文过程中参考了较多的书籍、论文和网络文献,在此向广大作者表示深深谢意。
FPGA技术博大精深且发展迅猛,不可能通过一本书进行全方位的详细介绍,更多还需要读者自己动手实践。由于作者水平有限,FPGA技术发展迅速,书中难免存在不妥之处,敬请广大读者指正。
Xilinx FPGA开发实用教程(第2版)目录
第1章Xilinx器件概述
1.1可编程逻辑器件基础
1.1.1可编程逻辑器件的基本情况
1.1.2可编程逻辑器件的发展历史
1.1.3PLD开发工具
1.1.4典型FPGA开发流程
1.2Xilinx FPGA芯片
1.2.1FPGA的工作原理
1.2.2Xilinx FPGA芯片结构
1.2.3软核、硬核及固核
1.2.4Xilinx主流FPGA
1.3Xilinx软件工具
1.3.1ISE Foundation软件
1.3.2EDK开发工具
1.3.3System Generator DSP工具
1.3.4ChipScope Pro
1.3.5PlanAhead
1.4本书案例验证平台——S6 CARD开发板
1.4.1S6 CARD开发板的组成与功能
1.4.2S6 CARD板卡引脚约束说明
本章小结
第2章Verilog HDL开发基础与进阶
2.1Verilog HDL语言
2.1.1Verilog HDL语言的历史
2.1.2Verilog HDL的主要功能
2.1.3Verilog HDL和VHDL的区别
2.1.4Verilog HDL设计方法
2.2Verilog HDL基本程序结构
2.3Verilog HDL语言的数据类型和运算符
2.3.1标志符
2.3.2数据类型
2.3.3模块端口
2.3.4常量集合
2.3.5运算符和表达式
2.4Verilog HDL语言的描述语句
2.4.1结构描述形式
2.4.2数据流描述形式
2.4.3行为描述形式
2.4.4混合设计模式
2.5Verilog HDL建模与调试技巧
2.5.1双向端口的使用和仿真
2.5.2阻塞赋值与非阻塞赋值
2.5.3输入值不确定的组合逻辑电路
2.5.4数学运算中的扩位与截位操作
2.5.5利用块RAM来实现数据延迟
2.5.6测试向量的生成
2.6Verilog HDL常用程序示例
2.6.1数字电路中基本单元的FPGA实现
2.6.2基本时序处理模块
2.7Xilinx器件原语的使用
本章小结
第3章Xilinx FPGA电路原理与系统设计
3.1FPGA配置电路
3.1.1Xilinx FPGA配置电路
3.1.2Xilinx FPGA常用的配置引脚
3.1.3Xilinx FPGA配置电路分类
3.2JTAG电路的原理与设计
3.2.1JTAG电路的工作原理
3.2.2Xilinx JTAG下载线
3.3FPGA的常用配置电路
3.3.1主串模式——最常用的FPGA配置模式
3.3.2SPI串行Flash配置模式
3.3.3从串配置模式
3.3.4主字节宽度并行配置模式
3.3.5JTAG配置模式
3.3.6System ACE配置方案
3.4iMPACT软件使用
3.4.1iMPACT软件
3.4.2iMPACT中的JTAG配置操作
3.4.3iMPACT中的Xilinx PROM配置操作
3.4.4iMPACT中的SPI Flash配置操作
3.4.5FPGA配置失败的常见问题
3.5从配置PROM中读取用户数据
3.5.1从PROM中引导数据
3.5.2硬件电路设计方法
3.5.3软件操作流程
本章小结
第4章基于ISE Foundation的逻辑设计
4.1ISE套件
4.1.1ISE的特点
4.1.2ISE的功能
4.1.3ISE的安装
4.1.4ISE的用户界面
4.2基于ISE的设计输入
4.2.1新建工程
4.2.2代码输入
4.2.3代码模板的使用
4.2.4Xilinx IP Core的原理与应用
4.3ISE基本操作
4.3.1基于Xilinx XST的综合
4.3.2基于ISim的仿真
4.3.3基于ISE的实现
4.3.4基于目标和策略的设计方法
4.3.5基于SmartGuide的设计方法
4.3.6比特文件的生成
4.3.7基于IMPACT的芯片配置
4.3.8功耗分析以及XPower的使用
4.4约束
4.4.1约束文件
4.4.2UCF文件的语法说明
4.4.3引脚和区域约束语法
4.4.4时序约束语法
4.5调试利器——ChipScope Pro
4.5.1ChipScope Pro工作原理
4.5.2ChipScope Pro操作流程
4.5.3ChipScope Pro开发实例
4.6ISE与第三方EDA软件
4.6.1ModelSim软件的使用
4.6.2ModelSim和ISE的联合开发流程
4.6.3MATLAB软件的使用
4.6.4ISE与MATLAB的联合使用
4.6.5MATLAB、ModelSim和ISE联合开发实例
本章小结
第5章时序分析
5.1时序分析的作用和原理
5.1.1时序分析的作用
5.1.2静态时序分析原理
5.1.3时序分析的基础知识
5.2Xilinx FPGA中的时钟资源
5.2.1全局时钟资源
5.2.2第二全局时钟资源
5.3ISE时序分析器
5.3.1时序分析器的特点
5.3.2时序分析器的文件类型
5.3.3时序分析器的调用与用户界面
5.3.4提高时序性能的手段
本章小结
第6章逻辑开发专题
6.1Verilog HDL设计进阶
6.1.1面向硬件的程序设计思维
6.1.2“面积”和“速度”的转换原则
6.1.3同步电路的设计原则
6.2Xilinx FPGA芯片底层单元的使用
6.2.1Xilinx全局时钟网络的使用
6.2.2CMT时钟管理模块的使用
6.2.3Xilinx内嵌块存储器的使用
6.2.4硬核乘加器的使用
6.3代码风格
6.3.1代码风格的含义
6.3.2代码书写风格
6.3.3通用设计代码风格
6.3.4Xilinx专用设计代码风格
6.4UART接口开发实例
6.4.1串口接口与RS?232协议
6.4.2串口通信控制器的Verilog HDL实现
6.4.3RS?232设计板级调试
本章小结
第7章基于EDK的嵌入式系统设计
7.1可配置嵌入式系统(EDK)
7.1.1基于FPGA的可编程嵌入式开发系统
7.1.2Xilinx公司的解决方案
7.2Xilinx嵌入式开发系统组成
7.2.1片内微处理器软核MicroBlaze
7.2.2PLB总线系统结构
7.2.3IP核以及设备驱动
7.3EDK软件
7.3.1EDK设计的实现流程
7.3.2EDK的文件管理架构
7.4XPS软件典型操作
7.4.1XPS的启动
7.4.2利用BSB创建新工程
7.4.3XPS的用户界面
7.4.4XPS的目录结构与硬件平台
7.4.5在XPS加入IP Core
7.4.6XPS工程的综合与实现
7.5SDK软件典型操作
7.5.1SDK的用户界面
7.5.2SDK的典型操作
7.5.3IP外设的API函数查阅和使用方法
7.5.4GPIO外设开发实例
7.5.5其他外设开发实例
本章小结
第8章基于System Generator的DSP系统设计
8.1System Generator的特点与安装
8.1.1System Generator的主要特点
8.1.2System Generator的安装和配置
8.2System Generator的使用基础
8.2.1System Generator开发流程
8.2.2Simulink的应用
8.3基于System Generator的DSP系统设计
8.3.1System Generator的应用
8.3.2System Generator中的信号类型
8.3.3自动代码生成
8.3.4编译MATLAB设计生成FPGA代码
8.3.5子系统的建立与ISE调用
8.4基于System Generator的硬件协仿真
8.4.1硬件协仿真平台的特点与平台安装
8.4.2硬件协仿真的基本操作
8.4.3共享存储器的操作
8.5System Generator的高级应用
8.5.1导入外部的HDL程序模块
8.5.2设计在线调试
8.5.3系统中的多时钟设计
8.5.4FPGA设计的高级技巧
本章小结
第9章数字信号处理专题
9.1数字信号
9.1.1数字信号的产生
9.1.2采样定理
9.1.3数字系统的主要性能指标
9.1.4A/D转换的字长效应
9.2常用DSP IP Core及其应用
9.2.1DDS模块IP Core的应用
9.2.2FFT算法IP Core的应用
9.2.3Cordic算法IP Core的应用
9.2.4FIR滤波器IP Core的应用
9.3多速率滤波器的FPGA实现
9.3.1多速率信号处理的意义
9.3.2多速率信号滤波器的基本操作
9.3.3CIC滤波器的FPGA实现
9.3.4HB滤波器的FPGA实现
本章小结
第10章SERDES技术专题
10.1高速数据连接功能
10.1.1高速数据传输
10.1.2Xilinx公司高速连接功能的解决方案
10.2实现吉比特高速串行I/O的相关技术
10.2.1吉比特高速串行I/O的特点和应用
10.2.2吉比特串行I/O系统的组成
10.2.3吉比特串行I/O的设计要点
10.3Rocket I/O收发器原理与开发
10.3.1Rocket I/O硬核组成与工作原理
10.3.2GTP硬核组成与工作原理
10.3.3GTP Wizard开发实例
10.4PCI?Express G1端点接口设计
10.4.1PCI Express G1技术
10.4.2Xilinx PCI Express G1端点模块
10.4.3PCI Express G1端点接口实例解读
本章小结
参考文献
全部0条评论
快来发表一下你的评论吧 !