{
  "schemaVersion": "corejudge.waveform/1.0",
  "testId": "tiny8.program.add-5-3",
  "samplePhase": "pre-edge-intent-and-post-nba-state",
  "clock": {
    "periodNs": 10,
    "executionCycleBase": 1
  },
  "firstCycle": 1,
  "lastCycle": 18,
  "resetRecovery": {
    "resetEdge": 2,
    "instructionAddress": "0",
    "outputData": "00",
    "outputValid": "0",
    "halted": "0",
    "traceValid": "0",
    "firstRetirement": {
      "cycle": 2,
      "pc": "0",
      "instruction": "15",
      "accumulator": "05",
      "zero": "0",
      "carry": "0"
    }
  },
  "signals": [
    {
      "id": "cj_imem_addr",
      "label": "IMEM address",
      "width": 4,
      "radix": "hex",
      "transitions": [
        {
          "cycle": 1,
          "value": "1"
        },
        {
          "cycle": 3,
          "value": "2"
        },
        {
          "cycle": 5,
          "value": "3"
        },
        {
          "cycle": 7,
          "value": "4"
        },
        {
          "cycle": 9,
          "value": "5"
        },
        {
          "cycle": 11,
          "value": "6"
        },
        {
          "cycle": 13,
          "value": "7"
        },
        {
          "cycle": 15,
          "value": "8"
        }
      ]
    },
    {
      "id": "cj_imem_rdata",
      "label": "IMEM read data",
      "width": 8,
      "radix": "hex",
      "transitions": [
        {
          "cycle": 1,
          "value": "30"
        },
        {
          "cycle": 3,
          "value": "13"
        },
        {
          "cycle": 5,
          "value": "31"
        },
        {
          "cycle": 7,
          "value": "20"
        },
        {
          "cycle": 9,
          "value": "41"
        },
        {
          "cycle": 11,
          "value": "b0"
        },
        {
          "cycle": 13,
          "value": "f0"
        }
      ]
    },
    {
      "id": "cj_dmem_addr",
      "label": "DMEM address",
      "width": 4,
      "radix": "hex",
      "transitions": [
        {
          "cycle": 1,
          "value": "5"
        },
        {
          "cycle": 3,
          "value": "0"
        },
        {
          "cycle": 5,
          "value": "3"
        },
        {
          "cycle": 7,
          "value": "1"
        },
        {
          "cycle": 9,
          "value": "0"
        },
        {
          "cycle": 11,
          "value": "1"
        },
        {
          "cycle": 13,
          "value": "0"
        }
      ]
    },
    {
      "id": "cj_dmem_rdata",
      "label": "DMEM read data",
      "width": 8,
      "radix": "hex",
      "transitions": [
        {
          "cycle": 1,
          "value": "55"
        },
        {
          "cycle": 3,
          "value": "00"
        },
        {
          "cycle": 4,
          "value": "05"
        },
        {
          "cycle": 5,
          "value": "33"
        },
        {
          "cycle": 7,
          "value": "11"
        },
        {
          "cycle": 8,
          "value": "03"
        },
        {
          "cycle": 9,
          "value": "05"
        },
        {
          "cycle": 11,
          "value": "03"
        },
        {
          "cycle": 13,
          "value": "05"
        }
      ]
    },
    {
      "id": "cj_dmem_re",
      "label": "DMEM read event",
      "width": 1,
      "radix": "binary",
      "transitions": [
        {
          "cycle": 1,
          "value": "0"
        },
        {
          "cycle": 10,
          "value": "1"
        },
        {
          "cycle": 11,
          "value": "0"
        },
        {
          "cycle": 12,
          "value": "1"
        },
        {
          "cycle": 13,
          "value": "0"
        }
      ]
    },
    {
      "id": "cj_dmem_wdata",
      "label": "DMEM write data",
      "width": 8,
      "radix": "hex",
      "transitions": [
        {
          "cycle": 1,
          "value": "00"
        },
        {
          "cycle": 2,
          "value": "05"
        },
        {
          "cycle": 6,
          "value": "03"
        },
        {
          "cycle": 10,
          "value": "05"
        },
        {
          "cycle": 12,
          "value": "08"
        }
      ]
    },
    {
      "id": "cj_dmem_we",
      "label": "DMEM write event",
      "width": 1,
      "radix": "binary",
      "transitions": [
        {
          "cycle": 1,
          "value": "0"
        },
        {
          "cycle": 4,
          "value": "1"
        },
        {
          "cycle": 5,
          "value": "0"
        },
        {
          "cycle": 8,
          "value": "1"
        },
        {
          "cycle": 9,
          "value": "0"
        }
      ]
    },
    {
      "id": "cj_out_data",
      "label": "Output data",
      "width": 8,
      "radix": "hex",
      "transitions": [
        {
          "cycle": 1,
          "value": "00"
        },
        {
          "cycle": 14,
          "value": "08"
        }
      ]
    },
    {
      "id": "cj_out_valid",
      "label": "Output valid",
      "width": 1,
      "radix": "binary",
      "transitions": [
        {
          "cycle": 1,
          "value": "0"
        },
        {
          "cycle": 14,
          "value": "1"
        },
        {
          "cycle": 15,
          "value": "0"
        }
      ]
    },
    {
      "id": "cj_halted",
      "label": "Halted",
      "width": 1,
      "radix": "binary",
      "transitions": [
        {
          "cycle": 1,
          "value": "0"
        },
        {
          "cycle": 16,
          "value": "1"
        }
      ]
    },
    {
      "id": "cj_trace_valid",
      "label": "Retirement valid",
      "width": 1,
      "radix": "binary",
      "transitions": [
        {
          "cycle": 1,
          "value": "0"
        },
        {
          "cycle": 2,
          "value": "1"
        },
        {
          "cycle": 3,
          "value": "0"
        },
        {
          "cycle": 4,
          "value": "1"
        },
        {
          "cycle": 5,
          "value": "0"
        },
        {
          "cycle": 6,
          "value": "1"
        },
        {
          "cycle": 7,
          "value": "0"
        },
        {
          "cycle": 8,
          "value": "1"
        },
        {
          "cycle": 9,
          "value": "0"
        },
        {
          "cycle": 10,
          "value": "1"
        },
        {
          "cycle": 11,
          "value": "0"
        },
        {
          "cycle": 12,
          "value": "1"
        },
        {
          "cycle": 13,
          "value": "0"
        },
        {
          "cycle": 14,
          "value": "1"
        },
        {
          "cycle": 15,
          "value": "0"
        },
        {
          "cycle": 16,
          "value": "1"
        },
        {
          "cycle": 17,
          "value": "0"
        }
      ]
    },
    {
      "id": "cj_trace_pc",
      "label": "Retired PC",
      "width": 4,
      "radix": "hex",
      "transitions": [
        {
          "cycle": 1,
          "value": "0"
        },
        {
          "cycle": 4,
          "value": "1"
        },
        {
          "cycle": 6,
          "value": "2"
        },
        {
          "cycle": 8,
          "value": "3"
        },
        {
          "cycle": 10,
          "value": "4"
        },
        {
          "cycle": 12,
          "value": "5"
        },
        {
          "cycle": 14,
          "value": "6"
        },
        {
          "cycle": 16,
          "value": "7"
        }
      ]
    },
    {
      "id": "cj_trace_instr",
      "label": "Retired instruction",
      "width": 8,
      "radix": "hex",
      "transitions": [
        {
          "cycle": 1,
          "value": "00"
        },
        {
          "cycle": 2,
          "value": "15"
        },
        {
          "cycle": 4,
          "value": "30"
        },
        {
          "cycle": 6,
          "value": "13"
        },
        {
          "cycle": 8,
          "value": "31"
        },
        {
          "cycle": 10,
          "value": "20"
        },
        {
          "cycle": 12,
          "value": "41"
        },
        {
          "cycle": 14,
          "value": "b0"
        },
        {
          "cycle": 16,
          "value": "f0"
        }
      ]
    },
    {
      "id": "cj_trace_acc",
      "label": "Post-retirement ACC",
      "width": 8,
      "radix": "hex",
      "transitions": [
        {
          "cycle": 1,
          "value": "00"
        },
        {
          "cycle": 2,
          "value": "05"
        },
        {
          "cycle": 6,
          "value": "03"
        },
        {
          "cycle": 10,
          "value": "05"
        },
        {
          "cycle": 12,
          "value": "08"
        }
      ]
    },
    {
      "id": "cj_trace_zero",
      "label": "Post-retirement zero",
      "width": 1,
      "radix": "binary",
      "transitions": [
        {
          "cycle": 1,
          "value": "1"
        },
        {
          "cycle": 2,
          "value": "0"
        }
      ]
    },
    {
      "id": "cj_trace_carry",
      "label": "Post-retirement carry",
      "width": 1,
      "radix": "binary",
      "transitions": [
        {
          "cycle": 1,
          "value": "0"
        }
      ]
    }
  ],
  "annotations": [
    {
      "cycle": 2,
      "kind": "retire",
      "text": "Retire #1: PC=0 instruction=15"
    },
    {
      "cycle": 4,
      "kind": "write",
      "text": "DMEM[0] <- 05"
    },
    {
      "cycle": 4,
      "kind": "retire",
      "text": "Retire #2: PC=1 instruction=30"
    },
    {
      "cycle": 6,
      "kind": "retire",
      "text": "Retire #3: PC=2 instruction=13"
    },
    {
      "cycle": 8,
      "kind": "write",
      "text": "DMEM[1] <- 03"
    },
    {
      "cycle": 8,
      "kind": "retire",
      "text": "Retire #4: PC=3 instruction=31"
    },
    {
      "cycle": 10,
      "kind": "read",
      "text": "DMEM[0] -> 05"
    },
    {
      "cycle": 10,
      "kind": "retire",
      "text": "Retire #5: PC=4 instruction=20"
    },
    {
      "cycle": 12,
      "kind": "read",
      "text": "DMEM[1] -> 03"
    },
    {
      "cycle": 12,
      "kind": "retire",
      "text": "Retire #6: PC=5 instruction=41"
    },
    {
      "cycle": 14,
      "kind": "output",
      "text": "Output 08"
    },
    {
      "cycle": 14,
      "kind": "retire",
      "text": "Retire #7: PC=6 instruction=b0"
    },
    {
      "cycle": 16,
      "kind": "retire",
      "text": "Retire #8: PC=7 instruction=f0"
    },
    {
      "cycle": 16,
      "kind": "halt",
      "text": "Halt at retirement #8"
    }
  ],
  "accessibleRows": [
    {
      "cycle": 1,
      "instructionAddress": "1",
      "dataReadEnable": "0",
      "dataWriteEnable": "0",
      "outputData": "00",
      "outputValid": "0",
      "halted": "0",
      "traceValid": "0",
      "tracePc": "0",
      "traceInstruction": "00",
      "traceAccumulator": "00",
      "traceZero": "1",
      "traceCarry": "0"
    },
    {
      "cycle": 2,
      "instructionAddress": "1",
      "dataReadEnable": "0",
      "dataWriteEnable": "0",
      "outputData": "00",
      "outputValid": "0",
      "halted": "0",
      "traceValid": "1",
      "tracePc": "0",
      "traceInstruction": "15",
      "traceAccumulator": "05",
      "traceZero": "0",
      "traceCarry": "0"
    },
    {
      "cycle": 3,
      "instructionAddress": "2",
      "dataReadEnable": "0",
      "dataWriteEnable": "0",
      "outputData": "00",
      "outputValid": "0",
      "halted": "0",
      "traceValid": "0",
      "tracePc": "0",
      "traceInstruction": "15",
      "traceAccumulator": "05",
      "traceZero": "0",
      "traceCarry": "0"
    },
    {
      "cycle": 4,
      "instructionAddress": "2",
      "dataReadEnable": "0",
      "dataWriteEnable": "1",
      "outputData": "00",
      "outputValid": "0",
      "halted": "0",
      "traceValid": "1",
      "tracePc": "1",
      "traceInstruction": "30",
      "traceAccumulator": "05",
      "traceZero": "0",
      "traceCarry": "0"
    },
    {
      "cycle": 5,
      "instructionAddress": "3",
      "dataReadEnable": "0",
      "dataWriteEnable": "0",
      "outputData": "00",
      "outputValid": "0",
      "halted": "0",
      "traceValid": "0",
      "tracePc": "1",
      "traceInstruction": "30",
      "traceAccumulator": "05",
      "traceZero": "0",
      "traceCarry": "0"
    },
    {
      "cycle": 6,
      "instructionAddress": "3",
      "dataReadEnable": "0",
      "dataWriteEnable": "0",
      "outputData": "00",
      "outputValid": "0",
      "halted": "0",
      "traceValid": "1",
      "tracePc": "2",
      "traceInstruction": "13",
      "traceAccumulator": "03",
      "traceZero": "0",
      "traceCarry": "0"
    },
    {
      "cycle": 7,
      "instructionAddress": "4",
      "dataReadEnable": "0",
      "dataWriteEnable": "0",
      "outputData": "00",
      "outputValid": "0",
      "halted": "0",
      "traceValid": "0",
      "tracePc": "2",
      "traceInstruction": "13",
      "traceAccumulator": "03",
      "traceZero": "0",
      "traceCarry": "0"
    },
    {
      "cycle": 8,
      "instructionAddress": "4",
      "dataReadEnable": "0",
      "dataWriteEnable": "1",
      "outputData": "00",
      "outputValid": "0",
      "halted": "0",
      "traceValid": "1",
      "tracePc": "3",
      "traceInstruction": "31",
      "traceAccumulator": "03",
      "traceZero": "0",
      "traceCarry": "0"
    },
    {
      "cycle": 9,
      "instructionAddress": "5",
      "dataReadEnable": "0",
      "dataWriteEnable": "0",
      "outputData": "00",
      "outputValid": "0",
      "halted": "0",
      "traceValid": "0",
      "tracePc": "3",
      "traceInstruction": "31",
      "traceAccumulator": "03",
      "traceZero": "0",
      "traceCarry": "0"
    },
    {
      "cycle": 10,
      "instructionAddress": "5",
      "dataReadEnable": "1",
      "dataWriteEnable": "0",
      "outputData": "00",
      "outputValid": "0",
      "halted": "0",
      "traceValid": "1",
      "tracePc": "4",
      "traceInstruction": "20",
      "traceAccumulator": "05",
      "traceZero": "0",
      "traceCarry": "0"
    },
    {
      "cycle": 11,
      "instructionAddress": "6",
      "dataReadEnable": "0",
      "dataWriteEnable": "0",
      "outputData": "00",
      "outputValid": "0",
      "halted": "0",
      "traceValid": "0",
      "tracePc": "4",
      "traceInstruction": "20",
      "traceAccumulator": "05",
      "traceZero": "0",
      "traceCarry": "0"
    },
    {
      "cycle": 12,
      "instructionAddress": "6",
      "dataReadEnable": "1",
      "dataWriteEnable": "0",
      "outputData": "00",
      "outputValid": "0",
      "halted": "0",
      "traceValid": "1",
      "tracePc": "5",
      "traceInstruction": "41",
      "traceAccumulator": "08",
      "traceZero": "0",
      "traceCarry": "0"
    },
    {
      "cycle": 13,
      "instructionAddress": "7",
      "dataReadEnable": "0",
      "dataWriteEnable": "0",
      "outputData": "00",
      "outputValid": "0",
      "halted": "0",
      "traceValid": "0",
      "tracePc": "5",
      "traceInstruction": "41",
      "traceAccumulator": "08",
      "traceZero": "0",
      "traceCarry": "0"
    },
    {
      "cycle": 14,
      "instructionAddress": "7",
      "dataReadEnable": "0",
      "dataWriteEnable": "0",
      "outputData": "08",
      "outputValid": "1",
      "halted": "0",
      "traceValid": "1",
      "tracePc": "6",
      "traceInstruction": "b0",
      "traceAccumulator": "08",
      "traceZero": "0",
      "traceCarry": "0"
    },
    {
      "cycle": 15,
      "instructionAddress": "8",
      "dataReadEnable": "0",
      "dataWriteEnable": "0",
      "outputData": "08",
      "outputValid": "0",
      "halted": "0",
      "traceValid": "0",
      "tracePc": "6",
      "traceInstruction": "b0",
      "traceAccumulator": "08",
      "traceZero": "0",
      "traceCarry": "0"
    },
    {
      "cycle": 16,
      "instructionAddress": "8",
      "dataReadEnable": "0",
      "dataWriteEnable": "0",
      "outputData": "08",
      "outputValid": "0",
      "halted": "1",
      "traceValid": "1",
      "tracePc": "7",
      "traceInstruction": "f0",
      "traceAccumulator": "08",
      "traceZero": "0",
      "traceCarry": "0"
    },
    {
      "cycle": 17,
      "instructionAddress": "8",
      "dataReadEnable": "0",
      "dataWriteEnable": "0",
      "outputData": "08",
      "outputValid": "0",
      "halted": "1",
      "traceValid": "0",
      "tracePc": "7",
      "traceInstruction": "f0",
      "traceAccumulator": "08",
      "traceZero": "0",
      "traceCarry": "0"
    },
    {
      "cycle": 18,
      "instructionAddress": "8",
      "dataReadEnable": "0",
      "dataWriteEnable": "0",
      "outputData": "08",
      "outputValid": "0",
      "halted": "1",
      "traceValid": "0",
      "tracePc": "7",
      "traceInstruction": "f0",
      "traceAccumulator": "08",
      "traceZero": "0",
      "traceCarry": "0"
    }
  ]
}
