logisim入门

最近在上中国大学mooc的计算机硬件系统设计的课。里头用到了一个叫logisim的软件。记录在博客,忘记的时候回来看看。

主界面

主界面大概是下图这样,和很多软件的风格都差不多。

image-20210401193116714

先来看看最上面这一排图标,从左到右分别是:仿真、连线(移动)、添加文字。后面五个是比较常用的电路组件,分别是输入引脚、输出引脚、非门、与门、或门。

输入引脚和输出引脚接反是无法正常仿真的,输入引脚是方的,输出引脚是圆的。

image-20210401193530767

这一排对这个新手上路实验的工程进行编辑,从左到右分别是添加电路、上移电路、下移电路、删除电路。右边两个是在电路原理图界面和封装切换。

image-20210401193729548

下面就是库了,要用库里的元件的话,只要左键选中元件,然后在鼠标移到右边绘图区,就会自动出现电路元件了。比如我们选中译码器,可以看到右边出现灰色的元件,此时在左键点击一下,就可以放置元件了。

image-20210401194143720

接下来是属性框,可以更改元件的属性,比如我们选中这个输出引脚。可以看到都有这些属性,并且可以在属性框中修改。

image-20210401194649200

属性下方的这个按钮,可以让电路图出现点阵。

image-20210401195948758

接下来看下绘图区,线大概有这几种颜色,分别代表的含义在图中也列出来了。

在这里插入图片描述

接下来看看封装的界面。可以右键选中电路然后点编辑电路封装,也可点第二个菜单栏垃圾桶旁边2个的按钮切换到封装界面。可以看到这样的界面。但是默认一般不是这样的,这是手动画的。画的话也很简单,类似普通的画图软件。颜色的话在属性框可以调。中间的绿色符号可以不用动他。

image-20210401200050992

我们画好的电路可以在别的电路调用,类似库的调用方法。

自动生成电路

自动生成不能生成那种带封装的。所以自动生成一般用来生成比较简单的电路。然后最后再手工把这些简单的电路连起来。

真值表生成电路

点击工程,然后再点击分析组合逻辑电路。

image-20210401200550257

会出现如下界面,可以在输入、输出选项卡添加自己电路的引脚名。比如我们输入为x,y,输出为z。

image-20210401200628902

然后我们根据需求修改真值表。比如改成这样。

image-20210401200810782

然后点击生成电路,然后再点确定,最后可以看到生成了电路。

image-20210401200844493

表达式生成电路

表达式生成电路的前面几个步骤和真值表一样。区别在于,我们这次不改真值表,改表达式。比如我们改成x+y,然后点击生成电路。

image-20210401200948694

可以看到生成了s电路。

image-20210401201026089

常用的快捷键

和其他软件的快捷键差不多

  • ctrl +c : 复制
  • ctrl +v:粘贴
  • ctrl + z:撤回

其他特有的:

  • ctrl + d:复制
  • 选中元件按数字键:修改元件的输入接口
  • 选中元件按ALT+数字键:修改元件的输入位宽
  • 选中元件按方向键:修改元件的朝向
### Logisim 中补码的表示方法 在 Logisim 中,补码是一种常见的数值编码方式,主要用于处理带符号整数。以下是关于如何在 Logisim 中实现和理解补码的具体说明: #### 1. 补码的概念 补码是计算机硬件中最常用的有符号整数表示形式之一。对于 n 位二进制数: - 正数的补码与其原码相同。 - 负数的补码通过对其绝对值按位取反后再加 1 得到。 这一定义适用于任何基于二进制逻辑的设计工具,包括 Logisim[^2]。 #### 2. 在 Logisim 中设计补码转换电路 为了更好地理解和应用补码,在 Logisim 中可以通过以下两种基本操作来构建补码转换电路: ##### (1)正数与负数的区分 在 n 位二进制数中,最高位通常作为符号位: - 如果符号位为 `0`,则该数为正数,其补码等于原码。 - 如果符号位为 `1`,则该数为负数,需按照补码规则进行转换。 ##### (2)负数补码的生成过程 假设输入是一个 n 位二进制数 X,则可通过如下步骤生成其补码 Y: - 对 X 的每一位(不包括符号位)执行按位取反操作。 - 将上述结果加上 1。 具体实现可借助 Logisim 提供的基础组件完成,例如 NOT 门、AND 门以及 Adder 组件。 #### 3. 实现补码转换的实例 下面展示了一个简单的补码转换电路设计流程: ```python # 假设我们有一个 4 位二进制数 input[3..0] input = [i for i in range(4)] # 输入信号线 output = [] # 输出信号线 # Step 1: 判断符号位并决定是否需要求补码 if input[3] == 1: # 符号位为 1 表示负数 inverted_bits = [(~bit + 2) % 2 for bit in input[:3]] # 取反前三位 output = inverted_bits + [1] # 添加最低有效位的进位 else: output = input # 正数保持不变 ``` 注意:以上伪代码仅用于解释原理;实际在 Logisim 中应使用图形化界面搭建相应逻辑门组合。 #### 4. 半加器与全加器的应用 半加器和全加器是构成更复杂算术运算单元的核心模块。利用这些基础构件可以进一步扩展至支持多比特加法/减法的功能模块开发之中。 --- ###
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

破落之实

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值