赛灵思FPGA初学者必备图书 特权同学新书《勇敢的芯伴你玩转赛灵思 FPGA》

2017年11月27日 12:32    发布者:rousong1989
                               电子设计与嵌入式开发实践丛书073303勇敢的芯伴你玩转Xilinx FPGA吴厚航  编著宣传语:Xilinx大学计划经理作序推荐,Xilinx FPGA零基础快速入门,基础概念阐释、板级设计解析、丰富的Verilog例程讲解编辑推荐:(1)本书基于Xilinx公司的Spartan6 FPGA器件,“理论+实践”的学习方式。(2)丰富的例程讲解:基础入门实例、基于FPGA片上资源的应用实例、综合进阶实例。、(3)提供Xilinx FPGA的一站式入门学习方案:基础概念阐释、板级电路解析、开发工具安装配置、丰富的Verilog例程讲解。 作者简介吴厚航[网名:特权同学]   有近10年的FPGA工程实践经历,擅长记录、分析并总结FPGA开发中的经验与技巧,也非常乐于分享。活跃于各大电子技术网站的FPGA社区或版块,多年来笔耕不辍、风雨无阻,不断地发表FPGA相关文章,其总点击量超过300万。著有多本FPGA技术相关图书,其诙谐的文字、贴近读者实际需求的知识点与经验技巧分享,赢得了广大读者的一致认可。 内 容 简 介本书使用Xilinx公司的Spartan 6FPGA器件,由浅入深地引领读者从板级设计、基础入门实例、FPGA片内资源应用实例和综合进阶实例等方面,玩转FPGA逻辑设计。本书基于特定的FPGA实验平台,既有足够的理论知识深度作支撑,也有丰富的例程进行实践学习,并且穿插着笔者多年FPGA学习和开发过程中的经验和技巧。无论对于希望快速掌握Verilog语言进行FPGA开发的初学者,还是希望快速掌握基于Xilinx Spartan 6 FPGA进行开发的设计者,本书都是很好的选择。 序言经历了三十多年的发展,FPGA在人工智能、嵌入式视觉这些新兴的领域又一次展示了其可重构、可并行计算的魅力。例如Xilinx最新推出的面向平台、算法及应用开发的 reVISION 堆栈。该堆栈支持OpenCV等计算机视觉处理,还包括对最广泛神经网络的支持(如AlexNet、GoogLeNet、SqueezeNet、SSD 和 FCN),可构建定制神经网络 (CNN/DNN) 并利用各网络层预定义优化 CNN 实现方案所需的功能。而相比于其他技术,FPGA始终被认为是一个入门门槛比较高的技术,为了让FPGA被更多的开发者使用,Xilinx陆续推出了高层次综合HLx、SDAccel、SDSoC等开发工具套件,以便让更多软件工程师从软件高层对FPGA进行编程。与此同时,作为全可编程技术的引领者,Xilinx倡导软件定义、硬件优化的设计理念。通过软件的方法快速完成原型设计,但在追求差异化时,往往需要在底层硬件上完成独门设计和优化以获取更高的性能,更低的资源占用、功耗等。这就需要工程师自底向上,对底层架构、时序优化、接口类型等方面有深入的理解。自顶向下还是自底向上,在如此多的新技术中,作为新入门者,该从何入手?如果你是软件爱好者,可以试试高层综合;如果你是电子爱好者,那可以从硬件底层做起。不论是哪个切入点,千里之行,始于足下,最好的办法是动手做起来。Spartan系列作为Xilinx低成本的平台,非常适合作为入门首选平台。著名众筹网站Kickstarter上FPGA项目中选用最多的芯片就是Spartan系列。而对于愿意从底层硬件入手,从底层逻辑门开始搭建整个电子系统的爱好者来讲,也属于电子设计行业中的“斯巴达勇士”。本书正是一本不可多得的从底层入手的图书,手把手地从FPGA原理开始介绍,到基本逻辑门设计再到常用的接口设计,通过对这些基础案例的讲解以及设计体会的分享,让读者快速掌握Xilinx FPGA开发流程。吴厚航在FPGA领域有多年的开发经验,同时也是一位非常乐于分享的工程师。与厚航认识很多年,很荣幸他能将其Xilinx的使用经验进行分享。对于勇于接受挑战的爱好者,那就随着厚航的分享,一起来发现底层硬件设计和优化的乐趣吧! Xilinx大学计划经理陆佳华2017年9月 Foreword前言 FPGA技术在当前的电子设计领域越来越火热,虽然它的成本还是高高在上,但是它给电子系统所带来的不可限量的速度和带宽以及在灵活性、小型性方面的优势,越来越为对性能要求高、偏重定制化需求的开发者所青睐。因此,越来越多的电子工程师和电子专业在校学生希望能够掌握这门技术。而一门电子技能的掌握,单凭几本初级入门教材是很困难的。笔者结合自身的学习经历,为广大学习者量身打造了基于低成本、高性价比的Xilinx Spartan 6 FPGA器件的硬件开发学习平台。基于这个平台,配套本教材的各种基础概念阐释和例程讲解,相信可以帮助读者快速掌握这一门新技术。本书共分为以下9章。第1章是基础中的基础,讲述可编程器件的一些基本概念及其主要应用领域、相比于传统技术的优势和开发流程。第2章从FPGA开发平台的电路板设计入手,介绍FPGA板级硬件电路设计要点,以及本书配套开发平台的周边外围电路的设计。第3章从最基础的0和1开始回顾数字电路的基础,也会深入探讨读者所关心的可编程器件的内部架构和原理。第4章讲述开发环境的搭建,包括Xilinx FPGA集成开发环境ISE、仿真工具Modelsim、文本编辑器Notepad++以及下载器驱动和UART驱动安装,帮助读者快速搞定学习路上遇到的最棘手的“软”问题。第5章和第6章完成最基本的工程创建、语法检查、仿真验证以及编译,甚至在线板级调试和代码固化,带领学习者初步掌握基于Xilinx ISE的FPGA开发流程。第7章手把手带领读者完成12个最基本的入门实例。第8章用6个实例帮助读者熟悉FPGA除了逻辑资源以外的丰富资源,如PLL,可配置为ROM、RAM、FIFO的内嵌存储器,在线逻辑分析仪ChipScope。第9章的15个例程,是对前面一些例程的集成整合,力图通过大量例程实践,帮助读者熟练掌握FPGA的基本开发设计。本书既有对基础理论知识专门的讲解,也有非常详细的实例演练和讲解,更多的是在实践中传递实用的设计技巧和方法,非常适合初学者。本书配套例程下载链接: http://pan.baidu.com/s/1jGjAhEm。本书配套开发平台淘宝链接: http://myfpga.taobao.com/。吴厚航(网名: 特权同学)2017年8月于上海 Contents目录第1章FPGA开发入门1.1FPGA基础入门1.2FPGA的优势在哪里1.3FPGA应用领域1.4FPGA开发流程第2章实验平台“勇敢的芯”板级电路详解2.1板级电路整体架构2.2电源电路2.3复位与时钟电路2.3.1关于FPGA器件的时钟2.3.2关于FPGA器件的复位2.3.3实验平台电路解析2.4FPGA下载配置电路2.5SRAM接口电路2.6ADC/DAC芯片电路2.7UART接口电路2.8RTC接口电路2.9导航按键电路2.10VGA显示接口电路2.11蜂鸣器、数码管、流水灯、拨码开关电路2.12超声波接口、外扩LCD接口电路第3章逻辑设计基础3.10和1——精彩世界由此开始3.2表面现象揭秘——逻辑关系3.3内里本质探索——器件结构第4章软件安装与配置4.1ISE14.6软件安装4.1.1安装文件复制与解压缩4.1.2虚拟光驱或解压缩安装4.1.3ISE14.6安装4.2ModelsimSE 10.1安装4.2.1安装文件复制与解压缩4.2.2ModelsimSE安装4.3文本编辑器Notepad++安装4.4ISE中使用Notepad++的关联设置4.5ISE与Modelsim联合仿真库编译4.5.1操作系统确认4.5.2Xilinx库编译4.6ISE与Modelsim联合仿真关联设置4.6.1modelsim.ini内容复制与粘贴4.6.2ISE设置4.7PlatformCable USB驱动安装4.8串口芯片驱动安装4.8.1驱动安装4.8.2设备识别勇敢的芯伴你玩转Xilinx FPGA第5章基于仿真的第一个工程实例5.1新建工程5.2Verilog源码文件创建与编辑5.2.1Verilog源码文件创建5.2.2Verilog源码文件编辑5.3Verilog语法检查5.4Modelsim仿真验证5.4.1ISE基本设置5.4.2测试脚本创建与编辑5.4.3调用Modelsim仿真第6章基于板级调试的第二个工程实例6.1PWM蜂鸣器驱动之功能概述6.1.1功能概述6.1.2设计源码6.2PWM蜂鸣器驱动之引脚分配6.2.1工程移植6.2.2PlanAhead引脚分配6.2.3脚本直接引脚分配6.3PWM蜂鸣器驱动之综合、实现与配置文件产生6.4PWM蜂鸣器驱动之FPGA在线下载配置6.4.1开启iMPACT6.4.2初始化下载线缆6.4.3下载配置6.5PWM蜂鸣器驱动之FPGA配置芯片固化6.5.1PROM烧录文件生成6.5.2固化PROM6.6PWM蜂鸣器驱动之复位与FPGA重配置功能6.6.1复位功能6.6.2在线重配置功能6.6.3配置状态指示灯第7章基础入门实例7.1蜂鸣器开关实例7.1.1功能简介7.1.2代码解析7.1.3打开工程7.1.4下载配置操作7.2流水灯实例7.2.1功能简介7.2.2代码解析7.2.3下载配置7.338译码器实验7.3.1功能简介7.3.2代码解析7.3.3板级调试7.4按键消抖与LED开关实例7.4.1按键消抖原理7.4.2功能简介7.4.3代码解析7.4.4板级调试7.5经典模式流水灯实验7.5.1功能简介7.5.2代码解析7.5.3板级调试7.6基于PLL分频计数的LED闪烁实例7.6.1PLL概述7.6.2功能简介7.6.3新建IP核文件7.6.4PLL配置7.6.5模块化设计概述7.6.6模块化设计实践7.6.7代码解析7.6.8板级调试7.7数码管驱动实例7.7.1数码管驱动原理7.7.2功能概述7.7.3代码解析7.7.4板级调试7.8SRAM读写测试7.8.1SRAM读写时序解读7.8.2功能简介7.8.3代码解析7.8.4Xilinx库设置7.8.5功能仿真7.8.6FPGA在线配置7.8.7触发采样波形7.9UARTloopback测试7.9.1功能概述7.9.2代码解析7.9.3板级调试7.10VGA驱动ColorBar显示7.10.1VGA概述7.10.2功能简介7.10.3代码解析7.10.4板级调试7.11LCD基本驱动实例7.11.1LCD驱动时序7.11.2功能简介7.11.3代码解析7.11.4装配7.11.5板级调试7.12LCD字符显示驱动7.12.1字符取模7.12.2ROM初始化文档创建7.12.3新建源文件7.12.4IP选择7.12.5ROM配置7.12.6功能简介7.12.7代码解析7.12.8板级调试第8章FPGA片内资源应用实例8.1基于ChipScope的超声波测距调试8.1.1超声波测距原理8.1.2功能简介8.1.3代码解析8.1.4硬件装配8.1.5ChipScope源文件创建8.1.6ChipScope配置8.1.7ChipScope调试8.2FPGA片内ROM实例8.2.1功能概述8.2.2代码解析8.2.3ROM初始化文档创建8.2.4新建源文件8.2.5IP选择8.2.6ROM配置8.2.7Xilinx库设置8.2.8功能仿真8.2.9FPGA在线调试8.2.10触发采样波形8.3FPGA片内RAM实例8.3.1功能概述8.3.2代码解析8.3.3新建源文件8.3.4IP选择8.3.5RAM配置8.3.6功能仿真8.3.7FPGA在线调试8.4FPGA片内FIFO实例8.4.1功能概述8.4.2代码解析8.4.3新建源文件8.4.4IP选择8.4.5FIFO配置8.4.6功能仿真8.4.7FPGA在线调试8.5FPGA片内异步FIFO实例8.5.1功能概述8.5.2代码解析8.5.3新建源文件8.5.4IP选择8.5.5FIFO配置8.5.6功能仿真8.5.7FPGA在线调试8.6FPGA片内ROM FIFORAM联合实例之功能8.6.1功能概述8.6.2代码解析8.6.3功能仿真8.6.4FPGA在线调试第9章综合进阶实例9.1基于数码管显示的超声波测距回响脉宽计数9.1.1功能简介9.1.2代码解析9.1.3板级调试9.2基于均值滤波处理的超声波测距回响脉宽计数9.2.1功能简介9.2.2滤波算法与实现9.2.3代码解析9.2.4板级调试9.3基于进制换算的超声波测距结果显示9.3.1功能简介9.3.2距离计算公式实现9.3.3进制换算实现9.3.4代码解析9.3.5乘法器IP核创建、配置与例化9.3.6除法器IP核创建、配置与例化9.3.7板级调试9.4倒车雷达实例9.4.1倒车雷达应用背景9.4.2功能简介9.4.3代码解析9.4.4板级调试9.5基于SRAM批量读写的UARTbulk测试9.5.1功能概述9.5.2代码解析9.5.3板级调试9.6基于数码管显示的RTC读取9.6.1RTC芯片解析9.6.2功能简介9.6.3代码解析9.6.4板级调试9.7基于UART发送的RTC读取9.7.1功能简介9.7.2代码解析9.7.3板级调试9.8基于UART收发的RTC读写9.8.1功能简介9.8.2代码解析9.8.3板级调试9.9基于UART控制的VGA多模式显示9.9.1功能简介9.9.2代码解析9.9.3板级调试9.10基于LED显示的D/A输出驱动实例9.10.1D/A芯片概述9.10.2功能简介9.10.3代码解析9.10.4板级调试9.11基于按键调整和数码管显示的D/A输出实例9.11.1功能简介9.11.2代码解析9.11.3板级调试9.12波形发生器9.12.1功能简介9.12.2代码解析9.12.3IP核CORDIC配置与例化9.12.4Xilinx库设置9.12.5功能仿真9.12.6板级调试9.13基于数码管显示的A/D采集实例9.13.1A/D芯片接口概述9.13.2功能简介9.13.3代码解析9.13.4板级调试9.14A/D和D/A联合测试9.14.1功能简介9.14.2代码解析9.14.3板级调试9.15RTC时间的LCD显示和UART设置9.15.1功能简介9.15.2代码解析9.15.3板级调试图书购买:https://item.taobao.com/item.htm?spm=a230r.1.14.35.12193d41yiZwLP&id=561314127388&ns=1&abbucket=1#detail