说明:收录全网最新的团体标准 提供单次或批量下载
前言 笔者2004年开始学习FPGA,并被其强大的灵活性所吸引,从此一切成本不敏感的项目能用FPGA的,则不会考虑其他方 案。从简单的逻辑控制、MCU替代到高速的信号处理、网络与通信应用,没有什么是一片FPGA(或含有处理器核)不能驾驭 的,“一片不行,那就两片!”在成本不敏感的领域,如科研、产品或芯片原型研发和验证中,FPGA扮演了极其重要的角色, 因为在这些领域往往包含大量特殊的、创新的定制逻辑和功能,或者具备极高的数据传输带宽,并非MCU、MPU(DSP是 MPU的一种)或应用处理器所能胜任。 即使是MCU或MPU能够胜任的工作,若使用FPGA来完成,你可以肆意挥洒自己的创意,构建符合自己习惯的逻辑接口和 功能,创造符合特殊要求的功能模块和处理器外设,而不必像使用通用MCU或MPU那样,需要学习为了功能通用而设置的纷繁 复杂的接口、控制寄存器或API函数。当然,一切的前提是项目成本不敏感,并且你具备深厚的FPGA开发功力——这比MCU或 MPU开发要难很多。 但终端产品领域是FPGA尚无法触及的,主要限制是成本、功耗和开发难度。在成本和功耗上,FPGA灵活的本质决定了它 无法与MCU或MPU抗衡,同时终端产品往往出货量也很大,因而在高带宽或特殊定制逻辑方面,也可以由ASIC胜任——ASIC 在量大时成本极低。 而开发难度大则源于多个方面。在理论方面,想要学好FPGA,甚至说想要入门FPGA,都必须掌握扎实的数字逻辑基础知 识。在语言方面,用于FPGA开发的硬件描述语言(HDL)描述的数字逻辑电路是并行的,与人类思维的串行性(即一步一步的 思考)不符,而MCU等开发使用的程序语言则符合人类思维的串行性,相对易于入门和掌握。依笔者浅见,“程序”一词含 有“依序执行的过程”之意,与可综合的硬件描述语言的并行性不符,因而本书尽量避免使用“程序”一词指代可综合的硬件描 述语言代码。 开发困难还源于FPGA技术近年来的快速发展和FPGA相关教育的滞后。 笔者自六年前开始面向华中科技大学启明学院电工电子科技创新中心(以下简称“创新中心”)的学生开设与FPGA应用相 关的选修课,并为他们设计开发板,无论课程内容还是开发板,每年都可能会变动以跟进新的技术发展。 创新中心的学生主要来自全校各电类相关院系,并经过严格的考核选入,都是理论成绩和实践能力兼优并对电子技术有着浓 厚兴趣的学生。即便如此,笔者依然感受到FPGA应用教学的困难,特别是在引导和帮助他们使用FPGA实现具备一定难度和深 度的功能的时候,或者在实现一个完备的电子电路系统,比如将FPGA用作大学生电子设计竞赛作品主控或者各类研究、双创项 目的主要实现平台的时候。 笔者以为,FPGA应用教学的困难直接反映了数字电路应用教学的困难,这与传统数字电路课程设置不无关系。在电子技术 子领域日趋细分、国内大学电类专业日趋细分的当代,侧重数字电路应用的专业(如通信、电气、自动化等)仍然在深入学习 SR锁存器的电路构成,深入学习如何用74系列IC设计异步时序逻辑电路。笔者并不认为这些不重要,但以为这些应该是侧重数 字电路理论的专业(如电子、电信等)才需要深入学习的内容,毕竟侧重数字电路应用的专业的学生以后一般不需要设计IC;不 需要在数字逻辑电路中做晶体管级的优化;也不需要为少数关键路径而动用异步逻辑、锁存器逻辑。相应地,在侧重数字电路应 用的专业中,现代数字电路应用中的同步时序逻辑内容并没有提升到应有的地位,与之相关的时钟概念和知识、常用的时序逻辑 功能单元、基础的时序分析概念和知识也是比较缺失的。 在本书中,笔者提炼和扩展了传统数字电路课程中与FPGA应用相关的部分,形成了本书的第1章,便于读者快速强化FPGA 应用设计所需的数字电路基础知识,尚未学习数字电路课程的低年级读者也可以通过学习第1章来入门数字电路基础。第2章则是SystemVerilog(IEEE 1800—2012)简明语法讲解,主要侧重可综合(即可以在FPGA中实现)的语法,最新的 IEEE 1800—2012标准较早期版本引入了不少“漂亮”的语法元素,让笔者急切地想与读者分享,后果是少数理应可综合的语法 在目前主流开发工具中尚不支持,或许它们还需要一点时间来跟进,遇到这些特例,书中均会给出解决方法。 第3章是使用ModelSim进行Verilog功能仿真的简单教程。 第4章是Verilog的基本应用,这一章主要介绍各种数字逻辑基本功能单元的描述,并着重介绍了时钟、使能的概念和跨时钟 域处理。从这一章起,我们正式开始了FPGA应用设计之旅。 第5章介绍IO规范,首先通识性地介绍了IO连接的常识和常见电平规范,而后以四种常见外部逻辑接口规范为例,介绍了通 用接口逻辑的设计和实现。希望读者能在学习过程中领会到此类设计的一般思路和处理方法。 第6章介绍片上系统的内部互连。片上系统(SoC)结合了通用处理器和FPGA逻辑的优势,实现了软硬件协同设计,是当 下FPGA应用技术的热门。而要充分利用SoC的优势,发挥软硬件协同的潜力,处理器系统与FPGA逻辑的高速互连至关重要。 此章从一种简单的互连接口入手,逐步过渡到目前应用最为广泛的AXI互连协议。 第7章介绍Verilog在数字信号处理中的基本应用,主要介绍了一些基础数字信号处理算法的实现,包括频率合成、FIR和IIR 滤波器、采样率变换、傅里叶变换和常见于数字控制系统的PID控制器。 第8章介绍Verilog在数字通信中的基本应用,主要介绍了基带编解码、各类基础调制解调的实现。 这些章节的依赖关系如下图所示。 本书侧重Verilog在FPGA中的应用基础,对于特定FPGA芯片、特定开发工具、特定外部连接和具体系统案例,请关注即将 出版的本书的姊妹篇。 本书特别注重理论与工程实现的结合,以实现为主,以相关理论的结论为指导,读者应着重理解理论与实现的对应关系,注 意培养将理论转换为工程实现的能力。 本书中的代码均为可综合代码,均是从笔者多年教学和工程实践中实际应用过的代码中提炼而来的,具备极高的实践参考价 值,并大量采用参数化设计方法,大量采用生成块和常量表达式/函数,具备极高的可重用性。书中不可综合的代码只有:明确说明为测试平台;明确说明有些开发工具尚不支持的某些新语法,但一般会给出修改方法。 本书是笔者多年FPGA开发和教学经验的总结,弥补了多年来面向创新中心学生讲授FPGA应用课程时的教材缺失——虽然 优秀教材有很多,但并没有特别吻合笔者思路和学生要求的。希望本书能对正在学习FPGA应用技术的本、专科学生给予有力的 帮助,也希望能给正在使用FPGA进行项目开发的在校研究生、在业工程师一点借鉴和提示。 书中涉及少数较新的英文术语,因未见到广泛统一或权威的翻译,笔者尝试对其进行了翻译并在文中保留了英文,便于读者 对照理解。 笔者水平有限,书中难免有偏颇谬误之处,欢迎广大读者批评指正! 最后,感谢创新中心尹仕、肖看老师和电气与电子工程学院实验教学中心的同事们!感谢我的父母、女友!感谢创新中心 605实验室的同学们!由于他们的支持和帮助,本书才得以顺利完成。特别感谢姜鑫同学通读了书稿,并协助我完成了部分审校 工作;特别感谢我的女友帮助绘制了书中电路图的国标版本,特别感谢出版社的编辑们进一步修订了这些电路图。 第1章 数字电路基础 本章介绍数字电路的一些基础知识。在FPGA应用领域,对许多经典的数字电路知识的依赖逐渐减少,因而本章并不会太细 致地讲述数字电路的基本原理和相关知识,而是提纲挈领地带领读者了解数字电路的原理并掌握FPGA开发必要的知识。 1.1 模拟电路与数字电路 在自然界中,特别是在宏观世界中,大多数物理量都是随时间连续变化的函数,而且取值也是连续的。例如声音,一个声压 级约为80dB、频率为440Hz的声音的声压随时间变化的函数图像如图1-1所示,它是一个正弦函数图像。我们称随时间变化的函 数为时域信号,或简称为“信号”,称信号的图像为“波形”。 图1-2所示则是人声“啊”的声压波形。图1-1 80dB、440Hz声音的波形 图1-2 人声“啊”的波形 这两个信号都是在时间上连续,在取值上也连续,这样的信号称为“模拟信号”。 在电路中,可以用电压信号来表达声压信号,充当声压信号和电压信号相互转换的器件便是大家熟知的麦克风或扬声器。以 一个扩音机为例,麦克风将空气中的声压信号转换为电路中的电压信号,常见的麦克风转换声压到电压的灵敏度在10mV/Pa量 级,毫伏级的信号经由电压放大器放大至数伏或数十伏之后,再由功率放大器增大输出功率推动扬声器发声,常见的扬声器的灵 敏度(在距离它1m处产生的声压与输入功率之比)为90dB/W左右。 像扩音机这样处理模拟信号的电路,称为模拟电路。在模拟电路中,一般使用电路节点上的电压或回路中的电流来表达我们感兴趣的信号。 我们也可以直接使用“数”来表达信号,例如图1-2所示的人声“啊”的声压信号,其取值大致可以用区间(-0.1,0.1)的 实数(以Pa为单位)来表达。信号在时间上连续,所以一段时间的信号需要无数个实数,而实数往往又是无限长的(比如循环 小数或无理数),所以这样用“数”表达信号的方式并不现实。 但是,在时间上我们并不需要记录无限个数值,可以每隔一段足够短的时间记录一个,比如每隔125μs记录一个,这称 为“采样”,“采样周期”为125μs,即“采样率”为1/125μs=8kHz,或称8ksps(Samples per Second),采样后,信号在 时间上变得离散。在值域上也不必使用连续的实数区间,可以使用足够小的细分阶梯,比如把每个值四舍五入到整1m

.pdf文档 FPGA应用开发和仿真.html

文档预览
中文文档 5 页 50 下载 1000 浏览 0 评论 309 收藏 3.0分
温馨提示:本文档共5页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
FPGA应用开发和仿真.html 第 1 页 FPGA应用开发和仿真.html 第 2 页 FPGA应用开发和仿真.html 第 3 页
下载文档到电脑,方便使用
本文档由 人生无常 于 2026-01-05 01:32:11上传分享
友情链接
站内资源均来自网友分享或网络收集整理,若无意中侵犯到您的权利,敬请联系我们微信(点击查看客服),我们将及时删除相关资源。