logisim入门.doc

上传人:hw****26 文档编号:3039581 上传时间:2019-05-18 格式:DOC 页数:15 大小:171.50KB
下载 相关 举报
logisim入门.doc_第1页
第1页 / 共15页
logisim入门.doc_第2页
第2页 / 共15页
logisim入门.doc_第3页
第3页 / 共15页
logisim入门.doc_第4页
第4页 / 共15页
logisim入门.doc_第5页
第5页 / 共15页
点击查看更多>>
资源描述

1、Logisim 使用Logisim 实验计算机组成与设计 模板版本:2.1 2 / 15目 录1 熟悉环境 .41.1 基本功能: .41.2 练习二(ToolBar 主要功能) .41.3 练习子电路 .51.4 练习分解器 Splitter .51.5 练习(传说中的选择器啊) .51.6 练习 .61.7 练习 .61.8 练习 .62 FSM .62.1 基础:根据真值表设计电路 .62.2 看电路,分析功能 .72.3 看功能,分析电路(分析伯克利实验八的第一个实验的电路) .82.4 伯克利实验十的 Part (A): Advanced Logisim 的 Exercise A.1

2、: Storing State .83 ALU.114 CPU(2 次实验课,伯克利 prj3) .11Logisim 实验计算机组成与设计 模板版本:2.1 3 / 151 熟悉环境学习使用 logisim,熟悉基本功能。2 Preparation下载 Logisim 软件,启动 Logisim 应用程序。输入java -jar logisim-2.7.1.jar如果想知道更多关于 Logisim 的内容,可以访问 Logisim 网站2.1 基本功能: 学会使用 toolbar 上的功能。 学会增加子电路,并能够将子电路放到 main 电路中或者其他电路中使用 学会使用时钟 学会使用 sp

3、litter,理解带宽的含义。这部分需要实现一个 8 位带宽的输入,其中 2 位输入到一个与门,中间 3 位输入到一个 3 输入的或门,剩下三位输入到其他已有的门电路。2.2 练习二(ToolBar 主要功能)我们将通过创建一个非常简单的电路来感受一下如何放置门和电线。1、 首先,单击“AND gate” 按钮。这时鼠标附近会出现一个与门的图标,在主电路图窗口任意位置单击鼠标以放置与门。2、 单击“Input Pin” 按钮。在你的与门左侧放置两个输入(input pin)。3、 单击“Onput Pin” 按钮。在你的与门右侧放置一个输出(output pin)。这时你的电路图看上去可能如下

4、图所示:Logisim 实验计算机组成与设计 模板版本:2.1 4 / 154、 单击“Wire tool”按钮 。单击并拖动它,以便将输入端和与门的左边相连。如果你只画垂直电线和水平电线的话,这一步可以分成几步。首先画一条水平电线,放开鼠标,单击并拖动电线的末端画一条垂直电线。你可以把电线连接到与门左边的任意一条腿上。重复这一过程,把与门的输出和 LED 相连。这时你的电路图看上去可能如下图所示:5、 最后,单击“Poke”按钮,试着单击电路图中的输入,看看会发生什么。这和你想象中的与门的功能相符么?2.3 练习子电路正如 C 程序可以包含帮助函数一样,一个电路图中也可以含有子电路。在这部分

5、中,我们会创建几个子电路,并示范一下他们的使用。1、 新建一个电路图(FileNew) 。2、 新建一个子电路(ProjectAdd Circuit) ,并命名为 NAND。3、 在新电路图窗口中,你可以看见你刚创建的含有两个输入一个输出 NAND 电路。4、 在屏幕左侧电路选择板中双击“main”以返回主电路图。这时,最初的空白电路图会显示出来,而 NAND 电路图则被保存。5、 单击列表中的“NAND” ,告诉 Logisim 你想吧“NAND ”电路添加到主电路中。6、 试着把“NAND”电路放到主电路图中。如果你正确地做到了,你会看到一个左边含两个输入右边含一个输出的门。试着把输入输出

6、相连,看看它是否和想象中一样工作。7、 重复这些步骤,创建其他几个子电路:NOR,XOR,2 to 1 MUX,和 4 to 1 MUX。除了AND,OR 和 NOT 外,不要使用其他内置门。但是,一旦你创建了一个子电路,你可以使用它来创建其他电路。提示:不熟练者可以查看讲义学习如何创建。你可能需要使用一些你定制的电路来设计其他电路。2.4 练习分解器 Splitter它是你这次课上需要使用的最基本的工具之一。为了示范如何使用它,你需要创建一个当最高有效位和最低有效位为 1 时输出 1 的电路。1、 创建一个名为“Exer2”的子电路。2、 在该电路中添加一个 8 位输入。3、 在该电路中添加

