From Nand To Tetris 从与非门到俄罗斯方块

序二 - 路线(持续更新)

2019-06-26  本文已影响0人  shazizm

几年前这个目标就很简单,那就是想DIY一个CPU或者一个简单的8位芯片搞明白怎么回事。

比如最终你看到的样子可能是这样的:

《从入门到放弃》- 看了这图,我连门都不想入了

然后打卡结束。

大概 目标

当然现在这个简单的愿景依然是基础,只是我想在这个过程中表达和展现更多(我不想要如上图那个丑丑又拒人千里之外的样子,因为在我眼里它本应展现的神秘又美丽的样子),我要尽最大努力去实现以下几个事情(可能以后还会添加):

1,完成项目

2,教程化并拓展项目

3,分享传播项目

4,在项目设计中贯穿计算机科学发展史以及通识

5,硬件展现方式容易认知化

6,5的基础上艺术化

7,

如果是开源技术圈的,估计感觉就像在说废话。

如果不是圈子,大概意思就是:

如果你想跟我走一样的路,那我有份旅行攻略,你只要一步一步跟着做,你保证一定会达到目的地,而且我会提供尽可能的帮助。

踩人 肩膀

这里做一些铺垫,因为大概2013年时,我通过一个TED演讲知道了一个Nand2Tetris的课程。我操,这个课程好牛逼,正是我要的。所以跟上次简单目标一样。我会先把这个课程过一遍,尽量做完,因为它就是基本实现了目标1。

但是这个教程目前我了解到的,跟我的愿景有些差异,我知道事情要从简单做起,要不容易失败导致放弃,但既然是目标,那就不妨"眼高"一下,之后再从"手低"开始。

课程里用到硬件(与非门)是虚拟出来的跑在一个计算机上(目前的课程就是用一种HDL语言 来 模拟与非门),即使课程最后展望会考虑挪到FPGA上了,依然是从一个虚拟(要搞明白它,那我就不要依赖它,否则我不信任这个理论)到另一个看不懂(FPGA听起来就不是那么天然的东西,从一个迷雾到另一个迷雾)。

所以,我最终希望是 尽量用 更基础的硬件元件去实现,我之前尝试直接用 三极管 (Transistor),但后来发现制作时有点麻烦和稳定性的问题。也占地。多种因素吧。暂时放弃,只是暂时哦,我还有更cool的想法。

所以,那就手低一下,从与非门(NAND gate) (由三极管组成的,是更高一级的一个基础组件)开始吧,就是那种指甲盖大小的长着两排脚的黑方块芯片,一个上面会有好几个与非门单元(如下图7400芯片 有四个),价格也不贵,足够稳定。但从上次我的失败经历来看,如果按照课程来做的话,好像某个存储器如果用一个个单个与非门来实现的话,空间上貌似摆一屋子都不够,而且重复且单调。

所以,我这次再手低一下,先老老实实跟老师教程走一遍。。。然后再反过来根据我的下一篇文章的设计原则,来实现更底层的展现方式。

具体 路线

那么目前的路线就明确了(未写完,边做边补充调整吧)

1 完成项目(Todo List)

1.1 TED看一遍 完成

1.2 Coursera 过一遍 完成

1.3 Nand2Tetris 官方资料 再过一遍(可与 1.2同步)完成

1.4 part1 简书一刷流水账 完成

1.4.1 part2 视频课看完一遍

1.4.2  读《逻辑的引擎》、《简明逻辑学-牛津通识读本》

1.5 part1 简书二刷

1.6 part1 尝试硬件物理实现

2 分享项目

2.1 可以与1同步,就像写旅行日记。

2.x

3 重新迭代

2019/9/29: part1 流水账一刷完成 ,part2 暂不打算开始,先进行 part1 二刷。

3.1 清晰结构,精简文字,优化排版,增加跟多利于理解的图片和视频。

3.2 part1 二刷 可以附带翻译中文字幕(有点为难...)、修正英文字幕、完善一刷(增加外链接、标注图片、简洁语言、通过粗体分清结构、补全每周作业、尝试gif动图、融合CrashCourse计算机课、增加历史图片)

2020/4/16: 隔了大半年,武汉也解封了,才来part1 二刷。这半年间找了一份兼职工作,大部分时间用来熟悉陌生行业和工作内容。Nand2Tetris这方面的工作,只看了一遍part2,以及开始读一些逻辑通识。最近工作进入稳定期,希望接下来可以稳定的二刷完part1。

4 在项目设计中贯穿计算机科学发展史以及通识

4.1 发现CrashCourse 的计算机课,非常好的课程,十几分钟的视频里,用高信息量的动画准确生动的阐明整套完整的技术原理。用丰富的历史图片和人物故事介绍了计算机历史的发展逻辑。

4.2 微信读书《逻辑的引擎》

4.3 得到《科学人物课:冯·诺伊曼》- 卓克

5

5.1

6

6.1

上一篇下一篇

猜你喜欢

热点阅读