day02 设计计算机硬件

本文介绍了如何从零开始设计计算机硬件,包括实现ALU(算术逻辑单元)、构建简单的计算单元,以及添加数据存储。通过连接ALU、寄存器和外部存储,逐步形成一个能执行基本计算的系统。文章详细讲解了每个步骤,并展示了如何通过控制信号实现内存数据的读取和ALU的操作指令。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

嵌入式学习-04_嵌入式技术之从零搭建计算机

1设计计算机硬件

1.1 实现一个ALU

ALU(算术逻辑单元)是计算机中的一种关键组件,负责执行算术运算和逻辑运算。它是中央处理器(CPU)内部的一个重要功能模块,用于处理数据和执行指令。

1)选择器

在ALU中我们会用到复用器,两相复用器原理和封装如下图:

在这里插入图片描述

输出Q会跟随sel来决定是取输入A还是输入B。而四相复用器就是两相复用器的叠加:

在这里插入图片描述

2)16位ALU实现

查看如下电路:

在这里插入图片描述

该电路可以求A、B两数的加,减,按位与和按位或,最终的输出取决于sel。映射关系如下表:

sel 结果
0b00 A+B
0b01 A-B
0b10 A&B
0b11 A|B

Cin和Cout是输入输出的进位标志,ZF是A和B是否相等的标志。右键点击A、B、加法器,减法器,与门,或门,比较器、S,将它们的位数改为16bit,这个ALU的位数就被设置成了16bit。

1.2 实现一个简单的计算单元

现在我们希望使用刚刚创建的ALU来计算一下13+45+27+6,实现的步骤如下:

(1)A输入13,B输入45,然后可以看到S是累加后的结果。

(2)记录S的结果,并将其输入到A,在B输入27,那么S的结果就是13+45+27,记录这个结果。

(3)将上一步S的结果输入到A,B输入6,最终得到S结果 13+45+27+6。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

路x飞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值