From Nand to Tetris Week2 2021 超详细笔记

这篇博客详细记录了《From Nand to Tetris》课程中Week2的学习过程,重点是设计和理解ALU(算术逻辑单元)。通过HalfAdd和FullAdd Chip实现二进制加法,引入符号位和补码方法解决减法问题,并探讨了ALU的功能和实现思路,包括Inc16 Chip。博主分享了在理解Bitwise negation和构建逻辑门时遇到的挑战,以及学习的乐趣。
摘要由CSDN通过智能技术生成

Week2

为什么学这章的内容及学习目标

围绕着电脑计算展开,现在的我们知道CPU是计算机大量计算的关键部分,而在CPU内最关键处理计算的Chip是一个叫ALU(Arithmetic Logic Unit)中文名叫算术逻辑单元这样的一个东东,它的作用是处理字节运算和逻辑运算。Week2这章的内容目的是设计一个简单的ALU(属于From Nand to Tetris的一个ALU),这个ALU是专门属于你的,也是From Nand to Tetris这门课想要带给你,它被大量简化,只有加减法的计算功能。所以,难度适中,不用担心学不会的问题,但学习这个过程中带给你的爽感就像你真的设计了一个ALU,乃至未来的PC。

这章的内容以什么形式呈现

既然是计算,最简单的模型莫过于,两个分别为1个bit的信息进行相加计算了。这个模型抽象具体化为In a, b Out sum,carry

输出的结果分别为1bit的内容,carry代表的是进位,sum表示二进制相加的most significant的一位。我们将这个模型抽象为一个叫做HalfAdd的Chip。

计算不可能只计算一位吧,我们计算的内容可能是很多位进行相加。那么想想会遇到什么情况呢?当只有1位进行相加的时候,我们发现是HalfAdd的情况,But,wait.如果有很多位呢?我们将多位的情况先从最简单的方式进行思考,也就是两位的情况,会发生什么呢?我们发现如果carry为0的时候,就是HalfAdd的模型,但是当carry等于1的时候,那就相当于是有三个分别为1bit的内容进行加法计算了。

于是,有了FullAdd的模型Chip。In a,b,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值