Expand description
The Fabric Terminal’s RTL, emitted from its templates (codegen_sva/terminal/) with every protocol byte and
dimension filled from super::terminal_protocol: the UART, SLIP framing, the PS/2 port, the VGA text plane,
the link controller, the activity panel and the Nexys A7-100T top with its pins; and render, the picture the
screen’s frames are held to. The board build reads the emitted files (board_files) from benchmarks/silicon/,
where fabric_terminal --emit writes them.
Structs§
- Panel
- What one frame of the activity panel shows: the engine’s state at the frame’s snapshot, and the engine clocks each block and each cell ran in the frame before it.
- Screen
- What the text plane is told to draw: every cell, the cursor and the pointer, the flash phase that blinking cells and the cursor follow, and the activity panel when the top has an engine.
Constants§
- ENGINE_
FILE - The file
board_filesemits the engine into, beside the terminal’s other files. - ENGINE_
MODULE - The fabric engine the Fabric Terminal instantiates: Board B’s deployed engine, with its probes.
- FONT_
HEX - The font ROM the text plane reads with
$readmemh, one glyph row per line (seescripts/dev/gen-terminal-font.py). - FONT_
LICENSE - The font’s license, which travels with the ROM.
Functions§
- board_
files - Every file the board build reads from
benchmarks/silicon/, as (file name, contents): the modules, the font ROM and its license, the pin constraints, the probed engine, and two tops —nexys_fabric_terminalwith the engine andnexys_terminal_shell, the screen, keyboard and link alone. - font
- The font ROM as bytes: glyph
g, rowrisfont()[g * 16 + r], the MSB its leftmost pixel. - font8
- The small font ROM, made from
font: glyphg, rowrisfont8()[g * 8 + r], rowterminal_protocol::FONT8_ROWS[r]of the 8×16 glyph. - modules
- The module files a terminal top instantiates, in dependency order: (file name, filled Verilog). The activity panel belongs to a top with an engine.
- render
- The picture the screen draws for
screen: 640 × 480 pixels, row-major, each the 12-bit 0xRGB the board’s DAC is driven with — the text plane (the small-text window in the small font), and the activity panel over it. This is the model the RTL’s rendered frames are held to. - top
- The board top
top: withenginenaming the fabric engine module it instantiates — an engine emitted with its probes (emit_wprog_engine_soc_verilog_hw_probed), built beside it — or without one: the screen, keyboard and link alone, where ENGINE bytes are taken and dropped and the panel is not drawn. - xdc
- The board’s pin constraints for any terminal top.