图书前言

前    言

随着EDA技术的发展,其在电子信息、通信、自动控制及计算机应用等领域的重要性日益突出。与此同时,随着技术市场与人才市场对EDA技术需求的不断提高,产品的市场效率和技术要求也必然会反映到教学和科研领域中来。以最近10届的全国大学生电子设计竞赛为例,涉及EDA技术的赛题从未缺少过。对诸如斯坦福大学、麻省理工学院等美国一些著名院校的电子与计算机实验室建设情况的调研表明,其EDA技术的教学与实践得到了高度的关注与重视,内容安排紧凑、科学。在其本科和研究生教学中有两个明显的特点:其一,各专业中EDA教学实验课程的普及率和渗透率极高;其二,几乎所有实验项目都部分或全部融入了EDA技术,其中包括数字电路、计算机组成与设计、计算机接口技术、数字通信技术、嵌入式系统、DSP等实验内容,并且更多地注重创新性实验。这显然是科技发展和市场需求双重影响下自然的结果。

为了适应EDA技术在就业中的需求和高校教学的要求,突出EDA技术的实用性,以及面向工程实际的特点和自主创新能力的培养,作者力图将EDA技术最新的发展成果、现代电子设计最前沿的理论和技术、国际业界普遍接受和认可的EDA公司新近推出的EDA软/硬件开发平台的使用方法通过本书合理地综合和萃取,奉献给各位读者。本书所有的理论阐述和实践精解,包括示例和实验所基于的EDA软/硬件平台分别是Quartus II 9.x、Synplify、ModelSim、SOPC Builder等和Cyclone III系列FPGA;硬件描述语言是Verilog HDL。其中的SystemVerilog和VHDL仅是为了比较而介绍。

在业界,目前似乎有3个关键词与大学生的就业和发展关系密切,即数字技术、创新精神和实践能力。为了阐明本书的宗旨,在此不妨讨论一番。

近年来,我国大学生特别是本科生就业形势一直难有起色,其中自有诸多因素,但有一点值得关注,即高职专科类和研究生毕业生的就业情况都好于本科。其中原因十分明显也值得深究:社会就业市场更青睐有实践能力的人才。高职专科虽只有3年,但专业设置定位明确,完全根据就业市场设计教学与实践,大比例课时数放在既定专业的实践训练和技能培训上,许多学校在第一年就完成了诸如高数、数字电路、EDA技术类基础和专业基础类课程,此后两年时间几乎都用于工程实践训练。至于研究生,除了学历高外,在实践训练的环境条件、时间、内容、强度、层次以及与工程实际的结合度上都明显优于本科生。相比之下,本科生的就业劣势便显得十分明显了,因为他们大部分时间都在应付不断增加的各类课程的课堂学习上,实践安排少之又少。要论动手能力和实践经验,本科生自然屈居第三,就业形势必然严峻,所以就业的大军仍然是本科生!如何来破解这一难题呢?所谓“以管窥豹,只见一斑”,这里仅以本科数字电路课程教学为例,来窥视分析本科就业问题之一斑。

在本科电子、计算机、通信等专业的课程中,实质上的专业基础课大都是实践性强且须通过大量实践活动的反馈才能真正学好的课程,其中数字电路及其后续的EDA技术课程的教学和实践安排具有一定的典型性和代表性。统计表明,目前多数高校的数字电路课程授课课时数是64,实验课时数是16,实践课与理论课的比例是1:3;课程安排多为二年级下或三年级上。不难看出这里就存在两个问题:

? 重理论讲授轻实践训练(许多其他同类课都存在相同问题)。这个1:3的比例最终导致多数学生只会并只注重书面应试。

? 课程安排的时间太晚。在现代数字技术高速发展的今天,本科电子、计算机、通信等专业的大量重要课程都是以数字电路为基础课。也就是说,诸如EDA技术、硬件描述语言、单片机技术、DSP技术、嵌入式系统应用技术、计算机组成与设计技术、计算机接口技术、数字通信技术等公共专业基础课,以及与具体专业直接相关的课程,如工业自动化、网络安全、软件无线电、蓝牙技术、仪器仪表、生物信息工程、数字电子对抗、神经网络系统、数字电磁兼容技术等,统统都必须放在数字电路课之后。然而目前的现状令人无法乐观,待数字电路课学完(还谈不上已学好),已经是三年级了,而四年级后半段基本属于四面出击求职求人的一年,多数学生已无心向学已是不争的事实。

