文章为Hi_KER原创,因本人能力不足,文章难免有所纰漏,欢迎大家指正。
文章中部分中文名为HI_KER自行翻译,非官方翻译,特此提醒。
文章主要参考了 Logisim-Help-Tutorial (Logisim自带教程)
上一篇文章:Logisim元件用法详解二:Gates 门
1.Multiplexer 多路选择器
简介
多路选择器将西面端口的输入复制到东面输出(多输入,一输出)。要输出哪个值是通过元件下端输入端口接收到的值确定的。
一些人把这个词拼成 multiplexor,但 multiplexer 才是主要的拼写。
引脚
(假设组件面朝东,选择端在底部/左侧)
西边,可变数字(输入,位宽匹配数据位属性)
有若干输入端口,可输入数据值,其中只有一个将被输出。每个输入数据值都有编号,从上到下编号,第一个编号为 0
东边(输出,位宽匹配数据位属性)
输出值将与某个输入值相同。如果选择输入包含任何未指定的位(例如:浮动),那么输出就是完全浮动的
南侧边缘,左侧用灰色圆圈表示(输入,位宽匹配Select Bits属性)
此输入的值决定将哪个输入进行输出
右侧南侧(输入,位宽1)
使能输入,当输入为0时,复用器的输出浮动
部分属性说明
Select Bits 选择端位宽
设置组件选择端位宽以及输入的端口数。若选择端位宽为 ,则多路复用器的输入端口数将是
Include Enable? 包含使能端?
为 Yes 时,元件南端右方有一个 1 为输入,控制元件是否可用
为 No 时,不显示该输入端

2.Demultiplexer 解复用器
简介
将西面边缘的输入复制到东面边缘的某个输出,是输出中哪一个是通过南侧的输入接收到的值指定的。一些人把这个词拼成 demultiplexor,但 demultiplexer 是主要的拼写。
解复用器可以和多路选择器(复用器)类比,具体属性不再赘述。

3.Decoder 译码器
简介
在一个输出端输出 1,在哪个端输出是 1 取决于南侧输入接收到的值。
引脚
(假设组件面朝东,选择底部/左侧)
东边,可变数字(输出,位宽1)
输出端从上到下编号,第一个编号为0。如果输出端的编号与当前通过南部的选择输入接收到的值相等,则这个端口的输出将为1,否则,它的值将是0或浮动,这取决于Three-State?(是否三态)属性。如果选择输入包含任何未指定的位,则所有输出都是浮动的
左侧南侧(输入,位宽1)
当 Enable 为0时,所有输出都是浮动的(或0),无论选择的输入是什么
南侧边缘,右侧用灰色圆圈表示(输入,位宽匹配Select Bits属性)
选择输入端,这个输入值决定了哪个输出端输出1
属性
Select Bits 选择端位宽
组件在其南端的选择输入的位宽。若选择端位宽为 ,则译码器的东边输出端口数将是

4.Pirority Encoder 优先编码器
简介
组件在其西边有多个输入,第一个输入编号为0,从上往下编号。该组件寻找值为1的输入的编号,并输出值最大的编号。例如,如果输入端编号为0、2、5和6的输入都是1,那么优先级编码器将输出 110(也就是编号6的二进制表示)。如果没有输入为1,或者组件被禁用,那么优先级编码器的输出是浮动的。
引脚
(假设组件面朝东)
西边,可变数(输入,位宽1)
输入端口
东边,上引脚(输出,位宽匹配Select Bits属性)
输出那些值为1的输入的最高编号,或者如果没有输入为1或如果组件通过Enable In输入禁用了则输出浮动
东边,下引脚(输出,位宽1)
如果该组件是启用的,且至少有一个索引的输入值为1,否则输出为0
南缘(输入,位宽1)
如果输入为0,则组件被禁用,否则组件将被启用
北边(输出,位宽1)
如果这个组件是启用的,并且没有索引的输入是1,否则输出为0

5.Bit Selector 位选择器
简介
给定一个 n 位的输入,将把输入分成几个大小相等的组(从最低阶位开始)。如果输出为 m 位,则一共分成 组(但是编号从 0 开始),并输出选择输入所选择的组。
例如,如果我们有一个 8 位的输入01010101,而我们要有一个 3 位的输出,那么0 组将是最低阶的 3 位 101,1 组将是接下来的 3 位 010,2 组将是接下来的 3 位 001(顶部以外的位用0填充)。选择输入的位宽将是 2,选择这三组中的哪一组输出,但如果选择输入是3,那么将输出 000。
引脚
(假设组件面朝东)
西边(输入,位宽匹配 Selcet Bits 属性)
n 位的输入值
东边(输出,位宽匹配 Output Bits 属性)
输出数据,规则见前文
南沿(输入,位宽为数据位和输出位商,四舍五入)
选择输入:确定应该将哪个位组路由到输出
