【Logisim 本地搭建】手动版无符号 8 位乘法器的详细教程
1. 引言在数字逻辑与计算机组成原理的学习中乘法器是一个核心组件它展示了如何利用基本的逻辑门来实现复杂的算术运算。本教程将带领你在 Logisim 中构建一个手动版的无符号 8 位乘法器通过清晰的步骤和原理讲解让你掌握其设计与验证方法。本教程将使用Logisim Evolution 3.9.0和Logisim 2.7.1两个版本进行演示。*注如果出现连线正确却不知道什么原因报错保存后重新打开即可。2. 原理核心原理原码一位乘法无符号二进制乘法的原理与十进制乘法类似都是基于移位相加。对于一个8 位被乘数和一个8 位乘数其乘积最多为 16 位。本教程实现的乘法器采用“原码一位乘法”算法该算法将被乘数和乘数视为无符号整数。由于二进制只有“0”和“1”所以我们可以把乘法理解为加法将被乘数或是将“00000000”加到部分积上。逐位从低到高检查乘数的每一位如果乘数的这一位是“1”则加上被乘数否则加上“00000000”然后用同样的方法继续判断乘数的下一位。每次使用的那个乘数位用完后可以直接丢弃。每次加法结果的最后一位即下图蓝色数字在后续步骤不再参与运算所以我们可以提前存起来这样下一步就只用算8 位加法本教材的方法只使用 8 位加法器。例子如下图我们计算183 × 166 30378最终结果为 16 位011101101010101030378绿色为高 8 位01110110蓝色为低 8 位10101010。​核心算法移位相加法初始化用三个寄存器分别存储乘数 A最后会寄存积的低 8 位、被乘数 B和部分积 P最后会寄存积的高 8 位。其中P 初始为 0B在整个计算过程中保持不变P 、A在每轮循环后右移一位。检查乘数最低位观察A 寄存器的最低位即最右边一位是1 还是 0。条件选择加法如果 A 的最低位为 1则执行P P B如果为 0则P P 0即不变。整体右移将 P 和 A 拼接成一个 16 位的整体然后整体向右移动一位。P 的最低位移出后补入 A 的最高位这样 A 同时寄存未使用的乘数位和部分积的低位节省寄存器。A 的最低位即刚才已经检查过的那一位被直接丢弃。循环控制重复步骤 24共循环 8 次。输出结果8 次循环结束后P 中存储的是乘积的高 8 位A 中存储的是乘积的低 8 位。分别输出即得到 16 位最终结果。3. 准备工作在开始搭建之前请确保你已经准备好以下子电路8 位寄存器【Logisim 本地搭建】带时钟信号的简单 8 位寄存器的详细教程8 位三态门【Logisim 本地搭建】三态门的详细教程8 位加法器【Logisim 本地搭建】半加器、全加器与 8 位加法器的详细教程4. 搭建步骤新建电路新建一个电路命名为“Multiplier_8”。初始化寄存器从上到下放置 3 个8 位寄存器分别命名为“P”用于保存部分积、“A”用于保存乘数、“B”用于保存被乘数。Logisim EvolutionLogisim布置 P 寄存器放置 1 个多路复用器/数据选择器为了控制 P 的初始化设置选择位为 1数据位为 8。其“输入0”端连接 8 位常量“0”。其“输入1”端暂时置空。其“输出”端通过分线器/分离器连接P 寄存器的输入“D7~D0”。其“选择”端连接一个输入引脚“Load_P_Reg”。放置 1 个输入引脚“Clock_P_Reg”连接P 寄存器的输入“Clock”。Logisim EvolutionLogisim布置 A 寄存器放置 1 个多路复用器/数据选择器为了控制 A 的初始化设置选择位为 1数据位为 8。其“输入0”端通过分线器/分离器连接 8 个输入引脚“A_Reg7~A_Reg0”。其“输入1”端暂时置空。其“输出”端通过分线器/分离器连接A 寄存器的输入“D7~D0”。其“选择”端连接一个输入引脚“Load_A_Reg”。放置 1 个输入引脚“Clock_A_Reg”连接 A 寄存器的输入“Clock”。Logisim版的A 寄存器的“Clock”用“输入引脚”连接后续会报错必须换成“按钮”其他寄存器的“Clock”可以根据自己的习惯使用“按钮”或“输入引脚”Logisim EvolutionLogisim布置 B 寄存器放置 8 个输入引脚分别命名为“B_Reg7~B_Reg0”连接B 寄存器的输入“D7~D0”。放置 1 个输入引脚“Clock_B_Reg”连接 B 寄存器的输入“Clock”。Logisim EvolutionLogisim构建条件选择逻辑在B 存储器右边放置8 个与门各个与门的一个输入端分别连接B 寄存器的输出“Q7~Q0”另一个输入端连接A 寄存器的输出“Q0”。Logisim EvolutionLogisim构建寄存部分积逻辑在P 寄存器右边放置一个8 位寄存器命名为“P_Buffer”用于缓冲数据。将P_Buffer 寄存器的输入“D7~D0”连接P 寄存器的输出“Q7~Q0”。放置 1 个输入引脚“Clock_PB_Reg”连接P_Buffer 寄存器的输入“Clock”。P 寄存器和P_Buffer 寄存器中间的导线称为“线路1”部分积将寄存到这段导线中切断了组合逻辑反馈环路为加法器提供稳定的输入。Logisim EvolutionLogisim构建加法逻辑放置一个8 位加法器。将P_Buffer 寄存器的输出“Q7~Q0”连接到加法器的输入“A7~A0”。将8 个与门的输出端连接到加法器的输入“B7~B0”。加法器的进位输入“Cin”可以置空Logisim版不能置空可以接一个常量“0”或接地。加法器的输出“Cout~S0”连接 1 个9 位分线器/分离器高位在上低位在下。为了方便观察数据可以在加法器和分线器中间加上 9 个LED 灯。Logisim EvolutionLogisim构建移位逻辑在P 寄存器左边放置 1 个9 位分线器①和 1 个8 位分线器②。在A 寄存器右边放置 1 个8 位分线器③。9 位分线器①的输入端连接加法器分线器的输出。其“8~1”位输出端连接8 位分线器的“7~0”位输入。其“0”位输出端连接8 位分线器③的“7”位输入。8 位分线器②的输出连接P 寄存器的多路复用器的“输入1”端。8 位分线器③的“6~0”位输入连接A 寄存器的输出“Q7~Q1”其输出端连接A 寄存器的多路复用器的“输入1”端。Logisim EvolutionLogisim构建输出逻辑放置 2 个8 位三态门分别命名为“High”和“Low”。High 8 位三态门的输入端“A7~A0”连接P_Buffer 寄存器的输出“Q7~Q0”输入端“EN”连接 1 个输入引脚“EN_H”。Low 8 位三态门的输入端“A7~A0”连接A 寄存器的输出“Q7~Q0”输入端“EN”连接 1 个输入引脚“EN_​​​​​L”。两个8 位三态门的输出端同时连接8 个输出引脚“Q7~Q0”。Logisim EvolutionLogisim5. 成果验证我们可以尝试计算183 × 166 30378步骤如下输入乘数和被乘数在乘数寄存器 A 的键盘中输入“166”A_Reg7~A_Reg010100110在被乘数寄存器 B 的键盘中输入“183”B_Reg7~B_Reg010110111初始化 A 寄存器打开乘数寄存器 A 给它一个上升沿寄存初始数据Clock_A_Reg1关闭乘数寄存器 AClock_A_Reg0如果你使用按钮把以上两步变为点击一下按钮给乘数寄存器 A 上锁代表我们已存入初始值Load_A_Reg1初始化 B 寄存器打开被乘数寄存器 B给它一个上升沿寄存初始数据Clock_B_Reg1此时乘数最后一位和被乘数相与的结果已自动送入加法器关闭被乘数寄存器 BClock_B_Reg0初始化 P 寄存器打开部分积寄存器 P 给它一个上升沿把常数 0 寄存到线路 1 Clock_P_Reg1关闭部分积寄存器 PClock_P_Reg0给部分积寄存器 P 上锁代表我们已存入初始值Load_P_Reg1把部分积送入加法器打开缓冲寄存器 P_Buffer 给它一个上升沿把部分积送入加法器Clock_PB_Reg1关闭缓冲寄存器 P_BufferClock_PB_Reg0第一次加法结果此时加法器已算出结果 LED 灯显示“0 00000000”第一次循环寄存打开部分积寄存器 P 给它一个上升沿将加法结果寄存到线路 1Clock_P_Reg1关闭部分积寄存器 PClock_P_Reg0打开乘数寄存器 A 给它一个上升沿整体右移一位并寄存加法结果的最低位Clock_A_Reg1此时乘数最后一位和被乘数相与的结果已自动送入加法器关闭乘数寄存器 AClock_A_Reg0打开缓冲寄存器 P_Buffer 给它一个上升沿把部分积送入加法器Clock_PB_Reg1关闭缓冲寄存器 P_BufferClock_PB_Reg0第二次加法结果此时 LED 灯显示“0 10110111”第二次循环寄存步骤同第一次循环寄存第三次加法结果此时 LED 灯显示“1 00010010”第三次循环寄存步骤同上第四次加法结果此时 LED 灯显示“0 10001001”第四次循环寄存步骤同上第五次加法结果此时 LED 灯显示“0 01000100”第五次循环寄存步骤同上第六次加法结果此时 LED 灯显示“0 11011001”第六次循环寄存步骤同上第七次加法结果此时 LED 灯显示“0 01101100”第七次循环寄存步骤同上第八次加法结果此时 LED 灯显示“0 11101101”第八次循环寄存步骤同上输出高位乘法结果打开高位三态门 High输出结果此时输出为“01110110”EN_H1关闭高位三态门HighEN_H0输出低位乘法结果打开低位三态门 Low输出结果此时输出为“10101010”EN_L1关闭低位三态门LowEN_L06. 总结通过本教程你成功在 Logisim 中构建了一个手动版的无符号 8 位乘法器。这个过程让你掌握了二进制乘法的硬件实现原理并熟悉了 Logisim 中寄存器、加法器、多路选择器等基本元件的使用。你可以在此基础上进行扩展例如实现有符号乘法Booth算法、增加流水线、或将其封装为一个子电路Subcircuit供更大系统调用。

