ROM memory that contains information about the Tiny Tapeout chip. The ROM is 8-bit wide and 256 bytes long.
The ROM layout is as follows:
Address | Length | Encoding | Description |
---|---|---|---|
0 | 8 | 7-segment | Shuttle name (e.g. "tt07"), null-padded |
8 | 8 | 7-segment | Git commit hash |
32 | 96 | ASCII | Chip descriptor (see below) |
248 | 4 | binary | Magic value: "TT\xFA\xBB" |
252 | 4 | binary | CRC32 of the ROM contents, little-endian |
The chip descriptor is a simple null-terminated string that describes the chip. Each line is a key-value pair, separated by an equals sign. It contains the following keys:
Key | Description | Example value |
---|---|---|
shuttle | The identifier of the shuttle | tt07 |
repo | The name of the repository | TinyTapeout/tinytapeout-07 |
commit | The commit hash * | a1b2c3d4 |
* The commit hash is only included for Tiny Tapeout 5 and later.
Here is a complete example of a chip descriptor:
shuttle=tt07
repo=TinyTapeout/tinytapeout-07
commit=a1b2c3d4
The ROM is automatically generated by tt-support-tools
while building the final GDS file of the chip. Look at the rom.py
file in the repository for more details.
Read the ROM contents by setting the address pins and reading the data pins. The first 16 bytes of the ROM are 7-segment encoded and contain the shuttle name and commit hash. You can read them by toggling the first four DIP switches and observing the on-board 7-segment display.
# | Input | Output | Bidirectional |
---|---|---|---|
0 | addr[0] | data[0] | |
1 | addr[1] | data[1] | |
2 | addr[2] | data[2] | |
3 | addr[3] | data[3] | |
4 | addr[4] | data[4] | |
5 | addr[5] | data[5] | |
6 | addr[6] | data[6] | |
7 | addr[7] | data[7] |