7、一个 1 位输入。4、 选择“Splitter”电路,这个电路可以将一根电线分解成几根小电线。5、 在放置“Splitter”电路前,将“Bit Width In”属性改为 8, “Fan Out”属性改为 3。这时如果将鼠标移到电路图上,光标看上去就像6、 现在,选择哪些位输出到输入的哪一部分。最低有效位为第 0 位,最高有效位为第 7 位。Logisim 实验计算机组成与设计 模板版本:2.1 5 / 15改变第 1、2 、6 位输出到输入 1。或者,选择“None” ,使得第 1、2 、6 位不输出到任一个输入。7、 配置完分解器后就可以把它放置在电路中。再添加一个与门,该电路就完成了。

8、2.5 练习(传说中的选择器啊)实现一个二路的复用器的子电路。问题:如果信号时一位,而备选的两个输入时 32bit,电路怎么做?2.6 练习实现如上子电路。2.7 练习实现一个一位的触发器,注意要用时钟。用 logisim 的时钟实验一下结果,看看 Q 是否存储值。用这个子电路实现一个 32 位的寄存器。2.8 练习实现一个 3-8 译码器。Logisim 实验计算机组成与设计 模板版本:2.1 6 / 153 FSM3.1 基础:根据真值表设计电路上课时,你只是看到了真值表。在这次实验中,通过 Logisim,你有足够的工具来实现真值表。假定真值表如下图所示,完成以下任务。in1 in0 |

9、 out1 out00 0 | 0 10 1 | 1 01 0 | 1 11 1 | 0 01、 从上面的真值表中推导出 out1 和 out0 的规范的 SOP 布尔表达式。2、 根据布尔代数中的公式简化布尔表达式(看讲义或者 google 来复习这部分内容) 。得到最简式后,你可以检查一下该等式是否满足众所周知的那些门的模式。3、 在 Logisim 的主电路图中实现该最简式。可以随意使用你之前设计的那些子电路。务必使用“Text” 工具来注记你的输入输出。选择“Text” 工具工具,在电路图上单击,并输入文本即可。如果输错了,你可以通过“selection“ 工具来选中文本对象,编辑位于

10、属性电路浏览器下侧的属性列表中的“Text”属性。3.2 看电路,分析功能下面的 FSM 电路,假设初始状态 Register 1 =1; register 2=0 理解下面 fsm 的功能,绘出波形图(参考 ppt) 写出前 5 个周期两个寄存器的值Logisim 实验计算机组成与设计 模板版本:2.1 7 / 153.3 看功能,分析电路(分析伯克利实验八的第一个实验的电路)Consider the design of a finite state machine (FSM) with two 1-bit inputs (clk and CE), and one 2-bit output

11、(X). clk is the clock signal and CE is the “count enable“ signal. While CE=1, the FSM behaves as a “binary counter“, i.e. its output cycles through the pattern 00, 01, 10 11, 00, moving from one output value to the next on each positive edge of clk. If CE = 0 the output value remains unchanged.Note

12、that FSM has no reset input signal. You can assume that it starts up in any legal state.Sketch the state transition diagram that represents the behavior of this FSM in the style of the lecture notes.考虑设计一个 FSM,有 2 个 1 位的输入(clk 和 CE),还有一个 2 位的输出(X)。clk 是时钟信号,CE 是“计数使能”信号。当 CE=1 的时候,FSM 的行为就是一个二进制计数器,

13、它的输出一直就是按照 00,01,10,11,00 状态进行变化,在每个上升沿时钟将状态转换到下一状态。当 CE=0 的时候,输出值不变。Logisim 实验计算机组成与设计 模板版本:2.1 8 / 15注意 FSM 没有复位信号,你可以以任何合法的状态开始。根据上面描述,绘制状态转移图分析 FSM,并考虑一下实现的问题(只考虑,不实现)。3.4 伯克利实验十的 Part (A): Advanced Logisim 的 Exercise A.1: Storing State以下是网络上下载的 A.1Lets implement the circuit you worked on in Lab

14、 8. The difference between this circuit and the circuits youve built for lab so far is that you need some registers. The following will show you how to add registers to your circuit. 我们现在开始考虑实现 2.1 和 2.2 中的那个 FSM,这 2 个电路和我们以前实现的电路最大的区别在于现在我们需要用到寄存器。(即现在的电路不再是单纯的组合逻辑电路)。下面的提示可以告诉你如何在自己的电路中使用软件内置的寄存器。