相关新闻

YOLOv8 电力绝缘子缺陷检测全栈工程|4 类 VOC/YOLO 航拍数据集、PyQt5 可视化 GUI、ONNX 轻量化、全套训练评估曲线落地

YOLOv8 电力绝缘子缺陷检测全栈工程|4 类 VOC/YOLO 航拍数据集、PyQt5 可视化 GUI、ONNX 轻量化、全套训练评估曲线落地

目录 一、前言 二、3642 张绝缘子 4 类别航拍数据集完整解析 2.1 数据集基础完整参数 2.2 电力绝缘子数据集专属优势 2.3 数据集固有短板与配套涨点优化策略 三、YOLOv8 绝缘子缺陷专属涨点核心原理 四、三大电力巡检落地应用案例 案例 1 山区长距离无人机全域巡检 项…

2026/10/10 17:51:01 阅读更多 →
不只是收发 HEX:PcanWork 串口助手的交互终端、多行粘贴与长日志设计

不只是收发 HEX:PcanWork 串口助手的交互终端、多行粘贴与长日志设计

知乎原文:PcanWork Serial Tool 把串口助手和交互终端合在一起 传统串口助手擅长选择串口参数,然后收一段、发一段数据。但设备进入 Linux、Bootloader、AT 命令或交互式 Shell 场景后,普通收发框很快会暴露局限:命令历史不好用、…

