Logisim的基本使用方法(详细)教你如何使用Logisim

【​​​​​​⭐持续更新中...】

可能有很多童鞋像我一样,刚接触这个软件的时候一脸懵逼,什么操作都不会。

但不用慌,其实这个软件是很简单的,接下来我将由浅入深地介绍一些基本操作(如:电路封装、添加电路等等...)和基本组件(如:引脚、探针、隧道、分线器等等...),后续还将介绍一些进阶组件(如:时钟、寄存器Register、随机存储器RAM、多路选择器MUX、比较器Compatator、位扩展器、三态门、加法器、移位器等等...)的基本使用方法。

首先,大家可以在左上角的偏好设置这里,将文字调成中文,方便阅读:

Logisim的基本使用方法(详细)教你如何使用Logisim_第1张图片  Logisim的基本使用方法(详细)教你如何使用Logisim_第2张图片

【前排提醒:收藏一下可以防丢失哦】

一、基本组件:

1、Pin 方形引脚(输入):左上角这个方形的叫引脚的东西可以进行输入

 Logisim的基本使用方法(详细)教你如何使用Logisim_第3张图片

用选择工具(白色鼠标)选中后,可以更改数据位宽(输入不同的位数)

Logisim的基本使用方法(详细)教你如何使用Logisim_第4张图片

选中手掌后点击数位,可以更改值(0/1)

  Logisim的基本使用方法(详细)教你如何使用Logisim_第5张图片

2、Pin 圆形引脚(输出):左上角这个圆形的叫引脚的东西可以进行输出

Logisim的基本使用方法(详细)教你如何使用Logisim_第6张图片

同样可以改变数据的位宽

Logisim的基本使用方法(详细)教你如何使用Logisim_第7张图片

需要强调一下,最右边是最低位,最左边是最高位哦!下面以8位输入引脚为例:

3、导线:切换成选择工具(白色鼠标)后点击引脚的圆点

  Logisim的基本使用方法(详细)教你如何使用Logisim_第8张图片

轻轻拖拽即可生成导线

补充:各类的线的颜色及状态

Logisim的基本使用方法(详细)教你如何使用Logisim_第9张图片

如果出现位宽不匹配的情况(橙色线),只需要修改数据位宽,使两端匹配即可。

Logisim的基本使用方法(详细)教你如何使用Logisim_第10张图片

4、戳工具(“手掌”)和选择工具(“白色鼠标”)

选中戳工具(“手掌”)可以进行拖拽、查看

选中选择工具(“白色鼠标”)可以用于布设导线,选中组件等等功能

Logisim的基本使用方法(详细)教你如何使用Logisim_第11张图片

5、文本工具连线工具标签

在基础库中可以找到如下几个工具:

Logisim的基本使用方法(详细)教你如何使用Logisim_第12张图片

文本工具可用于:标注电路的注释(标签类似)

连线工具可用于:分隔不同的电路,使其清晰直观。

 二、入门常用组件:

1、常用逻辑门:

与门:输入都为'1',输出才为'1'。

 Logisim的基本使用方法(详细)教你如何使用Logisim_第13张图片  Logisim的基本使用方法(详细)教你如何使用Logisim_第14张图片  Logisim的基本使用方法(详细)教你如何使用Logisim_第15张图片

或门:输入只要有大于等于1个'1',输出就为'1'。

  Logisim的基本使用方法(详细)教你如何使用Logisim_第16张图片  Logisim的基本使用方法(详细)教你如何使用Logisim_第17张图片  Logisim的基本使用方法(详细)教你如何使用Logisim_第18张图片

异或门:输入的两个数相异,输出才为'1'。

 Logisim的基本使用方法(详细)教你如何使用Logisim_第19张图片  Logisim的基本使用方法(详细)教你如何使用Logisim_第20张图片  Logisim的基本使用方法(详细)教你如何使用Logisim_第21张图片

补充一下:可以在“门尺寸”这里,调节逻辑门的大小,主要是为了让电路更美观

Logisim的基本使用方法(详细)教你如何使用Logisim_第22张图片

 2、非门(NOT Gate):可对每位输入的数据进行按位取反

Logisim的基本使用方法(详细)教你如何使用Logisim_第23张图片

补充:如果想快速改变组件的朝向,可以在选中组件后,按键盘上的“上”“下”“左”“右”按钮,或者直接在“朝向”菜单中进行更改。

