前言

随着EDA技术的快速发展,现代数字系统的开发与设计广泛采用EDA技术,主要利用CPLD/FPGA实现,甚至将系统集成在单一芯片上。它们的特点是直接面向用户、具有极大的灵活性和通用性、使用方便、硬件测试和实现快捷、开发效率高、成本低、技术维护简单、工作可靠性好等。FPGA和CPLD的应用是EDA技术有机融合软硬件电子设计技术、SOC和ASIC设计,以及对自动设计与自动实现最典型的诠释。
市面上关于EDA技术与VHDL的书籍已经汗牛充栋,为什么编者还要不辞劳苦地添砖加瓦呢?本书与其他EDA技术与VHDL教材不同的是: 
(1) 真正面向初学者。
目前高校开设的EDA技术课程普遍存在内容信息量大与学时少的矛盾,作为入门教材,本书内容力求精炼,不追求面面俱到,只求深入浅出。VHDL语言部分并未覆盖所有的语法,只介绍常用的语法,因为有些语法在一般设计中根本不会使用到。那些枯燥的语法不但无助于提高初学者的设计水平,反而容易挫伤初学者的学习积极性。本书希望成为一本真正把初学者带入VHDL设计大门的入门教程。
(2) 内容精练,学、练相融合。
本书内容按照循序渐进的原则,主要包括设计初步、设计进阶、设计实例,通过大量的设计实例,边学边练,帮助读者在最短的时间内掌握FPGA设计的基本方法和技巧,掌握VHDL语言编程和数字电路系统的设计方法。值得一提的是,本书是一本面向实际应用的入门教程,书中所用的VHDL语句均为可综合的VHDL语句,所有程序均在实验装置上测试通过。
为了贴近初学者的学习习惯,根据作者亲身学习体会及多年教学情况,将本书内容分为8章。
第1章简要介绍EDA技术及其内容,并对FPGA/CPLD的结构、原理进行了介绍,对可编程逻辑器件设计流程进行简要说明。
第2章VHDL设计初步,VHDL主要用于描述数字系统的接口、结构和行为功能,本章遵循VHDL的结构顺序,依次介绍说明VHDL的程序结构、文字规则和语法要素,为学习VHDL奠定语法基础。
第3章介绍FPGA的设计流程,以Quartus Ⅱ软件为平台,以分频电路为例,介绍从设计输入到程序下载的一系列FPGA设计流程。读者可根据设计实例步骤逐步实现一个分频电路程序在软件上的设计实现。
第4章讲述常用的并行语句和顺序语句,以及进行VHDL层次化的设计方法,对VHDL设计的学习重点及难点进行了讲解。
第5章介绍利用VHDL进行电路设计的一些典型实例,包括常用的组合逻辑电路、计数器电路、各种形式的分频电路、LED显示电路、LCD显示电路、键盘扫描电路以及常用的三态缓冲器和总线缓冲器等接口电路的设计。
第6章讲述状态机在VHDL中的实现。状态机是一种思想方法,它的本质就是对具有逻辑顺序或时序规律事件的一种描述方法。状态机适合用于描述状态及状态的转移。
第7章通过综合性实例交通灯控制器设计、数字钟电路设计对数字系统设计方法进行描述。 
第8章为基于EDA技术实验,包括基础实验和综合设计实验。
附录介绍了DE2开发平台的资源以及使用方法,利用该平台能够方便完成各种实验项目。
本书适合初学者使用,可作为高等院校电子信息类、自动化类、计算机类以及相关专业的教材,也可作为FPGA开发设计的自学参考书。
本书第1~4章及第6~8章由陈福彬编写,第5章由王丽霞编写。陈福彬完成全书的修改及统稿。
由于编者水平有限,书中不足之处在所难免,欢迎广大同行和读者批评指正。

编者

2021年3月于北京