2026/10/10 17:51:03 阅读更多 →
被会员墙、广告弹窗、强制登录折磨了三年,这款开源下载工具让我彻底卸载了某雷

被会员墙、广告弹窗、强制登录折磨了三年,这款开源下载工具让我彻底卸载了某雷

基于yt-dlp内核,1800站点全协议支持,无广告无会员无套路,还内置播放器和字幕翻译引言:“有空再看”的视频,一拖就是半年手机收藏夹堆满"有空再看"的视频,电脑记事本存了十几条没来得及下载的网页…

2026/10/10 17:51:17 阅读更多 →

最新新闻

小程序自定义导航栏全攻略:从高度计算到组件封装

小程序自定义导航栏全攻略:从高度计算到组件封装

自定义导航栏,是小程序开发里绕不过去的一道坎。把navigationStyle设置为custom只需要一行配置,但背后要处理状态栏高度、胶囊按钮测量、标题居中、真机适配这一堆事情。这篇笔记是实际项目里反复调试后整理的,横向对比了几种实现思路&#x…

2026/10/12 13:22:35 阅读更多 →
将 Stripe API 与智能体工具链无缝集成:用 TaoToken 统一 Key 打通支付回调与工具调用

将 Stripe API 与智能体工具链无缝集成:用 TaoToken 统一 Key 打通支付回调与工具调用

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 13:22:34 阅读更多 →
Android bindService底层原理与实战排错指南

