)]}'
{
  "commit": "be106f192e7e77a9038adf577aafa6c2d4e03b6c",
  "tree": "952c899da41243dae45144168d4f4eb585d02780",
  "parents": [
    "148e450ec330c1cd4236d5caa317c0b4b1e34f9f"
  ],
  "author": {
    "name": "Alex Van Damme",
    "email": "atv@google.com",
    "time": "Tue Aug 19 13:27:55 2025 -0700"
  },
  "committer": {
    "name": "Alex Van Damme",
    "email": "atv@google.com",
    "time": "Thu Aug 28 16:49:59 2025 -0700"
  },
  "message": "feat(bus): Add TileLink-UL primitives\n\nThis commit introduces a collection of primitive modules for building\nTileLink-UL interconnects, including FIFOs, sockets, and a width\nbridge.\n\nThe new modules are:\n- TlulFifoSync: A synchronous TileLink FIFO with optional spare\n  side-channels.\n- TlulFifoAsync: An asynchronous TileLink FIFO for clock domain\n  crossing, built on the rocket-chip AsyncQueue.\n- TlulSocket1N: A 1-to-N socket for steering requests from a single\n  host to one of N devices.\n- TlulSocketM1: An M-to-1 socket that arbitrates requests from M\n  hosts to a single device using a round-robin arbiter.\n- TlulWidthBridge: A bridge for connecting TileLink-UL buses of\n  different widths.\n\nEach of these modules is accompanied by a comprehensive cocotb test\nsuite to ensure its correctness.\n\nChange-Id: I2ca34caad9332b0621a68957c043a91deee45999\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "3e2be7198837ff4f0238c42beb80c56640be39a6",
      "old_mode": 33188,
      "old_path": "hdl/chisel/src/bus/BUILD",
      "new_id": "d793ef690837e5e4930a32f451ba9829afbc1b02",
      "new_mode": 33188,
      "new_path": "hdl/chisel/src/bus/BUILD"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "98ad167049194b2bd0e035b54d99b1299f0ef2a1",
      "new_mode": 33188,
      "new_path": "hdl/chisel/src/bus/TlulFifoAsync.scala"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "92b45baa2f2e67fca7a710bdc9064b0e532845ec",
      "new_mode": 33188,
      "new_path": "hdl/chisel/src/bus/TlulFifoSync.scala"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "046b3fdec4f5e942dca41e0b2878c2ef892a4369",
      "new_mode": 33188,
      "new_path": "hdl/chisel/src/bus/TlulSocket1N.scala"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a00789d05bdcf5ff4906b481157308e33d9ab761",
      "new_mode": 33188,
      "new_path": "hdl/chisel/src/bus/TlulSocketM1.scala"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "4feecee355a499274432ab7308150cf123e664bf",
      "new_mode": 33188,
      "new_path": "hdl/chisel/src/bus/TlulWidthBridge.scala"
    },
    {
      "type": "modify",
      "old_id": "f3271ae5f38bae7e89faa7e7c1bd0e19aa476f36",
      "old_mode": 33188,
      "old_path": "hdl/chisel/src/common/KelvinArbiter.scala",
      "new_id": "bf878baf1c975331e504b88eb520f7f445cb82dd",
      "new_mode": 33188,
      "new_path": "hdl/chisel/src/common/KelvinArbiter.scala"
    },
    {
      "type": "modify",
      "old_id": "47407775dbe7f3b5450392b4ecb46e5302ce8054",
      "old_mode": 33188,
      "old_path": "tests/cocotb/tlul/BUILD",
      "new_id": "33c324b350b85c237a7182953248088416172ac7",
      "new_mode": 33188,
      "new_path": "tests/cocotb/tlul/BUILD"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e4972e03eb0d5aec75caf9d324ef4596133b01fd",
      "new_mode": 33188,
      "new_path": "tests/cocotb/tlul/test_tlul_fifo_async.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a71844ba6c0d780e0059ff62a04f74f183ddff8a",
      "new_mode": 33188,
      "new_path": "tests/cocotb/tlul/test_tlul_fifo_sync.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "80ab1508121ada5c8fbc11968ecbe675217b8984",
      "new_mode": 33188,
      "new_path": "tests/cocotb/tlul/test_tlul_socket_1n.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "6061ef265fbc29b12b166e1595618918faf76db1",
      "new_mode": 33188,
      "new_path": "tests/cocotb/tlul/test_tlul_socket_m1.py"
    }
  ]
}