美国斯坦福大学Nigel P.Cook教授在其Practical Digital Electronics一书中指出:第二次世界大战以来,电子学对世界的发展所做的贡献超过了其他所有学科,电子工业已超越汽车和石油工业成为世界上最大的工业,而且这个巨型工业的一个重要的发展趋势便是从模拟技术向数字技术的转化,数字技术将曾经毫不相干的领域融为一体,导致90%以上电子产品采用了数字技术,数字电子技术还将继续整合整个工业体系,促进人类在各个不同领域的进步。这个90%说明什么?这不就是告诉我们,即在业界,与数字技术相关的就业领域的口径占整个就业领域的90%之宽!然而我们想问,以上的那些与数字技术相关的、极其重要且与未来的深造、发展、创业、就业甚至再就业(考虑下岗)关系重大的课程能在一年甚至不到的时间内学完吗?如果可能,那也只能停留在课堂上听听课而已,至于实践机会恐已成了奢望,更不用提什么融会贯通、培养自主创新能力了。其结果一定是常从毕业学生口中听到的那句让人愕然又无奈的话:老师,我感到什么都学了,但却什么都不会。因为他们在求职的道路上,除了一张似是而非的成绩单,对招聘者的盘问基本没有底气去接招。

何谓学术?就是学有所长,术有专攻。仅仅是听听讲课,动动笔头,敲敲键盘,无论是理论还是实践都是蜻蜓点水、浅尝辄止,致使学不深、业不精,就业自然困难。

显然,这一现象从根本上的改变必须抓住核心课程,解决3个问题,即什么时候学、学什么以及如何学。核心课程是数字电路课及其后续课——EDA、DSP等。

对于第1个问题,较好的解决方案便是数字电路课程的教学改革。作为我校EDA技术国家级精品课程的延伸内容之一,我们充分认识到将此课程提前上的重要性,通过数年的试点教学实践和经验总结,现已成功地将部分本科学生的数字电路课授课时间从原来的第四学期逐步提前到了第一学期,其他相关课程,如EDA、单片机、计算机接口等也相应提前,使学生到二年级时就有了培养自主开发能力的条件了。

第2个问题涉及教学内容。数字电路课程的大幅提前必定要以改革教学内容为前提,否则一味提前,教学效果也将归于失败。首先是推出适应新需求的教材,对于目前长期作为数字技术教学重点的且已过时的、基于纯手工数字技术的内容仅作现代数字技术教学的阶梯和过渡内容,强化基于现代数字技术的教学和实践训练,并适当引入低层次的EDA技术,如基于原理图的输入设计方法,不涉及HDL,使教学和实践训练的内容更有效地面向后续课程。而传统数字电路的内容是纯手工技术,根本无法适应如今高速变化的各实际工程专业相关课程的需求。

第3个问题最重要,如何学包括如何教,这既是个方法问题,更是个认识问题。以我校的数字电子技术和EDA技术的授课情况为例,对于前者不仅仅是提前课程设置,更重要的是瞄准人才市场的需求和电子科技发展的现状,强化实践训练,强调工程实际与基础理论相结合,重点鼓励学生的自主设计意识和首创精神。我们将授课学时数缩减到40,而实验学时数相应增加为80,其中包括与之相关的课内实验(16)、独立实验(32)和课程设计实验(32)。具体内容包括验证性实验、基础实验、自主设计性实验和综合创新性实验,最后一类实验要求学生必须给出可硬件验收的设计项目和论文,然后参加答辩。

作为后续课程的EDA技术课总学时数是48,实验与授课学时数之比是1:1。同时为了有效倍增学生的实践和自主设计的时间,每一个上EDA课的学生都可借出一套EDA实验开发板,使他们能利用自己的计算机在课余时间完成自主设计项目,强化学习效果。实践表明,这种安排使得实验与授课的等效学时数之比达到3:1,成效自然明显。基于同样重视实践能力和创新意识培养的理念,单片机教学实验和授课学时数之比已近x:0,即不单独安排授课学时数,第一课就在实验室中进行,边讲授、边学习、边实践。

基于以上的讨论和认识,我们对本书各章节做了相应的安排。其特点有三:

1. 注重实践、实用和创新能力的培养

除在各章中安排了许多习题外,绝大部分章节都安排了针对性较强的实验与设计项目,使学生对每一章的课堂教学内容和教学效果能及时通过实验得以消化和强化,并尽可能地从学习一开始就有机会将理论知识与实践和自主设计紧密联系起来。

全书共给出了60多个实验与设计项目,这些项目涉及的技术领域宽、知识涉猎广、针对性强,而且自主创新意识的启示性好。与本书的示例一样,所有的实验项目都通过了EDA工具的仿真测试并通过FPGA平台的硬件验证。每一个实验项目除给出详细的实验目的、实验原理和实验报告要求外,都含2~5个子项目或子任务。它们通常分为:第一层次的实验任务是与该章某重点阐述内容相关的验证性实验,并通常提供详细的并被验证的设计程序和实验方法,学生只需将提供的设计程序输入计算机,并按要求进行编译仿真,在实验系统上实现即可,目的是使学生有一个初步的感性认识,提高实验的效率;第二层次的实验任务是要求在上一实验的基础上进行一些改进和发挥;第三层次的实验通常是提出自主设计的要求和任务;第四、五层次的实验则在仅给出一些提示的情况下提出自主创新性设计的要求。教师可以根据学时数、教学实验的要求以及不同的学生对象,布置不同层次、含不同任务的实验项目。

