)]}'
{
  "commit": "b9b0d55ba96b549756bb207a33dae793a9495859",
  "tree": "51f5f9da62f5b35fc9aac3d69a5309035ab27ca8",
  "parents": [
    "131a9c544c539e32488bc30284b7ef3f2604b5d2"
  ],
  "author": {
    "name": "Alex Van Damme",
    "email": "atv@google.com",
    "time": "Tue Aug 19 13:16:46 2025 -0700"
  },
  "committer": {
    "name": "Alex Van Damme",
    "email": "atv@google.com",
    "time": "Wed Aug 20 11:04:51 2025 -0700"
  },
  "message": "feat(bus): Add SECDED integrity for TileLink-UL\n\nThis commit implements SECDED (Single Error Correction, Double Error\nDetection) for the TileLink-UL bus to ensure data integrity. The\nimplementation is compatible with OpenTitan\u0027s `prim_secded_inv` logic.\n\nKey changes include:\n- A parameterized `SecdedEncoder` Chisel module that supports 32-bit,\n  57-bit, and 128-bit data widths. The 128-bit implementation uses a\n  folded ECC scheme.\n- `RequestIntegrityGen/Check` and `ResponseIntegrityGen/Check` modules\n  to generate and verify integrity codes for the TileLink A and D\n  channels.\n- A Python-based golden model (`secded_golden.py`) for the SECDED\n  logic to ensure correctness.\n- A new `TileLinkULInterface` cocotb utility for simplified,\n  transaction-based testing of the TileLink bus.\n- Comprehensive cocotb tests that verify the `SecdedEncoder` against\n  the golden model and test the full `TlulIntegrity` functionality,\n  including fault injection.\n\nChange-Id: I20a059b78a47699f145ae397b0e037d8c56dab69\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "0a257c2fbaeb556be63a6a4ce6bb73ed4a67e4b9",
      "old_mode": 33188,
      "old_path": "hdl/chisel/src/bus/BUILD",
      "new_id": "48737ef213b786e75a4c21554830727313910bf1",
      "new_mode": 33188,
      "new_path": "hdl/chisel/src/bus/BUILD"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f35df89388fcc7e397c1df938dff62ad9cf3257b",
      "new_mode": 33188,
      "new_path": "hdl/chisel/src/bus/SecdedEncoderTestbench.scala"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "fbde1025e9023ead26d7df9ab3e452d743c06e88",
      "new_mode": 33188,
      "new_path": "hdl/chisel/src/bus/TlulIntegrity.scala"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "285e109ce54f620e9fcf055e794b65a148755909",
      "new_mode": 33188,
      "new_path": "hdl/chisel/src/bus/TlulIntegrityTestbench.scala"
    },
    {
      "type": "modify",
      "old_id": "a358b4551f0c8494ac34798af5b14ac97db6d33b",
      "old_mode": 33188,
      "old_path": "kelvin_test_utils/BUILD",
      "new_id": "94c7b6ab0a2b4db106b6f40476ec324bccda15a7",
      "new_mode": 33188,
      "new_path": "kelvin_test_utils/BUILD"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "57c1cb5b34a54c901868d04463be0acf852b80f0",
      "new_mode": 33188,
      "new_path": "kelvin_test_utils/TileLinkULInterface.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c4d28779c59ac82e83a2139da0ae4f7b155d89a9",
      "new_mode": 33188,
      "new_path": "kelvin_test_utils/secded_golden.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "9b16b9c81fcb5754b8a804a7b4bf56ec101d2d3d",
      "new_mode": 33188,
      "new_path": "tests/cocotb/tlul/BUILD"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "175e59f524c702e5e96eb4048772ebb39cd688cf",
      "new_mode": 33188,
      "new_path": "tests/cocotb/tlul/test_secded_encoder.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "13cce8e406c40f305c50dc747cb5859f09c08c07",
      "new_mode": 33188,
      "new_path": "tests/cocotb/tlul/test_tlul_integrity.py"
    }
  ]
}
