)]}'
{
  "commit": "5a16231216eeb507e8863578a299b9de672a6218",
  "tree": "ae80734f8bb9cb8ecf44501ea4a7cca0ed86cdfa",
  "parents": [
    "bd14438f39e4979800bf8f043c50bd78c2084f4c"
  ],
  "author": {
    "name": "Alex Van Damme",
    "email": "atv@google.com",
    "time": "Tue Sep 02 16:23:24 2025 -0700"
  },
  "committer": {
    "name": "Alex Van Damme",
    "email": "atv@google.com",
    "time": "Thu Sep 18 10:30:34 2025 -0700"
  },
  "message": "feat(fpga): Add SPI DPI Master for Verilator simulation\n\nThis commit introduces a SPI DPI master module to enable host-driven testing of the SoC in Verilator simulations. This provides a way to interact with the simulated design over SPI, mimicking how a host computer would interact with the physical FPGA.\n\nThe implementation consists of:\n- **`spi_dpi_master.sv`**: A SystemVerilog module that uses the SystemVerilog DPI to call into a C++ backend.\n- **`spi_dpi_master.cc`**: A C++ backend that implements the DPI functions. It starts a TCP server that listens for high-level commands (e.g., WRITE_REG, BULK_READ). It then translates these commands into the correct sequence of SPI signal toggles, which are driven back into the simulation.\n\nThis DPI module allows Python test scripts to connect to the simulation via a TCP socket and drive SPI transactions, enabling more realistic and hardware-in-the-loop style testing.\n\nChange-Id: I030bdbbb5598c75a9b11f82895de60a8c77d588f\n",
  "tree_diff": [
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "9ac19d834fb9d552921fe2f834a090dea0e1064a",
      "new_mode": 33188,
      "new_path": "fpga/ip/spi_dpi_master/BUILD"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "349542998d78a99c1805d042582ab30113e93a34",
      "new_mode": 33188,
      "new_path": "fpga/ip/spi_dpi_master/spi_dpi_master.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d0eea3f100d6d00e456abac3c4e9e5d9070de935",
      "new_mode": 33188,
      "new_path": "fpga/ip/spi_dpi_master/spi_dpi_master.core"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "de4f3fb81043131a5eab36fa9091870cf48cffd1",
      "new_mode": 33188,
      "new_path": "fpga/ip/spi_dpi_master/spi_dpi_master.sv"
    }
  ]
}
