blob: 929f8247039c412b26001210d6e10bde9cba5b4f (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
// This file is part of www.nand2tetris.org
// and the book "The Elements of Computing Systems"
// by Nisan and Schocken, MIT Press.
// File name: tools/builtIn/ROM32K.hdl
/**
* Read-Only memory (ROM) of 16K registers, each 16-bit wide.
* The chip is designed to facilitate data read, as follows:
* out(t) = ROM32K[address(t)](t)
* In words: the chip always outputs the value stored at the
* memory location specified by address.
*
* The built-in chip implementation has a GUI side-effect,
* showing an array-like component that displays the ROM's
* contents. The ROM32K chip is supposed to be pre-loaded with
* a machine language program. To that end, the built-in chip
* implementation also knows how to handle the "ROM32K load Xxx"
* script command, where Xxx is the name of a text file containing
* a program written in the Hack machine language. When the
* simulator encounters such a command in a test script, the code
* found in the file is loaded into the simulated ROM32K unit.
*/
CHIP ROM32K {
IN address[15];
OUT out[16];
BUILTIN ROM32K;
}
|