)]}'
{
  "commit": "2a08d1b866ae2c8aff432e29f01f24b983f31fe2",
  "tree": "7f4a0dcbebe731fd5c7cca9cb66d782c57a368d7",
  "parents": [
    "a59ba056297561bbfabec781a6a0d36dd829e87d"
  ],
  "author": {
    "name": "Leo Moser",
    "email": "leomoser99@gmail.com",
    "time": "Tue Apr 21 15:37:41 2026 +0200"
  },
  "committer": {
    "name": "Leo Moser",
    "email": "leomoser99@gmail.com",
    "time": "Thu May 21 12:19:39 2026 +0200"
  },
  "message": "gf180mcu: add gf180mcu_re_efuse, update LibreLane configs\n\n- Add gf180mcu_re_efuse\n- Update LibreLane configs\n  - Add latch maps (gf180mcu_fd_sc_mcu7t5v0/mcu9t5v0)\n  - Add pad configs (gf180mcu_fd_io/gf180mcu_ocd_io)\n  - Add scl config (gf180mcu_as_sc_mcu7t3v3)\n- Add blackbox views\n- Add `SYNTH_CLOCKGATE_*` variables for clock gating\n- Make use of the new KLayout DRC setup\n- Update JSON manifest\n\nSigned-off-by: Leo Moser \u003cleomoser99@gmail.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "e623470451f83eb3bf5a04802b21f08d7c3b61b0",
      "old_mode": 33188,
      "old_path": "gf180mcu/Makefile.in",
      "new_id": "11b48bc5518530d59a86cfcb5f8a7145c21db8a9",
      "new_mode": 33188,
      "new_path": "gf180mcu/Makefile.in"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "1d0eb6bf4735b063282356f6efc0eb888ebfa505",
      "new_mode": 33188,
      "new_path": "gf180mcu/custom/gf180mcu_fd_io/verilog/gf180mcu_ef_io__bi_t__blackbox.v"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "3b767c1d8faa8f8464ff58da9b3cb2a10aea7342",
      "new_mode": 33188,
      "new_path": "gf180mcu/custom/gf180mcu_fd_io/verilog/gf180mcu_ef_io__bi_t__blackbox_pp.v"
    },
    {
      "type": "delete",
      "old_id": "402e2141a45e0144b2016a967e03088bd9a23525",
      "old_mode": 33261,
      "old_path": "gf180mcu/custom/scripts/fix_io_lef.py",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "f169a41b9fb7c34645fc1de81395636ec2d016a2",
      "old_mode": 33188,
      "old_path": "gf180mcu/gf180mcu.json",
      "new_id": "122f3da7aebbd14d375e954888ab96b682943be0",
      "new_mode": 33188,
      "new_path": "gf180mcu/gf180mcu.json"
    },
    {
      "type": "modify",
      "old_id": "3c5121fc07b25189f87146f92a48141f96171d00",
      "old_mode": 33188,
      "old_path": "gf180mcu/librelane/config.tcl",
      "new_id": "324cec4b8b883d5576a8a0d56c6bc286c4abbf50",
      "new_mode": 33188,
      "new_path": "gf180mcu/librelane/config.tcl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "52f4d8c1923cfb32db6aba112e78376a53307240",
      "new_mode": 33188,
      "new_path": "gf180mcu/librelane/gf180mcu_as_sc_mcu7t3v3/config.tcl"
    },
    {
      "type": "copy",
      "old_id": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391",
      "old_mode": 33188,
      "old_path": "gf180mcu/librelane/gf180mcu_osu_sc_gp9t3v3/drc_exclude.cells",
      "new_id": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391",
      "new_mode": 33188,
      "new_path": "gf180mcu/librelane/gf180mcu_as_sc_mcu7t3v3/drc_exclude.cells",
      "score": 100
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "2d4f5b387ae61afa397e153b9ab0ab43cdb30f48",
      "new_mode": 33188,
      "new_path": "gf180mcu/librelane/gf180mcu_as_sc_mcu7t3v3/mux2_map.v"
    },
    {
      "type": "copy",
      "old_id": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391",
      "old_mode": 33188,
      "old_path": "gf180mcu/librelane/gf180mcu_osu_sc_gp9t3v3/drc_exclude.cells",
      "new_id": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391",
      "new_mode": 33188,
      "new_path": "gf180mcu/librelane/gf180mcu_as_sc_mcu7t3v3/pnr_exclude.cells",
      "score": 100
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c85daa51af514e5c1152d8fea6e0da896a2eef2e",
      "new_mode": 33188,
      "new_path": "gf180mcu/librelane/gf180mcu_as_sc_mcu7t3v3/synth_exclude.cells"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "16f592e2a168d117f6848218a39501441ec42f89",
      "new_mode": 33188,
      "new_path": "gf180mcu/librelane/gf180mcu_as_sc_mcu7t3v3/tracks.info"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ccc332f97ccdfc4437b410affa08dedc828ece77",
      "new_mode": 33188,
      "new_path": "gf180mcu/librelane/gf180mcu_fd_io/config.tcl"
    },
    {
      "type": "modify",
      "old_id": "28b84ad3a91353b14de5e834c7828e47e73cd86b",
      "old_mode": 33188,
      "old_path": "gf180mcu/librelane/gf180mcu_fd_sc_mcu7t5v0/config.tcl",
      "new_id": "14027015d1ec9d3acef7740182b5071c3ae179db",
      "new_mode": 33188,
      "new_path": "gf180mcu/librelane/gf180mcu_fd_sc_mcu7t5v0/config.tcl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a5c43369e32c52533190170ed713e7b1b93c9d91",
      "new_mode": 33188,
      "new_path": "gf180mcu/librelane/gf180mcu_fd_sc_mcu7t5v0/latch_map.v"
    },
    {
      "type": "rename",
      "old_id": "4add6389dbbc0579f99b6ce9e0686b0a7a1a34ef",
      "old_mode": 33188,
      "old_path": "gf180mcu/librelane/gf180mcu_fd_sc_mcu7t5v0/drc_exclude.cells",
      "new_id": "4add6389dbbc0579f99b6ce9e0686b0a7a1a34ef",
      "new_mode": 33188,
      "new_path": "gf180mcu/librelane/gf180mcu_fd_sc_mcu7t5v0/pnr_exclude.cells",
      "score": 100
    },
    {
      "type": "rename",
      "old_id": "2526b87894e7a0b065a04dc45d47d1a06d3a8599",
      "old_mode": 33188,
      "old_path": "gf180mcu/librelane/gf180mcu_fd_sc_mcu7t5v0/no_synth.cells",
      "new_id": "2526b87894e7a0b065a04dc45d47d1a06d3a8599",
      "new_mode": 33188,
      "new_path": "gf180mcu/librelane/gf180mcu_fd_sc_mcu7t5v0/synth_exclude.cells",
      "score": 100
    },
    {
      "type": "modify",
      "old_id": "922a51f6b9e18ab511b65ea6449a7e8513f100b7",
      "old_mode": 33188,
      "old_path": "gf180mcu/librelane/gf180mcu_fd_sc_mcu9t5v0/config.tcl",
      "new_id": "6eb31008d7ca9c8fdd09f58a0489223b6446a83f",
      "new_mode": 33188,
      "new_path": "gf180mcu/librelane/gf180mcu_fd_sc_mcu9t5v0/config.tcl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "33e84f57ad34208066f2890e35ffea707b9c7937",
      "new_mode": 33188,
      "new_path": "gf180mcu/librelane/gf180mcu_fd_sc_mcu9t5v0/latch_map.v"
    },
    {
      "type": "delete",
      "old_id": "c096d02973ebea6383e7966e7b39b0e72b65a784",
      "old_mode": 33188,
      "old_path": "gf180mcu/librelane/gf180mcu_fd_sc_mcu9t5v0/no_synth.cells",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "copy",
      "old_id": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391",
      "old_mode": 33188,
      "old_path": "gf180mcu/librelane/gf180mcu_osu_sc_gp12t3v3/drc_exclude.cells",
      "new_id": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391",
      "new_mode": 33188,
      "new_path": "gf180mcu/librelane/gf180mcu_fd_sc_mcu9t5v0/pnr_exclude.cells",
      "score": 100
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "52ed702047ba2a9af59c7f6ccd09034bd0e2a164",
      "new_mode": 33188,
      "new_path": "gf180mcu/librelane/gf180mcu_fd_sc_mcu9t5v0/synth_exclude.cells"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d1c2af9a8fc1f7703f761677d53e7008052e7ab8",
      "new_mode": 33188,
      "new_path": "gf180mcu/librelane/gf180mcu_ocd_io/config.tcl"
    },
    {
      "type": "modify",
      "old_id": "a5a893efef487fd90c9ec427d43b77a6b46225d2",
      "old_mode": 33188,
      "old_path": "gf180mcu/librelane/gf180mcu_osu_sc_gp12t3v3/config.tcl",
      "new_id": "12c1f79da91b46617e12f51df17708ff26bdfbc5",
      "new_mode": 33188,
      "new_path": "gf180mcu/librelane/gf180mcu_osu_sc_gp12t3v3/config.tcl"
    },
    {
      "type": "delete",
      "old_id": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391",
      "old_mode": 33188,
      "old_path": "gf180mcu/librelane/gf180mcu_osu_sc_gp12t3v3/no_synth.cells",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "rename",
      "old_id": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391",
      "old_mode": 33188,
      "old_path": "gf180mcu/librelane/gf180mcu_osu_sc_gp12t3v3/drc_exclude.cells",
      "new_id": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391",
      "new_mode": 33188,
      "new_path": "gf180mcu/librelane/gf180mcu_osu_sc_gp12t3v3/pnr_exclude.cells",
      "score": 100
    },
    {
      "type": "copy",
      "old_id": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391",
      "old_mode": 33188,
      "old_path": "gf180mcu/librelane/gf180mcu_osu_sc_gp12t3v3/drc_exclude.cells",
      "new_id": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391",
      "new_mode": 33188,
      "new_path": "gf180mcu/librelane/gf180mcu_osu_sc_gp12t3v3/synth_exclude.cells.cells",
      "score": 100
    },
    {
      "type": "modify",
      "old_id": "d0e8267333264fc4dd888309425918b06f65c46e",
      "old_mode": 33188,
      "old_path": "gf180mcu/librelane/gf180mcu_osu_sc_gp9t3v3/config.tcl",
      "new_id": "c838819963bedf4fdef0983264c5ace036294b11",
      "new_mode": 33188,
      "new_path": "gf180mcu/librelane/gf180mcu_osu_sc_gp9t3v3/config.tcl"
    },
    {
      "type": "delete",
      "old_id": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391",
      "old_mode": 33188,
      "old_path": "gf180mcu/librelane/gf180mcu_osu_sc_gp9t3v3/no_synth.cells",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "rename",
      "old_id": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391",
      "old_mode": 33188,
      "old_path": "gf180mcu/librelane/gf180mcu_osu_sc_gp9t3v3/drc_exclude.cells",
      "new_id": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391",
      "new_mode": 33188,
      "new_path": "gf180mcu/librelane/gf180mcu_osu_sc_gp9t3v3/pnr_exclude.cells",
      "score": 100
    },
    {
      "type": "copy",
      "old_id": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391",
      "old_mode": 33188,
      "old_path": "gf180mcu/librelane/gf180mcu_osu_sc_gp9t3v3/drc_exclude.cells",
      "new_id": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391",
      "new_mode": 33188,
      "new_path": "gf180mcu/librelane/gf180mcu_osu_sc_gp9t3v3/synth_exclude.cells",
      "score": 100
    },
    {
      "type": "modify",
      "old_id": "97d4d320b2070970e40b81a0576c56ffcf7c9fd6",
      "old_mode": 33261,
      "old_path": "scripts/configure",
      "new_id": "814669964bd7ff9b04e0eaf80e2e42e27661b38e",
      "new_mode": 33261,
      "new_path": "scripts/configure"
    },
    {
      "type": "modify",
      "old_id": "d5c11a945fcb0f4c0b3e1a9edcf740e8545e4b23",
      "old_mode": 33261,
      "old_path": "scripts/configure.ac",
      "new_id": "5e873689b39b511898bf2dabc085d13a1f15d904",
      "new_mode": 33261,
      "new_path": "scripts/configure.ac"
    }
  ]
}
