一款设计和模拟数字逻辑电路的LogiSim工具

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一款设计和模拟数字逻辑电路的LogiSim工具相关的知识,希望对你有一定的参考价值。

1. LogiSim简介

Logisim是一种用于设计和模拟数字逻辑电路的教育工具。凭借其简单的工具栏界面和构建它们时的电路仿真,它非常简单,有助于学习与逻辑电路相关的最基本概念。由于能够从较小的子电路构建更大的电路,并通过鼠标拖动来绘制电线束。

2. LogiSim下载

可以通过Logisim的官网下载适合你机器的Logisim的软件,启动Logisim应用程序。​​下载网址​

3. LogiSim使用简介

3.1 LogiSim初次启

您启动Logisim时,您将看到类似于以下内容的窗口。由于您可能使用的系统与我的不同,因此某些细节可能略有不同。

一款设计和模拟数字逻辑电路的LogiSim工具_引脚

所有Logisim分为三个部分,称为资源管理器窗格,属性表和 画布。上面这些部分是菜单栏和工具栏。

一款设计和模拟数字逻辑电路的LogiSim工具_引脚_02

我们可以快速处理资源管理器窗格和属性表。此外,菜单栏不言自明。这留下了工具栏和画布。画布是你画电路的地方; 并且工具栏包含您将用于完成此任务的工具。

3.2 示例(制作一个异或门)

由数电课本上的知识我们可以得知,异或门的电路大致如下图:

一款设计和模拟数字逻辑电路的LogiSim工具_多路复用_03

我建议首先将门插入一种骨架,然后再用线连接它们来建立一个电路。我们要做的第一件事就是添加两个AND门。单击工具栏中的AND工具(列出倒数第二个工具)。然后在编辑区域中单击您想要第一个AND门的位置。一定要为左边的东西留出足够的空间。然后再次单击AND工具并将第二个AND门置于其下方。

一款设计和模拟数字逻辑电路的LogiSim工具_引脚_04

