【加法笔记系列】逻辑门、半加器、全加器、波纹进位加法器

简介: 在之前了解 PN 结以及逻辑电路实现之后,终于可以开始尝试实现计算机的加法了。 * 逻辑门,包括与、或、与非、异或 * 半加器,半加器电路 * 全加器,全加器电路 * 波纹进位加法器 ## 逻辑门 #### 与门 AND ![3357762234-59c25c8fa5090_articlex](https://user-images.githubuse

在之前了解 PN 结以及逻辑电路实现之后,终于可以开始尝试实现计算机的加法了。

  • 逻辑门,包括与、或、与非、异或
  • 半加器,半加器电路
  • 全加器,全加器电路
  • 波纹进位加法器

逻辑门

与门 AND

3357762234-59c25c8fa5090_articlex

或门 OR

2995792115-59c25e834a4f0_articlex

与非门 NAND

1529151173-59c25ff820103_articlex

异或门 XOR

7340463-59c26ae755fc3_articlex

真值表

A B AND OR NAND XOR
0 0 0 0 1 0
0 1 0 1 1 1
1 0 0 1 1 1
1 1 1 1 0 0

半加器

半加器(half adder)的功能是将两个一位二进制数相加。它具有两个输入和两个输出(分别是和(sum)、进位(carry))。

— Wiki

半加器电路图

A B Carry Sum
0 0 0 0
1 0 0 1
0 1 0 1
1 1 1 0

半加器简化图

2925864000-59c26f8739c14_articlex

全加器

全加器(full adder)将两个一位二进制数相加,并根据接收到的低位进位信号,输出和、进位输出。全加器的三个输入信号为两个加数A、B和低位进位Cin。

全加器逻辑电路

该电路如用简化版半加器表示,可以如下图:

1582983175-59c4f8cba758f_articlex

全加器真值表

二进制的全加器,刚可以用两位表示最大值,即 1 + 1 + 1 = 3 = 11(2)

A B Cin Cout S
0 0 0 0 0
1 0 0 0 1
0 1 0 0 1
1 1 0 1 0
0 0 1 0 1
1 0 1 1 0
0 1 1 1 0
1 1 1 1 1

全加器简化图

1389585610-59c4fadd78a21_articlex

或

波纹进位加法器

如果不需要连接其他进位信号,则最低位的全加器可以用半加器替换。

References

更多文章访问:zhoukekestar.github.io/notes

相关文章
|
NoSQL 编译器 Linux
gdb调试工具的使用方法
gdb调试工具的使用方法
569 1
|
存储 安全 API
什么是API Token?
API令牌是一种用于访问和验证API(应用程序编程接口)的安全凭证。它是一个字符串,用于识别和授权应用程序或用户访问特定的API服务或资源。==API令牌可以是访问令牌(Access Token)或密钥(API Key)==。
4893 0
|
机器学习/深度学习 算法 搜索推荐
基于FPGA的中值滤波算法的实现
中值滤波法是一种非线性平滑技术,它将每一像素点的灰度值设置为该点某邻域窗口内的所有像素点灰度值的中值.
|
机器学习/深度学习 人工智能 自然语言处理
指南:Grok中文版 _Grok 3 中文版本国内在线使用
Grok中文版都让用户能够不受限制地体验到最前沿的人工智能技术。通过这个平台,国内用户能够突破网络的束缚,尽情享受AI带来的便利与乐趣。
3065 4
|
存储 人工智能 缓存
【AI系统】Ascend C 语法扩展
Ascend C 是基于标准 C++ 扩展的编程语言,专为华为昇腾处理器设计。本文介绍了 Ascend C 的基础语法扩展、API(基础与高阶)、关键编程对象(数据存储、任务间通信与同步、资源管理及临时变量),以及如何利用这些特性高效开发。通过华为自研的毕昇编译器,Ascend C 实现了主机与设备侧的独立执行能力,支持不同地址空间的访问。API 包括计算、数据搬运、内存管理和任务同步等功能,旨在帮助开发者构建高性能的 AI 应用。
789 2
【AI系统】Ascend C 语法扩展
【verilog】同步复位,异步复位以及异步复位同步释放
该文讨论了数字电路设计中触发器复位机制的三种类型:同步复位、异步复位和异步复位同步释放。同步复位在时钟边沿确保稳定性,但对复位脉冲宽度有要求;异步复位响应快速,但可能受干扰且时序不确定;异步复位同步释放则结合两者的优点。设计时需根据需求权衡选择。文中还给出了Verilog代码示例。
|
Dart 前端开发 JavaScript
dart-sass与node-sass的区别以及使用dart-sass可能会出现的问题
dart-sass与node-sass的区别以及使用dart-sass可能会出现的问题
2470 0
dart-sass与node-sass的区别以及使用dart-sass可能会出现的问题
|
算法 数据挖掘 索引
Pandas数据排序:单列与多列排序详解
本文介绍了Pandas库中单列和多列排序的方法及常见问题的解决方案。单列排序使用`sort_values()`方法,支持升序和降序排列,并解决了忽略大小写、处理缺失值和索引混乱等问题。多列排序同样使用`sort_values()`,可指定不同列的不同排序方向,解决列名错误和性能优化等问题。掌握这些技巧能提高数据分析效率。
1235 9
|
监控 Java API
构建微服务架构的简易指南
【8月更文挑战第31天】在这篇文章中,我们将探索如何从零开始搭建一个微服务架构。通过简单易懂的语言和步骤,我们将一起学习设计、实现和部署微服务的最佳实践。无论你是后端开发的新手还是希望提升现有技能,本文都将为你提供有价值的指导。
|
Python
一个12306自动抢票的脚本
一个12306自动抢票的脚本
3363 1

热门文章

最新文章