Logisim的基本使用方法(详细)教你如何使用Logisim_第24张图片

3、探针Probe:主要用于显示一条线路上的数据,可以用于预测查看数据的结果

4、常量Constant:用于表示特定形式的二进制位,可作为比较器、逻辑门的输入参数。

注意:常量是以16进制表示,因此是4位1组,如:16进制的f代表二进制1111,16进制的83代表二进制的1000 0011具体如下图:

Logisim的基本使用方法(详细)教你如何使用Logisim_第25张图片

5、隧道:以命名作为区分,相同隧道的名字存储了相同的结果。常常可用于进行输入输出。

Logisim的基本使用方法(详细)教你如何使用Logisim_第26张图片

如下图:将隧道的名字设定为“输入”,然后在输入引脚中输入32位的二进制数,然后将另一个隧道的名字同样设定为“输入”,则可以在输出引脚中输出同样的32位的二进制数,在这里两个引脚是相同的,可以当做是同一个引脚。

Logisim的基本使用方法(详细)教你如何使用Logisim_第27张图片

6、分线器Splitter:一般是用于将整块数据分解为零散数据,或将零散数据整合为单块数据,或者提取某些数据位。

如下图是将整块数据分解为多个零散数据:

Logisim的基本使用方法(详细)教你如何使用Logisim_第28张图片

如下图是将多个零散数据“拼接”成一块数据:

Logisim的基本使用方法(详细)教你如何使用Logisim_第29张图片

如下图是提取输入数据块的低4位

Logisim的基本使用方法(详细)教你如何使用Logisim_第30张图片

接下来着重介绍一下用法:

4.1 首先在“朝向”处可以更改朝向。

Logisim的基本使用方法(详细)教你如何使用Logisim_第31张图片   Logisim的基本使用方法(详细)教你如何使用Logisim_第32张图片

4.2 在“外观”处我们可以更改分线器的外观为“中心式”,相较于默认的左手式会更加好看。

Logisim的基本使用方法(详细)教你如何使用Logisim_第33张图片

4.3 在“分线器端口数”处可以更改分线器的端口数

Logisim的基本使用方法(详细)教你如何使用Logisim_第34张图片

4.4 在“位宽”处可以更改接收或输出数据的位宽

如下图:支持输入8位的二进制数

Logisim的基本使用方法(详细)教你如何使用Logisim_第35张图片

4.5 最为重要的是通过设定“第n位”对应的分线端口来实现数据块的分解:

如下图:最上侧的分线端口为0号,最下侧为3号。

比如下面的例子:第0、1、2位数据对应的是0(顶部)的分线端口输出“001”,第3位数据对应的是1号分线端口输出“1”,第4、5位数据对应的是2号分线端口输出“10”,以此类推.....

Logisim的基本使用方法(详细)教你如何使用Logisim_第36张图片

可能有同学会问道:“如果只想提取数据中的某一位该怎么办呢?”

下面以提取8位数据中的第5位为例进行说明:首先要将分线端口数设置为2,然后将要提取的数位设置为对应0(顶部)的分线端口,然后其它位设置为对应1(底部)的分线端口,这样就可以将第5位数据输出。

Logisim的基本使用方法(详细)教你如何使用Logisim_第37张图片

【看懂的可以点赞+收藏一下呀⭐】

三、添加电路

如下图,点击左上角的“+”号按钮可以添加电路。

Logisim的基本使用方法(详细)教你如何使用Logisim_第38张图片

输入电路的名称:

 Logisim的基本使用方法(详细)教你如何使用Logisim_第39张图片

就可以在左侧的栏目中创建一个全新的电路绘制区:

Logisim的基本使用方法(详细)教你如何使用Logisim_第40张图片

通过点击这“上移”和“下移”箭头,可以调整电路电路在栏目中的顺序

Logisim的基本使用方法(详细)教你如何使用Logisim_第41张图片

四、电路封装:

点击下图中的按钮可以进入电路封装模式:

Logisim的基本使用方法(详细)教你如何使用Logisim_第42张图片

下面来看一个比较复杂的例子:

如下图是在电路编辑模式下,可以看到该电路有5个输入端口和5个输出端口:

Logisim的基本使用方法(详细)教你如何使用Logisim_第43张图片

进入电路封装模式可以看到,封装后的电路同样有5个输入的接口和5个输出的接口:

Logisim的基本使用方法(详细)教你如何使用Logisim_第44张图片

