1 引言
实践教学能加深学生对所学理论知识的理解,同时对进步学生的综合素质、培养学生的创新精神、实践能力和创新能力具有特殊的作用。组成原理是计算机科学与技术及其相关专业的核心基础课,加强实践教学环节对培养学生设计、调试和开发计算机系统的能力以及培养分析和解决题目能力具有重要意义。
2 设计性实验
设计性实验是指给定实验目的、要求和实验条件,由学生自行设计实验方案、选择相关芯片或器件实现的实验。设计性实验的目的在于激发学生学习的主动性和创新意识,培养学生独立思考、综合运用知识、分析和解决复杂题目的能力。
2.1 特征
(1)学习的主动性。设计性实验在给定实验目的和实验条件的条件下,学生在教师的指导下自己设计实验方案,选择实验器材,制定实验操纵步骤或流程,学生必须运用自己把握的知识进行分析和探索。在整个实验过程当中,学生处于主动学习的状态,学习目的明确,独立思维。
(2)内容的撂索性。设计性实验方案的设计与实现过程本身就是一个不断探索的过程,而对实验过程中碰到题目的分析与解决则更离不开探索。探索性恢复了实验在人们熟悉自然、探索科学过程中的本来面目,让实验教学真正成为学生学习知识、培养能力的基本方法和有效途径。
(3)方法的多样性。设计性实验固然实验目的明确,但实验方案可以灵活选择。学生往往可以通过不同的途径和方法达到实验目的,从根本上改变了千人一面的传统验证实验教学模式,有利于创新人才的培养,体现以学生为本的教学思想。
2.2 对实验条件的要求
鉴于设计性实验的探索性以及设计和实现方法的多样性,必然对实验环节提出一些特殊的要求,其中对学时和实验设备的要求最为突出。
(1)学时要求。探索需要花费大量、不确定的时间,但实验教学往往又受总学时和实验场所的限制,因此,实施设计性实验必须解决学时与实际安排上的矛盾。通常的解决方法是课内与课外学时相结合,学生利用课外时间进行方案的设计与完善、利用课内学时验证和实现方案。
(2)实验环境的要求。实验环境是实施实验的必备条件,包括硬件环境或模拟仿真环境。只有提供相应的实验环境,学生才能在课外时间进行方案的设计与优化。
3 仿真在设计性实验中的作用分析
EDA仿真软件的使用能有效解决设计性实验对学时和实验设备的要求,从而在更广泛的范围内推动设计性实验的普及,进步实验教学的质量。EDA软件的仿真包括功能仿真和时序分析,功能仿真用于检验所设计电路功能是否正确,时序分析则既能检验电路的功能也能检验电路的时延关系,通过期序分析器可具体了解电路各处的时延关系,并帮助设计者找到延时最长的关键路径,从而优化系统的速度或消除组合电路中的竞争与险象。
对组成原理课程的设计性实验而言,运算器、数据通路、存储器、时序、硬布线控制器等单元实验以及课程设计等都可通过EDA软件的功能仿真,检验设计电路的正确性;对硬布线控制器实验还可利用仿真软件的时序分析功能检查控制信号的时序列关系是否满足实际控制的要求。研究表明,EDA软件的仿真功能在组成原理设计性实验中具有下列几方面的作用。
(1)功能验证。这也是在实验中使用仿真软件最主要的目的,通过分析不同输进组合条件下输出波形与输进波形之间的逻辑功能关系来判定设计方案的正确性与公道性。
(2)发现并纠正原理图中错误。假如设计原理图中包含错误,在编译阶段EDA软件能发现错误并给出相应的提示信息,借助这些提示信息,可方便地定位错误。从而进步了查错、定位错误和修改错误的效率。
(3)数据冲突识别。数据冲突是组成原理设计性实验中经常碰到的题目。根据设计需要,可能存在多个不同功能部件向同一个目标部件输出信息,此时若缺少三态门部件或输出控制不当就会产生数据冲突。数据冲突可直接导致实验结果出错、电路逻辑功能紊乱、严重时还可损坏实验设备。因此,避免数据冲突是实验指导的重点之一。使用EDA仿真软件,可以有效地识别由于电路连接或控制不当导致的数据冲突。
(4)利用课外学时。EDA软件仿真可以脱离具体的实验平台在装有仿真软件的计算机上进行,这就为利用课外学时进行实验提供了可能性。学生在课外时间利用仿真软件来设计、检验方案的正确性,在课内将检验过的方案在具体的实验平台上实现,大大节约了实验教学的课内时间。
(5)为设计性实验的多样性和探索性提供了支持。EDA仿真环境的开放性为设计性实验的多样性和探索性提供了实验环境支撑,基于EDA软件仿真探索实现方案的多样性,可以在一定程度上克服硬件平台开放受限的不足。
4 基于Quartus II的仿真流程
Quartus II是目前广泛使用的EDA软件之一,其仿真是基于网表(Netlist)和向量波形文件(Vector Waveform File)进行的,因此,仿真的流程主要围绕如作甚被仿真对象建立网表和向量波形文件进行,基于Quartus II的仿真流程及其设置如表1所示。基于表1中的流程和步骤,就可以在Quartus II软件中执行仿真功能了,当然一些具体参数的设置与选择还可能与仿真具体内容有关系。
5 基于EDA仿真软件的组成原理实验数据冲突识别应用举例
通过2个简单的例子来说明如何利用Quartus II软件的仿真功能识别电路连接错误和数据冲突。
(1)由于电路连接错误导致的数据冲突识别。为了说明如何利用EDA仿真软件识别由于电路连接错误而导致的数据冲突,建立如图1所示的电路。图1中的连接错误表现在与门的输出与74181的F3N输出直接相连,由于与门与74181在电路工作期间均产生输出,它们的之间相连将导致冲突。随着电路复杂度的进步,完全依靠人工检查很难发现此类错误,而利用Quartus II软件的编译功能可自动发现,并提示相关的错误信息,根据这些错误信息可以很方便地找到存在错误的连接点。对于本例出现的提示信息为:Quartus II full eomplier W88 unsuccessful l error。
(2)由于控制不当导致的数据冲突识别。为说明如何利用EDA仿真软件识别由于控制不当导致的数据冲突,建立如图2所示的电路。
图1 输出端直接相连的电路
图2中,74244受控地与74181的输出相连接,Quartus II软件能成功编译该电路做在的工程。这类电路的数据冲突往往是由于受控电路74244的控制端GN控制不当而造成的。根据图2的连接情况,当74181和74244都产生输出时就可能发生数据冲突。图3是74244的GN为0时,利用功能仿真得到的74181的4个输出真个波形,从中可以明显发现f1和f2输出端发生了数据冲突,而f0输出端在部分时间短发生了数据冲突。
图4是当74244的GN为1时(此时74244输出为高阻抗),利用功能仿真得到的74181的四个输出真个波形,从中可以发现未发生数据冲突。
组成原理实验中数据冲突的原因还有很多,限于篇幅的限制不再逐一列举,但这些冲突均可通过EDA仿真软件识别。
6 结语
对EDA仿真在组成原理设计性实验中的应用进行了探索,将EDA仿真引进到组成原理的设计性实验中不仅丰富了实验内容、方法和手段,进步了实验效率,而且也使学生接触到现代电子设计的新方法、新手段,更能激发学生实验的积极性和创造性。固然应用举例较简单,但本文提出的思想对研究电类设计性实验的教学模式、推动电类设计性实验的普及都具有意义。不仅如此,借助EDA软件实现的方案正确性检查、电路连接错误判定、数据冲突识别等功能在一定程度上也减少了对实验设备的损耗。对延长实验设备的使用寿命、降低设备维护的工作量和维护本钱也具有重要的意义。