购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

前言

现场可编程门阵列(Field Programmable Gate Array, FPGA)越来越多地被应用在新技术中,如物联网、云计算和人工智能等。在这些应用中,FPGA主要用来对数据进行加速处理。为了应对这些应用,降低软件工程师应用FPGA的难度,Xilinx公司不断推出新的设计工具,如高级综合工具(High Level Synthesis, HLS),以降低使用FPGA实现复杂应用的难度。然而,很多软件工程师仍然觉得FPGA入门较难,这是因为他们普遍认为Verilog HDL比较抽象难懂,且FPGA的内部结构过于复杂。其实,最根本的原因是软件设计工程师常常以传统软件的思维来看待FPGA,他们普遍认为FPGA是硬件,与软件没有太多的交集,在FPGA中实现传统上由软件实现的算法模型难度较大。根据作者长期教学和科研的经验,数字逻辑和数字电路基础知识是他们入门FPGA的“绊脚石”和“拦路虎”。为了帮助广大读者能真正进入FPGA设计领域,尤其是FPGA的初学者和那些从事传统软件开发工作的工程师,作者编写了本书。本书是作者多年从事FPGA教学和科研工作的体会与总结,期望对广大初学者系统掌握FPGA的设计方法提供很好的帮助。

数字逻辑和数字电路的基本理论知识是学习FPGA的基础,不管FPGA技术今后如何发展,始终离不开数字逻辑的基本理论知识。系统深入地掌握以上知识是读者进入FPGA设计世界的基石,特别重要。所以,在编写本书时特意增加了数字逻辑基础和数字电路两章内容。作者在编写这两章内容时参考了国外大量的设计资料,希望通过这两章内容的讲解来帮助广大读者准确地把握数字世界的本质,并且通过Multisim内集成的SPICE仿真工具对这些知识点进行了直观演示和验证。根据作者多年的教学经验,认为这些知识难点是入门FPGA的最大障碍,因此通过SPICE仿真工具给出的分析结果帮助读者扫清这些学习障碍。

Verilog HDL是本书最重要的内容之一,用于对复杂数字系统(尤其是FPGA)进行行为级和寄存器传输级建模。本书严格按照IEEE Std 1364-2005规范介绍Verilog HDL的词法和句法。在介绍这部分内容时,将Verilog HDL与复杂数字系统(尤其是FPGA)模型之间的对应关系进行系统讲解,使读者理解Verilog HDL的词法和句法在复杂数字系统行为级和寄存器传输级描述中的使用方法。

本书的一大特色是将Verilog HDL和Vivado集成开发环境进行系统化深度融合,从不同角度深度解读Verilog HDL语言的实现本质。针对Verilog HDL中的一些语法难点,书中通过Vivado集成开发环境提供的功能进行演示和说明。在此要特别指出,Vivado集成开发工具是学习Verilog HDL最好的助手,这是因为在初学者遇到Verilog HDL中不理解的地方时,可以很容易地通过Vivado集成开发工具给出的电路结构和仿真结果进行直观的说明。为了帮助读者提高灵活运用Verilog HDL构建复杂数字系统模型的能力,书中给出了大量的基本逻辑单元的寄存器传输级描述,以及一个复杂数字系统设计实例和数模混合系统设计实例。

本书的另一大特色是引入ARM为Xilinx现场可编程门阵列最新定制的Cortex-M1处理器软核。通过使用Verilog HDL构建嵌入式硬件平台和使用C语言编写硬件驱动,以及实现软件应用,在现场可编程门阵列内实现了真正意义上的片上可编程嵌入式系统。这里的可编程是指使用Verilog HDL定制嵌入式系统的硬件,然后使用C语言为这个定制的嵌入式硬件平台编写软件驱动和应用,这个设计过程充分体现了在FPGA上构建嵌入式系统的灵活性和高效性,同时对广大读者系统学习ARM嵌入式的硬件和软件知识提供了很好的帮助。通过对片上嵌入式系统设计流程的详细解读,读者将进一步掌握C语言串行执行和Verilog HDL并行处理的本质特点。通过在嵌入式系统设计中合理划分软件和硬件的边界,最终实现低成本、高性能的片上嵌入式系统设计。当然,对片上嵌入式系统设计过程的系统讲解也是为了帮助读者理解软件处理的灵活性和硬件处理的高效性,进而使读者进一步理解在新技术中越来越多地使用硬件(FPGA)来实现更复杂的算法的原因。

全书共10章,内容主要包括数字逻辑基础、数字逻辑电路、可编程逻辑器件原理、Vivado集成开发环境设计流程、Verilog HDL语言规范、基本数字逻辑单元Verilog HDL描述、复杂数字系统设计和实现、数模混合系统设计、片上嵌入式系统的构建和实现,以及图像采集、处理系统的构建和实现。为了便于读者自学,本书提供了所有设计实例的完整设计文件和公开教学视频,这些资源可以通过书中学习说明给出的链接地址获取。

在本书编写过程中参考了许多著名学者和专家的研究成果,同时也参考了Xilinx公司的技术文档和手册。在编写本书的过程中,Xilinx多位技术专家解答了作者在设计中所遇到的各种问题,ARM大学计划提供了Cortex-M1及其参考设计在此向他们表示衷心的感谢。在本书编写的过程中,作者的学生孟繁阳负责设计和验证第1章和第2章的实例,学生周杨参与本书第10章实例的设计和部分文字编写。除此之外,参加本书编写的还有何长有,在此表示感谢。在本书出版的过程中,也得到了电子工业出版社编辑的帮助和指导,在此也表示深深的谢意。

由于编著者水平有限,编写时间仓促,书中难免有疏漏之处,敬请读者批评指正。

作者
2019年5月于北京 jZyeervObtUEKfYJCGvtHS+RDu9njsD2dq4PYYb7R1uXt5afRrz6Lg/iCJ+yl1wv

点击中间区域
呼出菜单
上一章
目录
下一章
×