发表于2024-11-24
(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月于上海
勇敢的芯伴你玩转Altera FPGA(电子设计与嵌入式开发实践丛书) 下载 mobi pdf epub txt 电子书 格式 2024
勇敢的芯伴你玩转Altera FPGA(电子设计与嵌入式开发实践丛书) 下载 mobi epub pdf 电子书评分
评分
评分
评分
评分
评分
评分
评分
勇敢的芯伴你玩转Altera FPGA(电子设计与嵌入式开发实践丛书) mobi epub pdf txt 电子书 格式下载 2024