15、1. Create a new subcircuit (Project-Add Circuit). Name this new subcircuit, Fib8. 创建一个新的子电路,假设名字叫 fib82. Load in the Arithmetic Library (Go to Project-Load Library-Built in Library and select “Arithmetic“). This library contains elements that will perform basic mathematical operations. When you load

16、 a library, the circuit browser at left will have a new “Arithmetic“ folder. 菜单“Project”-“Load Library”-“Built In Library”,选择“Arithmetic ”,这个库包含一些基本的算术操作电路。当你 load 一个库的时候,左边的电路列表就会显示出一个“Arithmetic”文件夹。其他的你自己试试看?Logisim 实验计算机组成与设计 模板版本:2.1 9 / 153. Select the adder subcircuit from the “Arithmetic“ li

17、brary and place the adder into your Fib8 subcircuit 选择 “Arithmetic“中的一个加法器子电路.,将它放在 Fib8 电路中4. Load in the Memory Library (Go to Project-Load Library-Built in Library and select “Memory“). This library contains memory elements used to keep state in a circuit. A new “Memory“ folder will appear in the

18、 circuit browser. 按照上面类似的方法加载“Memory ”库,这个库包含一些存储电路。加载成功后,你在左边列表中会看到“Memory”文件夹。5. Select the register from the “Memory“ folder and place two registers into your subcircuit. Below is an image diagraming the parts of a register. 从“Memory ”库中选择寄存器,增加两个寄存器到我们的子电路中来。寄存器应该是下面这个样子。注意 reset 和时钟很近,别弄混了。6. C

19、onnect a clock to your register. You can find the clock circuit element in the “Base“ folder in the circuit browser. 为寄存器连接上时钟。时钟电路在“base”节点下寻找,你懂的。7. Connect the two registers and adder together based on the diagram in Lab 8. 两个寄存器和加法器连接起来,实现 2.1 和 2.2 的电路。You may notice that when you connect the a

20、dder to a register, you will get a “Incompatible widths“ error. This means that your wire is trying to connect two pins together with different bit widths. If you click on one the adder with the “Selection“ tool, you will notice that in the box below circuit browser will have a field called “Data Bi

21、t Width“. This field controls the number of bits the the adder will add. Change this field to 8 and the “Incompatible widths“ error should now go away. In general, the box below the circuit browser will list the properties of a given circuit element. Other circuit elements will have other properties

22、. 你可能已经注意到当你连接加法器到寄存器的时候,可能遇到“Incompatible widths”错误(请回顾试验 1 的 1.1 的)。在 logisim 软件中,连线两端的带宽必须是相同的Logisim 实验计算机组成与设计 模板版本:2.1 10 / 158. Add three output pins to your circuit so that you may monitor what comes out of the adder and both registers. Thus, by the end, your circuit should look like as foll

23、ows: 增加三个输出到你的电路,检测加法器和寄存器的值。最后,你的电路可能做成如下这个样子(这是 2.1 的电路)Now lets see if you built your circuit correctly. 好,我们现在可以测试一下你的电路是否正确。如果正确,你也可以来实现以下 2.2 的 FSM 的电路。电路有了时钟后,大家是不是不知道如何测试了呢?下面这段步骤,是告诉你如何使用你的子电路,并用软件功能模拟时钟,来检测电路实现的,大家自己看看。1. Go back to the “main“ subcircuit by double clicking on “main“ in the

24、 circuit browser. 2. Change the “Facing“ property to another direction. Any circuit with the “Facing“ property can be rotated to accomodate wires as you need them. This will definately be useful when you do your project. 3. Place your Fib8 subcircuit into the main subcircuit. 4. Select the Fib8 subc

25、ircuit you just placed into main. 5. Connect output pins to the Fib8 subcircuit. Output pins are ordered top to bottom, left to right. Thus, if you followed the schematic above, then the top pin on the right side outputs the value one of the top register, the middle pin is the output of adder, and t

26、he bottom pin is the output of the bottom register. 6. Right click on your Fib8 subcircuit, and select “View Fib8“. This is the ONLY method to preserving state. Double-clicking on the circuit at the circuit browser at left makes logisim think you want to edit the circuit instead of just checking wha

27、t state the circuit has. Note: You can use Simulate-Go In To State-*Circuit Name*, but that allows you go into the first circuit of that type. If you placed two Fib8 circuits down, it only takes you to the first Fib8 circuit to put down. 7. Initialize the register values to 1. You can do this by first, click on the register value with the poke tool. Then, type the hex value in. 8. To return to the main circuit while preserving state, go to Simulate-Go Out To State-main. Alternatively, you can hold Control key and press Up-Arrow.

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 精品笔记

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。