NAND2Tetris:带你从零开始手搓计算机之项目1——搭建逻辑门
总述
第一个项目总而言之还是非常地简单,就是要求大家在只拥有与非门的基础上搭建15个比较基础的逻辑门。
在之前我们学习逻辑门(包括与门、非门、或门),我们还是习惯于把这些内容以原子化的方式看待,缺少了对其逻辑关联的分析和了解。其实本质上,这些门不是相互独立和割裂的,你可以根据与非门搭建一个非门,你可以根据与非门、非门搭建好一个与门…在这个项目里,通过对不同逻辑门的搭建,你会深刻地发现门与门实际上是相互关联、相互成全的!
同时,不管是在数字电路还是数字逻辑设计这类的课程中,我们都会讨论布尔表达式、真值表这些内容。通过这个项目,你会发现,先写好并化简表达式再来用代码搭建逻辑门,是一件事半功倍的事情。
总之,15个逻辑门的搭建是我们迈出从零开始搭建计算机的第一步,因为一台再精密的机器,不过也只是由最基本的逻辑门搭建起来的罢。
以下是我自己实现的逻辑门代码,并非最优解,供参考。关键的思路和要素我会写在注释里。
Not
1 | /** |
And
1 | /** |
Or
1 | /** |
Xor
1 | /** |
Mux
1 | /** |
DMux
1 | /** |
Not16
1 | /** |
And16
1 | /** |
Or16
1 | /** |
Mux16
1 | /** |
Or8way
1 | /** |
Mux4Way16
1 | /** |
Mux8Way16
1 | /** |
DMux4Way
1 | /** |
DMux8Way
1 | /** |
-------------本文结束感谢您的阅读-------------
本文作者:
Arua
本文链接: https://blog.visionary-5.top/2024/10/18/NAND2Tetris%E2%80%94%E2%80%94project1/
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!
本文链接: https://blog.visionary-5.top/2024/10/18/NAND2Tetris%E2%80%94%E2%80%94project1/
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!
