{
  "module": "sha3",
  "rtl_top": "sync_rtl/sha3/sha3_top.v",
  "rtl_deps": ["sync_rtl/sha3/keccak_core.v", "sync_rtl/sha3/keccak_round.v"],
  "tb_cpp": "sync_rtl/sha3/TB/tb_sha3.cpp",
  "simulator": "verilator",
  "timeout_s": 120,
  "cases": [
    {
      "id": "g_basic",
      "description": "SHA3-512 G(d||k): 64B input → 64B output, verified against Python reference",
      "params": {"mode": "G", "k": 2},
      "num_vectors": 10,
      "tolerance": "bit_exact"
    },
    {
      "id": "h_basic",
      "description": "SHA3-256 H(ek): 32B+ output, single-block",
      "params": {"mode": "H", "k": 2},
      "num_vectors": 10,
      "tolerance": "bit_exact"
    },
    {
      "id": "j_basic",
      "description": "SHAKE-256 J(z||c): variable input → 32B output",
      "params": {"mode": "J"},
      "num_vectors": 5,
      "tolerance": "bit_exact"
    }
  ]
}
