1、P1 W1 U0.0~4 课程介绍

这里 Coursera 把 Nand2Tetris 官方的 week0 和 week1 合并都放在了Coursera 的Week1。
所以 我稍微解释一下 我的标题 代表的意思。
例如:
P1 = Part1(第一部分 硬件 hardware)
W1 = Week1 (Coursera 的 Week1 )
U0 = Unit 0 (官网的 week0 )



看过上篇文章的 第一部分Part1的总体介绍概览视频 后。这个单元主要对课程 的 Part1 和 Part2 做了全面的介绍。

如果本次课程对应的 Coursera的视频打不开,可以点击下面链接
P1W1U0.0 - Introduction
P1W1U0.1 - The Road Ahead
P1W1U0.2 - From Nand to Hack
P1W1U0.3 - From Hack to Tetris
P1W1U0.4 - Project 0 Overview

Part1:硬件 hardware

(下图黄色部分)
先从 与非门(Nand) 做成一个能为Part2用的小电脑,老师给它起名叫Hack
( Nand to Hack ,7 周)

Part2:软件 software

(下图蓝色部分)
再在Hack的基础上写程序跑一个俄罗斯方块
( Hack to Tetris,7 周)

课程概览



当然在 Part1 我们只关心下图部分。我们会学到下图右上小方块儿,一个 Low Level Code,类似最底层的机器语言,比如你知道的汇编语言那样子的,这一块是承接软硬的部分,所以在Coursera 的 Part2 里一开始也会重复讲。然后 黄色框 里分成三步:

  1. Elementary Logic Gates (设计基础原件“与非门”)
  2. CPU、RAM、chipset(由“与非门”组成的主要模块)
  3. Computer Architechture (由模块组成电脑)
Part 1



这部分分成 7周 6个项目,最终实现1个叫Hack的小电脑,来为Part2做准备。

7周 6项目 1电脑



那我们的Hack电脑要如何实现呢,首先我们不会去实现下图右边的显示器和键盘,我们只实现 左边绿框里部分,图里显示了Hack(老师给我们要做的电脑起的名字)几个主要组成模块,比如CPU、ROM、RAM 等等(对应就像 处理器、硬盘、内存)。

Hack



那CPU、ROM、RAM 等等 我们又如何实现呢?

通过右部分的几个基础 逻辑门(Logic gates) :(绿)Not非门、(蓝)And与门、(红)或门。结合左边逻辑表设计出其它复杂的门比如 Xor异或门



整个课程我们大概会用到大概16种复杂和基础的门(会在第一周实现),每种复杂的门都是由基础的门组成。

前面提到过这个课程不需要焊接硬件。所以我们设计好的各种门包括最终的Hack电脑,都是通过HDL语言虚拟实现在电脑软件上的。

所以设计好上图的Xor异或门后,我们是通过编写HDL程序来虚拟实现Xor的。如下图

右部分就是通过左边设计图写好的HDL语言,来虚拟实现Xor异或门



最后 把写好 的 HDL 语言 和 Test script 测试脚本(老师已经提供)。会在模拟器上跑一下,来验证我们的设计是否正确。

模拟 测试,验证我们的设计



如果设计符合最开始的Xor逻辑表。那么我们就可以在此基础上搭建更复杂的后续模块比如 CPU、ROM、RAM 等等(当然中间还会涉及加法器,寄存器等)。

下图列出了在 Part1 里我们每周都要实现的硬件。基本上每周的硬件组成都会依赖前一周设计好的硬件。

图里 Week4 比较特殊,铺垫了一下机器语言,在Part2部分一上来也会重复再讲一遍



关于底层机器汇编语言,课程这里多说了一下,下图左边蓝色部分就是我们要设计的最底层的 机器汇编语言。

右边就是实际机器汇编语言在电脑里以16位0101组成的样子



如果你写过程序,那么上图和我们用到的高级语言(比如java下图),差异比较大,更难看懂。不过这都是Part2要解决的问题了。

计算机科学第一课的hello world是从高级语言开始讲起



最后课程在此给出了Part1和Part2 全部代码和软件。

登陆www.nand2tetris.org,点击右边菜单栏的Software,如图红圈处下载



下载后解压缩,文件目录结构如下图:

文件目录结构,包括软件和项目代码



官方软件项目包下载:https://www.nand2tetris.org/software

备了一份软件项目包放在CSDN了,版本2.6支持Mac、Linux、Windows:
https://download.csdn.net/download/shazizm/11268147

另外总结了拓展资料包,有官方的ppt课件还有那本封面玩算盘的小男孩的中英文pdf读物:

nand2tetris课件和读物-part1

https://download.csdn.net/download/shazizm/11268109

nand2tetris课件和读物-part2(7-8-9)

https://download.csdn.net/download/shazizm/11268113

nand2tetris课件和读物-part2(10-11-12)

https://download.csdn.net/download/shazizm/11268114

你可能感兴趣的:(1、P1 W1 U0.0~4 课程介绍)