吴荣海+姚丽+李霞
摘 要: 将Logisim引入计算机硬件基础课程开放实验项目的综合性实验项目中,并给出“利用Logisim设计实现原码一位乘法器”实验项目的设计仿真过程,仿真结果证明,将Logisim引入综合性实验项目中具有可行性。
关键词: 计算机硬件基础课程 开放实验项目 综合性实验项目 Logisim
“计算机组成原理”与“数字逻辑电路”是计算机科学与技术专业的硬件基础课程,这两门课程均需要通过实验教学加深学生对理论知识的理解及动手能力的培养。尽管上述两门课程理论与实验教学的先后衔接关系非常明确,但是长期以来两门课程的实验教学缺少有效衔接,导致学生在计算机硬件实验技术方面训练严重不足并影响对相关知识点的理解和掌握[1],从而出现计算机硬件基础课程教师难教、学生厌学的不利现状。
开放实验的目的是更好地培养学生的创新精神和实践能力,其中开设的综合性实验项目旨在培养学生的综合分析能力、实验动手能力、数据处理能力及查阅中外文献资料的能力。研究如何利用开放实验中的综合性实验项目,实现在涵盖计算机组成原理课程教学重点的同时又兼顾到与数字逻辑电路课程间的相互衔接,以形成计算机专业硬件基础课程实验教学体系是十分必要的[2-4]。
1.Logisim在计算机专业硬件基础课程实验教学中的应用可行性
Logisim[6]作为一个数字逻辑电路的设计与仿真软件,相比较EWB,LabVIEW,Multisim,ELVIS,Proteus等软件,具有开源免费可二次开发、无须安装即可运行、软件使用简单易学、仿真结果直观易于理解等优点,适合用于数字逻辑电路的设计与仿真。Logisim除了提供基本的门电路(Gate),还提供编码器(Plexer)、算术单元(Arithmatic)、存储(时序)电路(Memory)、按钮、LED、7段数码管等输入输出(Input/Output)设备。在Logisim中通过简单的鼠标拖拽操作就可以建立起逻辑电路,并通过仿真直观地看到运行结果;另外,在Logisim中还可以利用真值表、逻辑表达式的方式建立逻辑电路。Logisim在“数字逻辑电路”实验教学中的应用是完全可行的[5]。
利用Logisim所提供的子电路(Subcircuit)工具、探查(Probe)工具、通道(Tunnel)工具与分割(Splitter)工具,可以将各个功能部件封装为独立的子电路,然后通过总线连接为一个整体。“计算机组成原理”中大量由基本门电路通过总线连接而成的计算机功能部件实例适合利用Logisim软件设计及仿真[7]。
2.基于Logisim的计算机硬件基础课程综合性实验项目实例
借助Logisim所提供的组件,将理论教学中一些抽象、不便于理解的概念和实现技术进行门电路级的仿真实现并加以调试,加深学生对于所学知识的理解,加强学生利用所学知识解决实际问题的能力。
原码一位乘法对于学生进一步认识计算机ALU中数据信息的加工处理流程,从而进一步加深对计算机硬件组成及整机工作原理的理解,并综合运用硬件基础科学和所学知识设计实现功能部件有重要意义[8]。“利用Logisim设计实现原码一位乘法器”实验项目要求实现两个17位原码表示机器数的乘法,并能够仿真通过。学生在设计实现乘法器过程中,必须综合运用“数字逻辑电路”、“计算机组成原理”课程中学过的设计方法、理论知识才能最终完成项目。因此,将“利用Logisim设计实现原码一位乘法器”作为计算机专业硬件基础课程的综合性实验项目,实现了“利用开放实验中的综合性实验项目涵盖计算机组成原理课程教学重点的同时又能够兼顾到与数字逻辑电路课程间的相互衔接,以形成计算机专业硬件基础课程实验教学体系”的目标。
2.1原码一位乘法
利用原码实现乘法运算是十分方便的。原码表示的两个数相乘,其乘积符号为相乘两个数符号的异域值,数值则为两个数绝对值之积。设:
2.2基于Logisim的原码一位乘法的仿真电路
2.2.1基于Logisim的原码一位乘法的仿真电路控制部分
2.1.2基于Logisim的原码一位乘法的仿真电路运算部分
2.3原码一位乘仿真电路3组测试数据验证
2.3.1第1组测试数据结果
寄存器X:0 1111 1111 1111 1111 B,寄存器Q:1111 1111 1111 1111 B,结果为(其中左边17个LED对应乘积的高17位,右边16个LED对应乘积的低16位):
寄存器X中存放的是被乘数的数值部分,寄存器Q中存放的是乘数的数值部分,即:
利用原码1位乘运算规则[8]计算得:
电路仿真结果与计算结果一致,该组测试数据通过。
2.3.2第2组测试数据结果
寄存器X:0 0001 0010 0011 0100 B,寄存器Q:1010 1011 1100 1101 B,结果为(其中左边17个LED对应乘积的高17位,右边16个LED对应乘积的低16位):
寄存器X中存放的是被乘数的数值部分,寄存器Q中存放的是乘数的数值部分,即:
利用原码1位乘运算规则[8]计算得:
电路仿真结果与计算结果一致,该组测试数据通过。
2.3.3第3组测试数据结果
寄存器X:0 0000 0000 0000 0000 B,寄存器Q:0000 0000 0000 0000 B,结果为(其中左边17个LED对应乘积的高17位,右边16个LED对应乘积的低16位):
寄存器X中存放的是被乘数的数值部分,寄存器Q中存放的是乘数的数值部分,即:
利用原码1位乘运算规则[8]计算得:
电路仿真结果与计算结果一致,该组测试数据通过。
3.结语
通过仿真结果及验证,3组测试数据均通过测试,证明所给基于Logisim的原码一位乘法仿真电路正确,“利用Logisim设计实现原码一位乘法器”作为计算机硬件类基础课程开放实验项目中的综合性实验项目可行。
参考文献:
[1]盛建伦,巩玉玺,刘淑霞,等.计算机专业硬件基础课程实验教学体系的研究[J].实验室研究与探索,2013(10):387-391.
[2]侯宏霞.关于提高“计算机组成原理实验”课程教学质量的探索[J].计算机教育,2009(15):154-156.
[3]刘京锐,李志平.计算机硬件类课程实践教学改革与实践[J].实验技术与管理,2010,27(4):130-132.
[4]马汉达,鲍可进.计算机硬件课程实验教学改革与实践[J].实验室研究与探索,2013(10):360-362.
[5]胡世昌.用Logisim改革数字电路实验[J].沈阳师范大学学报(自然科学版),2015,33(2):301-304.
[6]BURCH C.Logisim[EB/OL].[2016-1-23].http://www.cburch.com/logisim/
[7]Minnies Stuff.An Example Hardwired CPU[EB/OL].[2016-1-23].http://minnie.tuhs.org/CompArch/Tutes/week03.html
[8]唐朔飞.计算机组成原理[M].北京:高等教育出版社,2008:219-247.