首先我们可以用鼠标选中矩形的外框,通过拉动白色的角标可以改变图形的长宽:

Logisim的基本使用方法(详细)教你如何使用Logisim_第45张图片  Logisim的基本使用方法(详细)教你如何使用Logisim_第46张图片

还可以任意改动输入、输出接口的摆放位置:

Logisim的基本使用方法(详细)教你如何使用Logisim_第47张图片

但此时会出现一个小问题,如何去确定各个接口对应的原电路中的端口呢?

一个比较好的方法就是给每个电路打上标签

只需要电路编辑窗口中,选择要打标签的电路,在左下角属性栏的标签处,编辑文本,即可打上标签:

通过点击封装好的电路,拖拽到白色区域:

 Logisim的基本使用方法(详细)教你如何使用Logisim_第48张图片  Logisim的基本使用方法(详细)教你如何使用Logisim_第49张图片

一个全新的电路就新建好啦:

Logisim的基本使用方法(详细)教你如何使用Logisim_第50张图片

如果想要查看各个接口对应的端口,只需要把鼠标轻轻靠在接口上即可显示标签:

Logisim的基本使用方法(详细)教你如何使用Logisim_第51张图片

需要注意的是一定要先打上标签,如图左侧是未打标签的封装电路,无法确定哪个接口对应哪个端口: 

Logisim的基本使用方法(详细)教你如何使用Logisim_第52张图片

之后只需要连上合适的输入和输出电路,就可以正常使用啦!

 Logisim的基本使用方法(详细)教你如何使用Logisim_第53张图片

有童鞋可能会问:封装电路有什么用呢?

其实主要的作用是让电路变得更加简洁,易于后期维护啦。

【如果觉得有帮助就点个赞吧⭐花了好几个晚上才整理出来的呢⭐】

五、进阶组件

1、时钟:

用作更新电路状态的一个组件,常与隧道CLK相连:

Logisim的基本使用方法(详细)教你如何使用Logisim_第54张图片

在“电路仿真”下的“时钟滴答频率”可改变时钟频率:

Logisim的基本使用方法(详细)教你如何使用Logisim_第55张图片

默认1KHZ相当于1秒钟点1000下时钟,1时钟周期要点2下时钟,所以1秒是500时钟周期。

快捷键Ctrl+K可以让时钟自动连续跳动。Ctrl+T是一下一下跳动。

2、寄存器Register:

寄存器是一种用于存储和传输数据的电路组件,可以在存储库(Memory)下的寄存器(Register)找到,可以选中后更改数据位宽,打上标签。

各个引脚的作用在下图中指出:

Logisim的基本使用方法(详细)教你如何使用Logisim_第56张图片   Logisim的基本使用方法(详细)教你如何使用Logisim_第57张图片

数据位宽的意思,简单理解就是:输入或输出的数据有几位(二进制位)。如32位,就是由32个0或1二进制位组成的数据。

接下来我们看下面这个简单例子:

Logisim的基本使用方法(详细)教你如何使用Logisim_第58张图片

当左下角的引脚为1时,表明接受时钟信号,点一下时钟,就可以将输入的数据从输出端输出。

Logisim的基本使用方法(详细)教你如何使用Logisim_第59张图片

此时若点击右下角引脚,使之为1,会对寄存器进行清空,输出结果为0。

Logisim的基本使用方法(详细)教你如何使用Logisim_第60张图片

倘若我们让左下角的引脚为0,表明忽略时钟,这社会不管如何点击时钟,数据都不会进入寄存器输出,这就是“为0时忽略时钟”的含义。

Logisim的基本使用方法(详细)教你如何使用Logisim_第61张图片

3、多路选择器MUX:

多路选择器(Multiplexer)在复用器Plexers下:可以根据选择端传入的数值,选择输入端的其中一个输入从输出端输出(注意:仅有一个输入端口的值会被选中!)。

Logisim的基本使用方法(详细)教你如何使用Logisim_第62张图片  Logisim的基本使用方法(详细)教你如何使用Logisim_第63张图片

选择端位宽(n位):代表输入端有2^n个输入端口(假如:选择端位宽为4,则有16个输入端口,大家可以自己测试)。

数据位宽:是输入端输入的数据位宽,也是输出端输出的数据位宽。

选择端:选择哪一路的输入端会被保留,并且输出(若下方端口传入值为0,则选择左侧0号输入端口输出;值为1,则选择左侧1号输入端口输出。以此类推......)大家可以体悟下面的例子:

