{
 "scope": "Pre-layout estimates (Yosys + ABC mapping to the Nangate45 typical library, OpenSTA with ideal clocks, no wire parasitics, placement, routing or power) and RTL simulation. Not silicon measurements.",
 "liberty_sha256": "8d540a4d4cf6d09d27c87ad067857a9c0c2eeb023ab7a56e058cd3113db4e9b1",
 "simulation": [
  {
   "set": "x1",
   "simulator": "icarus",
   "seed": 1,
   "result": "PASS",
   "log": "x1_icarus_seed1.log",
   "summary": {
    "checks": "register_reads_compared=1044 write_responses_compared=1110 stream_results_compared=8579",
    "axi4lite": "writes=1110 (OKAY 589, SLVERR 521) reads=1044 (OKAY 855, SLVERR 189)",
    "axi4lite timing": "last_of_AW_W_handshake_to_B_handshake_min_cycles=2 AR_to_R_handshake_min_cycles=1 min_cycles_between_AW_handshakes=2 min_cycles_between_AR_handshakes=2",
    "axi4lite ordering": "aw_before_w=172 w_before_aw=199 same_cycle=739 back_to_back_aw=682 back_to_back_ar=675 max_outstanding_wr=2 max_outstanding_rd=1",
    "axi4stream": "s_axis_transfers=8583 s_back_to_back=5815 m_axis_transfers=8579 m_back_to_back=5842 m_stall_cycles=6368 m_tready_midcycle_toggles_checked=7566",
    "timing": "s_to_m_handshake_latency_cycles min=4 max=83 over 8579 results; always-valid/always-ready window: 500 results in 500 cycles"
   }
  },
  {
   "set": "x1",
   "simulator": "icarus",
   "seed": 2,
   "result": "PASS",
   "log": "x1_icarus_seed2.log",
   "summary": {
    "checks": "register_reads_compared=1062 write_responses_compared=1107 stream_results_compared=8590",
    "axi4lite": "writes=1107 (OKAY 599, SLVERR 508) reads=1062 (OKAY 888, SLVERR 174)",
    "axi4lite timing": "last_of_AW_W_handshake_to_B_handshake_min_cycles=2 AR_to_R_handshake_min_cycles=1 min_cycles_between_AW_handshakes=2 min_cycles_between_AR_handshakes=2",
    "axi4lite ordering": "aw_before_w=168 w_before_aw=200 same_cycle=739 back_to_back_aw=667 back_to_back_ar=677 max_outstanding_wr=2 max_outstanding_rd=1",
    "axi4stream": "s_axis_transfers=8597 s_back_to_back=5803 m_axis_transfers=8590 m_back_to_back=5817 m_stall_cycles=6510 m_tready_midcycle_toggles_checked=7756",
    "timing": "s_to_m_handshake_latency_cycles min=4 max=108 over 8590 results; always-valid/always-ready window: 500 results in 500 cycles"
   }
  },
  {
   "set": "x1",
   "simulator": "icarus",
   "seed": 3,
   "result": "PASS",
   "log": "x1_icarus_seed3.log",
   "summary": {
    "checks": "register_reads_compared=1073 write_responses_compared=1119 stream_results_compared=8617",
    "axi4lite": "writes=1119 (OKAY 623, SLVERR 496) reads=1073 (OKAY 869, SLVERR 204)",
    "axi4lite timing": "last_of_AW_W_handshake_to_B_handshake_min_cycles=2 AR_to_R_handshake_min_cycles=1 min_cycles_between_AW_handshakes=2 min_cycles_between_AR_handshakes=2",
    "axi4lite ordering": "aw_before_w=167 w_before_aw=197 same_cycle=755 back_to_back_aw=700 back_to_back_ar=667 max_outstanding_wr=2 max_outstanding_rd=1",
    "axi4stream": "s_axis_transfers=8619 s_back_to_back=5836 m_axis_transfers=8617 m_back_to_back=5882 m_stall_cycles=6294 m_tready_midcycle_toggles_checked=7884",
    "timing": "s_to_m_handshake_latency_cycles min=4 max=101 over 8617 results; always-valid/always-ready window: 500 results in 500 cycles"
   }
  },
  {
   "set": "x1",
   "simulator": "verilator",
   "seed": 1,
   "result": "PASS",
   "log": "x1_verilator_seed1.log",
   "summary": {
    "checks": "register_reads_compared=1044 write_responses_compared=1110 stream_results_compared=8579",
    "axi4lite": "writes=1110 (OKAY 589, SLVERR 521) reads=1044 (OKAY 855, SLVERR 189)",
    "axi4lite timing": "last_of_AW_W_handshake_to_B_handshake_min_cycles=2 AR_to_R_handshake_min_cycles=1 min_cycles_between_AW_handshakes=2 min_cycles_between_AR_handshakes=2",
    "axi4lite ordering": "aw_before_w=172 w_before_aw=199 same_cycle=739 back_to_back_aw=682 back_to_back_ar=675 max_outstanding_wr=2 max_outstanding_rd=1",
    "axi4stream": "s_axis_transfers=8583 s_back_to_back=5815 m_axis_transfers=8579 m_back_to_back=5842 m_stall_cycles=6368 m_tready_midcycle_toggles_checked=7566",
    "timing": "s_to_m_handshake_latency_cycles min=4 max=83 over 8579 results; always-valid/always-ready window: 500 results in 500 cycles"
   }
  },
  {
   "set": "x1",
   "simulator": "verilator",
   "seed": 2,
   "result": "PASS",
   "log": "x1_verilator_seed2.log",
   "summary": {
    "checks": "register_reads_compared=1062 write_responses_compared=1107 stream_results_compared=8590",
    "axi4lite": "writes=1107 (OKAY 599, SLVERR 508) reads=1062 (OKAY 888, SLVERR 174)",
    "axi4lite timing": "last_of_AW_W_handshake_to_B_handshake_min_cycles=2 AR_to_R_handshake_min_cycles=1 min_cycles_between_AW_handshakes=2 min_cycles_between_AR_handshakes=2",
    "axi4lite ordering": "aw_before_w=168 w_before_aw=200 same_cycle=739 back_to_back_aw=667 back_to_back_ar=677 max_outstanding_wr=2 max_outstanding_rd=1",
    "axi4stream": "s_axis_transfers=8597 s_back_to_back=5803 m_axis_transfers=8590 m_back_to_back=5817 m_stall_cycles=6510 m_tready_midcycle_toggles_checked=7756",
    "timing": "s_to_m_handshake_latency_cycles min=4 max=108 over 8590 results; always-valid/always-ready window: 500 results in 500 cycles"
   }
  },
  {
   "set": "x1",
   "simulator": "verilator",
   "seed": 3,
   "result": "PASS",
   "log": "x1_verilator_seed3.log",
   "summary": {
    "checks": "register_reads_compared=1073 write_responses_compared=1119 stream_results_compared=8617",
    "axi4lite": "writes=1119 (OKAY 623, SLVERR 496) reads=1073 (OKAY 869, SLVERR 204)",
    "axi4lite timing": "last_of_AW_W_handshake_to_B_handshake_min_cycles=2 AR_to_R_handshake_min_cycles=1 min_cycles_between_AW_handshakes=2 min_cycles_between_AR_handshakes=2",
    "axi4lite ordering": "aw_before_w=167 w_before_aw=197 same_cycle=755 back_to_back_aw=700 back_to_back_ar=667 max_outstanding_wr=2 max_outstanding_rd=1",
    "axi4stream": "s_axis_transfers=8619 s_back_to_back=5836 m_axis_transfers=8617 m_back_to_back=5882 m_stall_cycles=6294 m_tready_midcycle_toggles_checked=7884",
    "timing": "s_to_m_handshake_latency_cycles min=4 max=101 over 8617 results; always-valid/always-ready window: 500 results in 500 cycles"
   }
  },
  {
   "set": "gemv_32x128_p8",
   "simulator": "icarus",
   "seed": 1,
   "result": "PASS",
   "log": "gemv_32x128_p8_icarus_seed1.log",
   "summary": {
    "checks": "commands=5 cycle_counts_matched=5 rows_via_axi4lite=160 rows_via_axi4stream=192 register_reads_compared=357 write_responses_compared=118",
    "axi4lite": "writes=118 (OKAY 97, SLVERR 21) reads=357 (OKAY 331, SLVERR 26)",
    "axi4lite timing": "last_of_AW_W_handshake_to_B_handshake_min_cycles=2 AR_to_R_handshake_min_cycles=1 min_cycles_between_AW_handshakes=2 min_cycles_between_AR_handshakes=2",
    "axi4lite ordering": "aw_before_w=20 w_before_aw=9 same_cycle=89 back_to_back_aw=17 back_to_back_ar=248",
    "axi4stream": "load_beats=2211 load_back_to_back=1335 load_stall_cycles_while_busy=92 load_stall_cycles_while_start_pending=1 result_beats=192 result_stall_cycles=157 m_tready_midcycle_toggles_checked=2468 memory_writes_while_busy=0",
    "timing": "start_write_to_device_start_cycles min=1 max=1; irq_rise_minus_(start+CYCLES) min=3 max=3; result_stream_32_rows_always_ready_cycles=36; load_stall_cycles_while_idle=0"
   }
  },
  {
   "set": "gemv_32x128_p8",
   "simulator": "icarus",
   "seed": 2,
   "result": "PASS",
   "log": "gemv_32x128_p8_icarus_seed2.log",
   "summary": {
    "checks": "commands=5 cycle_counts_matched=5 rows_via_axi4lite=160 rows_via_axi4stream=192 register_reads_compared=357 write_responses_compared=118",
    "axi4lite": "writes=118 (OKAY 97, SLVERR 21) reads=357 (OKAY 331, SLVERR 26)",
    "axi4lite timing": "last_of_AW_W_handshake_to_B_handshake_min_cycles=2 AR_to_R_handshake_min_cycles=1 min_cycles_between_AW_handshakes=2 min_cycles_between_AR_handshakes=2",
    "axi4lite ordering": "aw_before_w=14 w_before_aw=14 same_cycle=90 back_to_back_aw=17 back_to_back_ar=210",
    "axi4stream": "load_beats=2211 load_back_to_back=1553 load_stall_cycles_while_busy=92 load_stall_cycles_while_start_pending=1 result_beats=192 result_stall_cycles=124 m_tready_midcycle_toggles_checked=2317 memory_writes_while_busy=0",
    "timing": "start_write_to_device_start_cycles min=1 max=1; irq_rise_minus_(start+CYCLES) min=3 max=3; result_stream_32_rows_always_ready_cycles=36; load_stall_cycles_while_idle=0"
   }
  },
  {
   "set": "gemv_32x128_p8",
   "simulator": "icarus",
   "seed": 3,
   "result": "PASS",
   "log": "gemv_32x128_p8_icarus_seed3.log",
   "summary": {
    "checks": "commands=5 cycle_counts_matched=5 rows_via_axi4lite=160 rows_via_axi4stream=192 register_reads_compared=357 write_responses_compared=118",
    "axi4lite": "writes=118 (OKAY 97, SLVERR 21) reads=357 (OKAY 331, SLVERR 26)",
    "axi4lite timing": "last_of_AW_W_handshake_to_B_handshake_min_cycles=2 AR_to_R_handshake_min_cycles=1 min_cycles_between_AW_handshakes=2 min_cycles_between_AR_handshakes=2",
    "axi4lite ordering": "aw_before_w=14 w_before_aw=17 same_cycle=87 back_to_back_aw=16 back_to_back_ar=186",
    "axi4stream": "load_beats=2211 load_back_to_back=1473 load_stall_cycles_while_busy=92 load_stall_cycles_while_start_pending=1 result_beats=192 result_stall_cycles=357 m_tready_midcycle_toggles_checked=1889 memory_writes_while_busy=0",
    "timing": "start_write_to_device_start_cycles min=1 max=1; irq_rise_minus_(start+CYCLES) min=3 max=3; result_stream_32_rows_always_ready_cycles=36; load_stall_cycles_while_idle=0"
   }
  },
  {
   "set": "gemv_32x128_p8",
   "simulator": "verilator",
   "seed": 1,
   "result": "PASS",
   "log": "gemv_32x128_p8_verilator_seed1.log",
   "summary": {
    "checks": "commands=5 cycle_counts_matched=5 rows_via_axi4lite=160 rows_via_axi4stream=192 register_reads_compared=357 write_responses_compared=118",
    "axi4lite": "writes=118 (OKAY 97, SLVERR 21) reads=357 (OKAY 331, SLVERR 26)",
    "axi4lite timing": "last_of_AW_W_handshake_to_B_handshake_min_cycles=2 AR_to_R_handshake_min_cycles=1 min_cycles_between_AW_handshakes=2 min_cycles_between_AR_handshakes=2",
    "axi4lite ordering": "aw_before_w=20 w_before_aw=9 same_cycle=89 back_to_back_aw=17 back_to_back_ar=248",
    "axi4stream": "load_beats=2211 load_back_to_back=1335 load_stall_cycles_while_busy=92 load_stall_cycles_while_start_pending=1 result_beats=192 result_stall_cycles=157 m_tready_midcycle_toggles_checked=2468 memory_writes_while_busy=0",
    "timing": "start_write_to_device_start_cycles min=1 max=1; irq_rise_minus_(start+CYCLES) min=3 max=3; result_stream_32_rows_always_ready_cycles=36; load_stall_cycles_while_idle=0"
   }
  },
  {
   "set": "gemv_32x128_p8",
   "simulator": "verilator",
   "seed": 2,
   "result": "PASS",
   "log": "gemv_32x128_p8_verilator_seed2.log",
   "summary": {
    "checks": "commands=5 cycle_counts_matched=5 rows_via_axi4lite=160 rows_via_axi4stream=192 register_reads_compared=357 write_responses_compared=118",
    "axi4lite": "writes=118 (OKAY 97, SLVERR 21) reads=357 (OKAY 331, SLVERR 26)",
    "axi4lite timing": "last_of_AW_W_handshake_to_B_handshake_min_cycles=2 AR_to_R_handshake_min_cycles=1 min_cycles_between_AW_handshakes=2 min_cycles_between_AR_handshakes=2",
    "axi4lite ordering": "aw_before_w=14 w_before_aw=14 same_cycle=90 back_to_back_aw=17 back_to_back_ar=210",
    "axi4stream": "load_beats=2211 load_back_to_back=1553 load_stall_cycles_while_busy=92 load_stall_cycles_while_start_pending=1 result_beats=192 result_stall_cycles=124 m_tready_midcycle_toggles_checked=2317 memory_writes_while_busy=0",
    "timing": "start_write_to_device_start_cycles min=1 max=1; irq_rise_minus_(start+CYCLES) min=3 max=3; result_stream_32_rows_always_ready_cycles=36; load_stall_cycles_while_idle=0"
   }
  },
  {
   "set": "gemv_32x128_p8",
   "simulator": "verilator",
   "seed": 3,
   "result": "PASS",
   "log": "gemv_32x128_p8_verilator_seed3.log",
   "summary": {
    "checks": "commands=5 cycle_counts_matched=5 rows_via_axi4lite=160 rows_via_axi4stream=192 register_reads_compared=357 write_responses_compared=118",
    "axi4lite": "writes=118 (OKAY 97, SLVERR 21) reads=357 (OKAY 331, SLVERR 26)",
    "axi4lite timing": "last_of_AW_W_handshake_to_B_handshake_min_cycles=2 AR_to_R_handshake_min_cycles=1 min_cycles_between_AW_handshakes=2 min_cycles_between_AR_handshakes=2",
    "axi4lite ordering": "aw_before_w=14 w_before_aw=17 same_cycle=87 back_to_back_aw=16 back_to_back_ar=186",
    "axi4stream": "load_beats=2211 load_back_to_back=1473 load_stall_cycles_while_busy=92 load_stall_cycles_while_start_pending=1 result_beats=192 result_stall_cycles=357 m_tready_midcycle_toggles_checked=1889 memory_writes_while_busy=0",
    "timing": "start_write_to_device_start_cycles min=1 max=1; irq_rise_minus_(start+CYCLES) min=3 max=3; result_stream_32_rows_always_ready_cycles=36; load_stall_cycles_while_idle=0"
   }
  },
  {
   "set": "gemv_64x256_p8",
   "simulator": "icarus",
   "seed": 1,
   "result": "PASS",
   "log": "gemv_64x256_p8_icarus_seed1.log",
   "summary": {
    "checks": "commands=5 cycle_counts_matched=5 rows_via_axi4lite=320 rows_via_axi4stream=384 register_reads_compared=537 write_responses_compared=138",
    "axi4lite": "writes=138 (OKAY 117, SLVERR 21) reads=537 (OKAY 511, SLVERR 26)",
    "axi4lite timing": "last_of_AW_W_handshake_to_B_handshake_min_cycles=2 AR_to_R_handshake_min_cycles=1 min_cycles_between_AW_handshakes=2 min_cycles_between_AR_handshakes=2",
    "axi4lite ordering": "aw_before_w=31 w_before_aw=9 same_cycle=98 back_to_back_aw=18 back_to_back_ar=386",
    "axi4stream": "load_beats=8211 load_back_to_back=5001 load_stall_cycles_while_busy=312 load_stall_cycles_while_start_pending=1 result_beats=384 result_stall_cycles=346 m_tready_midcycle_toggles_checked=7172 memory_writes_while_busy=0",
    "timing": "start_write_to_device_start_cycles min=1 max=1; irq_rise_minus_(start+CYCLES) min=3 max=3; result_stream_64_rows_always_ready_cycles=72; load_stall_cycles_while_idle=0"
   }
  },
  {
   "set": "gemv_64x256_p8",
   "simulator": "icarus",
   "seed": 2,
   "result": "PASS",
   "log": "gemv_64x256_p8_icarus_seed2.log",
   "summary": {
    "checks": "commands=5 cycle_counts_matched=5 rows_via_axi4lite=320 rows_via_axi4stream=384 register_reads_compared=537 write_responses_compared=138",
    "axi4lite": "writes=138 (OKAY 117, SLVERR 21) reads=537 (OKAY 511, SLVERR 26)",
    "axi4lite timing": "last_of_AW_W_handshake_to_B_handshake_min_cycles=2 AR_to_R_handshake_min_cycles=1 min_cycles_between_AW_handshakes=2 min_cycles_between_AR_handshakes=2",
    "axi4lite ordering": "aw_before_w=17 w_before_aw=26 same_cycle=95 back_to_back_aw=17 back_to_back_ar=337",
    "axi4stream": "load_beats=8210 load_back_to_back=5885 load_stall_cycles_while_busy=312 load_stall_cycles_while_start_pending=1 result_beats=384 result_stall_cycles=409 m_tready_midcycle_toggles_checked=7079 memory_writes_while_busy=0",
    "timing": "start_write_to_device_start_cycles min=1 max=1; irq_rise_minus_(start+CYCLES) min=3 max=3; result_stream_64_rows_always_ready_cycles=72; load_stall_cycles_while_idle=0"
   }
  },
  {
   "set": "gemv_64x256_p8",
   "simulator": "icarus",
   "seed": 3,
   "result": "PASS",
   "log": "gemv_64x256_p8_icarus_seed3.log",
   "summary": {
    "checks": "commands=5 cycle_counts_matched=5 rows_via_axi4lite=320 rows_via_axi4stream=384 register_reads_compared=537 write_responses_compared=138",
    "axi4lite": "writes=138 (OKAY 117, SLVERR 21) reads=537 (OKAY 511, SLVERR 26)",
    "axi4lite timing": "last_of_AW_W_handshake_to_B_handshake_min_cycles=2 AR_to_R_handshake_min_cycles=1 min_cycles_between_AW_handshakes=2 min_cycles_between_AR_handshakes=2",
    "axi4lite ordering": "aw_before_w=13 w_before_aw=34 same_cycle=91 back_to_back_aw=15 back_to_back_ar=294",
    "axi4stream": "load_beats=8211 load_back_to_back=5455 load_stall_cycles_while_busy=312 load_stall_cycles_while_start_pending=1 result_beats=384 result_stall_cycles=688 m_tready_midcycle_toggles_checked=6053 memory_writes_while_busy=0",
    "timing": "start_write_to_device_start_cycles min=1 max=1; irq_rise_minus_(start+CYCLES) min=3 max=3; result_stream_64_rows_always_ready_cycles=72; load_stall_cycles_while_idle=0"
   }
  },
  {
   "set": "gemv_64x256_p8",
   "simulator": "verilator",
   "seed": 1,
   "result": "PASS",
   "log": "gemv_64x256_p8_verilator_seed1.log",
   "summary": {
    "checks": "commands=5 cycle_counts_matched=5 rows_via_axi4lite=320 rows_via_axi4stream=384 register_reads_compared=537 write_responses_compared=138",
    "axi4lite": "writes=138 (OKAY 117, SLVERR 21) reads=537 (OKAY 511, SLVERR 26)",
    "axi4lite timing": "last_of_AW_W_handshake_to_B_handshake_min_cycles=2 AR_to_R_handshake_min_cycles=1 min_cycles_between_AW_handshakes=2 min_cycles_between_AR_handshakes=2",
    "axi4lite ordering": "aw_before_w=31 w_before_aw=9 same_cycle=98 back_to_back_aw=18 back_to_back_ar=386",
    "axi4stream": "load_beats=8211 load_back_to_back=5001 load_stall_cycles_while_busy=312 load_stall_cycles_while_start_pending=1 result_beats=384 result_stall_cycles=346 m_tready_midcycle_toggles_checked=7172 memory_writes_while_busy=0",
    "timing": "start_write_to_device_start_cycles min=1 max=1; irq_rise_minus_(start+CYCLES) min=3 max=3; result_stream_64_rows_always_ready_cycles=72; load_stall_cycles_while_idle=0"
   }
  },
  {
   "set": "gemv_64x256_p8",
   "simulator": "verilator",
   "seed": 2,
   "result": "PASS",
   "log": "gemv_64x256_p8_verilator_seed2.log",
   "summary": {
    "checks": "commands=5 cycle_counts_matched=5 rows_via_axi4lite=320 rows_via_axi4stream=384 register_reads_compared=537 write_responses_compared=138",
    "axi4lite": "writes=138 (OKAY 117, SLVERR 21) reads=537 (OKAY 511, SLVERR 26)",
    "axi4lite timing": "last_of_AW_W_handshake_to_B_handshake_min_cycles=2 AR_to_R_handshake_min_cycles=1 min_cycles_between_AW_handshakes=2 min_cycles_between_AR_handshakes=2",
    "axi4lite ordering": "aw_before_w=17 w_before_aw=26 same_cycle=95 back_to_back_aw=17 back_to_back_ar=337",
    "axi4stream": "load_beats=8210 load_back_to_back=5885 load_stall_cycles_while_busy=312 load_stall_cycles_while_start_pending=1 result_beats=384 result_stall_cycles=409 m_tready_midcycle_toggles_checked=7079 memory_writes_while_busy=0",
    "timing": "start_write_to_device_start_cycles min=1 max=1; irq_rise_minus_(start+CYCLES) min=3 max=3; result_stream_64_rows_always_ready_cycles=72; load_stall_cycles_while_idle=0"
   }
  },
  {
   "set": "gemv_64x256_p8",
   "simulator": "verilator",
   "seed": 3,
   "result": "PASS",
   "log": "gemv_64x256_p8_verilator_seed3.log",
   "summary": {
    "checks": "commands=5 cycle_counts_matched=5 rows_via_axi4lite=320 rows_via_axi4stream=384 register_reads_compared=537 write_responses_compared=138",
    "axi4lite": "writes=138 (OKAY 117, SLVERR 21) reads=537 (OKAY 511, SLVERR 26)",
    "axi4lite timing": "last_of_AW_W_handshake_to_B_handshake_min_cycles=2 AR_to_R_handshake_min_cycles=1 min_cycles_between_AW_handshakes=2 min_cycles_between_AR_handshakes=2",
    "axi4lite ordering": "aw_before_w=13 w_before_aw=34 same_cycle=91 back_to_back_aw=15 back_to_back_ar=294",
    "axi4stream": "load_beats=8211 load_back_to_back=5455 load_stall_cycles_while_busy=312 load_stall_cycles_while_start_pending=1 result_beats=384 result_stall_cycles=688 m_tready_midcycle_toggles_checked=6053 memory_writes_while_busy=0",
    "timing": "start_write_to_device_start_cycles min=1 max=1; irq_rise_minus_(start+CYCLES) min=3 max=3; result_stream_64_rows_always_ready_cycles=72; load_stall_cycles_while_idle=0"
   }
  },
  {
   "set": "gemv_896x4864_p8",
   "simulator": "icarus",
   "seed": 1,
   "result": "PASS",
   "log": "gemv_896x4864_p8_icarus_seed1.log",
   "summary": {
    "checks": "commands=5 cycle_counts_matched=5 rows_via_axi4lite=4480 rows_via_axi4stream=5376 register_reads_compared=5188 write_responses_compared=657",
    "axi4lite": "writes=657 (OKAY 636, SLVERR 21) reads=5188 (OKAY 5169, SLVERR 19)",
    "axi4lite timing": "last_of_AW_W_handshake_to_B_handshake_min_cycles=2 AR_to_R_handshake_min_cycles=1 min_cycles_between_AW_handshakes=2 min_cycles_between_AR_handshakes=2",
    "axi4lite ordering": "aw_before_w=169 w_before_aw=64 same_cycle=424 back_to_back_aw=17 back_to_back_ar=3865",
    "axi4stream": "load_beats=1794898 load_back_to_back=991968 load_stall_cycles_while_busy=68880 load_stall_cycles_while_start_pending=1 result_beats=5376 result_stall_cycles=5807 m_tready_midcycle_toggles_checked=1554696 memory_writes_while_busy=0",
    "timing": "start_write_to_device_start_cycles min=1 max=1; irq_rise_minus_(start+CYCLES) min=3 max=3; result_stream_896_rows_always_ready_cycles=1008; load_stall_cycles_while_idle=0"
   }
  },
  {
   "set": "gemv_896x4864_p8",
   "simulator": "verilator",
   "seed": 1,
   "result": "PASS",
   "log": "gemv_896x4864_p8_verilator_seed1.log",
   "summary": {
    "checks": "commands=5 cycle_counts_matched=5 rows_via_axi4lite=4480 rows_via_axi4stream=5376 register_reads_compared=5188 write_responses_compared=657",
    "axi4lite": "writes=657 (OKAY 636, SLVERR 21) reads=5188 (OKAY 5169, SLVERR 19)",
    "axi4lite timing": "last_of_AW_W_handshake_to_B_handshake_min_cycles=2 AR_to_R_handshake_min_cycles=1 min_cycles_between_AW_handshakes=2 min_cycles_between_AR_handshakes=2",
    "axi4lite ordering": "aw_before_w=169 w_before_aw=64 same_cycle=424 back_to_back_aw=17 back_to_back_ar=3865",
    "axi4stream": "load_beats=1794898 load_back_to_back=991968 load_stall_cycles_while_busy=68880 load_stall_cycles_while_start_pending=1 result_beats=5376 result_stall_cycles=5807 m_tready_midcycle_toggles_checked=1554696 memory_writes_while_busy=0",
    "timing": "start_write_to_device_start_cycles min=1 max=1; irq_rise_minus_(start+CYCLES) min=3 max=3; result_stream_896_rows_always_ready_cycles=1008; load_stall_cycles_while_idle=0"
   }
  },
  {
   "set": "gemv_896x4864_p8",
   "simulator": "verilator",
   "seed": 2,
   "result": "PASS",
   "log": "gemv_896x4864_p8_verilator_seed2.log",
   "summary": {
    "checks": "commands=5 cycle_counts_matched=5 rows_via_axi4lite=4480 rows_via_axi4stream=5376 register_reads_compared=5188 write_responses_compared=657",
    "axi4lite": "writes=657 (OKAY 636, SLVERR 21) reads=5188 (OKAY 5169, SLVERR 19)",
    "axi4lite timing": "last_of_AW_W_handshake_to_B_handshake_min_cycles=2 AR_to_R_handshake_min_cycles=1 min_cycles_between_AW_handshakes=2 min_cycles_between_AR_handshakes=2",
    "axi4lite ordering": "aw_before_w=105 w_before_aw=99 same_cycle=453 back_to_back_aw=16 back_to_back_ar=3470",
    "axi4stream": "load_beats=1794898 load_back_to_back=1363600 load_stall_cycles_while_busy=68880 load_stall_cycles_while_start_pending=1 result_beats=5376 result_stall_cycles=6785 m_tready_midcycle_toggles_checked=1173597 memory_writes_while_busy=0",
    "timing": "start_write_to_device_start_cycles min=1 max=1; irq_rise_minus_(start+CYCLES) min=3 max=3; result_stream_896_rows_always_ready_cycles=1008; load_stall_cycles_while_idle=0"
   }
  },
  {
   "set": "gemv_896x4864_p8",
   "simulator": "verilator",
   "seed": 3,
   "result": "PASS",
   "log": "gemv_896x4864_p8_verilator_seed3.log",
   "summary": {
    "checks": "commands=5 cycle_counts_matched=5 rows_via_axi4lite=4480 rows_via_axi4stream=5376 register_reads_compared=5188 write_responses_compared=657",
    "axi4lite": "writes=657 (OKAY 636, SLVERR 21) reads=5188 (OKAY 5169, SLVERR 19)",
    "axi4lite timing": "last_of_AW_W_handshake_to_B_handshake_min_cycles=2 AR_to_R_handshake_min_cycles=1 min_cycles_between_AW_handshakes=2 min_cycles_between_AR_handshakes=2",
    "axi4lite ordering": "aw_before_w=84 w_before_aw=196 same_cycle=377 back_to_back_aw=16 back_to_back_ar=2967",
    "axi4stream": "load_beats=1794898 load_back_to_back=1159262 load_stall_cycles_while_busy=68880 load_stall_cycles_while_start_pending=1 result_beats=5376 result_stall_cycles=10646 m_tready_midcycle_toggles_checked=1151293 memory_writes_while_busy=0",
    "timing": "start_write_to_device_start_cycles min=1 max=1; irq_rise_minus_(start+CYCLES) min=3 max=3; result_stream_896_rows_always_ready_cycles=1008; load_stall_cycles_while_idle=0"
   }
  }
 ],
 "synthesis": {
  "cv_x1_pro_axi": {
   "wrapper_area_um2": 707.028,
   "core_area_um2": 25292.344,
   "total_area_um2": 25999.372,
   "flattened_area_um2": 25999.372,
   "wrapper_overhead_vs_core_pct": 2.8,
   "sta_4ns": {
    "worst_setup_slack_ns": 0.1389,
    "wns_ns": 0.0,
    "tns_ns": 0.0,
    "min_period_ns": 3.86,
    "hold_slack_ns": 0.037
   },
   "flow": "integration/syn/cv_x1_pro_axi.ys"
  },
  "cv_gemv_axi_memory_excluded": {
   "config": "ROWS=32 COLS=128 P=8 RESULT_STREAM=1; cv_gemv_memory black-boxed",
   "wrapper_area_um2": 4704.742,
   "device_glue_area_um2": 10344.208,
   "core_area_um2": 53224.738,
   "total_area_um2": 68273.688,
   "flattened_area_um2": 67513.46,
   "wrapper_overhead_vs_device_plus_core_pct": 7.4
  },
  "cv_gemv_axi_memory_as_flops": {
   "config": "ROWS=32 COLS=128 P=8 RESULT_STREAM=1; inferred memories mapped to flip-flops",
   "wrapper_area_um2": 4704.742,
   "device_glue_area_um2": 10344.208,
   "core_area_um2": 53295.76,
   "memory_area_um2": 161452.424,
   "total_area_um2": 229797.134,
   "flattened_area_um2": 229025.202
  }
 },
 "cdc_rdc": {
  "cv_x1_pro_axi": {
   "result": "PASS",
   "sequential_cells": 2712,
   "latches": 0,
   "clock_domains": 1,
   "clock_roots": {
    "port:aclk": 2712
   },
   "flops_with_async_reset": 2712,
   "flops_without_reset": 0,
   "async_reset_roots": {
    "clear:port:aresetn": 2711,
    "preset:port:aresetn": 1
   },
   "rdc_nonreset_flops_with_async_reset_flop_in_data_cone": 0,
   "reset_port_in_data_cone_of_flops": 0,
   "combinational_input_to_output_paths": {}
  },
  "cv_gemv_axi_memory_excluded": {
   "result": "PASS",
   "sequential_cells": 4265,
   "latches": 0,
   "clock_domains": 1,
   "clock_roots": {
    "port:aclk": 4265
   },
   "flops_with_async_reset": 1737,
   "flops_without_reset": 2528,
   "async_reset_roots": {
    "clear:port:aresetn": 1737
   },
   "rdc_nonreset_flops_with_async_reset_flop_in_data_cone": 2528,
   "reset_port_in_data_cone_of_flops": 3891,
   "combinational_input_to_output_paths": {
    "s_axis_tready": [
     "aresetn"
    ]
   }
  },
  "cv_gemv_axi_memory_as_flops": {
   "result": "PASS",
   "sequential_cells": 23641,
   "latches": 0,
   "clock_domains": 1,
   "clock_roots": {
    "port:aclk": 23641
   },
   "flops_with_async_reset": 1737,
   "flops_without_reset": 21904,
   "async_reset_roots": {
    "clear:port:aresetn": 1737
   },
   "rdc_nonreset_flops_with_async_reset_flop_in_data_cone": 21904,
   "reset_port_in_data_cone_of_flops": 22019,
   "combinational_input_to_output_paths": {
    "s_axis_tready": [
     "aresetn"
    ]
   }
  }
 },
 "lint": {
  "x1": {
   "design": "cv_x1_pro_axi",
   "verilator": "Verilator 5.052 2026-09-05 rev vUNKNOWN-built20260905",
   "yosys": "Yosys 0.70+post (git sha1 0c11ea098be065e585a90a06e7b7da49936cf231, Release, AppleClang clang++ 21.0.0.21000334)",
   "verilator_raw_warnings": 5,
   "verilator_raw_by_rule": {
    "DECLFILENAME": 1,
    "UNUSEDSIGNAL": 4
   },
   "verilator_raw_by_file": {
    "public/forge/source/dut.v": 1,
    "integration/rtl/cv_x1_pro_axi.v": 4
   },
   "verilator_waived_remaining": 0,
   "verilator_waived_exit_status": 0,
   "waiver_count": 5,
   "yosys_check_problems": 0,
   "yosys_exit_status": 0
  },
  "gemv": {
   "design": "cv_gemv_axi",
   "verilator": "Verilator 5.052 2026-09-05 rev vUNKNOWN-built20260905",
   "yosys": "Yosys 0.70+post (git sha1 0c11ea098be065e585a90a06e7b7da49936cf231, Release, AppleClang clang++ 21.0.0.21000334)",
   "verilator_raw_warnings": 19,
   "verilator_raw_by_rule": {
    "DECLFILENAME": 3,
    "GENUNNAMED": 2,
    "WIDTHEXPAND": 3,
    "WIDTHTRUNC": 3,
    "UNUSEDSIGNAL": 7,
    "SYNCASYNCNET": 1
   },
   "verilator_raw_by_file": {
    "ip/cv_gemv/core.sv": 8,
    "ip/cv_gemv/memory.sv": 1,
    "ip/cv_gemv/device.sv": 4,
    "integration/rtl/cv_gemv_axi.sv": 6
   },
   "verilator_waived_remaining": 0,
   "verilator_waived_exit_status": 0,
   "waiver_count": 17,
   "yosys_check_problems": 0,
   "yosys_exit_status": 0
  }
 },
 "ipxact_validation": "RESULT: PASS",
 "mutation": {
  "x1": "mutants detected: 12 of 12",
  "gemv": "mutants detected: 12 of 12"
 }
}