注意AND门左侧的五个点。这些是可以连接电线的点。碰巧我们只将其中两个用于我们的XOR电路; 但对于其他电路,您可能会发现有两条以上的电线连接到AND门是有用的。现在添加其他门。首先单击OR工具; 然后单击您想要的位置。并使用NOT工具。将两个NOT门放入画布。我在NOT门和AND门之间留了一点空间; 但是,如果你愿意的话,你可以将它们相互对立,并节省你以后用电线连接它们的努力。现在我们要将两个输入x和y添加到图中。选择输入工具,然后放下引脚。您还应该使用输出工具。在OR门的输出旁边放置一个输出引脚。(同样,我在OR门和输出引脚之间留下一点空间,但您可以选择将它们放在彼此旁边。

一款设计和模拟数字逻辑电路的LogiSim工具_多路复用_05

如果您决定不喜欢放置内容的位置,则可以使用编辑工具将其选中并将其拖动到所需位置。或者,您可以通过从“编辑”菜单中选择“删除”或按Delete键将其完全删除。当您放置电路的每个组件时,您会注意到,只要放置组件,Logisim就会恢复到编辑工具,以便您可以移动最近放置的组件或(我们很快就会看到)连接组件通过创建电线给他人。如果要添加最近放置的组件的副本,则快捷方式是按Control-D复制选择。(某些计算机使用其他键作为菜单,例如Macintoshes上的Command键。您可以使用D键按下该键。)

在画布上阻止所有组件后,您就可以开始添加电线了。选择编辑工具。当光标位于接收导线的点上方时,将在其周围绘制一个小的绿色圆圈。在那里按下鼠标按钮并尽可能地拖动电线。添加电线时Logisim非常智能:每当电线在另一根电线上结束时,Logisim会自动连接它们。您还可以使用编辑工具拖动其中一个端点来“扩展”或“缩短”导线。Logisim中的电线必须是水平或垂直的。为了将上输入连接到NOT门和AND门,我添加了三条不同的线。

一款设计和模拟数字逻辑电路的LogiSim工具_多路复用_06

Logisim自动将电线连接到门和彼此。这包括如上所述在T交叉点自动绘制圆,表示导线已连接。在绘制电线时,您可能会看到一些蓝色或灰色电线。<p style="color:red"> Logisim中的蓝色表示该点的值为“未知”,灰色表示该线未连接任何东西。当你正在建造一个电路时,这不是什么大问题。但是当你完成它时,你的电线都不应该是蓝色或灰色。(OR门的未连接腿仍然是蓝色的:没关系。) </p>如果你认为一切都应该连接后你有蓝色或灰色线,那么就会出现问题。将电线连接到正确的位置非常重要。Logisim在组件上绘制小点以指示电线应该连接的位置。当你继续,你会看到点从蓝色变为浅色或深绿色。连接好所有电线后,插入的所有电线本身都会呈浅绿色或深绿色。我们的最后一步是测试我们的电路,以确保它真正做到我们想要的。Logisim已经在模拟电路了。让我们再看看我们在哪里。

一款设计和模拟数字逻辑电路的LogiSim工具_引脚_07

注意,输入引脚都包含0; 输出引脚也是如此。这已经告诉我们,当两个输入都为0时,电路已经计算出0。现在尝试另一种输入组合。选择戳工具小手图案并通过单击它们开始戳输入。每次你戳一个输入,它的值将切换。例如,我们可能会首先查看底部输入。

一款设计和模拟数字逻辑电路的LogiSim工具_工具栏_08

当您更改输入值时,Logisim将向您显示哪些值沿着导线向下移动,方法是将它们指示为绿色以指示1值或将深绿色(几乎为黑色)指示为0值。您还可以看到输出值已更改为1。到目前为止,我们已经测试了真值表的前两行,输出(0和1)与所需的输出相匹配。

一款设计和模拟数字逻辑电路的LogiSim工具_工具栏_09

通过不同的组合戳开关,我们可以验证其他两行。如果他们都匹配,那么我们就完成了:电路工作!要归档已完成的工作,您可能需要保存或打印电路。文件菜单允许这样,当然它也允许您退出Logisim。但为什么现在退出?现在您已经完成了教程,您可以通过构建自己的电路来试验Logisim。如果您想构建具有更复杂功能的电路,那么您应该浏览帮助系统的其余部分,看看您还能做些什么。Logisim是一个功能强大的程序,允许您构建和测试大型电路; 这个一步一步的过程只是划伤了表面。

3.3 输入个数设置

在一个电路中,logisim默认一个门支持有五个输入,但是我们同样也可以调整输入个数的数量,点击一个门查看他的属性,并修改输入个数:

一款设计和模拟数字逻辑电路的LogiSim工具_引脚_10

在异或门中,我们可以把这个输入的个数改为2个。

3.4 位宽设置

电路中每个元件的每个输入和输出都有一个与之相关的位宽。通常位宽为1,并且无法改变它,但Logisim的许多内置组件都包含允许您自定义其输入和输出的位宽的属性。下面的屏幕截图显示了一个简单的电路,用于查找两个三位输入的按位AND。注意三位输出是两个输入的按位AND。所有组件都经过自定义,可通过其Data Bits属性处理三位数据; 屏幕截图显示AND门属性,包括3的Data Bits属性。

一款设计和模拟数字逻辑电路的LogiSim工具_多路复用_11

Logisim中的所有组件都为每个输入和输出定义了一个位宽。相反,导线的位宽未定义:相反,导线的宽度适应其所连接的组件。如果导线连接两个要求不同位宽的组件,Logisim会抱怨“不兼容的宽度”并以橙色表示有问题的位置。在下面,输出引脚的数据位属性已更改为1,因此Logisim抱怨线路无法将三位值连接到一位值。

一款设计和模拟数字逻辑电路的LogiSim工具_工具栏_12

连接不兼容位置的电线(以橙色绘制)不带值。对于单比特电线,您可以一目了然地看到电线带有什么价值,因为Logisim根据值对电线颜色或深绿色进行着色。它不显示多位线的值:它们只是黑色。但是,您可以使用戳工具单击它来探测导线。

一款设计和模拟数字逻辑电路的LogiSim工具_工具栏_13

此探测功能有助于使用线束调试电路。

3.5 创建子电

3.5.1 创建电路

每个Logisim项目实际上都是一个电路库。在最简单的形式中,每个项目只有一个电路(默认情况下称为“main”),但很容易添加更多:从“项目”菜单中选择“添加电路…”,然后为新电路键入您喜欢的任何名称想要创造。假设我们要构建一个名为“2:1 MUX”的2对1多路复用器。添加电路后,Logisim将如下所示。

在资源管理器窗格中,您现在可以看到项目现在包含两个电路,“main”和“2:1 MUX”。Logisim在当前正在观看的电路图标上绘制放大镜; 当前电路名称也出现在窗口的标题栏中。编辑电路后看起来像2:1多路复用器,我们可能会得到以下电路。

一款设计和模拟数字逻辑电路的LogiSim工具_多路复用_14

3.5.2 使用子电路

现在假设我们想要使用2对1多路复用器的实例构建4对1多路复用器。当然,我们首先会创建一个新电路,我们将其称为“4:1 MUX”。要增加2到1多路复用器到我们的电路中,我们点击2:1多路复用器电路,一旦在资源管理器窗格中选择它作为一个工具,那么我们可以通过画面内点击添加它的副本,表示为框。

如果要双击资源管理器窗格中的2:1 MUX电路,则窗口将切换为编辑2:1 MUX电路。在构建电路之后,我们最终得到以下结果。

我们用于4对1多路复用器的电路使用3对2对1多路复用器,每个多路复用器都绘制成一个带有引脚的盒子。此框上的引脚对应于2:1 MUX电路中的输入和输出引脚。盒子西侧的两个引脚对应于2:1 MUX电路中面向东的两个引脚; 盒子东侧的引脚对应于2:1 MUX的朝西引脚(恰好是输出引脚); 盒子南侧的针脚对应于2:1 MUX的朝北针脚。盒子西侧的两个引脚的顺序对应于子电路设计中的自上而下的顺序。(如果盒子的北侧或南侧有多个引脚,它们将对应于子电路中相同的左右顺序。)如果子电路布局中的引脚具有与之关联的标签,则 当用户将鼠标悬停在子电路组件的相应位置上时,Logisim将在尖端(即临时文本框)中显示该标签。(如果您发现这些提示很烦人,可以通过“ 首选项”窗口的“布局”选项卡禁用它们 。)

一款设计和模拟数字逻辑电路的LogiSim工具_引脚_15

3.6 编辑子电路外观

3.6.1 默认外观

默认情况下,当子电路放置在较大的电路中时,它被绘制为一个矩形,其中一个凹口表示子电路布局的北端。引脚将根据它们的面向放置在矩形的边框上:布局中朝东的引脚(通常出现在布局的西侧)将放置在矩形的西侧,根据其自上而下的排序布局。根据布局中从左到右的顺序,布局中朝南的引脚(通常朝向布局的北侧)将放置在矩形的北侧。默认矩形可以选择包含一些将出现在矩形中间的字母。要指定此项,请选择选择工具(并单击电路布局的背景。这将显示属性表中的电路属性,包括共享标签,共享标签面和共享标签字体属性。共享标签属性的值将绘制在矩形的中心; “共享标签面”属性可自定义文本的绘制方向,当然“共享标签字体”属性可自定义使用的字体。

3.6.2 定制外观

默认外观非常实用,Logisim确实存在多年,没有其他选择。但是,如果您希望以不同方式绘制子电路,可以从“项目”菜单中选择“ 编辑电路外观 ”,Logisim的界面将从其常规布局编辑界面切换到用于绘制电路外观的界面。(您也可以单击资源管理器窗格上方工具栏中的最右侧图标。)下面,我们正在编辑2:1多路复用器的外观,以便使用通常的梯形而不是矩形绘制。

一款设计和模拟数字逻辑电路的LogiSim工具_引脚_16

对于如上所示绘制的2:1多路复用器的外观,4:1多路复用器的布局将如下所示。

一款设计和模拟数字逻辑电路的LogiSim工具_多路复用_17

外观编辑器就像传统的绘图程序,但是有一些特殊符号用于指示绘图在放置到电路布局时的工作方式。无法删除这些特殊符号。绿色圆圈有一条线从它出来,我们称之为锚。 每个子电路外观中只有一个锚点。电路中的每个元件都有一个标识其位置的点; 用户在创建新组件时会看到这一点:鼠标单击只标识一个位置,组件相对于该位置放置(通常在鼠标位置具有主输出)

锚点标识鼠标相对于整个绘图的位置子电路已创建。锚也标识外观的面向,如锚点的线指向其圆的方向所示。将子电路放入布局时,用户可以改变子电路的面向; 锚的面向指示外观朝向的方向。在我们的示例中,锚点朝向东方,4:1多路复用器中的每个子电路实例也面向东方,因此它们都以与2:1多路复用器外观相同的方向绘制。

带有圆点的蓝色圆圈和正方形是子电路的 端口。电路中的输入和输出引脚数量与端口数一样多。对应于输入的端口绘制为正方形,而对应于输出的端口绘制为圆形。每个端口指示连接到电路的导线如何与布局中的输入或输出引脚相对应。当您选择一个端口时,Logisim将通过在窗口右下角弹出布局的微型图表来指示相应的引脚,相应的引脚用蓝色绘制。选择所有端口时不会发生这种情况。

工具栏包含用于添加其他形状的工具,如下所示,其中包含shift和alt键如何修改工具行为的说明。此外,在按下控制键的情况下单击或拖动鼠标会将鼠标位置捕捉到最近的网格点。

一款设计和模拟数字逻辑电路的LogiSim工具_多路复用_18

4. 参考文献

​LogSim用户手册​

​配置java环境变量​

以上是关于一款设计和模拟数字逻辑电路的LogiSim工具的主要内容,如果未能解决你的问题,请参考以下文章

逻辑基础

逻辑基础

逻辑电路复杂?我们用Logisim一键解决!!

数字电路逻辑设计笔记:基础知识

小型数字系统---运动码表设计

Logisim实现计算机硬件系统设计