【Logisim】4-2,8-3与16-4编码器的详细教程

发布时间:2026/7/24 23:36:18
【Logisim】4-2,8-3与16-4编码器的详细教程 1. 引言在数字逻辑电路设计中编码器Encoder是一种将多个输入信号为更少输出线二进制编码的组合逻辑电路。它是多路复用器、键盘编码等应用的核心组件。在真实的芯片如 74LS148中输入信号通常是低电平有效0有效但在基础教学中为了降低入门门槛本教程的电路设计采用高电平有效1有效的模型来实现。本教程将手把手教你使用 Logisim 制作三种常见的编码器4-2 编码器、8-3 编码器和16-4 编码器。每个部分都将包含真值表、逻辑化简式和详细步骤及原理图。通过本教程你将掌握编码器的基本原理以及在 Logisim 中的实现方法。在原理图部分将使用Logisim Evolution 3.9.0和Logisim 2.7.1两个版本进行演示。2. 4-2 编码器4-2 编码器有 4 个输入X0, X1, X2, X3和 2 个输出Y1, Y0。其功能是将4 个输入中为 1 的那一位本教程默认高电平有效的索引编码成2 位二进制输出。2.1 真值表X3X2X1X0Y1Y0十进制0001000001001101001021000113注输入为独热码One-Hot即X0~X3中同一时刻只有一个输入为 1。当所有输入为 0 时输出通常视为无效本表未列出。2.2 逻辑化简式根据真值表可以直接写出输出表达式不需要再化简Y1 X3 X2Y0 X3 X1即高位 Y1在输入X3 或 X2 为 1时输出 1低位 Y0在输入X3 或 X1 为 1时输出 1。2.3 详细制作步骤新建电路新建一个电路命名为“Encoder4_2”。放置输入引脚拖拽 4 个输入引脚 (Pin)到画布上分别命名为“X3, X2, X1, X0”。放置输出引脚拖拽 2 个输出引脚 (Pin)到画布上分别命名为“Y1, Y0”。放置逻辑门放置 2 个“或门OR Gate”将“输入数量/输入引脚数量Number Of Inputs”设置为2。连接电路将 X2 和 X3 连接到第一个或门的两个输入端该或门的输出连接到 Y1。将 X1 和 X3 连接到第二个或门的两个输入端该或门的输出连接到 Y0。完成后的4-2编码器原理图如下Logisim EvolutionLogisim3. 8-3 编码器8-3 编码器有 8 个输入D0-D7和 3 个输出Q2, Q1, Q0。它将 8 个输入中为 1 的那一位编码成 3 位二进制数。3.1 真值表D7D6D5D4D3D2D1D0Q2Q1Q0十进制0000000100000000001000110000010001020000100001130001000010040010000010150100000011061000000011173.2 逻辑化简式观察真值表可以得出输出表达式Q2 D7 D6 D5 D4Q1 D7 D6 D3 D2Q0 D7 D5 D3 D13.3 详细制作步骤新建电路新建一个电路命名为“Encoder8_3”。输入引脚拖拽 8 个输入引脚 (Pin)到画布上分别命名为“D7~ D0”。输出引脚拖拽 3 个输出引脚 (Pin)到画布上分别命名为“Q2,Q1,Q0”。法1拖出 3 个“或门OR Gate”设置输入引脚数量为 4。第一个或门连接输入D7,D6,D5,D4连接输出Q2。第二个或门连接输入D7,D6,D3,D2连接输出Q1。第三个或门连接输入D7,D5,D3,D1连接输出Q0。法2拖出 1 个刚刚搭建的4-2编码器“Encoder4_2”所以Y1 D3 D2Y0D3 D1。拖出 3 个“或门OR Gate”分别设置输入引脚数量为 433。第一个或门连接输入D7,D6,D5,D4连接输出Q2。第二个或门连接输入D7,D6,Y1连接输出Q1。第三个或门连接输入D7,D5,Y0连接输出Q0。法3拖出 2 个刚刚搭建的4-2编码器“Encoder4_2”分别命名为“High”和“Low”“D7~D4”连接High编码器的“X3~X0”“D3~D0”连接Low 编码器的“X3~X0”。拖出 1 个“或门OR Gate”设置输入引脚数量为 4。或门连接输入D7,D6,D5,D4连接输出Q2。从“复用器Plexers”库拖出 2 个“多路复用器/数据选择器Multiplexer”将 2 个多路复用器/数据选择器的“选择位置Select Location”设置为“上/右Top/Right”这个步骤是为了美观。第一个多路复用器/数据选择器的“0”号输入连接Low 编码器的Y1“1”号输入连接High 编码器的Y1选择位连接Q2输出连接Q1。第二个多路复用器/数据选择器的“0”号输入连接Low 编码器的Y0“1”号输入连接High 编码器的Y0选择位连接Q2输出连接Q0。原版数据选择器的使能端默认打开所以会多出一个接口如果觉得不美观可以在左下角“包括使能端Include Enable”选择关闭。法4点击顶部菜单栏“项目Project”→“分析电路Analyze Circuit”→“表格/真值表Table”。一个个输入真值表数据点击“构建回路/建立电路Build Circuit”程序会自动生成电路。此处不再演示。完成后的8-3编码器原理图如下Logisim EvolutionLogisim*注如果出现连线正确却不知道什么原因报错保存后重新打开即可。4. 16-4 编码器16-4 编码器将 16 个输入I0-I15编码为 4 位二进制输出Y3, Y2, Y1, Y0。其原理是前两种编码器的扩展。4.1 真值表部分由于真值表行数过多16行此处仅列出关键行以展示规律输入为1的位Y3Y2Y1Y0二进制输出十进制I0000000000I1000100011I2001000102I3001100113I4010001004I5010101015.....................I151111111115完整真值表遵循规律输出“Y3Y2Y1Y0”等于输入为 1 的位的索引的 4 位二进制表示。4.2 逻辑化简式根据二进制位的规律可以写出表达式Y3 I15 I14 I13 I12 I11 I10 I9 I8Y2 I15 I14 I13 I12 I7 I6 I5 I4Y1 I15 I14 I11 I10 I7 I6 I3 I2Y0 I15 I13 I11 I9 I7 I5 I3 I14.3 详细制作步骤新建电路新建一个电路命名为“Encoder16_4”。放置引脚放置16 个输入引脚I15-I0和4 个输出引脚Y3-Y0。法1拖出 4 个“或门OR Gate”设置输入引脚数量为 8为了美观可以将“门尺寸Gate Size”设置为“宽Wide”。第一个或门连接输入I15,I14,I13,I12,I11,I10,I9,I8连接输出Y3。第二个或门连接输入I15,I14,I13,I12,I7,I6,I5,I4连接输出Y2。第三个或门连接输入I15,I14,I11,I10,I7,I6,I3,I2连接输出Y1。第四个或门连接输入I15,I13,I11,I9,I7,I5,I3,I1连接输出Y0。法2拖出 1 个刚刚搭建的8-3编码器“Encoder8_3”。所以Q2 I7 I6 I5 I4Q1 I7 I6 I3 I2Q0 I7 I5 I3 I1。拖出 4 个“或门OR Gate”分别设置输入引脚数量为8555为了美观可以将“门尺寸Gate Size”设置为“宽Wide”。第一个或门连接输入I15,I14,I13,I12,I11,I10,I9,I8连接输出Y3。第二个或门连接输入I15,I14,I13,I12,Q2连接输出Y2。第三个或门连接输入I15,I14,I11,I10,Q1连接输出Y1。第四个或门连接输入I15,I13,I11,I9,Q0连接输出Y0。法3拖出 2 个刚刚搭建的8-3编码器“Encoder8_3”分别命名为“High”和“Low”“I15~I8”连接High编码器的“D7~D0”“I7~I0”连接Low 编码器的“D7~D0”。拖出 1 个“或门OR Gate”设置输入引脚数量为 8为了美观可以将“门尺寸Gate Size”设置为“宽Wide”。或门连接输入I15,I14,I13,I12,I11,I10,I9,I8连接输出Y3。从“复用器Plexers”库拖出 3 个“多路复用器/数据选择器Multiplexer”为了美观可以将 3 个多路复用器/数据选择器的“选择位置Select Location”设置为“上/右Top/Right”。第一个多路复用器/数据选择器的“0”号输入连接Low 编码器的Q2“1”号输入连接High 编码器的Q2选择位连接Y3输出连接Y2。第二个多路复用器/数据选择器的“0”号输入连接Low 编码器的Q1“1”号输入连接High 编码器的Q1选择位连接Y3输出连接Y1。第三个多路复用器/数据选择器的“0”号输入连接Low 编码器的Q0“1”号输入连接High 编码器的Q0选择位连接Y3输出连接Y0。法4点击顶部菜单栏“项目Project”→“分析电路Analyze Circuit”→“表格/真值表Table”。一个个输入真值表数据点击“构建回路/建立电路Build Circuit”程序会自动生成电路。此处不再演示。完成后的16-4编码器原理图如下Logisim EvolutionLogisim5. 总结通过本教程我们完成了三种常见二进制编码器在 Logisim 中的设计与实现。从简单的 4-2 编码器到复杂的 16-4 编码器其核心思想是一致的将独热码输入转换为二进制编码输出。实现的关键在于根据真值表写出最简逻辑表达式并在 Logisim 中用或门搭建电路。你可以尝试在 Logisim 中为这些编码器添加一个“使能端”Enable或“优先级”功能使其更加实用。希望本教程能帮助你巩固数字逻辑知识并提升 Logisim 实操能力。