使用 Linux 进行逻辑运算
我已经介绍了大量不同的科学应用程序,您可以在计算机上运行这些程序以进行相当复杂的计算,但到目前为止,我还没有真正考虑过运行此软件的硬件。因此,在本文中,我将介绍一个软件包,该软件包可让您深入了解用于构建计算单元的逻辑门级别。
在某些时候,您可能会发现您的硬件需要做太多的工作。在这些情况下,您需要了解您的硬件是什么以及它是如何工作的。因此,让我们从最低级别开始:低级的逻辑门。为此,让我们使用一个名为 Logisim 的软件包,以便在各种分组中玩逻辑门。
Logisim 应该在大多数发行版的软件包管理系统中可用。例如,在基于 Debian 的发行版中,使用以下命令安装它
sudo apt-get install logisim
然后,您可以从桌面环境的菜单中启动它,也可以打开终端,输入 logisim
并按 Enter 键。您应该看到应用程序的主区域,您可以在其中开始设计您的逻辑电路。在左侧,有一个选择窗格,其中包含可用于设计的全部单元,包括电线和逻辑门等基本元件,以及内存或算术单元等更复杂的单元。

图 1. 当您第一次启动 Logisim 时,您会得到一个空白项目,您可以在其中开始设计您的第一个逻辑电路。
为了学习如何开始使用 Logisim,让我们看看如何设置最基本的逻辑电路之一:与门。
图 2. 您可以轻松地将逻辑门添加到电路中以模拟计算。
如果您单击左侧的“门”条目,您将看到可用逻辑门的完整列表。单击“与门”允许您通过单击要添加它们的位置将它们添加到设计窗格。在左侧底部,您将看到一个窗格,其中显示所选门的属性。您可以使用此窗格编辑这些属性,以使门的行为完全符合您的要求。对于此示例,让我们将输入数量值从 5 更改为 2。下一步是添加一个输出引脚,以便查看输出何时为 1 或 0。您可以在接线部分找到引脚。
在与门的正面,您需要添加引脚,以便您可以控制输入。在每个引脚的属性中,您将看到您可以更改引脚是否应该是输出引脚。您还可以设置引脚是否应该是三态引脚。
最后一步是通过简单地在各个组件之间单击和拖动来连接所有这些部件。
图 3. 您可以将额外的项目(如输入和输出)添加到您的逻辑电路中。
默认情况下,输入引脚当前设置为 0,因此一旦连接电线,您应该看到输出设置为 0。为了切换输入引脚,您首先需要从窗口顶部的工具栏中选择切换工具(形状像指向手)。选择此工具后,您可以单击输入引脚以更改其状态。一旦两个输入都设置为 1,您应该看到输出也翻转为 1。
虽然您可以从第一原理构建电路并查看它们的行为方式,但 Logisim 还允许您首先定义行为,然后生成一个电路,该电路为您提供定义的行为。单击“窗口”→“组合分析”菜单项会弹出一个新窗口,您可以在其中执行此操作。
图 4. 您可以通过首先定义您想要的行为,然后允许它生成一个电路来反向构建您的逻辑电路,该电路为您提供所需的行为。
第一步是提供输入列表。您只需添加一系列标签,每个输入一个标签。对于此示例,您将定义 x、y 和 z。接下来,您需要单击“输出”选项卡,并对要建模的输出数量执行相同的操作。对于此示例,我们只定义一个输出。
最后一步实际上是定义链接输入和输出的行为。这是通过逻辑表完成的。因此,在这里,除非 x 和 z 或 y 和 z 都为高电平,否则输出将为 0。
图 5. Logisim 包含一个工具,该工具允许您根据您定义的真值表生成逻辑电路,以处理您感兴趣建模的计算。
一旦您对定义感到满意,请单击窗口底部的“构建电路”按钮。这将弹出一个新的对话框窗口,您可以在其中定义名称并选择目标项目,以及选择是仅使用与非门还是仅使用 2 输入门。
图 6. 通过使用“组合分析”窗口,您可以仅根据其预期行为创建更复杂的电路。
您可以单击输入来切换它们并验证一切是否按计划运行。“组合分析”窗口还有另外两个选项卡:“表达式”和“最小化”。“表达式”选项卡向您显示描述您定义的真值表的逻辑数学表达式。您可以通过直接编辑此方程式来进一步编辑您的电路。“最小化”选项卡为您提供逻辑方程式,形式为乘积之和或和之积。
完成电路后,您可以将其保存在 .circ 文件中。这些文件定义了一个完整的电路,可以作为单个单元重复使用。当您确实想在更大、更复杂的电路中重复使用它们时,请单击“项目”→“加载库”→“Logisim 库”并选择保存的文件。这使您可以非常快速地构建非常复杂的计算电路。
您还可以通过单击“文件”→“导出图像”来导出电路本身。这允许您将电路另存为图像,您可以在报告或其他过程中使用该图像。
这只是一个简短的介绍,但我希望 Logisim 可以帮助您更多地了解计算和逻辑结构的基础知识。