【头歌·计组·自己动手画CPU】二、运算器设计(讲解版) 【计算机硬件系统设计】

🕺作者: 主页

我的专栏
C语言从0到1
探秘C++
数据结构从0到1
探秘Linux

😘欢迎关注:👍点赞🙌收藏✍️留言

🏇码字不易,你的👍点赞🙌收藏❤️关注对我真的很重要,有问题可在评论区提出,感谢支持!!!

文章目录

    • 加法器实现
      • 第1关:8位可控加减法电路设计
        • [1. 推荐博客:一位全加器的实现](https://blog.csdn.net/qq_43279579/article/details/115480406)
        • (一)半加器
        • (二)1位全加器
        • 需要注意引脚的含义
        • [2. 推荐博客:本实验具体实现原理](http://t.csdnimg.cn/CO71h)
        • 3 接线图
      • 第2关:CLA182四位先行进位电路设计
        • 原理:[推荐视频]()
        • 接线图
      • 第3关:4位快速加法器设计
      • 第4关:16位快速加法器设计
      • 第5关:32位快速加法器设计
    • 乘法器实现
      • 第6关:5位无符号阵列乘法器设计
      • 第7关:6位有符号补码阵列乘法器
      • 第8关:乘法流水线设计
      • 第9关:原码一位乘法器设计
      • 第10关:补码一位乘法器设计
      • 第11关:MIPS运算器设计

由于原理是一致的,为了不做多余的重复劳动,下面主要是通过搜罗网上的资料来讲述的,这里都会贴上别人的链接
新手推荐博客:Logisim常用组件库介绍(很适合新手观看)-CSDN博客

加法器实现

image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png

第1关:8位可控加减法电路设计

推荐视频: 【计组】多位串行加法器实现原理_哔哩哔哩_bilibili

1. 推荐博客:一位全加器的实现
(一)半加器
  1. 半加器的定义
    半加器是能够对两个一位的二进制数进行相加得到半加和以及半加进位的组合电路。
  2. 半加器的真值表
    A,B表示二进制数,C表示半加进位,S表示半加和
  3. 输出表达式
    image.png
  4. 逻辑电路图
(二)1位全加器
  1. 1位全加器的真值表
    Ain表示被加数,Bin表示加数,Cin表示低位进位,Cout表示高位进位,Sum表示本位和
    | Ain | Bin | Cin | Cout | Sum |
    | — | — | — | — | — |
    | 0 | 0 | 0 | 0 | 0 |
    | 0 | 0 | 1 | 0 | 1 |
    | 0 | 1 | 0 | 0 | 1 |
    | 0 | 1 | 1 | 1 | 0 |
    | 1 | 0 | 0 | 0 | 1 |
    | 1 | 0 | 1 | 1 | 0 |
    | 1 | 1 | 0 | 1 | 0 |
    | 1 | 1 | 1 | 1 | 1 |

  2. 输出表达式
    image.png

  3. 逻辑图

需要注意引脚的含义

image.png

2. 推荐博客:本实验具体实现原理

这里我认为他已经写的很清楚了,所以就大概讲一下。

logisim平台已经给了全加器芯片,第一个要解决的问题就是如何利用全加器进行减法运算。两个数进行减法运算可以看被减数加负的减数,因此要将y转换成(-y)补之后再进行加法运算:符号位转换成1,数值位按位取反再加1。由于减法运算时sub为1,因此可以将y的各位与sub异或,同时sub作为最低为全加器的低位进位输入,以此实现上述功能。
第二个要解决的问题是溢出的判断:两个数的加减法运算可以分为以下四种情况:正+正,正+负,负+正,负+负,而溢出仅会在正+正与负+负时有可能发生。
m表示最高数值位进位,n表示符号位进位,首先讨论一定不会发生溢出的两种情况(正+负与负+正):可以总结为10+01或10+11两种情况(高位为符号位,低位为最高数值位),可能的结果有两种:n=0,m=0和n=1,m=1。此时n异或m=0。
再讨论可能会发生溢出的两种情况。
正+正:可能的情况可以概括为01+01,01+00,00+00,其中第一种情况会发生溢出(n=0,m=1,n异或m=1),后两种情况不会发生溢出(n=0,m=0,n异或m=0).
负+负:两个负数相加结果应为负数,结果符号位应为1,当符号位为0时发生溢出,可能的情况可概括为10+10,10+11,11+11,其中前两种情况的结果符号位为0,发生溢出**(n=1,m=0,n异或m=1),第三种情况符号位为1,没有发生溢出(n=1,m=1,n异或m=0)。
综合以上讨论,可以发现
当符号位进位和最高位进位异或结果为1时发生溢出**,异或结果为0时没有发生溢出。由此就得到了补码运算判断溢出的方法。

3 接线图

image.png

第2关:CLA182四位先行进位电路设计

我讲的没老师讲的好,咱们直接看视频吧。

原理:推荐视频

image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png

接线图

image.png

第3关:4位快速加法器设计

原理之前讲了,类似
image.png
image.png

第4关:16位快速加法器设计

image.png

第5关:32位快速加法器设计

image.png

乘法器实现

原理老师上课讲过,这里有课件供大家复习查看,不再赘述了。
视频:计算机组成原理期末大题使用原码阵列乘法器和补码阵列乘法器分别计算x*y_哔哩哔哩_bilibili
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png

第6关:5位无符号阵列乘法器设计

阵列乘法器由多个加法器和乘法器组成,其工作原理是将待乘数和乘数分别按位拆分成多个小段,在阵列乘法器中进行乘法运算和累加,并最终得出乘积。
阵列乘法器将待乘数和乘数逐位相乘,并将结果送入加法器进行累加。在每个时钟周期中,阵列乘法器会对每个乘数位进行一次部分积计算,直到所有位都完成运算。部分积计算完成后,阵列乘法器会将结果根据位数进行排序和加和,以得到最终乘积。
阵列乘法器的优点是速度快、复杂度低、结构简单等。它广泛应用于数字信号处理、数值计算、图像处理等领域中,是实现大规模数据处理的重要工具。
image.png

第7关:6位有符号补码阵列乘法器

image.png

第8关:乘法流水线设计

image.png

第9关:原码一位乘法器设计

image.png

第10关:补码一位乘法器设计

image.png

第11关:MIPS运算器设计

image.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/385459.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

蓝桥杯——第 5 场 小白入门赛(c++详解!!!)

文章目录 1 十二生肖基本思路: 2 欢迎参加福建省大学生程序设计竞赛基本思路:代码: 3 匹配二元组的数量基本思路:代码: 4 元素交换基本思路:代码: 5 下棋的贝贝基本思路:代码: 6 方程…

8868体育助力西甲皇家马德里足球俱乐部 皇马占据争冠优势

西甲的皇家马德里足球俱乐部是8868体育合作的俱乐部之一,这支拥有悠久历史和辉煌成就的豪门球队,本赛季再次展现了它的强大实力。18胜4平1负,暂居榜首,这样的成绩足以让任何对手望而却步。然而,足球场上的对决永远充满…

【开源】JAVA+Vue.js实现海南旅游景点推荐系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 用户端2.2 管理员端 三、系统展示四、核心代码4.1 随机景点推荐4.2 景点评价4.3 协同推荐算法4.4 网站登录4.5 查询景点美食 五、免责说明 一、摘要 1.1 项目介绍 基于VueSpringBootMySQL的海南旅游推荐系统&#xff…

任务调度

1.学习目标 1.1 定时任务概述 1.2 jdk实现任务调度 1.3 SpringTask实现任务调度 1.4 Spring-Task 分析 1.5 Cron表达式 https://cron.qqe2.com/ 2. Quartz 基本应用 2.1 Quartz 基本介绍 2.2 Quartz API介绍 2.3 入门案例 <dependency> <groupId>org.springframe…

春晚联排第四次,明星们的行头成焦点。央视门前的星光熠熠。

♥ 为方便您进行讨论和分享&#xff0c;同时也为能带给您不一样的参与感。请您在阅读本文之前&#xff0c;点击一下“关注”&#xff0c;非常感谢您的支持&#xff01; 文 |猴哥聊娱乐 编 辑|徐 婷 校 对|侯欢庭 近期&#xff0c;随着2024龙年央视春晚的彩排逐渐进入高潮&am…

【c语言】字符串常见函数 上

&#x1f388;个人主页&#xff1a;甜美的江 &#x1f389;欢迎 &#x1f44d;点赞✍评论⭐收藏 &#x1f917;收录专栏&#xff1a;c语言 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共同学习、交流进步&a…

SSM+SpringBoot框架

单例bean是线程安全的吗 AOP Spring事务失效 第四种&#xff0c;在方法内部使用&#xff0c;需要用代理类调用此方法 bean生命周期 bean的循环依赖 SpringMVC执行流程 、 SpringBoot自动配置原理 Spring常见注解 MyBatis执行流程 MyBatis延迟加载 MyBatis缓存

代码随想录算法训练营Day56|583. 两个字符串的删除操作、72. 编辑距离

目录 583. 两个字符串的删除操作 前言 思路 算法实现 法二 72. 编辑距离 前言 思路 算法实现 总结 583. 两个字符串的删除操作 题目链接 文章链接 前言 本题与上一题不同的子序列相比&#xff0c;变化就是两个字符串都可以进行删除操作了。 思路 利用动规五部曲进…

【Vitis】Vitis HLS简介

Vitis HLS简介 Vitis™HLS是一种高层次综合工具&#xff0c;支持将C、C和OpenCL™函数硬连线到器件逻辑互连结构和RAM/DSP块上。 Vitis HLS可在Vitis应用加速开发流程中实现硬件内核&#xff0c;并使用C/C语言代码在VivadoDesign Suite中为赛灵思器件设计开发RTL IP。 【Vitis…

【Ubuntu】在.bashrc文件中误设置环境变量补救方法

这里是vim也不在PATH中了&#xff0c;因为 解决方法就是在输入vim之后提示的vim路径下用vim打开该文件&#xff0c;然后改回来

C++ Primer 第 5 版 第 6 章习题答案

文章目录 6.16.26.36.46.56.66.76.86.106.116.126.136.146.156.166.176.186.196.206.216.226.236.246.256.266.276.286.296.306.316.326.336.346.356.366.376.386.396.406.416.426.436.446.456.466.476.486.496.506.516.526.536.546.556.56 6.1 形参出现在函数定义的地方&…

Vue3.0(六):VueX 4.x详解

Vuex4状态管理 什么是状态管理 在开发中&#xff0c;我们的应用程序需要处理各种各样的数据&#xff0c;这些数据需要保存在应用程序的某一个位置&#xff0c;对于这些数据的管理&#xff0c;就是 状态管理目前前端项目越来越复杂&#xff0c;多组件共享同一数据的状态很常见…

嵌入式Qt Qt Creator安装与工程介绍

一.Qt概述 什么是Qt&#xff1a;Qt是一个跨平台的C图形用户界面应用程序框架。它为应用程序开发者提供建立图形界面所需的所有功能。它是完全面向对象的&#xff0c;很容易扩展&#xff0c;并且允许真正的组件编程。 二.Qt Creator下载安装 下载地址&#xff1a;Index of /a…

compile error ESP32cam.h no such file or directory

解决方法 可以参考这篇文章: But first, you will need to download the esp32cam.h library. For this go to Github and download the esp32cam Zip. GitHub - yoursunny/esp32cam: OV2640 camera on ESP32-CAM, Arduino library 具体就是下面的这篇重要的文章 :

【GO语言卵细胞级别教程】05.项目创建和函数讲解

感谢&#xff01;点点赞和评论呀&#xff01;我将继续更新 目录&#xff1a; 感谢&#xff01;点点赞和评论呀&#xff01;我将继续更新0.创建项目1.函数的引入2.注意事项3.详细介绍3.1 形参介绍 4.导入包4.1 基本知识4.2 注意事项 5.init函数6.匿名函数 0.创建项目 创建目录 …

位运算+leetcode ( 2 )

题一&#xff1a;只出现一次的数字&#xff08;1&#xff09; 1.链接 136. 只出现一次的数字 - 力扣&#xff08;LeetCode&#xff09; 2.思想 借用位运算中异或操作符的特点&#xff0c;a^a0&#xff0c;0^aa先定义一个sum0就用一个循环来遍历这个数组&#xff0c;每次都进行…

数据工程工程师学习路线图

数据工程岗位要求 Skill Sets required: - Hands on experience enabling data via Adobe Analytics and/or Google Analytics - Understanding of how customer level data is captured and stitched with behavioural data - Experience working with Testing (QA) and D…

编写代码(LLVM的第一个项目)

下面这个完整代码 它相对较短&#xff0c;因为它建立在LLVM 流程的基础设施上 后者替我们完成大部分工作 我们从程序使用cl命名空间中的llvm工具&#xff08;cl代表命令行&#xff09;来实现我们的命令行接口 需要调用ParseCommandLineOption函数声明cl&#xff1a;&#xff…

Unicode里的表意文字描述符

「表意文字描述符&#xff08;Ideographic Description Characters&#xff09;」区块位于U2FF0-U2FFF范围内&#xff0c;共占据十六个编码空间&#xff0c;但由于实际上只有十二个符号&#xff0c;所以U2FFC-U2FFF的四个位置并没有编排任何符号。 由于汉字的数量庞大&#xff…