深入浅出玩转FPGA.pdf

深入浅出玩转FPGA.pdf
 

书籍描述

编辑推荐
《深入浅出玩转FPGA》从工程实践出发,旨在引领读者学会如何在FPGA60开发设计过程中发现问题、分析问题并解决问题。《深入浅出玩转FPGA》附带的光盘中收集了大量的实用例程。
也欢迎读者朋友加入EDN China网站的FPGA助学小组,这里不仅可以免费申请书中涉及的FPGA开发板(不含芯片和元器件),而且可以下载到特权同学精心录制的3 5课时、与《深入浅出玩转FPGA》同名的《深入浅出抚转FPGA》视频教程。

作者简介
吴厚航,[网名特权同学],就职于上海某研究所,热爱FPGA开发设计工作,擅长记录、分析及总结经验与技巧。个人技术博客深受网友好评,任EDN China网站FPGA/CPLD助学小组组长。

目录
第一部分 基础普及
笔记1 初识FPGA
一、关于FPGA的一些基本概念
二、关于FPGA的基本结构

笔记2 应用领域
一、逻辑粘合与实时控制
二、信号处理与协议实现
三、片上系统

笔记3 开发流程
一、需求分析到模块划分
二、设计输入到综合优化
三、实现到时序收敛
四、仿真测试到板级调试

第二部分 设计技巧
笔记4 基本语法
一、可综合的Verilog语法子集
二、ifelse与case语句分析
三、Verilog代码优化之for语句
四、inout用法浅析
五、从Technology Map Viewer看4输入LUT
六、关于注释
七、解读Verilog代码的一点经验

笔记5 漫谈状态机设计
一、状态机的基本概念
二、三种不同状态机写法
笔记6 复位设计
一、异步复位与同步复位
二、复位与亚稳态
三、异步复位、同步释放
四、PLL配置后的复位设计

笔记7 FPGA重要设计思想及工程应用
一、速度和面积互换原则
二、乒乓操作及串/并转换设计
三、流水线设计
四、逻辑复制与模块复用
五、模块化设计
六、时钟设计技巧

笔记8 基于FPGA的跨时钟域信号处理
一、同步设计思想
二、单向控制信号检测
三、专用握手信号
四、搞定亚稳态
五、借助于存储器

笔记9 经验点滴
一、复用引脚,陷阱多多
二、被综合掉的寄存器
三、Cyclone器件全局时钟尽在掌控
四、M4K使用率

第三部分 仿真测试
笔记10 简单的Testbench设计
一、Testbench的基本概念
二、简单Testbench的搭建

笔记11 Testbench书写技巧
一、封装有用的子程序
二、关于变量的定义
三、HDL的并行性
四、结构化Testbench
五、读/写紊乱状态
六、防止同时调用task

笔记12 测试用例设计
一、模拟串口自收发通信
二、乘法器全覆盖测试
三、可重用MCU读/写设计

第四部分 时序分析
笔记13 时序分析基础
一、静态时序分析的概念
二、时钟相关概念
三、数据传输路径分析

笔记14 基于ISE的时序约束
一、全局约束
二、分组与OFFSET约束
三、特定路径约束
四、达到时序收敛

笔记15 基于Time Quest的时序分析
一、从Techology Map Viewer分析Clock Setup Slack
二、基于Time Quest的reg2reg之T分析
三、深入剖析I/O约束中
四、添加时序例外
五、多周期约束的基本用法
六、QuartusⅡ流水线均衡负载设置实例
七、读SRAM时序约束分析
八、源同步接口的时序模型
九、Recoveiy时序优化一例
十、基于Chip Planner的时序优化一例

第五部分 基础实验
笔记16 基于EPM240的入门实验
一、学习板简介
二、分频计数实验
三、按键消抖实验
四、Johnson计数器实验
五、数码管显示实验
六、乘法器设计实验
七、VGA接口实验
八、串口通信实验
九、PS/2键盘解码实验
十、I2C通信实验
十一、SRAM读/写实验
十二、MAXⅡ内部振荡时钟使用实例
十三、MAXⅡ的UFM模块使用实例
十四、QuartusⅡ调用Modelsim仿真实例

笔记17 基于EPlC3的进阶实验
一、开发板简介
二、AS和JTAG配置方式
三、基于74HC595的数码管实验
四、PLL配置仿真实验
五、基于FIFO的串口发送机设计
六、VGA字符显示实验
七、基于M4K块配置ROM的字符数据存储VGA显示实验
八、基于M4K块的单口RAM配置仿真实验
九、基于M4K块的移位寄存器配置仿真实验
十、基于SDRAM读/写的串口调试实验

第六部分 项目应用
笔记18 DIY逻辑分析仪
一、背景介绍
二、功能需求及模块划分
三、数据采集、触发及存储
四、基于VGA的显示界面设计

笔记19 DIY数码相框
一、背景介绍
二、功能需求及模块划分
三、SPI接口控制
四、SD卡数据存储结构与FAT16文件系统
五、SD卡初始化及读操作
六、SDRAM控制器设计
七、BMP格式图片显示

第七部分 网络杂文
笔记20 Xilinx网站资源导航
一、Xilinx软件介绍
二、软件版本和软件更新
三、软件教程
四、硬件资料
五、参考资源
六、问题解决
七、总结

笔记21 苦练基本功
一、dataslaeet要看原版
二、开发工具要熟练
三、焊接功底要扎实
四、不要厌烦写文档
笔记22 永远忠于年轻时的梦想
参考文献