Android bindService底层原理与实战排错指南

1. 从“服务不可用”报错切入:为什么bindService总在onServiceConnected之前失败?你有没有遇到过这样的场景:在Activity里调用bindService(),明明Service已声明、AndroidManifest.xml也配置了intent-filter,可logcat里…

2026/10/12 13:22:34 阅读更多 →
Matt Pocock 怒批“氛围编程“:中文圈最该被这句话打醒的,是那些只会截图晒 Diff 的人

Matt Pocock 怒批“氛围编程“:中文圈最该被这句话打醒的,是那些只会截图晒 Diff 的人

Matt Pocock 怒批"氛围编程":中文圈最该被这句话打醒的,是那些只会截图晒 Diff 的人 【免费下载链接】skills Skills for Real Engineers. Straight from my .agents directory. 项目地址: https://gitcode.com/GitHub_Trending/skills13/sk…

2026/10/12 13:22:34 阅读更多 →
蓝鲸 CMDB 资源池主机查询接口(list_resource_pool_hosts)实战解析:参数、过滤语法与源码实现

蓝鲸 CMDB 资源池主机查询接口(list_resource_pool_hosts)实战解析:参数、过滤语法与源码实现

后端企业应用运维 【免费下载链接】bk-cmdb 蓝鲸智云配置平台(BlueKing CMDB) 项目地址: https://gitcode.com/gh_mirrors/bk/bk-cmdb 点击查看 免费下载 本文以蓝鲸智云配置平台(BlueKing CMDB,仓库目录 bk-cmdb)对外提供的资源…

2026/10/12 13:22:34 阅读更多 →
Vue实战进阶:从环境配置到动态路由与多端部署要点

Vue实战进阶:从环境配置到动态路由与多端部署要点

学Vue这几年,从最开始只会照着教程敲todo list,到后来完整负责过好几个基于Spring Boot加Vue的前后端分离项目,中间踩过的坑、绕过的弯,攒下来不少东西。这份Vue网站制作学习心得,我按“从入门到实战的进阶之路”来写&…

2026/10/12 13:21:33 阅读更多 →

日新闻

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

在数码相机、高清显示屏与现代矢量图形技术高度发达的今天,画面可以做到绝对的锐利、平滑与无瑕。然而,当一张秋日手账插画或拍立得照片过于“平整无瑕”时,往往会散发出一种冰冷生硬的“数码塑料感(Digital Plasticity&#xff0…

2026/10/12 0:00:59 阅读更多 →
活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

在现代网页与移动端设计中,横排(Horizontal Layout)早已经成为了绝对的主流。然而,当我们翻开泛黄的线装古籍、宋版木刻诗集,或是欣赏一张茶道雅集的手写便签时,那种**自上而下纵向书写、自右向左逐列铺展&…

2026/10/12 0:00:59 阅读更多 →
周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

每到周日的晚上八点到十点,很多人心里都会悄悄亮起一盏警示灯。 在心理学上,这种现象有一个专门的称谓——“周日夜晚焦虑症(Sunday Scaries)”。明天又是周一,闹钟又要重新在七点响彻卧房;脑海里仿佛有一个…

2026/10/12 0:00:59 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/12 0:16:30 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/12 0:16:43 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 10:45:37 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:53 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:54 阅读更多 →