Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/rep-movsd/9d
Complete software suite for the nand2tetris MOOC course
https://github.com/rep-movsd/9d
Last synced: 4 days ago
JSON representation
Complete software suite for the nand2tetris MOOC course
- Host: GitHub
- URL: https://github.com/rep-movsd/9d
- Owner: rep-movsd
- License: gpl-3.0
- Created: 2017-08-02T08:30:42.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2019-02-10T12:49:08.000Z (almost 6 years ago)
- Last Synced: 2024-11-11T04:21:35.409Z (2 months ago)
- Language: C++
- Size: 34.2 KB
- Stars: 20
- Watchers: 11
- Forks: 2
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 9d
Complete software suite for the [nand2tetris](http://nand2tetris.org/) [MOOC](https://www.coursera.org/learn/build-a-computer) course### Intro
The nand2tetris MOOC is a challenging course that teaches how to build a computer from ground up, using logic gates all the way upto the software stack, including a compiler and a rudimentary OS.The course is quite old, and the software tools that they provide feel a bit dated. We aim to build an alternative suite that will help students of this course.
Beyond the course itself, it can serve as a playground to test various ideas for programming languages, CPU architecture etc. within the limits of the course tooling specifications.
### Features
nand2tetris has several tools:
* A digital logic designer based on a hardware description language (called HDL) that lets you wire together gates and simulate them
* A cpu simulator for the HACK CPU that runs machine code
* A VM emulator that executes the JACK VM bytecode
* A HACK platform simulator, that simulates an entire computer including a keyboard and a display
We will attempt to build a complete IDE/Debugger/runtime that wraps all of theseSeveral ideas to implement:
* Graphical display of HDL circuits, and ability to visually design them (two way visual design)
* HACK assembler/emulator with reversible debugging, breakpoints, watches etc.
* JACK language IDE, with syntactic/semantic highlighting, plugin architecture for new language features
* JACK VM emulator with reversible debugging etc.
* HACK machine emulation with plugin architecture for custom devices
* Generic compiled plugins for handling other experimental CPU architectures and machine code
* JACK VM to native x86 compilation