{
 "flow": {
  "canon_script_sha256": "bbd11227d45dc1365f27597fd45c565fe721ba2648450588fc4fd983d00b367b",
  "ge_table_sha256": "6a29196a3f4b58241f4c9af650c9141e4632b737214d563a11ba142a725c4bea",
  "script_sha256": "ea58219d8ef14c3bad265218ee266ccdb709ac9d4dc5258edc34d51ee83a0445",
  "yosys": "Yosys 0.53 (git sha1 53c22ab7c0ced80861c7536c5dae682c30fb5834, clang++ 17.0.0 -fPIC -O3)"
 },
 "reference_player": "svgolf-reference",
 "revision": "e1cdeace235d",
 "schema": "svgolf-site/1",
 "tasks": [
  {
   "asap7": {
    "best": null,
    "columns": "leaderboard/asap7/_example.json",
    "input_drive": "BUFx8_ASAP7_75t_R",
    "par": {
     "area_mge": 21328,
     "area_um2": 1.39968,
     "depth": 1,
     "design": "band",
     "time_ps": 56
    },
    "ranked_axes": [
     "area_um2_asap7",
     "time_ps"
    ],
    "score": {
     "definition": "ASAP7 area (um^2) x time (ns)",
     "par": 0.07838208,
     "par_name": "band",
     "record": 0.07838208,
     "record_name": "band",
     "under": 0.0,
     "unit": "µm²·ns",
     "unit_ascii": "um2*ns"
    }
   },
   "best": null,
   "data": "data/tasks/_example.json",
   "input_drive": "sky130_fd_sc_hd__buf_8",
   "kind": "comb-family",
   "listing": "tutorial",
   "name": "_example",
   "page": "tasks/_example/index.html",
   "par": {
    "area_mge": 21328,
    "area_um2": 100.096,
    "depth": 1,
    "design": "band",
    "time_ps": 280
   },
   "preview_note": null,
   "ranked": true,
   "ranked_axes": [
    "area_um2_sky130",
    "time_ps"
   ],
   "records": 2,
   "score": {
    "definition": "sky130 area (um^2) x time (ns)",
    "par": 28.02688,
    "par_name": "band",
    "record": 28.02688,
    "record_name": "band",
    "under": 0.0,
    "unit": "µm²·ns",
    "unit_ascii": "um2*ns"
   },
   "scoring_point": {
    "N": 16
   },
   "solvers": 0,
   "status": "ready",
   "submissions": 0,
   "subtitle": "A toy task that runs the whole pipeline: y = a & b on N bits.",
   "title": "Bitwise AND"
  },
  {
   "asap7": {
    "best": {
     "area_e5um2": 718794,
     "area_mge": 114665,
     "best_time_ps": 561,
     "depth": 33,
     "record_hash": "d20bd7d9a6e6c181bf3ce92b55d7bb610fd7bd7dada03f3bab5ca0bb000dc315",
     "time_ps": 561
    },
    "columns": "leaderboard/asap7/add.json",
    "input_drive": "BUFx8_ASAP7_75t_R",
    "par": {
     "area_mge": 112000,
     "area_um2": 6.9984,
     "depth": 33,
     "design": "add_n",
     "time_ps": 563
    },
    "ranked_axes": [
     "area_um2_asap7",
     "time_ps"
    ],
    "score": {
     "definition": "ASAP7 area (um^2) x time (ns)",
     "par": 3.9400992,
     "par_name": "add_n",
     "record": 3.9400992,
     "record_name": "add_n",
     "under": 0.0,
     "unit": "µm²·ns",
     "unit_ascii": "um2*ns"
    }
   },
   "best": {
    "area_e4um2": 4742048,
    "area_mge": 114665,
    "best_time_ps": 2479,
    "depth": 33,
    "record_hash": "d20bd7d9a6e6c181bf3ce92b55d7bb610fd7bd7dada03f3bab5ca0bb000dc315",
    "time_ps": 2479
   },
   "data": "data/tasks/add.json",
   "input_drive": "sky130_fd_sc_hd__buf_8",
   "kind": "comb-family",
   "listing": "listed",
   "name": "add",
   "page": "tasks/add/index.html",
   "par": {
    "area_mge": 112000,
    "area_um2": 460.4416,
    "depth": 33,
    "design": "add_n",
    "time_ps": 2611
   },
   "preview_note": null,
   "ranked": true,
   "ranked_axes": [
    "area_um2_sky130",
    "time_ps"
   ],
   "records": 2,
   "score": {
    "definition": "sky130 area (um^2) x time (ns)",
    "par": 1202.2130176,
    "par_name": "add_n",
    "record": 1175.5536992,
    "record_name": "select-six",
    "under": 0.022175203570179675,
    "unit": "µm²·ns",
    "unit_ascii": "um2*ns"
   },
   "scoring_point": {
    "N": 16
   },
   "solvers": 1,
   "status": "ready",
   "submissions": 1,
   "subtitle": "Add two N-bit numbers and a carry in, with logic gates only.",
   "title": "N-bit adder"
  },
  {
   "asap7": {
    "best": {
     "area_e5um2": 12085362,
     "area_mge": 1930300,
     "best_time_ps": 1088,
     "depth": 60,
     "record_hash": "5b30f35c283bff377e4a02300c0248f4ee89ec2ea61441000da0b896cbc64b34",
     "time_ps": 1088
    },
    "columns": "leaderboard/asap7/mul.json",
    "input_drive": "BUFx8_ASAP7_75t_R",
    "par": {
     "area_mge": 2025905,
     "area_um2": 127.95408,
     "depth": 62,
     "design": "mul_tree_h",
     "time_ps": 1160
    },
    "ranked_axes": [
     "area_um2_asap7",
     "time_ps"
    ],
    "score": {
     "definition": "ASAP7 area (um^2) x time (ns)",
     "par": 148.4267328,
     "par_name": "mul_tree_h",
     "record": 131.48873856,
     "record_name": "late-carry",
     "under": 0.11411687046176092,
     "unit": "µm²·ns",
     "unit_ascii": "um2*ns"
    }
   },
   "best": {
    "area_e4um2": 79613856,
    "area_mge": 1930300,
    "best_time_ps": 5342,
    "depth": 60,
    "record_hash": "5b30f35c283bff377e4a02300c0248f4ee89ec2ea61441000da0b896cbc64b34",
    "time_ps": 5342
   },
   "data": "data/tasks/mul.json",
   "input_drive": "sky130_fd_sc_hd__buf_8",
   "kind": "comb-family",
   "listing": "listed",
   "name": "mul",
   "page": "tasks/mul/index.html",
   "par": {
    "area_mge": 2025905,
    "area_um2": 8563.2128,
    "depth": 62,
    "design": "mul_tree_h",
    "time_ps": 5992
   },
   "preview_note": null,
   "ranked": true,
   "ranked_axes": [
    "area_um2_sky130",
    "time_ps"
   ],
   "records": 4,
   "score": {
    "definition": "sky130 area (um^2) x time (ns)",
    "par": 51310.7710976,
    "par_name": "mul_tree_h",
    "record": 42529.7218752,
    "record_name": "late-carry",
    "under": 0.17113461822074866,
    "unit": "µm²·ns",
    "unit_ascii": "um2*ns"
   },
   "scoring_point": {
    "N": 16
   },
   "solvers": 2,
   "status": "ready",
   "submissions": 2,
   "subtitle": "The full 2N-bit product of two unsigned N-bit numbers, with logic gates only.",
   "title": "N-bit multiplier"
  },
  {
   "asap7": {
    "best": null,
    "columns": "leaderboard/asap7/clmul.json",
    "input_drive": "BUFx8_ASAP7_75t_R",
    "par": {
     "area_mge": 772267,
     "area_um2": 50.25726,
     "depth": 6,
     "design": "clmul_n",
     "time_ps": 197
    },
    "ranked_axes": [
     "area_um2_asap7",
     "time_ps"
    ],
    "score": {
     "definition": "ASAP7 area (um^2) x time (ns)",
     "par": 9.90068022,
     "par_name": "clmul_n",
     "record": 9.90068022,
     "record_name": "clmul_n",
     "under": 0.0,
     "unit": "µm²·ns",
     "unit_ascii": "um2*ns"
    }
   },
   "best": null,
   "data": "data/tasks/clmul.json",
   "input_drive": "sky130_fd_sc_hd__buf_8",
   "kind": "comb-family",
   "listing": "listed",
   "name": "clmul",
   "page": "tasks/clmul/index.html",
   "par": {
    "area_mge": 772267,
    "area_um2": 3429.5392,
    "depth": 6,
    "design": "clmul_n",
    "time_ps": 1114
   },
   "preview_note": null,
   "ranked": true,
   "ranked_axes": [
    "area_um2_sky130",
    "time_ps"
   ],
   "records": 1,
   "score": {
    "definition": "sky130 area (um^2) x time (ns)",
    "par": 3820.5066688,
    "par_name": "clmul_n",
    "record": 3820.5066688,
    "record_name": "clmul_n",
    "under": 0.0,
    "unit": "µm²·ns",
    "unit_ascii": "um2*ns"
   },
   "scoring_point": {
    "N": 16
   },
   "solvers": 0,
   "status": "ready",
   "submissions": 0,
   "subtitle": "Multiply two polynomials over GF(2): ANDs and XORs, no carries.",
   "title": "Carry-less multiplier"
  },
  {
   "asap7": {
    "best": {
     "area_e5um2": 1341360,
     "area_mge": 204659,
     "best_time_ps": 556,
     "depth": 16,
     "record_hash": "d2880a7160dd09519db7626bdd17a0bff9cc65b9f87de0a6b66857c9dfc1ecc6",
     "time_ps": 556
    },
    "columns": "leaderboard/asap7/aes_sbox.json",
    "input_drive": "BUFx8_ASAP7_75t_R",
    "par": {
     "area_mge": 200986,
     "area_um2": 13.35528,
     "depth": 21,
     "design": "sbox_bp",
     "time_ps": 704
    },
    "ranked_axes": [
     "area_um2_asap7",
     "time_ps"
    ],
    "score": {
     "definition": "ASAP7 area (um^2) x time (ns)",
     "par": 9.40211712,
     "par_name": "sbox_bp",
     "record": 7.4579616,
     "record_name": "tower-shuffle",
     "under": 0.20677848352520842,
     "unit": "µm²·ns",
     "unit_ascii": "um2*ns"
    }
   },
   "best": {
    "area_e4um2": 8908544,
    "area_mge": 204659,
    "best_time_ps": 3208,
    "depth": 16,
    "record_hash": "d2880a7160dd09519db7626bdd17a0bff9cc65b9f87de0a6b66857c9dfc1ecc6",
    "time_ps": 3208
   },
   "data": "data/tasks/aes_sbox.json",
   "input_drive": "sky130_fd_sc_hd__buf_8",
   "kind": "comb-fixed",
   "listing": "listed",
   "name": "aes_sbox",
   "page": "tasks/aes_sbox/index.html",
   "par": {
    "area_mge": 200986,
    "area_um2": 892.1056,
    "depth": 21,
    "design": "sbox_bp",
    "time_ps": 4297
   },
   "preview_note": null,
   "ranked": true,
   "ranked_axes": [
    "area_um2_sky130",
    "time_ps"
   ],
   "records": 3,
   "score": {
    "definition": "sky130 area (um^2) x time (ns)",
    "par": 3833.3777632,
    "par_name": "sbox_bp",
    "record": 2857.8609152,
    "record_name": "tower-shuffle",
    "under": 0.25447970647841,
    "unit": "µm²·ns",
    "unit_ascii": "um2*ns"
   },
   "scoring_point": {},
   "solvers": 1,
   "status": "ready",
   "submissions": 1,
   "subtitle": "The byte substitution of AES (FIPS 197): 8 bits in, 8 bits out.",
   "title": "AES S-box"
  },
  {
   "asap7": {
    "best": null,
    "columns": "leaderboard/asap7/fdivp.json",
    "input_drive": "BUFx8_ASAP7_75t_R",
    "par": {
     "area_mge": 2787652,
     "area_um2": 186.15744,
     "depth": 189,
     "design": "fdivp_srt",
     "time_ps": 5233
    },
    "ranked_axes": [
     "area_um2_asap7",
     "time_ps"
    ],
    "score": {
     "definition": "ASAP7 area (um^2) x time (ns)",
     "par": 974.16188352,
     "par_name": "fdivp_srt",
     "record": 974.16188352,
     "record_name": "fdivp_srt",
     "under": 0.0,
     "unit": "µm²·ns",
     "unit_ascii": "um2*ns"
    }
   },
   "best": null,
   "data": "data/tasks/fdivp.json",
   "input_drive": "sky130_fd_sc_hd__buf_8",
   "kind": "comb-family",
   "listing": "listed",
   "name": "fdivp",
   "page": "tasks/fdivp/index.html",
   "par": {
    "area_mge": 2787652,
    "area_um2": 12356.8512,
    "depth": 189,
    "design": "fdivp_srt",
    "time_ps": 27592
   },
   "preview_note": null,
   "ranked": true,
   "ranked_axes": [
    "area_um2_sky130",
    "time_ps"
   ],
   "records": 3,
   "score": {
    "definition": "sky130 area (um^2) x time (ns)",
    "par": 340950.2383104,
    "par_name": "fdivp_srt",
    "record": 340950.2383104,
    "record_name": "fdivp_srt",
    "under": 0.0,
    "unit": "µm²·ns",
    "unit_ascii": "um2*ns"
   },
   "scoring_point": {
    "P": 11,
    "W": 5
   },
   "solvers": 0,
   "status": "ready",
   "submissions": 0,
   "subtitle": "One divider for every exponent width and precision, rounded to nearest even.",
   "title": "IEEE 754 division, every format"
  },
  {
   "asap7": {
    "best": null,
    "columns": "leaderboard/asap7/arbiter.json",
    "input_drive": "BUFx8_ASAP7_75t_R",
    "par": {
     "area_mge": 188979,
     "area_um2": 12.15972,
     "depth": 17,
     "design": "rr_mask",
     "time_ps": 464
    },
    "ranked_axes": [
     "area_um2_asap7",
     "time_ps"
    ],
    "score": {
     "definition": "ASAP7 area (um^2) x time (ns)",
     "par": 5.64211008,
     "par_name": "rr_mask",
     "record": 5.64211008,
     "record_name": "rr_mask",
     "under": 0.0,
     "unit": "µm²·ns",
     "unit_ascii": "um2*ns"
    }
   },
   "best": null,
   "data": "data/tasks/arbiter.json",
   "input_drive": "sky130_fd_sc_hd__buf_8",
   "kind": "react-family",
   "listing": "listed",
   "name": "arbiter",
   "page": "tasks/arbiter/index.html",
   "par": {
    "area_mge": 188979,
    "area_um2": 769.488,
    "depth": 17,
    "design": "rr_mask",
    "time_ps": 2826
   },
   "preview_note": null,
   "ranked": true,
   "ranked_axes": [
    "area_um2_sky130",
    "time_ps"
   ],
   "records": 1,
   "score": {
    "definition": "sky130 area (um^2) x time (ns)",
    "par": 2174.573088,
    "par_name": "rr_mask",
    "record": 2174.573088,
    "record_name": "rr_mask",
    "under": 0.0,
    "unit": "µm²·ns",
    "unit_ascii": "um2*ns"
   },
   "scoring_point": {
    "N": 8
   },
   "solvers": 0,
   "status": "ready",
   "submissions": 0,
   "subtitle": "At most one grant per cycle, only to a requester, someone whenever anyone requests, and a requester that asks N cycles in a row granted within them.",
   "title": "Fair N-client arbiter, clocked and reactive"
  },
  {
   "asap7": {
    "best": {
     "area_e5um2": 366154830,
     "area_mge": 57547772,
     "best_time_ps": 1621,
     "depth": 73,
     "record_hash": "1ffe71156e9098006a54a5bd9ab0eb00cd103380b962c7b31482b93853668a1d",
     "time_ps": 1621
    },
    "columns": "leaderboard/asap7/matmul.json",
    "input_drive": "BUFx8_ASAP7_75t_R",
    "par": {
     "area_mge": 20783150,
     "area_um2": 1334.7261,
     "depth": 61,
     "design": "matmul_g1",
     "time_ps": 6156
    },
    "ranked_axes": [
     "area_um2_asap7",
     "time_ps"
    ],
    "score": {
     "definition": "ASAP7 area (um^2) x time (ns)",
     "par": 8216.5738716,
     "par_name": "matmul_g1",
     "record": 5935.3697943,
     "record_name": "fanout-ferret",
     "under": 0.2776344633357242,
     "unit": "µm²·ns",
     "unit_ascii": "um2*ns"
    }
   },
   "best": {
    "area_e4um2": 2419207712,
    "area_mge": 57547772,
    "best_time_ps": 9410,
    "depth": 73,
    "record_hash": "1ffe71156e9098006a54a5bd9ab0eb00cd103380b962c7b31482b93853668a1d",
    "time_ps": 9410
   },
   "data": "data/tasks/matmul.json",
   "input_drive": "sky130_fd_sc_hd__buf_8",
   "kind": "tx-family",
   "listing": "listed",
   "name": "matmul",
   "page": "tasks/matmul/index.html",
   "par": {
    "area_mge": 20783150,
    "area_um2": 87173.6064,
    "depth": 61,
    "design": "matmul_g1",
    "time_ps": 42784
   },
   "preview_note": null,
   "ranked": true,
   "ranked_axes": [
    "area_um2_sky130",
    "time_ps"
   ],
   "records": 5,
   "score": {
    "definition": "sky130 area (um^2) x time (ns)",
    "par": 3729635.5762176,
    "par_name": "matmul_g1",
    "record": 2276474.456992,
    "record_name": "fanout-ferret",
    "under": 0.38962549812958386,
    "unit": "µm²·ns",
    "unit_ascii": "um2*ns"
   },
   "scoring_point": {
    "AccW": 32,
    "N": 4,
    "W": 8
   },
   "solvers": 2,
   "status": "ready",
   "submissions": 4,
   "subtitle": "Multiply two signed N × N matrices, wrapping at AccW bits, behind a start/done handshake.",
   "title": "N × N matrix multiplication, clocked"
  },
  {
   "asap7": {
    "best": {
     "area_e5um2": 7485372,
     "area_mge": 1159535,
     "best_time_ps": 7200,
     "depth": 15,
     "record_hash": "61bf6f8d17f7aa5108524dcb4a8a9fe7f4113d82b25f4242827859740a19bf7e",
     "time_ps": 7200
    },
    "columns": "leaderboard/asap7/sorter.json",
    "input_drive": "BUFx8_ASAP7_75t_R",
    "par": {
     "area_mge": 1288819,
     "area_um2": 85.68666,
     "depth": 15,
     "design": "sorter_ins",
     "time_ps": 8192
    },
    "ranked_axes": [
     "area_um2_asap7",
     "time_ps"
    ],
    "score": {
     "definition": "ASAP7 area (um^2) x time (ns)",
     "par": 701.94511872,
     "par_name": "sorter_ins",
     "record": 538.946784,
     "record_name": "kestrel-golf",
     "under": 0.23220951378254212,
     "unit": "µm²·ns",
     "unit_ascii": "um2*ns"
    }
   },
   "best": {
    "area_e4um2": 47545600,
    "area_mge": 1159535,
    "best_time_ps": 33024,
    "depth": 15,
    "record_hash": "61bf6f8d17f7aa5108524dcb4a8a9fe7f4113d82b25f4242827859740a19bf7e",
    "time_ps": 33024
   },
   "data": "data/tasks/sorter.json",
   "input_drive": "sky130_fd_sc_hd__buf_8",
   "kind": "stream-family",
   "listing": "listed",
   "name": "sorter",
   "page": "tasks/sorter/index.html",
   "par": {
    "area_mge": 1288819,
    "area_um2": 5512.7872,
    "depth": 15,
    "design": "sorter_ins",
    "time_ps": 40368
   },
   "preview_note": null,
   "ranked": true,
   "ranked_axes": [
    "area_um2_sky130",
    "time_ps"
   ],
   "records": 2,
   "score": {
    "definition": "sky130 area (um^2) x time (ns)",
    "par": 222540.1936896,
    "par_name": "sorter_ins",
    "record": 157014.58944,
    "record_name": "kestrel-golf",
    "under": 0.29444390769694123,
    "unit": "µm²·ns",
    "unit_ascii": "um2*ns"
   },
   "scoring_point": {
    "N": 8,
    "W": 8
   },
   "solvers": 1,
   "status": "ready",
   "submissions": 1,
   "subtitle": "N unsigned W-bit values in, one per cycle; the same values out in ascending order, one per cycle.",
   "title": "Streaming sorter, clocked"
  }
 ]
}
