hack/src
Collin J. Doering 0c737a29d9 Preliminary implementation of Hack computer simulation
Added two additional VHDL units 'src/ROM.vhdl' and
"src/computer_tb.vhdl", both of which are only meant for simulation
purposes. The ROM unit loads a text file specified by the generic property
"program_file" and acts as a 32K ROM addressed by its line
number (starting with zero). The computer_tb unit puts everything
together (cpu, ROM, and ram16k) and allows the user to pass a program
file via a generic property. This program file must contain less than
65535 lines containing 16 zeros or ones (eg. Something generated by the
assembler given for the Nand to Tetris course).

The directory "src/asm" was added containing a couple test programs in
both hack assembly and in hack machine language. Additionally, various
gtkwave save files (in 'src/wave/gtkw') were added for use with each
hack program given, as well as two template gtkwave save files for use
with new programs.

See the README.md file for more details on running simulations with
computer_tb, as well as various other details.

TODO: implement memory maps for screen and keyboard and handle VGA
      output

Signed-off-by: Collin J. Doering <collin.doering@rekahsoft.ca>
2015-06-05 19:14:14 -04:00
..
asm Preliminary implementation of Hack computer simulation 2015-06-05 19:14:14 -04:00
wave Preliminary implementation of Hack computer simulation 2015-06-05 19:14:14 -04:00
work Initial commit 2015-05-21 15:12:01 -04:00
.gitignore Preliminary implementation of Hack computer simulation 2015-06-05 19:14:14 -04:00
ROM.vhdl Preliminary implementation of Hack computer simulation 2015-06-05 19:14:14 -04:00
add16.vhdl Added GPL3 license and cleaned up formatting 2015-05-22 02:14:14 -04:00
add16_tb.vhdl Added GPL3 license and cleaned up formatting 2015-05-22 02:14:14 -04:00
adder.vhdl Added GPL3 license and cleaned up formatting 2015-05-22 02:14:14 -04:00
adder_tb.vhdl Added GPL3 license and cleaned up formatting 2015-05-22 02:14:14 -04:00
alu.vhdl Added GPL3 license and cleaned up formatting 2015-05-22 02:14:14 -04:00
alu_tb.vhdl Added GPL3 license and cleaned up formatting 2015-05-22 02:14:14 -04:00
clock.vhdl Generalized clock entity 2015-05-31 21:40:25 -04:00
clock_tb.vhdl Generalized clock entity 2015-05-31 21:40:25 -04:00
computer_tb.vhdl Preliminary implementation of Hack computer simulation 2015-06-05 19:14:14 -04:00
cpu.vhdl Fixed issue with jumps in cpu 2015-05-24 03:29:12 -04:00
cpu_tb.vhdl Finished cpu test bench 2015-05-24 03:38:02 -04:00
dbit.vhdl Tiny cleanup of formatting/filenames 2015-05-23 03:27:10 -04:00
dbit_tb.vhdl Added GPL3 license and cleaned up formatting 2015-05-22 02:14:14 -04:00
dff.vhdl Tiny cleanup of formatting/filenames 2015-05-23 03:27:10 -04:00
dff_tb.vhdl Tiny cleanup of formatting/filenames 2015-05-23 03:27:10 -04:00
dmux.vhdl Added GPL3 license and cleaned up formatting 2015-05-22 02:14:14 -04:00
dmux4way.vhdl Added GPL3 license and cleaned up formatting 2015-05-22 02:14:14 -04:00
dmux4way_tb.vhdl Added GPL3 license and cleaned up formatting 2015-05-22 02:14:14 -04:00
dmux8way.vhdl Added GPL3 license and cleaned up formatting 2015-05-22 02:14:14 -04:00
dmux8way_tb.vhdl Added GPL3 license and cleaned up formatting 2015-05-22 02:14:14 -04:00
dmux_tb.vhdl Added GPL3 license and cleaned up formatting 2015-05-22 02:14:14 -04:00
dregister.vhdl Added GPL3 license and cleaned up formatting 2015-05-22 02:14:14 -04:00
dregister_tb.vhdl Added GPL3 license and cleaned up formatting 2015-05-22 02:14:14 -04:00
mux.vhdl Added GPL3 license and cleaned up formatting 2015-05-22 02:14:14 -04:00
mux4way16.vhdl Added GPL3 license and cleaned up formatting 2015-05-22 02:14:14 -04:00
mux4way16_tb.vhdl Added GPL3 license and cleaned up formatting 2015-05-22 02:14:14 -04:00
mux8way16.vhdl Added GPL3 license and cleaned up formatting 2015-05-22 02:14:14 -04:00
mux8way16_tb.vhdl Added GPL3 license and cleaned up formatting 2015-05-22 02:14:14 -04:00
mux16.vhdl Added GPL3 license and cleaned up formatting 2015-05-22 02:14:14 -04:00
mux16_tb.vhdl Added GPL3 license and cleaned up formatting 2015-05-22 02:14:14 -04:00
mux_tb.vhdl Added GPL3 license and cleaned up formatting 2015-05-22 02:14:14 -04:00
pc.vhdl Added GPL3 license and cleaned up formatting 2015-05-22 02:14:14 -04:00
pc_tb.vhdl Added GPL3 license and cleaned up formatting 2015-05-22 02:14:14 -04:00
ram4k.vhdl Added GPL3 license and cleaned up formatting 2015-05-22 02:14:14 -04:00
ram4k_tb.vhdl Added GPL3 license and cleaned up formatting 2015-05-22 02:14:14 -04:00
ram8.vhdl Added GPL3 license and cleaned up formatting 2015-05-22 02:14:14 -04:00
ram8_tb.vhdl Added GPL3 license and cleaned up formatting 2015-05-22 02:14:14 -04:00
ram16k.vhdl Added GPL3 license and cleaned up formatting 2015-05-22 02:14:14 -04:00
ram16k_tb.vhdl Added GPL3 license and cleaned up formatting 2015-05-22 02:14:14 -04:00
ram64.vhdl Added GPL3 license and cleaned up formatting 2015-05-22 02:14:14 -04:00
ram64_tb.vhdl Added GPL3 license and cleaned up formatting 2015-05-22 02:14:14 -04:00
ram512.vhdl Added GPL3 license and cleaned up formatting 2015-05-22 02:14:14 -04:00
ram512_tb.vhdl Added GPL3 license and cleaned up formatting 2015-05-22 02:14:14 -04:00