Logisim实验
中国地质大学信息工程学院
2010-3-26
Logisim实验
修订历史记录
日期 2009-4-2 2009-4-20 2010-4-27 2011-3-26 2011-3-31 2012-10-21 2013-9-21 版本号 初稿 增加fsm部分 修改fsm部分 补充部分中文缺失的地方,增加中文翻译 补充子电路和分解器的说明 删减部分实验(触发器) 修改部分ALU的内容(不自己做这个部件) 修改说明 修改人 陈亮 陈亮 陈亮 陈亮 核准人 陈亮 陈亮 陈亮
计算机组成与设计
模板版本:2.1 2 / 14
Logisim实验
目 录
1
熟悉环境 .............................................................................................................................................. 4 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 2
基本功能: .............................................................................................................................. 4 练习二(ToolBar主要功能) ....................................................................................................... 4 练习子电路 .............................................................................................................................. 5 练习分解器Splitter.................................................................................................................. 5 练习(传说中的选择器啊) .................................................................................................. 5 练习 .......................................................................................................................................... 6 练习 .......................................................................................................................................... 6 练习 .......................................................................................................................................... 6
FSM ....................................................................................................................................................... 6 2.1 2.2 2.3 2.4
基础:根据真值表设计电路 .................................................................................................. 6 看电路,分析功能 .................................................................................................................. 7 看功能,分析电路(分析伯克利实验八的第一个实验的电路) ....................................... 7 伯克利实验十的Part (A): Advanced Logisim的Exercise A.1: Storing State .......................... 8
3 4
ALU ...................................................................................................................................................... 11 CPU(2次实验课,伯克利prj3) ................................................................................................... 11
计算机组成与设计
模板版本:2.1 3 / 14
Logisim实验
1 熟悉环境
学习使用logisim,熟悉基本功能。
1.1 基本功能:
? 学会使用toolbar上的功能。
? 学会增加子电路,并能够将子电路放到main电路中或者其他电路中使用 ? 学会使用时钟
? 学会使用splitter,理解带宽的含义。这部分需要实现一个8位带宽的输入,其中2位输
入到一个与门,中间3位输入到一个3输入的或门,剩下三位输入到其他已有的门电路。
1.2 练习二(ToolBar主要功能)
我们将通过创建一个非常简单的电路来感受一下如何放置门和电线。 1、
首先,单击“AND gate”
按钮。这时鼠标附近会出现一个与门的图标,在主电路
图窗口任意位置单击鼠标以放置与门。
2、 3、
单击“Input Pin” 单击“Onput Pin”
按钮。在你的与门左侧放置两个输入(input pin)。
按钮。在你的与门右侧放置一个输出(output pin)。这时你的电
路图看上去可能如下图所示:
4、
单击“Wire tool”按钮
。单击并拖动它,以便将输入端和与门的左边相连。如果
你只画垂直电线和水平电线的话,这一步可以分成几步。首先画一条水平电线,放开鼠标,单击并拖动电线的末端画一条垂直电线。你可以把电线连接到与门左边的任意一条腿上。重复这一过程,把与门的输出和LED相连。这时你的电路图看上去可能如下图所示:
5、
最后,单击“Poke”按钮,试着单击电路图中的输入,看看会发生什么。这和你想象
计算机组成与设计
模板版本:2.1 4 / 14
Logisim实验
中的与门的功能相符么?
1.3 练习子电路
正如C程序可以包含帮助函数一样,一个电路图中也可以含有子电路。在这部分中,我们会创建几个子电路,并示范一下他们的使用。
1、 新建一个电路图(File?New)。
2、 新建一个子电路(Project?Add Circuit),并命名为NAND。
3、 在新电路图窗口中,你可以看见你刚创建的含有两个输入一个输出NAND电路。
4、 在屏幕左侧电路选择板中双击“main”以返回主电路图。这时,最初的空白电路图会显示
出来,而NAND电路图则被保存。 5、 单击列表中的“NAND”,告诉Logisim你想吧“NAND”电路添加到主电路中。
6、 试着把“NAND”电路放到主电路图中。如果你正确地做到了,你会看到一个左边含两个
输入右边含一个输出的门。试着把输入输出相连,看看它是否和想象中一样工作。
7、 重复这些步骤,创建其他几个子电路:NOR,XOR,2 to 1 MUX,和 4 to 1 MUX。除了AND,
OR和NOT外,不要使用其他内置门。但是,一旦你创建了一个子电路,你可以使用它来创建其他电路。
提示:不熟练者可以查看讲义学习如何创建。你可能需要使用一些你定制的电路来设计其他电路。
1.4 练习分解器Splitter
它是你这次课上需要使用的最基本的工具之一。为了示范如何使用它,你需要创建一个当最高有效位和最低有效位为1时输出1的电路。
1、 创建一个名为“Exer2”的子电路。 2、 在该电路中添加一个8位输入。 3、 在该电路中添加一个1位输入。
4、 选择“Splitter”电路,这个电路可以将一根电线分解成几根小电线。 5、 在放置“Splitter”电路前,将“Bit Width In”属性改为8,“Fan Out”属性改为3。这时如果将鼠标移到电路图上,光标看上去就像
6、 现在,选择哪些位输出到输入的哪一部分。最低有效位为第0位,最高有效位为第7位。
改变第1、2、6位输出到输入1。或者,选择“None”,使得第1、2、6位不输出到任一个输入。
7、 配置完分解器后就可以把它放置在电路中。 再添加一个与门,该电路就完成了。
1.5 选择器(可不做)
实现一个二路的复用器的子电路。
问题:如果信号是一位,而备选的两个输入时32bit,电路怎么做?
计算机组成与设计
模板版本:2.1 5 / 14