前言
由Xilinx公司发明的FPGA技术,按照摩尔定律已经历了30多年的发展历程,它的可编程特性使其成为电子产品设计和验证不可或缺的手段,在数字信号处理(DSP)系统和嵌入式系统等设计领域也得到日益广泛的应用。为了适应迅速发展的技术进步,培养出符合新时代要求的合格人才,近年来大学教育利用FPGA的可编程特性进行了广泛的探索,也取得了令人瞩目的成果,例如得到教育部认可的口袋实验板,以及贯穿式教育和工程实训等教改措施。
根据近期在多个大学进行数字系统和嵌入式系统工程实训的经历,结合国家对新型人才培养的要求,以及根据读者对利用FPGA设计现代数字系统的需求,选取目前流行的FPGA器件、设计工具和设计语言编写了此书。本书选用Xilinx公司7系列全可编程FPGA和SoC,2017x最新版本的Vivado设计工具,以及在许多大学得到广泛应用的依元素公司开发的EGO1开发板,作为学生的口袋实验板随身携带,不仅可以使设计项目在FPGA硬件上运行,也可以通过实验验证、理解和运用所学知识。
Verilog HDL是设计者们喜爱的语言,与VHDL相比,更节省代码,更接近C语言,适合有C语言基础的读者学习,因此被业界广泛使用,也为本书所采用。
全书共8章。
第1章介绍现代数字系统设计概论,包括现代数字系统层次化的设计概念、多种描述方法和IP、SoC概念。本章使初学者对现代数字系统设计有一个整体的认识。
第2章介绍历代FPGA器件的结构特点、硬件资源和配置方法,为进一步的设计和优化奠定必要的器件基础。
第3章介绍Verilog HDL的基本语法和设计实例,是全书的设计语言基础教程。
第4章介绍Vivado工具编程、仿真、综合和实现的设计流程,以及测试诊断工具和IP集成工具等。
第5章是比较深入的高级设计与综合技术,包括Verilog HDL的编程风格、综合优化、同步设计、高级综合与系统综合。本章是完成较复杂数字系统设计的重要设计知识与设计技巧。
第6章介绍在FPGA内实现DSP的方法,在FPGA内建DSP是现代DSP技术的最重要的发展方向。本章介绍在FPGA构建DSP的基本方法和System Generator设计工具,给出使用System Generator设计工具设计FIR数字滤波器的完整设计过程。
第7章介绍Zynq嵌入式系统设计技术,包括Zynq嵌入式处理器结构、AXI4总线,利用IP模块在Vivado构建硬件,在SDK中编写软件,协同开发流程。
第8章给出三个综合设计实例。
为了方便读者,本书编写了Verilog HDL手册、EGO1开发板资料和参考文献供查阅。
本书保留原书如下三个特点:
一是内容完整,包含设计理论、器件知识、设计语言、基本设计工具,还包括高级设计与综合技术、FPGA内构建DSP的设计方法、SOPC设计方法和综合设计实例。为初学者提供了完整的学习内容和丰富的参考资料。
二是注重读者的认识规律,由浅入深,循序渐进,既有深入的内容,又使初学者能很快入门; 既有数字技术的理论知识,又有指导实践的实验实例。
三是书中涉及的所有程序均已经过调试,在教学过程中可以放心地使用和验证。
当然,现代数字系统设计涉及很广泛和深入的知识,不可能在一门课程中全部解决。我们希望能帮助初学者尽快入门,但更深入的研究和专门的设计知识需要在后续课程和设计实践中不断积累和完善。现代数字系统设计对理论和实践的综合要求都是比较高的,建议使用本教材的老师在介绍基本的设计基础后,尽量安排学生通过实验来发现和解决更多的问题,以提高实践能力。
本书是采用Vivado 2017版本的FPGA教材。选用本书作为教材的高校教师可以到网站http://eelements.readthedocs.io/zh/ego1_v2.1/EGO1.html#id12获取实验的详细资料及演示资料(需获准)。
本书由孟宪元和钱伟康教授共同完成编写和审稿。
由于FPGA技术发展迅速,设计工具的版本每年都有若干次更新,作者水平有限,编写时间仓促,书中的疏漏之处请读者予以指正。
感谢清华大学出版社对本书的出版给予的关心和支持!
孟宪元
2019年2月