2. 注重速成和学习效率

一般认为EDA技术的难点和学习费时的根源在于硬件描述语言,对此本书做了有针对性的安排。我们根据相关专业的特点,放弃了流行的计算机语言的教学模式,打破了目前HDL教材通行的编排形式,而以电子线路设计为基点,从实例的介绍中引出Verilog语法内容。同时为了尽快进入EDA技术的实践阶段,熟悉EDA开发工具及其相关软硬件的使用方法;尽早进入数字系统工程设计经验的积累和能力提高阶段,并能通过这些面向实际的实践和实验活动,快速深化对硬件描述语言的理解和把握对应的设计技巧,本书通过数则简单而典型的Verilog设计示例(电路情景)和电路模型,从具体电路和实用背景下引出相关的可综合的Verilog语言现象和语法规则,并加以深入浅出的说明,使读者仅通过1~2章的学习便能迅速了解并掌握Verilog HDL与逻辑电路间的基本关系和描述方法,从而极大地降低Verilog的学习难度,大幅提高学习效率,快速实现学以致用的目的。过去多年的实践证明这是一种高效学习硬件描述语言和EDA技术的好方法。这种学习流程也是目前国外比较流行的基于情景和工作过程的教学和学习模式,是一种自顶向下的、高效的学习模型。

这种方法对于学时数极少的极端情况也是有效的。例如这些内容可分别在约10个授课学时加10个实验学时,即约3~4天的时间内完成,其教学效果在过去与许多高校联合举办的EDA研习班上已得到了充分的证明。

3. 注重相对独立性和系统性、完整性的有机结合

本书定位是教科书而非参考书,因此无论各章节的理论讲述安排还是实验配置都有很好的内在联系性,同时也具有相对独立性。教师可以根据学时设置情况、专业特点和具体的教学要求仅选择其中某些章节来讲授,这并不会对系统性和知识的连贯性造成破坏。例如,若不足20个学时,可以只学前5章,前3章只需安排2个学时(这是速成的最低要求),完成学习后同样能较好地掌握Verilog语言、EDA软件工具和FPGA开发技术。如果学时数再多一点,可以只讲授前8章。这样一来,学生的EDA技术功力还能向前再跨一步,也为参加诸如全国大学生电子设计竞赛等赛事奠定了基础。

然而,无论是编排的授课内容还是对应的实验配置,本书所包含的内容都大大超过了通常的EDA课程学时数(如50个学时)。这似乎有悖于以上对本书作为教材的定位。这是因为我们考虑到,任何学科都有其内在的系统性和完整性,EDA技术及与其紧密相联的硬件描述语言也一样,自有其完整的体系结构和独具特色的知识系统构架,其基本内容、外延内涵、知识涉猎和基础构架的完整性绝不会随某个学校的学时数限制而有所改变,或能切割和裁剪。本书之于EDA技术构建了一个不容割裂和裁剪的有机整体,最低限度地保证了EDA技术与HDL知识构架内在的系统性和完整性。从这个意义上讲,对于将要学习本课程的学生而言,本书中所有章节的内容都是十分重要而不可缺少的。因此,本书作为一本教科书的定位既不是为了适应某课程的学时数限制,也非对应某个专业学科的需求。本书的唯一定位目标是,基于全书给出的完整的知识结构,注重实践第一的观念,强化创新意识的培养,通过课堂合理的教学安排,结合学生明晰的求知觉悟和踏实的实践精神,为了即将离开学校面向招聘者、面向研究生导师、面向社会、面向未来的同学能多一份自信、多一点信心和多一线希望。

由此可见,为了速成,为了满足有限的学时数,课程中裁剪一些教学的内容只是权宜之计,是手段,而非目的。无论学时数是多少,无论专业特点是什么,我们建议应该积极鼓励学生利用课余时间尽可能学完本书的全部内容,掌握本书介绍的所有EDA工具软件和相关开发手段,并尽可能多地完成本书配置的实验和设计任务。

现代电子设计技术是发展的,相应的教学内容和教学方法也应不断地改进。还有许多问题值得深入探讨,其中包括以上提出的有关EDA教学的一家之言。我们真诚地欢迎读者对书中的疏漏和有失偏颇之处给予批评指正(eda82@hzcnc.com)。

为了本书的顺利出版,杭州康芯公司的高级工程师徐生和姜兆刚先生在IP核的应用、大量实验设计项目的验证、各种EDA软件工具的安装以及SOPC软硬件项目的调试等方面完成了大量且不可替代的工作,在此对他们表示诚挚的谢意!本书配套课件及实验示例资料索取可浏览网址www.kx-soc.com。

编  者

2010年1月

于杭州电子科技大学