Logisim的基本使用方法(详细)教你如何使用Logisim_第64张图片

4、比较器Compatator:

比较器的输入接口有两个,分别为“a”和“b”,表示要比较的两个元件或信号。

左侧上方为“a”,一般是传入一个值,与左侧下面的“b”进行比较,如下图:

Logisim的基本使用方法(详细)教你如何使用Logisim_第65张图片

比较器的输出接口有三个,分别为“a=b”、“ab”,分别表示“两个输入相等”、“a小于b”和“a大于b”。

需要注意的是,待比较的常量一般为16进制,如图中的“2b”转化为2进制后是“0010 1011”。

5、位扩展器:

可以实现输入数据与输出数据间位数的拓展,比如从26位可以拓展到32位等等。

位置:线路Wiring下的位扩展器。

Logisim的基本使用方法(详细)教你如何使用Logisim_第66张图片  Logisim的基本使用方法(详细)教你如何使用Logisim_第67张图片

大概长相如下图:

如下图,最高位为0的情况,27~32位补0:

Logisim的基本使用方法(详细)教你如何使用Logisim_第68张图片

如下图,最高位位1的情况,27~32位补1:

 Logisim的基本使用方法(详细)教你如何使用Logisim_第69张图片

原先输入的26位,自动成为32位中的低26位。

6、三态门:

很多童鞋可能会疑惑:三态门是一个什么东东,有什么功能?

在我的理解中,三态门和多路选择器MUX其实具有很相似的功能,均可以用作对数据的选择性输出。

如下图是三态门所在的位置:

Logisim的基本使用方法(详细)教你如何使用Logisim_第70张图片 Logisim的基本使用方法(详细)教你如何使用Logisim_第71张图片

如下图是三态门的三个端口:

Logisim的基本使用方法(详细)教你如何使用Logisim_第72张图片

我们接下来可以看一个小小的案例:

当三态门和多路选择器的选择端输入均为0时,此时多路选择器选择第0路输出,三态门未输出。

Logisim的基本使用方法(详细)教你如何使用Logisim_第73张图片

当三态门和多路选择器的选择端输入均为1时,此时多路选择器选择第1路输出,三态门输出。

 Logisim的基本使用方法(详细)教你如何使用Logisim_第74张图片

可见三态门起到了一种“阻塞”或者说选择作用,只有当选择端为1(高电平)时,输入的结果才会被输出。

7、随机存储器RAM:

随机存储器RAM是在存储库(Memory)下,主要功能是:通过输入的地址输出数据,也可以写入数据。

主要的引脚如下图:

Logisim的基本使用方法(详细)教你如何使用Logisim_第75张图片

当str(写信号)为1时,表示可以从左侧的D(写入数据)端,向存储器写入数据。

当ld(读信号)为1时,表示可以从右侧的D(输出数据)端,读出A端地址对应的数据。

随机存储器可调整的参数主要包括:地址位宽、数据位宽、数据接口

如果想将指令加载入RAM中,可以右键RAM - 加载数据镜像,然后在目标文件下,选择.hex后缀的文件即可载入。

Logisim的基本使用方法(详细)教你如何使用Logisim_第76张图片 Logisim的基本使用方法(详细)教你如何使用Logisim_第77张图片

载入之后点击编辑存储内容,即可看到载入的指令如下图:

Logisim的基本使用方法(详细)教你如何使用Logisim_第78张图片 Logisim的基本使用方法(详细)教你如何使用Logisim_第79张图片

可以直接在编辑器中选中待修改的指令进行修改,然后点击保存即可,这个功能一般很少用,故不过多赘述。

如果想要清空指令只需要同样右键,然后点击清空所有数据内容即可。

8、移位器Shifter:

可以将输入的数据往一个方向移动若干位。移位器(Shifter)在运算器(Arithmetic)下。可以通过更改数据位宽调整输入和输出的数据位数:

Logisim的基本使用方法(详细)教你如何使用Logisim_第80张图片

可以通过选择移位类型来选择左移或者右移,还可以选择逻辑移动或者运算移动:

Logisim的基本使用方法(详细)教你如何使用Logisim_第81张图片

下图是逻辑右移2位,高位补0:

下图是运算右移(算术右移)2位,高位补1:

9、译码器Decoder:

