(1)本书由《深入浅出玩转FPGA》一书的作者吴厚航(网名:特权同学)倾心打造。
(2)供FPGA板级设计说明、工具安装说明、入门实例、片内资源应用实例和综合实例,由浅入深地全面掌握FPGA的开发设计。
(3)使用Altera公司的Cyclone Ⅳ FPGA器件既有足够的理论知识深度作支撑,也有丰富的例程进行实践学习,并且穿插着笔者多年FPGA学习和开发过程中的各种经验和技巧。
本书使用Altera公司的CycloneⅣFPGA器件,由浅入深地引领读者从板级设计、基础入门实例、FPGA片内资源应用实例和综合进阶实例等方面,玩转FPGA逻辑设计。本书基于特定的FPGA实验平台,既有足够的理论知识深度作支撑,也有丰富的例程供实践学习,并且穿插了笔者在多年FPGA学习和开发过程中所积累的经验和技巧。
无论对于希望快速掌握Verilog语言进行FPGA开发的初学者,还是希望快速掌握基于AlteraCycloneⅣFPGA进行开发的设计者,本书都是很好的选择。
作者简介
吴厚航[网名:特权同学]有近10年的FPGA工程实践经历,擅长记录、分析并总结FPGA开发中的经验与技巧,也非常乐于分享。活跃于各大电子技术网站的FPGA社区或版块,多年来笔耕不辍、风雨无阻,不断地发表FPGA相关文章,其总点击量超过300万。著有多本FPGA技术相关图书,其诙谐的文字、贴近读者实际需求的知识点与经验技巧分享,赢得了广大读者的一致认可。
第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.94×4矩阵按键电路
2.10VGA显示接口电路
2.11蜂鸣器、流水灯、数码管、拨码开关电路
2.12超声波接口、外扩LCD接口电路
第3章逻辑设计基础
3.10和1——精彩世界由此开始
3.2表面现象揭秘——逻辑关系
3.3内里本质探索——器件结构
第4章软件安装与配置
4.1软件下载和license申请
4.2Quartus Ⅱ与ModelSim�睞ltera的安装
4.3文本编辑器Notepad++安装
4.4QuartusⅡ中使用Notepad++的关联设置
4.5USB�睟laster的驱动安装
4.5.1Windows XP系统USB�睟laster安装
4.5.2在Windows 7系统安装USB�睟laster
4.5.3在Windows 8系统安装USB�睟laster
4.6串口芯片驱动安装
4.6.1驱动安装
4.6.2设备识别
第5章Verilog语法概述
5.1语法学习的经验之谈
5.2可综合的语法子集
5.3代码风格与书写规范
勇敢的芯伴你玩转Altera FPGA
第6章基于仿真的第一个工程实例
6.1新建工程
6.2Verilog源码文件创建与编辑
6.2.1Verilog源码文件创建
6.2.2Verilog源码文件编辑
6.3Verilog语法检查
6.4ModelSim仿真验证
6.4.1Quartus Ⅱ基本设置
6.4.2测试脚本创建与编辑
6.4.3测试脚本关联设置
6.4.4调用ModelSim仿真
第7章基于板级调试的第二个工程实例
7.1PWM蜂鸣器驱动——功能概述
7.2PWM蜂鸣器驱动——引脚分配
7.3PWM蜂鸣器驱动——综合、映射与配置文件产生
7.4Altera FPGA配置方式
7.4.1概述
7.4.2配置方式
7.5PWM蜂鸣器驱动——FPGA在线下载配置
7.6PWM蜂鸣器驱动——FPGA配置芯片固化
7.7PWM蜂鸣器驱动——复位与FPGA重配置功能
第8章基础入门实例
8.1蜂鸣器开关实例
8.1.1功能简介
8.1.2代码解析
8.1.3打开工程
8.1.4下载配置操作
8.2流水灯实例
8.2.1功能简介
8.2.2代码解析
8.2.3下载配置
8.33��8译码器实例
8.3.1功能简介
8.3.2代码解析
8.3.3板级调试
8.4按键消抖与LED开关实例
8.4.1按键消抖原理
8.4.2功能简介
8.4.3代码解析
8.4.5板级调试
8.5经典模式流水灯实例
8.5.1功能简介
8.5.2代码解析
8.5.3板级调试
8.6基于PLL分频计数的LED闪烁实例
8.6.1PLL概述
8.6.2功能简介
8.6.3新建IP核文件
8.6.4PLL配置
8.6.5模块化设计概述
8.6.6模块化设计实践
8.6.7代码解析
8.6.8板级调试
8.7数码管驱动实例
8.7.1数码管驱动原理
8.7.2功能概述
8.7.3代码解析
8.7.4板级调试
8.8SRAM读写测试实例
8.8.1SRAM读写时序解读
8.8.2功能简介
8.8.3代码解析
8.8.4仿真设置
8.8.5功能仿真
8.8.6FPGA在线配置
8.8.7触发采样波形
8.9UART loopback测试
8.9.1功能概述
8.9.2代码解析
8.9.3板级调试
8.10VGA驱动ColorBar显示实例
8.10.1VGA概述
8.10.2功能简介
8.10.3代码解析
8.10.4板级调试
8.11LCD基本驱动实例
8.11.1LCD驱动时序
8.11.2功能简介
8.11.3代码解析
8.11.4装配
8.11.5板级调试
8.12LCD字符显示驱动实例
8.12.1字符取模
8.12.2ROM初始化文档创建
8.12.3新建源文件
8.12.4ROM配置
8.12.5功能简介
8.12.6代码解析
8.12.7板级调试
8.13矩阵按键扫描检测实例
8.13.1键盘概述
8.13.2矩阵按键工作原理
8.13.3功能概述
8.13.4代码解析
8.13.5RTL Viewer
8.13.6State Machine Viewer
8.13.7Technology Map Viewer
8.13.8板级调试
第5章
Verilog语法概述
本章导读
本章介绍学习Verilog语言的一些经验和Verilog语言可综合的基本语法,以及常见逻辑功能的代码风格与书写规范。
5.1语法学习的经验之谈
FPGA器件的设计输入有多种方式,如绘制原理图、编写代码或是调用IP核。早期的工程师对原理图的设计方式情有独钟,这种输入方式应付简单的逻辑电路还凑合,应该算得上简单实用,但随着逻辑规模的不断攀升,这种落后的设计方式已显得力不从心。取而代之的是代码输入的方式,今天的绝大多数设计都是采用代码来完成的。
FPGA开发所使用的代码,通常称为硬件描述语言(HardwareDescriptionLanguage),目前最主流的是VHDL和Verilog。VHDL发展较早,语法严谨;Verilog类似C语言,语法风格比较自由。IP核调用通常也是基于代码设计输入的基础之上,现在很多EDA工具的供应商都在打FPGA的如意算盘,FPGA的设计也在朝着软件化、平台化的方向发展。也许在不久的将来,越来越多的工程只需要设计者从一个类似苹果商店的IP核库中索取组件进行配置,最后像搭积木一样完成一个项目,或者整个设计都不需要见到一句代码。当然,未来什么情况都有可能发生,但是底层的代码逻辑编写方式无论如何还是有其生存空间的,毕竟一个个IP核组件都是从代码开始的,所以对于初入这个行业的新手而言,掌握基本代码设计的技能是必需的。
这里不过多谈论VHDL和Verilog语言孰优孰劣,总之这两种语言是当前业内绝大多数开发设计者所使用的语言,从二者对电路的描述和实现上看,有许多相通之处。无论是VHDL还是Verilog,建议初学者先掌握其中一门,至于到底先下手哪一门,则需要读者根据自身的情况做考量。对于没有什么外部情况限制的朋友,若之前有一定的C语言基础,不妨先学Verilog,这有助于加快对语法本身的理解。在将其中一门语言学精、用熟之后,最好也能够着手掌握另一门语言。虽然在单个项目中,很少需要“双语齐下”,但在实际工作中,还是很有可能需要去接触另一门语法所写的工程。网络上有很多很好的开源实例,若只会Verilog,而参考实例却是VHDL的,那么就很尴尬了;忽然有一天A同事离职,老板把他写了一半的Verilog工程扔给只会VHDL的你来维护,那可就被动难堪了……所以,对于VHDL和Verilog的取舍问题,建议先学精一门,也别忘了兼顾另一门,无论哪一种语言,至少需要具备看懂别人设计的基本能力。
HDL虽然和软件语言有许多相似之处,但由于其实现对象是硬件电路,所以它们之间的设计思维存在较大差异。尤其是那些做过软件编程的朋友,很喜欢用软件的顺序思维来驾驱HDL,岂不知HDL实现的硬件电路大都是并行处理的。也许就是这个大弯转不过来,所以很多朋友在研究HDL所实现的功能时常常百思不得其解。对于初学者,尤其是软件转行过来的初学者,笔者的建议是不要抛开实际电路而研究语法,在一段代码过后,多花些精力对比实际逻辑电路,必要时做一下仿真,最好能再找一些直观的外设在实验板上看看结果。长此以往,若能达到代码和电路都心中有数,那才证明是真真正正掌握HDL的精髓了。
HDL的语法条目虽多,但并非所有的HDL语法都能够实现最终的硬件电路。由此进行划分,可实现为硬件电路的语法常称为可综合的语法;而不能够实现到硬件电路中,却常常可作为仿真验证的高层次语法则称为行为级语法。很多朋友在初学语法时,抱着一本语法书晕头转向地看,最后实战的时候却常常碰到这种语法不能用、那种语法不支持的报错信息,从而更加抱怨HDL不是好东西,学起来真困难。其实不然,可综合的语法是一个很小的子集,对于初学者,建议先重点掌握好这个子集,实际设计中或许靠着十来条基本语法就可以打天下了。怎么样?HDL一下变简单了吧。这么说一点也不夸张,本书的重点就是要通过各种可实现到板级的例程让读者快速地掌握如何使用可综合的语法子集完成一个设计。5.2节中会将常用的可综合语法子集逐一罗列并简单介绍。对于已入门的读者,也不是说掌握了可综合的语法子集就“万事大吉”了。
行为级语法也非一无是处,都说“存在即是合理”,行为级语法也大有用处。一个稍微复杂的设计,若是在板级调试前不经过几次三番的仿真测试,一次性成功的概率几乎为零。而仿真验证也有自己的一套高效便捷的语法,如果再像底层硬件电路一样搭仿真平台,恐怕就太浪费时间了。行为级语法最终的实现对象不是FPGA器件,而是手中的计算机,动辄上G甚至双核、四核的CPU可不愿做“老牛拉破车”的活,所以行为级语法帮助设计者在仿真过程中利用好手中的资源,能够快速、高效地完成设计的初期验证平台搭建。因此,掌握行为级语法,可以服务于设计的仿真验证阶段的工作。
前言
Foreword
FPGA技术在当前的电子设计领域越来越火热。它的成本虽然还是高高在上,但是它给电子系统所带来的不可限量的速度和带宽及其在灵活性、小型性方面的优势,越来越为对性能要求高、偏重定制化需求的开发者所青睐。因此,越来越多的电子工程师和电子专业在校学生希望能够掌握这门技术。而对一门电子技能的掌握,单凭读几本初级入门教材是很难达到的。笔者结合自身的学习经历,为广大学习者量身打造了基于低成本、高性价比的AlteraCycloneⅣFPGA器件的硬件开发学习平台。基于该平台,配套本书的各种基本概念阐释和例程讲解,相信可以帮助大家快速掌握这门新技术。
全书共10章,各章主要内容如下:
第1章是基础中的基础,讲述可编程器件的基本概念及主要应用领域、相对传统技术的优势和开发流程。
第2章从FPGA开发平台的电路板设计入手,介绍FPGA板级硬件电路设计要点,以及本书配套开发平台的外围电路设计。
第3章从最基础的0和1开始回顾数字电路的基础,同时深入探讨读者所关心的可编程器件的内部架构和原理。
第4章讲述开发环境的搭建,包括AlteraFPGA集成开发环境QuartusⅡ、仿真工具ModelSim、文本编辑器Notepad++以及下载器驱动和UART驱动安装,帮助读者快速解决学习路上遇到的最棘手的“软”问题。
第5章讲述Verilog的基本语法,包括语法的学习方法、可综合的语法子集以及代码风格与书写规范。
第6章和第7章完成最基本的工程创建、语法检查、仿真验证以及编译,甚至在线板级调试和代码固化,带领读者初步掌握基于AlteraCycloneⅣ的FPGA开发流程。
第8章介绍13个最基本的入门实例。
第9章通过6个实例帮助读者熟悉FPGA除逻辑资源以外的其他丰富资源,如PLL和可配置为ROM、RAM、FIFO的内嵌存储器,以及在线逻辑分析仪SignalTapⅡ等。
第10章的15个例程,是对前面一些实例的集成整合,力图通过大量的实例实践,帮助读者熟练掌握FPGA的基本开发设计。
本书既有对基础理论知识的专门讲解,也有非常详细的实例演练和讲解,更多的是在实
践中传递实用的设计方法与技巧,非常适合初学者。
本书配套例程的下载链接为http://pan.baidu.com/s/1i5LMUUD。
本书配套开发平台的淘宝链接:https://myfpga.taobao.com/。
吴厚航(网名:特权同学)
2017年7月于上海
我是一名计算机科学的学生,对底层硬件开发一直充满好奇,尤其对 FPGA 这种能够直接控制硬件的设备非常感兴趣。但坊间关于 FPGA 的书籍,要么过于理论化,充斥着晦涩的数学公式和抽象的逻辑概念,要么就是简单的代码堆砌,缺乏对原理的深入剖析。直到我遇到了这本书,它就像一股清流,让我看到了 FPGA 开发的乐趣和可行性。这本书的语言非常生动活泼,读起来一点也不枯燥。作者在讲解时,善于运用类比和形象的比喻,将复杂的 FPGA 内部工作原理变得易于理解。我特别喜欢书中的那些“实战演练”,每一章都设计了不同的项目,让我能够边学边动手,将理论知识迅速转化为实际技能。从简单的 I/O 控制到复杂的数字信号处理,每一个项目都让我受益匪浅。最令我感动的是,书中非常注重对代码风格和工程实践的讲解,这对于我们这些初学者来说尤为重要,能够帮助我们养成良好的编程习惯,为将来从事更复杂的项目打下坚实的基础。这本书就像一位耐心的朋友,一步步引导我走出 FPGA 的迷茫区,让我对这个领域充满了信心和热情。
评分作为一名在电子工程领域摸索多年的从业者,我一直希望能够系统地掌握 FPGA 的设计和开发。我曾阅读过不少相关的技术书籍,但很多都停留在理论层面,或者对工具的使用讲解不够详尽,导致我在实际操作中常常遇到瓶颈。这本书的出现,无疑是为我解决了一个大难题。它非常巧妙地将 Altera(现 Intel) FPGA 的特性与实际的嵌入式开发应用紧密结合。书中详细讲解了如何使用 Quartus Prime 等开发工具进行项目创建、代码编写、仿真以及硬件下载,并且对每一个步骤都进行了清晰的图文演示,让我能够轻松上手。我尤其欣赏书中对于一些核心 IP 核和接口设计的讲解,比如 GPIO、UART、SPI 等,都提供了详细的配置方法和应用示例,这对于我快速实现各种通信协议和外设驱动非常有帮助。而且,书中还涉及到了如何将 FPGA 与 ARM 处理器等嵌入式系统进行联动,这为我构建更复杂的系统架构提供了宝贵的思路。这本书不仅是一本技术手册,更像是一位经验丰富的工程师,将自己多年的实践经验毫无保留地分享出来,让我能够少走弯路,快速掌握 FPGA 的核心技术,并将其应用于实际的嵌入式项目开发中。
评分这本书的出现,简直是为我这种“想做却不知道怎么做”的嵌入式开发者量身定做的。之前我接触过一些 FPGA 的基础知识,但总感觉隔靴搔痒,理论和实践之间总有一道鸿沟。这本书恰恰弥补了我的这一块短板。它的内容组织非常合理,从最基本的 FPGA 架构介绍,到如何使用 Quartus Prime 这样的开发工具,再到 Verilog/VHDL 语言的实践应用,循序渐进,逻辑清晰。我之前一直对 Verilog 和 VHDL 两种语言有些困惑,不知道如何选择,也不知道哪种更适合初学者。这本书在讲解时,会根据不同的场景和需求,提供两种语言的示例,并对它们的优缺点进行分析,这让我能够根据自己的理解能力和项目需求,做出更明智的选择。最让我惊喜的是,书中对于一些关键的 IP 核和模块的设计,都有非常详尽的讲解,比如 AXI 总线接口、RAM/ROM 的使用等。这些都是在实际项目中非常常见且重要的组成部分,但很多教程往往一带而过。这本书却能够深入剖析其内部原理和使用方法,并给出了大量的实际操作指导。我按照书中的步骤,成功地在开发板上实现了好几个之前认为很复杂的模块,这让我信心倍增。这本书的实用性真的非常高,绝对是 FPGA 入门和进阶的必备参考。
评分对于一个在硬件领域摸爬滚打多年的工程师来说, FPGA 始终是一个令人着迷但又充满挑战的领域。我尝试过很多方法来学习 FPGA,但总觉得缺乏一条清晰的路径。这本书给了我一个非常棒的指引。它没有一上来就抛出复杂的抽象概念,而是从最实际的硬件操作出发,一步步引导我理解 FPGA 的内部结构和工作流程。书中的案例设计非常贴合实际工程中的一些常见需求,比如数据采集、实时处理、接口转换等。我尤其欣赏作者在讲解时,并没有回避一些容易出错的地方,反而会提前预警,并给出相应的解决方案。这让我在实践中少走了很多弯路。我印象深刻的是,书中对于一些时序约束和时钟管理方面的讲解,非常细致和到位,这对于 FPGA 的稳定运行至关重要,也是我之前经常遇到的难题。作者用通俗易懂的语言,结合图文并茂的讲解,让我彻底理解了时序分析的原理,并学会了如何有效地进行时序约束。此外,书中还涉及到了一些嵌入式 Linux 与 FPGA 协同工作的知识,这对于我开发更复杂的系统非常有帮助。这本书不仅仅是一本技术手册,更像是一位经验丰富的导师,带领我一步步探索 FPGA 的奥秘,并帮助我构建起完整的 FPGA 开发知识体系。
评分作为一名 FPGA 领域的初学者,我一直在寻找一本能够真正帮助我上手实践的书籍。市面上关于 FPGA 的资料琳琅满目,但很多都偏向理论,或者代码示例晦涩难懂,让我望而却步。就在我有些灰心的时候,偶然看到了这本书的介绍,虽然名字听起来有点“萌”,但我被它强调的“玩转”和“实践”吸引了。拿到书后,我迫不及待地翻阅起来。这本书的整体排版很舒服,没有那种密密麻麻的专业术语堆砌,而是用一种非常友好的方式引导读者一步步深入。我尤其喜欢它从基础概念讲起,但绝不是枯燥的讲义,而是紧密结合实际的硬件操作。书中的案例设计都非常贴合实际应用场景,比如一些简单的LED闪烁、按键输入处理,到后面的一些稍复杂的信号处理和通信接口,都能够让我边学边练。我印象最深刻的是,作者在讲解每个模块时,不仅仅是给出代码,还会详细分析代码的逻辑,以及在 FPGA 硬件上是如何实现的。这种深入浅出的讲解方式,让我对 FPGA 的工作原理有了更清晰的认识,而不是仅仅停留在“写代码-综合-下载”的表面流程。而且,书中提供的配套资源也非常丰富,各种参考代码、设计文件应有尽有,这大大减轻了我们自己搭建开发环境和寻找例程的负担,让我能够更专注于学习内容本身。我非常期待能够通过这本书,真正掌握 FPGA 的设计技巧,未来能够独立完成一些有意义的项目。
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 book.cndgn.com All Rights Reserved. 新城书站 版权所有