Files
thejayman77 ec82764bef Initial commit: retroDE_ps2 — first-of-its-kind PS2 GS FPGA core (DE25-Nano / Agilex 5)
RTL (GS rasterizer, EE core stub, platform bridge, LPDDR4B path), sim regression
(272 TBs), docs, and tooling. Copyrighted PS2 content (BIOS, game code, GS dumps,
and all dump-derived textures/traces) is excluded via .gitignore and stays local.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-29 20:10:50 -04:00
..

rtl/debug

Trace taps, observability modules, and first-class debug infrastructure.

This directory is intentionally first-class per the debug/validation strategy in docs/contracts/validation.md. Nothing here is ornamental; stubs and real blocks alike depend on it.

Wave 1 contents

  • trace_pkg.sv — shared types (subsys_e, event_e) and string renderers used by all trace producers and trace_sink_stub.
  • trace_sink_stub.sv — simulation-only text trace writer. One instance per output file; each Wave 1 stub wires its event port to its own sink. See docs/decisions/0000-trace-format.md for format rationale.

Usage pattern for Wave 1 testbenches

trace_sink_stub #(
    .FILENAME  ("ee.trace"),
    .SINK_LABEL("ee_fetch")
) u_trace_ee (
    .clk      (clk),
    .rst_n    (rst_n),
    .ev_valid (dut_ev_valid),
    .ev_subsys(dut_ev_subsys),
    .ev_event (dut_ev_event),
    .ev_arg0  (dut_ev_arg0),
    .ev_arg1  (dut_ev_arg1),
    .ev_arg2  (dut_ev_arg2),
    .ev_arg3  (dut_ev_arg3),
    .ev_flags (dut_ev_flags)
);

Notes

  • Cycle counter is internal to the sink and advances on clk while rst_n is high. Cross-clock correlation is a later-wave concern.
  • ev_flags == 0 renders as - in the trace line; any non-zero value is printed as an 8-hex-digit field.
  • Event/subsystem codes are globally unique in Wave 1 (not per-subsystem). Revisit if the namespace gets crowded.