译码器Decoder是在复用器(Plexers)下。主要的功能是用于选择其中一个输出端口输出高电平。比如:可以用于LED的显示,芯片片选信号的选择(选中的芯片是高电平),控制信号的生成。

如下图就是最经典的3:8译码器:因为它的选择端有3位(转化为十进制范围为0~7),刚好对应8个输出端口。

当选择端的值对应某个端口时,该端口就会输出高电平(1),通过高电平可以改变某些器件的状态,进而实现某种功能。

Logisim的基本使用方法(详细)教你如何使用Logisim_第82张图片

 其实我也一直觉得,译码器和选择器MUX的功能很相似,唯一不同的就是:MUX是通过改变选择端的值,来选择输入端的某一个数据进行输出(可以是多位的);而译码器某种意义上来说并没有输入数据的输入端,只能通过改变选择端的值,来选择输出端的某一个端口输出“1”(因此输出的数据只能是1位的)。

10、优先编码器Priority Encoder

优先编码器(Priority Encoder)在复用器(Plexers)下。主要用途是:在有输入优先级的前提下,选择优先级最高输入的进行输出。

下图是各个端口作用的介绍:

Logisim的基本使用方法(详细)教你如何使用Logisim_第83张图片  Logisim的基本使用方法(详细)教你如何使用Logisim_第84张图片

接下来看一个具体的例子,我将讲解各个端口的作用:

先来看使能输出端,只要输入端口没有1,使能输出端就为1,如下图:

 Logisim的基本使用方法(详细)教你如何使用Logisim_第85张图片

 再来看使能端,只要输入端口有大于等于1个1且使能端为1(不禁用),组选择输出值就为1,如下图:

Logisim的基本使用方法(详细)教你如何使用Logisim_第86张图片

如果没有使能端如下图,自动默认不禁用,只要输入端有大于等于1个1,组选择同样为1,如下图

Logisim的基本使用方法(详细)教你如何使用Logisim_第87张图片​​​

看右上角的输出端口,始终输出的是:输入端值为1的最大地址。注意:输入端的大小是从上往下递增,最上面代表0号端口。

如下图:3号端口值为1,尽管1号端口值也为1,但输出的是二进制11,代表3号端口。

这样就能够将多个具有不同优先级的数据,按地址从高到低逐个输出,很神奇吧。

Logisim的基本使用方法(详细)教你如何使用Logisim_第88张图片Logisim的基本使用方法(详细)教你如何使用Logisim_第89张图片

最后看最下面的使能输入,这个端口为0时代表禁用(不会输出地址和组选择),为1时代表正常输出。

Logisim的基本使用方法(详细)教你如何使用Logisim_第90张图片

【整理了3天3夜,如果觉得有所帮助,就点个赞吧!】

 六、分析组合逻辑电路功能:

以1位全加器为例:

Cin、Xi、Yi是输入,Cin是前一位的进位,Xi和Yi就是普通的输入。

Cout、Si是输出,Cout是进位(代表值2),Si是普通输出(代表值1)。

如果输入端只有1位为'1',Si亮(代表值1);如果输入端有2位为1,Cout亮(代表值1+1=2);如果输入端有3位为1,Cout和Si均亮(代表值1+1+1=3)。

Logisim的基本使用方法(详细)教你如何使用Logisim_第91张图片Logisim的基本使用方法(详细)教你如何使用Logisim_第92张图片Logisim的基本使用方法(详细)教你如何使用Logisim_第93张图片

在组合逻辑电路分析-输入 界面,在输入栏输入各个输入端口名称

 Logisim的基本使用方法(详细)教你如何使用Logisim_第94张图片

在组合逻辑电路分析-输出 界面,在输出栏输入各个输出端口名称

Logisim的基本使用方法(详细)教你如何使用Logisim_第95张图片

在组合逻辑电路分析-真值表 界面,根据要实现的电路逻辑,依次改变右侧的真值

Logisim的基本使用方法(详细)教你如何使用Logisim_第96张图片

点击生成电路 - 输入电路名,然后点OK即可

Logisim的基本使用方法(详细)教你如何使用Logisim_第97张图片

如下图是生成的电路:

Logisim的基本使用方法(详细)教你如何使用Logisim_第98张图片Logisim的基本使用方法(详细)教你如何使用Logisim_第99张图片

发现可以实现功能,但明显要更为复杂!

【✔️如果觉得有帮助记得点赞收藏哦】

你可能感兴趣的:(服务器,运维,学习方法,预编码算法,编辑器,学习)