前 言
与前几个版本相比,新版的内容与结构都有了较大变化,主要表现在以下几个方面。
(1)为了突出重点、精简篇幅,将有关EDA技术、硬件描述语言导言的内容、EDA工具基本知识及FPGA与CPLD结构原理等基本概念的内容都放在了第1章。
(2)对硬件描述语言的讲述,改用了比较系统和循序渐进的讲述方法,确保了HDL基本内容的完整性和系统性。为了便于读者理解和提高学习效率,给出了大量有很好针对性的HDL设计示例。这部分内容主要包含在第2、第3和第5章中。
(3)为了将学到的HDL知识尽快付诸实践,更好地从结合工程实际的层面来检验学习效果,在较早阶段就安排了对应的硬件设计技术的学习和丰富的实验内容,同时将HDL知识的学习有机地融入了实验实践中。这部分内容主要包含在第4和第6章中。
(4)第7章主要对前面的章节内容进行了归纳综合,其中许多内容是新加入的,为后续的学习奠定了更坚实的基础。
(5)第8章的内容相比前一版有所扩充,主要是围绕有限状态机的设计,介绍了更为实用的EDA技术和HDL编程设计方法,其中增加了许多新的、更贴近工程实际的状态机设计与应用方面的实用知识。
(6)第9章的内容基本是新增加的,其中介绍了一个较大的设计项目,即一个有实用意义的16位CPU的设计。这是一个很好的训练项目,是对之前的理论知识和实践能力的综合运用,而且此章内容还可以作为一个创新设计竞赛项目。首先给出一个完整的CPU设计原型和详细的设计流程,然后在这个基础上向参赛者提出不同层次要求的创新设计方案和系统设计要求。此类教学和实践内容在国外高校同类课程和教材中经常出现。
(7)第10章主要介绍基于ModelSim的Test Bench仿真技术。这部分内容也是新增加的,这主要考虑到Quartus II10.0后不再支持内置的门级仿真器,而Test Bench仿真技术在EDA技术中更具一般性,适用领域更广、更实用。
(8)第11章和第12章主要介绍基于DSP-Builder和MATLAB/Simulink的EDA技术,其中包括了大量设计示例和对应的实验。这部分内容主要是面向涉及复杂算法的EDA系统设计,如数字通信领域中的系统功能模块的设计或高速DSP硬件系统的设计,为EDA技术和复杂数字系统的设计和验证拓宽了领域,使不同的EDA工具轻易地融为一体,从而强化了各类EDA工具的优势。
随着Quartus II和DSP-Builder版本的升级,这部分内容也有很大的变化和扩充,本书对原有的内容作了更新。
与本书VHDL内容相对应的Verilog HDL教材可参考清华大学出版社出版的《EDA技术与Verilog HDL》。
基于工程领域中EDA技术应用的巨大实用价值,以及重视EDA教学中实践能力和创新意识培养的极端重要性,本书的特色主要表现在如下两个方面。
1.注重实践能力和创新能力的培养
本书在绝大部分章节中都安排了针对性较强的实验与设计项目,使学生对每章的课堂教学内容能及时得以消化和强化,并尽可能地使学生从一开始学习就有机会将理论知识与实践、自主设计紧密联系起来。
全书包含数十个实验及其相关的设计项目,这些项目涉及的EDA工具软件类型较多、技术领域也较宽、知识涉猎密集、针对性强,而且能启发自主创新意识。与书中的示例相同,所有的实验项目都通过了EDA工具的仿真测试及FPGA平台的硬件验证。每一个实验项目除了给出详细的实验目的、实验原理和实验报告外,还都包含2~5个子项目或子任务。它们通常分为:第一个层次的实验任务是与该章某个阐述内容相关的验证性实验,并提供详细的并被验证的设计源程序和实验方法,学生只需将提供的设计程序输入计算机,并按要求进行编译仿真,在实验系统上实现即可,这使学生有一个初步的感性认识,也提高了实验的效率;第二个层次的实验任务是要求在上一实验基础上做一些改进和发挥;第三个层次的实验通常是提出自主设计的要求和任务;第四、第五个实验层次则在仅给出一些提示的情况下提出自主创新性设计的要求。因此,教师可以根据学时数、教学实验的要求以及不同的学生对象,布置不同层次、不同任务的实验项目。
2.注重教学选材的灵活性和完整性相结合
本教材结构灵活的特点决定了授课课时数可长可短,应视具体的专业特点、课程定位及学习者的前期教育力度等因素而定,大致在30~54学时。考虑到EDA技术课程的特征和本教材的特色,具体教学可以是粗放型的,其中多数内容,特别是实践项目,都可直接放手于学生,让学生自己去查阅资料、提出问题、解决问题,乃至创新与创造,而授课教师只需做一个启蒙者、引导者、鼓励者和学生成果的检验者和评判者。授课的过程多数情况只需点到为止,大可不必拘泥细节、面面俱到。但有一个原则,即安排的实验学时数应多多益善。
事实上,任何一门课程的学时数总是有限的,为了有效倍增学生的实践和自主设计的时间,可以借鉴清华大学的一项教改措施,即其电子系本科生从一入学就人手获得一块FPGA实验开发板,可从本科一年级一直用到研究生毕业。这是因为EDA技术本身就是一个可把全部实验和设计带回家的课程。
我校对于这门课程也基本采用了这一措施,即每个上EDA课的同学都可借出一套EDA实验板,使他们能利用自己的计算机在课余时间完成自主设计项目,强化学习效果。实践表明,这种安排使得实验课时得到有效延长,教学成效明显提高。
我们建议应该积极鼓励学生利用课余时间尽可能学完本书的全部内容,掌握本书介绍的所有EDA工具软件和相关开发手段,并尽可能多完成本书配置的实验和设计任务。甚至能参考教材中的要求,安排相关的创新设计竞赛,进一步激发学生的学习积极性和主动性,并培养他们的动手能力和自主创新能力。
还有一个问题有必要在此探讨,即自主创新能力的培养尽管重要,但其有效提高绝非一朝一夕之事。多年的教学实践告诉我们,针对这一命题的教改必须从两方面入手:一是教学内容,二是设课时间,二者互为联系,不可偏废。前者主要指建立一个内在相关性好、设课时间灵活,且易于将创新能力培养寓于知识传播之中的课程体系。后者主要指在课程安排的时段上,将这一体系的课程尽可能地提前。这一举措是成功的关键,因为我们不可能到了本科三、四年级才去关注能力培养,并期待奇迹发生,更不可能指望一两门课程就能解决问题。
尤其是以卓越工程师为培养目标的工科高等教育,自主创新能力的培养本身就是一项教学双方必须投入密集实践和探索的创新活动。我校的EDA技术国家级精品课程正是针对这一教改目标建立的课程体系,而“数字电子技术基础”是这一体系的组成部分和先导课程。它的提前设课是整个课程体系提前的必要条件。
通过数年的试点教学实践和经验总结,现已成功在部分本科学生中将此课程的设课时间从原来的第4学期或第5学期提前到了第1或第2学期。而这一体系的其他相关课程,如EDA技术、单片机(相关教材是清华大学出版社的《单片机原理与应用技术》,潘明、黄继业等编著)、SOC片上系统、计算机接口、嵌入式系统和DSP等也相应提前,从而使学生到本科二年级时就具备了培养工程实践和自主开发的能力。
不可否认,数字电路课程的大幅提前必须要以其教学内容的改革为前提,否则将传统的教学内容强行提前必将归于失败。为此,在总结了数字电路多年教改成果的基础上,我们推出了适应新需求的教材,即《实用数字电子技术基础》一书,很好地适应了当前的教改目标。此书创新性地解决了传统教材中的手工数字技术与现代自动化数字技术间的关系,使二者能平稳过渡且有机融合,在有效促进理论与实践紧密结合的同时,强化实践训练突显了创新意识,同时实现了与后续课程的良好衔接。尽管这一切尚处于我校的局部教学实践中,但已清晰地展示了诸多颇具说服力的证明。
例如,相比于其他学生(如同年级、同专业、同授业课程等),那些曾经参加这一课程体系的学生在大学生电子设计竞赛、飞思卡尔车模大赛以及一些国外企业主导的自主设计赛事中,都获得了更多的奖项和更好的成绩。而且这些学生的获奖比例逐年提高,例如,在2011年我校的全国大学生电子设计竞赛的一、二等奖项(分别是3个和6个)的获奖同学中,本科二年级学生的比例高达80%(该年我校三年级学生多数选择考研复习,未参赛)。若按传统的工科本科教学流程,二年级学生就有能力获全国一等奖是不可想象的!
其实,类似的教改活动和教改成绩,我校远非唯一。国内早有不少院校将数字电路放在第1或第2学期,其实践训练的内容包括超过数万至数十万逻辑门规模的数字系统自主设计,不少受益的学生在各类电子设计竞赛中也都获得了好成绩。前面提到的清华大学的教改活动也说明,他们至少有部分学生于本科一年级就有数字系统设计方面的训练;后来的调研也证明了这一点,如该校计算机专业本科二年级学生就能自主设计出各种极具创新特色的数字系统,如语音处理及数字立体声播放、硬件超级玛丽游戏显示与控制系统等;又如东南大学在某次省级数字电路课程电子设计竞赛中,有一组同学完成了指纹识别数字锁的设计而获一等奖;再如美国Michigan大学本科一年级学生就能设计数字电子琴这样的复杂系统,其中包括用FPGA控制VGA显示五线谱,PS/2键盘作为琴键及数字立体声音乐播放等。
另外有两个问题必须在此说明。
第一是关于本书对于Quartus II版本选择的问题。尽管目前Altera早已颁布了Quartus II12.0,但本书中的示例说明仍然选择Quartus II9.x。这是因为Altera已将Quartus II10.0及此后版本软件中一贯内置的门级波形仿真器移除了,并推荐使用接口于Quartus II的ModelSim-Altera仿真器。然而这一举措对于初学者未必是一个好消息。因为Quartus II9.x及之前版本软件中一直内置的波形仿真器具有易学、高效和便捷的巨大优势,对EDA教学和初学者的学习是十分重要的。况且Quartus II9.x与Quartus II12.0比,总体上变化不大,且本书在第10章中针对Test Bench仿真,重点介绍了ModelSim-Altera的使用方法。
第二是针对本书中的实验和实践项目所能提供的演示示例源设计文件的问题。本书中多数实验都能提供经硬件验证调试好的演示示例源文件,目的是让读者能顺利完成实验验证和设计;有的示例是希望能启发或引导读者完成更有创意的设计,其中一些示例尽管看上去颇有创意,但不能说是最佳或最终结果,这给读者留有许多改进和发挥的余地。此外还有少数示例无法提供源代码(只能提供演示文件),是考虑到本书作者以外设计者的著作权,但这些示例仍能给读者在设计的可行性、创意和创新方面以宝贵的启示。所有与本书相关的设计示例和实验项目的源设计程序和工程项目(包括第9章的CPU设计和第11、第12章基于DSP-Builder/MATLAB的设计)都可浏览相关网址或与作者联系免费索取。
为了尽可能降低本书的成本和售价,就不再配置光盘了。与本书相关的其他资料,包括本书配套课件、实验示例源程序、相关设计项目的参考资料和附录A中提到的.mif文件编辑生成软件等文件资料都可免费索取;此外对于与本书相关的工具软件,包括Quartus?II、Synplify Pro、ModelSim和DSP-Builder/MATLAB等EDA软件的安装及使用问题都可通过网站www.kx-soc.com或Email:pmr123@sina.cn咨询或直接与清华大学出版社联系。
清华大学出版社的网址和联系方式是:www.tup.com.cn,zzfangcn@vip.163.com。
本书主要由潘松、黄继业编写,参与本书部分内容编写的还有陈龙。此外,本书的编写得到了美国ALTERA公司的大力支持,在此表示感谢。
由于时间仓促,书中难免有不足之处,恳请各位专家和读者赐正。
作 者
于杭州电子科技大学
·IV·
·III·