序言
也许人们会忘记你做过多少项目,干过多少工程,但一定会记住你写过的一本好书。
EDN China首次为网友新书作序,其一是承蒙作者吴厚航作为EDN China.com的资深会员对网站社区一贯的热情和支持,藉其新书出版之日自当弹冠共庆以序作酬,略尽绵薄;其二也是希望鼓励更多的电子工程师多写博文、多写文章、多写书——将自己的心得和经验与同行们分享。
《深入浅出玩转FPGA》同EDN China.com的工程师社区渊源匪浅。2008年,EDN China.corn的工程师社区开展了助学活动,低价实用的RF学习板、TCP学习板、CAN学习板、USB学习板吸引了众多网友的眼球。无疑这样的活动为很多高校学生以及年轻的工程师们提供了一个既可以动手实践、又方便交流互动的学习平台。
电子设计涉及的技术门类着实太多,只有不断扩大讨论范围才能满足广大电子爱好者学习的欲望。可编程器件设计是继单片机、ARM、DSP之后,目前讨论最多而技术门槛也相对较高的一个门类。EDN China.com工程师社区的FPGA讨论组人气高涨,很多网友都希望能有一个FPGA学习板的助学活动。对于他们来说,FPGA的高门槛也许不仅是技术,还因为其昂贵的器件价格。但是,尽管不少热心网友提出了各种想法来为建立FPGA的助学活动出谋划策,却一直没有定论,也一直缺少资深专家来亲历亲为支持活动。
2008年11月初,一位经常在EDN China.corn的博客发表FPGA方面“酷”文的网友ilove314(即本书作者吴厚航)与我们联系,希望能够搞一次CPLD的助学活动。几番接触之后,我们发现这位网友也的确有备而来,很快就递交了活动方案的细节,并且提交了学习板的配套资料、例程代码、文档说明等。在活动套件的售价方面,对方的报价也相当具有吸引力。于是,CPLD助学活动的报名提上了议程,并在可编程器件论坛中得到了众多网友的响应。当年12月底,第一批50套助学板发到了我们手上,据说当时为了节约成本,吴厚航和几位朋友利用业余时间在一大堆烙铁、松香和焊锡中亲自动手忙了两个多星期。

文摘
插图:

深入浅出玩转FPGA

特权同学接触最多的典型控制就是液晶屏的驱动,因为大多数液晶屏都是需要实时扫描的,而且场频、行频的时序都相对固定。要是使用单片机,即使什么都不做,只响应定时中断都不一定来得及。即使是找来速度更快一些的ARM(市场上也有一些内嵌了液晶驱动外设的ARM)、DSP等高端处理器直接驱动液晶,过多的中断响应也会给程序带来麻烦,这就未免有些得不偿失了。所以,FPGA是最好的选择,从成本考虑,如果只是做简单的驱动和数据搬运的工作,CPLD也足够了。此外,如步进电机驱动、图像采集等应用中都采用了基于FPGA/CPI,D的解决方案,FPGA/CPLD也的的确确在实时控制领域拥有着得天独厚的优势。
二、信号处理与协议实现
1.信号处理 相信很多朋友对数字信号处理器(DSP)都有相当程度的了解。的确,这样的微处理器是为数字信号处理量身打造的,在数据运算处理方面有着相当不错的性能。但是,今天的FPGAA已经具有了内嵌乘法器、专用运算电路并集成了大量可灵活配置的片内RAM等,再加上FPGA的并行性以及可灵活配置的位宽,这些特性使其足以与任何DSP相抗衡。
在软件无线电领域,ASIC、FPGA和DSP三足鼎立,各有优势。ASIC往往针对某一个特定的产品,可升级性和灵活性较低。DSP和FPGA都是可编程的,DSP的软件编译和调试相对FPGA要容易一些,但只适合一些基于顺序处理的算法实现,对于并行要求极高的应用场合则无能为力了。因此,在这样的应用场合,DSP加FPGA的解决方案是一个折中的选择。
2.协议实现 FPGA拥有着丰富的电平接口,易于实现各种各样不同的协议。现成的协议芯片确实不少,但是对于一些标准协议的非标准应用还是应该选择FPGA。有时只要选择一个合适的IP核,简单的配置后即可灵活使用。
三、片上系统
数字电路高度集成化是现代电子发展的大势所趋,片上系统(SoC)的概念也就应运而生。它是指在单个芯片上集成一个完整的系统,一般包括系统级芯片控制逻辑模块、微处理器/微控制器内核模块、数字信号处理器模块、存储器或存储器控制模块、与外部通信的各种接口协议模块、含有ADC/DAC的模拟前端模块、电源及功耗管理模块。SoC是一个具备特定功能、应用于特定产品的高度集成电路。

内容简介
《深入浅出玩转FPGA》收集整理了作者在FPGA学习和实践中的经验点滴。书中既有日常的学习笔记,对一些常用设计技巧和方法进行深入探讨;也有很多生动的实例分析,这些实例大都是以特定的工程项目为依托,具有一定的借鉴价值;还有一些适合于初学者入门和进阶学习的实验例程;另外还给出了两个比较完整的DIY工程,让读者从系统角度理解FPGA的开发流程。
《深入浅出玩转FPGA》从工程实践出发,旨在引领读者学会如何在FPGA的开发设计过程中发现问题、分析问题并解决问题。《深入浅出玩转FPGA》的主要读者对象为电子、计算机、控制及信息等相关专业的在校学生、从事FPGA/CPLD开发设计的电子工程师以及所有电子设计制作的爱好者们。

购买书籍

当当网购书 京东购书 卓越购书

PDF电子书下载地址

相关书籍

搜索更多