mirror of
https://github.com/retroSoC/retroSoC.git
synced 2026-11-04 22:32:36 +00:00
- Introduced new test cases for APU-P3 loader, control store, and sequencer functionality in . - Enhanced the APU ring scheduler and stream router testbenches to validate reset timing and state transitions. - Added comprehensive tests for APU microcode tools, ensuring assembler and interpreter consistency. - Updated register parity tests to synchronize APU RTL and SDK ABI across P3. - Expanded formal filelist generation to include APU loader and sequencer. - Improved SBY configuration for formal verification with Bitwuzla.
462 lines
21 KiB
Systemverilog
462 lines
21 KiB
Systemverilog
// Copyright (c) 2026 Yuchi Miao <miaoyuchi@ict.ac.cn>
|
|
// retroSoC is licensed under Mulan PSL v2.
|
|
|
|
`ifndef RETROSOC_APU_DEFINE_SVH
|
|
`define RETROSOC_APU_DEFINE_SVH
|
|
|
|
// verilog_format: off -- keep the handwritten hardware/software ABI column aligned
|
|
`define APB4_APU__IP_ID 12'h000
|
|
`define APB4_APU__IP_VERSION 12'h004
|
|
`define APB4_APU__CAPABILITY0 12'h008
|
|
`define APB4_APU__CAPABILITY1 12'h00c
|
|
`define APB4_APU__COMMAND 12'h010
|
|
`define APB4_APU__STATUS 12'h014
|
|
`define APB4_APU__IRQ_STATE 12'h018
|
|
`define APB4_APU__IRQ_ENABLE 12'h01c
|
|
`define APB4_APU__IRQ_TEST 12'h020
|
|
`define APB4_APU__ERROR_STATUS 12'h024
|
|
`define APB4_APU__ERROR_ADDRESS 12'h028
|
|
`define APB4_APU__ERROR_DETAIL 12'h02c
|
|
`define APB4_APU__SEQUENCER_TIMEOUT 12'h030
|
|
`define APB4_APU__STREAM_ROUTE 12'h034
|
|
`define APB4_APU__STREAM_STATUS 12'h038
|
|
`define APB4_APU__OWNER_STATUS 12'h03c
|
|
`define APB4_APU__READ_BASE 12'h040
|
|
`define APB4_APU__READ_LIMIT 12'h044
|
|
`define APB4_APU__WRITE_BASE 12'h048
|
|
`define APB4_APU__WRITE_LIMIT 12'h04c
|
|
`define APB4_APU__DMA_TIMEOUT 12'h050
|
|
`define APB4_APU__ABI_DIGEST 12'h054
|
|
`define APB4_APU__SEQUENCER_STATUS 12'h058
|
|
`define APB4_APU__SEQUENCER_RETIRED 12'h05c
|
|
`define APB4_APU__STREAM_WATERMARK 12'h060
|
|
|
|
`define APB4_APU__MC_IMAGE_ADDRESS 12'h080
|
|
`define APB4_APU__MC_IMAGE_SIZE 12'h084
|
|
`define APB4_APU__MC_EXPECTED_CRC 12'h088
|
|
`define APB4_APU__MC_STATUS 12'h08c
|
|
`define APB4_APU__MC_ABI 12'h090
|
|
`define APB4_APU__MC_BUILD_ID_LO 12'h094
|
|
`define APB4_APU__MC_BUILD_ID_HI 12'h098
|
|
`define APB4_APU__MC_LOCK 12'h09c
|
|
`define APB4_APU__MC_ACTUAL_CRC 12'h0a0
|
|
`define APB4_APU__MC_LOAD_COUNT 12'h0a4
|
|
|
|
`define APB4_APU__JOB_CONTROL 12'h100
|
|
`define APB4_APU__JOB_INPUT_ADDRESS 12'h104
|
|
`define APB4_APU__JOB_INPUT_LENGTH 12'h108
|
|
`define APB4_APU__JOB_OUTPUT_ADDRESS 12'h10c
|
|
`define APB4_APU__JOB_OUTPUT_CAPACITY 12'h110
|
|
`define APB4_APU__JOB_INPUT_CONFIG 12'h114
|
|
`define APB4_APU__JOB_OUTPUT_CONFIG 12'h118
|
|
`define APB4_APU__JOB_FLAGS 12'h11c
|
|
`define APB4_APU__JOB_STATUS 12'h120
|
|
`define APB4_APU__JOB_INPUT_USED 12'h124
|
|
`define APB4_APU__JOB_OUTPUT_BYTES 12'h128
|
|
`define APB4_APU__JOB_FRAMES 12'h12c
|
|
`define APB4_APU__JOB_SOURCE_INFO 12'h130
|
|
`define APB4_APU__JOB_CYCLES 12'h134
|
|
`define APB4_APU__JOB_DETAIL 12'h138
|
|
|
|
`define APB4_APU__RING_BASE 12'h180
|
|
`define APB4_APU__RING_SIZE 12'h184
|
|
`define APB4_APU__RING_HEAD 12'h188
|
|
`define APB4_APU__RING_TAIL 12'h18c
|
|
`define APB4_APU__RING_CONTROL 12'h190
|
|
`define APB4_APU__RING_STATUS 12'h194
|
|
`define APB4_APU__RING_COMPLETED 12'h198
|
|
`define APB4_APU__RING_COALESCE 12'h19c
|
|
`define APB4_APU__RING_DOORBELL 12'h1a0
|
|
|
|
`define APB4_APU__KWS_MODEL_ADDRESS 12'h200
|
|
`define APB4_APU__KWS_MODEL_SIZE 12'h204
|
|
`define APB4_APU__KWS_MODEL_EXPECTED_CRC 12'h208
|
|
`define APB4_APU__KWS_CONTROL 12'h20c
|
|
`define APB4_APU__KWS_CONFIG 12'h210
|
|
`define APB4_APU__KWS_STATUS 12'h214
|
|
`define APB4_APU__KWS_RESULT 12'h218
|
|
`define APB4_APU__KWS_TIMESTAMP_LO 12'h21c
|
|
`define APB4_APU__KWS_TIMESTAMP_HI 12'h220
|
|
`define APB4_APU__KWS_FRAME_COUNT 12'h224
|
|
`define APB4_APU__KWS_INFERENCE_COUNT 12'h228
|
|
`define APB4_APU__KWS_HIT_COUNT 12'h22c
|
|
`define APB4_APU__KWS_OVERRUN_COUNT 12'h230
|
|
`define APB4_APU__KWS_MODEL_STATUS 12'h234
|
|
`define APB4_APU__KWS_MODEL_ACTUAL_CRC 12'h238
|
|
|
|
`define APB4_APU__PERF_CONTROL 12'h300
|
|
`define APB4_APU__PERF_STATUS 12'h304
|
|
`define APB4_APU__PERF_ACTIVE_CYCLES_LO 12'h308
|
|
`define APB4_APU__PERF_ACTIVE_CYCLES_HI 12'h30c
|
|
`define APB4_APU__PERF_INPUT_BYTES_LO 12'h310
|
|
`define APB4_APU__PERF_INPUT_BYTES_HI 12'h314
|
|
`define APB4_APU__PERF_OUTPUT_BYTES_LO 12'h318
|
|
`define APB4_APU__PERF_OUTPUT_BYTES_HI 12'h31c
|
|
`define APB4_APU__PERF_DECODED_FRAMES_LO 12'h320
|
|
`define APB4_APU__PERF_DECODED_FRAMES_HI 12'h324
|
|
`define APB4_APU__PERF_DMA_READ_STALLS_LO 12'h328
|
|
`define APB4_APU__PERF_DMA_READ_STALLS_HI 12'h32c
|
|
`define APB4_APU__PERF_DMA_WRITE_STALLS_LO 12'h330
|
|
`define APB4_APU__PERF_DMA_WRITE_STALLS_HI 12'h334
|
|
`define APB4_APU__PERF_STREAM_STALLS_LO 12'h338
|
|
`define APB4_APU__PERF_STREAM_STALLS_HI 12'h33c
|
|
`define APB4_APU__PERF_SEQUENCER_INSTR_LO 12'h340
|
|
`define APB4_APU__PERF_SEQUENCER_INSTR_HI 12'h344
|
|
`define APB4_APU__PERF_KWS_CYCLES_LO 12'h348
|
|
`define APB4_APU__PERF_KWS_CYCLES_HI 12'h34c
|
|
`define APB4_APU__PERF_FAULTS_LO 12'h350
|
|
`define APB4_APU__PERF_FAULTS_HI 12'h354
|
|
|
|
`define APB4_APU__CAPABILITY0_WAV 0
|
|
`define APB4_APU__CAPABILITY0_MP3 1
|
|
`define APB4_APU__CAPABILITY0_FLAC 2
|
|
`define APB4_APU__CAPABILITY0_PRIVATE_DMA 3
|
|
`define APB4_APU__CAPABILITY0_RING 4
|
|
`define APB4_APU__CAPABILITY0_STREAMS 5
|
|
`define APB4_APU__CAPABILITY0_KWS 6
|
|
`define APB4_APU__CAPABILITY0_SEQUENCER 7
|
|
`define APB4_APU__CAPABILITY0_RESAMPLER 8
|
|
`define APB4_APU__CAPABILITY1_CONTROL_KIB 0
|
|
`define APB4_APU__CAPABILITY1_DATA_KIB 8
|
|
`define APB4_APU__CAPABILITY1_MAX_CHANNELS 16
|
|
`define APB4_APU__CAPABILITY1_MAX_RATE_KHZ 18
|
|
|
|
`define APB4_APU__COMMAND_START_DIRECT 0
|
|
`define APB4_APU__COMMAND_ABORT 1
|
|
`define APB4_APU__COMMAND_SOFT_RESET 2
|
|
`define APB4_APU__COMMAND_RING_KICK 3
|
|
`define APB4_APU__COMMAND_MICROCODE_LOAD 4
|
|
`define APB4_APU__COMMAND_MODEL_LOAD 5
|
|
`define APB4_APU__COMMAND_CLEAR_COUNTERS 6
|
|
|
|
`define APB4_APU__STATUS_MICROCODE_VALID 0
|
|
`define APB4_APU__STATUS_MODEL_VALID 1
|
|
`define APB4_APU__STATUS_BUSY 2
|
|
`define APB4_APU__STATUS_RING 3
|
|
`define APB4_APU__STATUS_DECODE 4
|
|
`define APB4_APU__STATUS_KWS_LISTENING 5
|
|
`define APB4_APU__STATUS_QUIESCED 6
|
|
`define APB4_APU__STATUS_ABORTING 7
|
|
`define APB4_APU__STATUS_IDLE 8
|
|
`define APB4_APU__STATUS_SEQUENCER_TRAPPED 9
|
|
|
|
`define APB4_APU__STREAM_STATUS_TX_ACTIVE 0
|
|
`define APB4_APU__STREAM_STATUS_RX_ACTIVE 1
|
|
`define APB4_APU__STREAM_STATUS_TX_EMPTY 2
|
|
`define APB4_APU__STREAM_STATUS_TX_FULL 3
|
|
`define APB4_APU__STREAM_STATUS_RX_EMPTY 4
|
|
`define APB4_APU__STREAM_STATUS_RX_FULL 5
|
|
`define APB4_APU__STREAM_STATUS_TX_UNDERRUN 6
|
|
`define APB4_APU__STREAM_STATUS_RX_OVERRUN 7
|
|
`define APB4_APU__STREAM_STATUS_TX_COUNT 8
|
|
`define APB4_APU__STREAM_STATUS_RX_COUNT 16
|
|
|
|
`define APB4_APU__STREAM_WATERMARK_RX_HIGH 0
|
|
`define APB4_APU__STREAM_WATERMARK_TX_LOW 8
|
|
|
|
`define APB4_APU__IRQ_DIRECT_DONE 0
|
|
`define APB4_APU__IRQ_RING_EVENT 1
|
|
`define APB4_APU__IRQ_KWS_HIT 2
|
|
`define APB4_APU__IRQ_MICROCODE_LOAD_DONE 3
|
|
`define APB4_APU__IRQ_MODEL_LOAD_DONE 4
|
|
`define APB4_APU__IRQ_ABORT_DONE 5
|
|
`define APB4_APU__IRQ_INPUT_WATERMARK 6
|
|
`define APB4_APU__IRQ_OUTPUT_WATERMARK 7
|
|
`define APB4_APU__IRQ_FIRST_ERROR 8
|
|
`define APB4_APU__IRQ_STREAM_XRUN 9
|
|
`define APB4_APU__IRQ_SEQUENCER_TRAP 10
|
|
|
|
`define APB4_APU__ERROR_VALID 0
|
|
`define APB4_APU__ERROR_CODE 1
|
|
`define APB4_APU__ERROR_STAGE 7
|
|
`define APB4_APU__ERROR_AXI_RESPONSE 11
|
|
`define APB4_APU__ERROR_DESCRIPTOR_INDEX 13
|
|
|
|
`define APB4_APU__ERROR_CODE_NONE 0
|
|
`define APB4_APU__ERROR_CODE_INVALID_CONFIG 1
|
|
`define APB4_APU__ERROR_CODE_INVALID_RING 2
|
|
`define APB4_APU__ERROR_CODE_UNSUPPORTED 3
|
|
`define APB4_APU__ERROR_CODE_MALFORMED 4
|
|
`define APB4_APU__ERROR_CODE_TRUNCATED 5
|
|
`define APB4_APU__ERROR_CODE_CODEC_CRC 6
|
|
`define APB4_APU__ERROR_CODE_DECODE 7
|
|
`define APB4_APU__ERROR_CODE_RECONSTRUCTION 8
|
|
`define APB4_APU__ERROR_CODE_MICROCODE 9
|
|
`define APB4_APU__ERROR_CODE_MICROCODE_CRC 10
|
|
`define APB4_APU__ERROR_CODE_SEQUENCER 11
|
|
`define APB4_APU__ERROR_CODE_KWS_MODEL 12
|
|
`define APB4_APU__ERROR_CODE_KWS_CRC 13
|
|
`define APB4_APU__ERROR_CODE_KWS_ARITHMETIC 14
|
|
`define APB4_APU__ERROR_CODE_AXI_READ 15
|
|
`define APB4_APU__ERROR_CODE_AXI_WRITE 16
|
|
`define APB4_APU__ERROR_CODE_DMA_TIMEOUT 17
|
|
`define APB4_APU__ERROR_CODE_STREAM_UNDERRUN 18
|
|
`define APB4_APU__ERROR_CODE_STREAM_OVERRUN 19
|
|
`define APB4_APU__ERROR_CODE_ABORT 20
|
|
`define APB4_APU__ERROR_CODE_RESOURCE_RESET 21
|
|
`define APB4_APU__ERROR_CODE_OVERFLOW 22
|
|
|
|
`define APB4_APU__ERROR_STAGE_APB 0
|
|
`define APB4_APU__ERROR_STAGE_LOADER 1
|
|
`define APB4_APU__ERROR_STAGE_RING 2
|
|
`define APB4_APU__ERROR_STAGE_DMA_READ 3
|
|
`define APB4_APU__ERROR_STAGE_BITSTREAM 4
|
|
`define APB4_APU__ERROR_STAGE_ENTROPY 5
|
|
`define APB4_APU__ERROR_STAGE_RECONSTRUCTION 6
|
|
`define APB4_APU__ERROR_STAGE_RESAMPLER 7
|
|
`define APB4_APU__ERROR_STAGE_DMA_WRITE 8
|
|
`define APB4_APU__ERROR_STAGE_KWS_FRONTEND 9
|
|
`define APB4_APU__ERROR_STAGE_KWS_INFERENCE 10
|
|
`define APB4_APU__ERROR_STAGE_LIFECYCLE 11
|
|
|
|
`define APB4_APU__OWNER_STATUS_OWNER 0
|
|
`define APB4_APU__OWNER_STATUS_LOCK 8
|
|
`define APB4_APU__OWNER_STATUS_QUIESCE 9
|
|
`define APB4_APU__OWNER_STATUS_RESET 10
|
|
|
|
`define APB4_APU__JOB_STATUS_BUSY 0
|
|
`define APB4_APU__JOB_STATUS_DONE 1
|
|
`define APB4_APU__JOB_STATUS_ERROR 2
|
|
`define APB4_APU__JOB_STATUS_ABORTED 3
|
|
`define APB4_APU__JOB_STATUS_DIRECT_ACTIVE 4
|
|
`define APB4_APU__JOB_STATUS_INPUT_PENDING 5
|
|
`define APB4_APU__JOB_STATUS_OUTPUT_PENDING 6
|
|
`define APB4_APU__JOB_STATUS_WRITEBACK_PENDING 7
|
|
`define APB4_APU__JOB_STATUS_ERROR_CODE 8
|
|
`define APB4_APU__JOB_STATUS_STAGE 14
|
|
`define APB4_APU__JOB_STATUS_AXI_RESPONSE 18
|
|
|
|
`define APB4_APU__RING_STATUS_ACTIVE 0
|
|
`define APB4_APU__RING_STATUS_STALLED_UNOWNED 1
|
|
`define APB4_APU__RING_STATUS_EMPTY 2
|
|
`define APB4_APU__RING_STATUS_ERROR 3
|
|
`define APB4_APU__RING_STATUS_WRAPPED 4
|
|
`define APB4_APU__RING_STATUS_COALESCE_PENDING 5
|
|
`define APB4_APU__RING_STATUS_WRITEBACK_PENDING 6
|
|
`define APB4_APU__RING_STATUS_STOPPED_ON_ERROR 7
|
|
`define APB4_APU__RING_STATUS_PENDING_COUNT 8
|
|
`define APB4_APU__RING_STATUS_LAST_INDEX 16
|
|
|
|
`define APB4_APU__DESCRIPTOR_WORDS 32
|
|
`define APB4_APU__DESCRIPTOR_BYTES 128
|
|
`define APB4_APU__DESCRIPTOR_ALIGNMENT 128
|
|
`define APB4_APU__DESCRIPTOR_CONTROL 0
|
|
`define APB4_APU__DESCRIPTOR_RESULT_STATUS 1
|
|
`define APB4_APU__DESCRIPTOR_INPUT_ADDRESS 2
|
|
`define APB4_APU__DESCRIPTOR_INPUT_LENGTH 3
|
|
`define APB4_APU__DESCRIPTOR_OUTPUT_ADDRESS 4
|
|
`define APB4_APU__DESCRIPTOR_OUTPUT_CAPACITY 5
|
|
`define APB4_APU__DESCRIPTOR_INPUT_CONFIG 6
|
|
`define APB4_APU__DESCRIPTOR_OUTPUT_CONFIG 7
|
|
`define APB4_APU__DESCRIPTOR_JOB_FLAGS 8
|
|
`define APB4_APU__DESCRIPTOR_KWS_CONFIG 9
|
|
`define APB4_APU__DESCRIPTOR_RESULT_INPUT_USED 10
|
|
`define APB4_APU__DESCRIPTOR_RESULT_OUTPUT_BYTES 11
|
|
`define APB4_APU__DESCRIPTOR_RESULT_FRAMES 12
|
|
`define APB4_APU__DESCRIPTOR_RESULT_SOURCE_INFO 13
|
|
`define APB4_APU__DESCRIPTOR_RESULT_CYCLES 14
|
|
`define APB4_APU__DESCRIPTOR_RESULT_DETAIL 15
|
|
`define APB4_APU__DESCRIPTOR_COOKIE_LO 16
|
|
`define APB4_APU__DESCRIPTOR_COOKIE_HI 17
|
|
`define APB4_APU__DESCRIPTOR_START_TIMESTAMP_LO 18
|
|
`define APB4_APU__DESCRIPTOR_START_TIMESTAMP_HI 19
|
|
`define APB4_APU__DESCRIPTOR_FINISH_TIMESTAMP_LO 20
|
|
`define APB4_APU__DESCRIPTOR_FINISH_TIMESTAMP_HI 21
|
|
`define APB4_APU__DESCRIPTOR_KWS_RESULT 22
|
|
`define APB4_APU__DESCRIPTOR_MICROCODE_BUILD_ID 23
|
|
`define APB4_APU__DESCRIPTOR_CONTROL_OPERATION 0
|
|
`define APB4_APU__DESCRIPTOR_CONTROL_INPUT_FORMAT 4
|
|
`define APB4_APU__DESCRIPTOR_CONTROL_OUTPUT_MODE 8
|
|
`define APB4_APU__DESCRIPTOR_CONTROL_DOWNMIX 10
|
|
`define APB4_APU__DESCRIPTOR_CONTROL_RESAMPLE 11
|
|
`define APB4_APU__DESCRIPTOR_CONTROL_IOC 30
|
|
`define APB4_APU__DESCRIPTOR_CONTROL_OWN 31
|
|
`define APB4_APU__DESCRIPTOR_STATUS_DONE 0
|
|
`define APB4_APU__DESCRIPTOR_STATUS_ERROR 1
|
|
`define APB4_APU__DESCRIPTOR_STATUS_ABORTED 2
|
|
`define APB4_APU__DESCRIPTOR_STATUS_ERROR_CODE 3
|
|
`define APB4_APU__DESCRIPTOR_STATUS_STAGE 9
|
|
`define APB4_APU__DESCRIPTOR_STATUS_AXI_RESPONSE 13
|
|
|
|
`define APB4_APU__PERF_CONTROL_ENABLE 0
|
|
`define APB4_APU__PERF_CONTROL_CLEAR 1
|
|
`define APB4_APU__PERF_CONTROL_SNAPSHOT 2
|
|
`define APB4_APU__PERF_STATUS_SNAPSHOT_VALID 0
|
|
|
|
`define APB4_APU__MC_STATUS_BUSY 0
|
|
`define APB4_APU__MC_STATUS_VALID 1
|
|
`define APB4_APU__MC_STATUS_HEADER_ERROR 2
|
|
`define APB4_APU__MC_STATUS_RANGE_ERROR 3
|
|
`define APB4_APU__MC_STATUS_CONTROL_ERROR 4
|
|
`define APB4_APU__MC_STATUS_TABLE_ERROR 5
|
|
`define APB4_APU__MC_STATUS_CRC_ERROR 6
|
|
`define APB4_APU__MC_STATUS_CAPABILITY_ERROR 7
|
|
`define APB4_APU__MC_LOCK_LOCKED 0
|
|
|
|
`define APB4_APU__SEQUENCER_STATUS_PC 0
|
|
`define APB4_APU__SEQUENCER_STATUS_CLASS 11
|
|
`define APB4_APU__SEQUENCER_STATUS_OPCODE 15
|
|
`define APB4_APU__SEQUENCER_STATUS_WAIT 19
|
|
`define APB4_APU__SEQUENCER_STATUS_LOOP 20
|
|
|
|
`define APB4_APU__APUMC_MAGIC 32'h4150_4d43
|
|
`define APB4_APU__APUMC_ABI 32'h0001_0000
|
|
`define APB4_APU__APUMC_HEADER_BYTES 64
|
|
`define APB4_APU__APUMC_HEADER_WORDS 16
|
|
`define APB4_APU__APUMC_ENTRY_BYTES 32
|
|
`define APB4_APU__APUMC_ENTRY_WORDS 8
|
|
`define APB4_APU__APUMC_ENTRY_COUNT 3
|
|
`define APB4_APU__APUMC_MAX_INSTRUCTIONS 2048
|
|
`define APB4_APU__APUMC_HEADER_MAGIC 0
|
|
`define APB4_APU__APUMC_HEADER_ABI 1
|
|
`define APB4_APU__APUMC_HEADER_TOTAL_BYTES 2
|
|
`define APB4_APU__APUMC_HEADER_INSTRUCTIONS 3
|
|
`define APB4_APU__APUMC_HEADER_INSTR_OFFSET 4
|
|
`define APB4_APU__APUMC_HEADER_TABLE_OFFSET 5
|
|
`define APB4_APU__APUMC_HEADER_TABLE_BYTES 6
|
|
`define APB4_APU__APUMC_HEADER_ENTRY_OFFSET 7
|
|
`define APB4_APU__APUMC_HEADER_ENTRY_COUNT 8
|
|
`define APB4_APU__APUMC_HEADER_PRIMITIVES 9
|
|
`define APB4_APU__APUMC_HEADER_SCRATCH_END 10
|
|
`define APB4_APU__APUMC_HEADER_CRC 11
|
|
`define APB4_APU__APUMC_HEADER_BUILD_LO 12
|
|
`define APB4_APU__APUMC_HEADER_BUILD_HI 13
|
|
`define APB4_APU__APUMC_ENTRY_FORMAT_PC 0
|
|
`define APB4_APU__APUMC_ENTRY_RANGE 1
|
|
`define APB4_APU__APUMC_ENTRY_SCRATCH_BASE 2
|
|
`define APB4_APU__APUMC_ENTRY_SCRATCH_BYTES 3
|
|
`define APB4_APU__APUMC_ENTRY_MAX_LOOP 4
|
|
`define APB4_APU__APUMC_ENTRY_MAX_RETIRED 5
|
|
`define APB4_APU__APUMC_ENTRY_PRIMITIVES 6
|
|
`define APB4_APU__APUMC_ENTRY_TABLE 7
|
|
|
|
`define APB4_APU__MC_INSTRUCTION_IMMEDIATE 0
|
|
`define APB4_APU__MC_INSTRUCTION_AUX 32
|
|
`define APB4_APU__MC_INSTRUCTION_SRC1 40
|
|
`define APB4_APU__MC_INSTRUCTION_SRC0 44
|
|
`define APB4_APU__MC_INSTRUCTION_DST 48
|
|
`define APB4_APU__MC_INSTRUCTION_PREDICATE 52
|
|
`define APB4_APU__MC_INSTRUCTION_OPCODE 56
|
|
`define APB4_APU__MC_INSTRUCTION_CLASS 60
|
|
`define APB4_APU__MC_CLASS_CONTROL 0
|
|
`define APB4_APU__MC_CLASS_SCALAR 1
|
|
`define APB4_APU__MC_CLASS_BITSTREAM 2
|
|
`define APB4_APU__MC_CLASS_ENTROPY 3
|
|
`define APB4_APU__MC_CLASS_LOCAL 4
|
|
`define APB4_APU__MC_CLASS_KERNEL 5
|
|
`define APB4_APU__MC_CLASS_TRANSPORT 6
|
|
`define APB4_APU__MC_CONTROL_NOP 0
|
|
`define APB4_APU__MC_CONTROL_END 1
|
|
`define APB4_APU__MC_CONTROL_TRAP 2
|
|
`define APB4_APU__MC_CONTROL_JUMP_FWD 3
|
|
`define APB4_APU__MC_CONTROL_CALL_FWD 4
|
|
`define APB4_APU__MC_CONTROL_RET 5
|
|
`define APB4_APU__MC_CONTROL_LOOP_SETUP 6
|
|
`define APB4_APU__MC_CONTROL_LOOP_BACK 7
|
|
`define APB4_APU__MC_CONTROL_WAIT 8
|
|
`define APB4_APU__MC_SCALAR_MOV 0
|
|
`define APB4_APU__MC_SCALAR_MOVI 1
|
|
`define APB4_APU__MC_SCALAR_ADD 2
|
|
`define APB4_APU__MC_SCALAR_SUB 3
|
|
`define APB4_APU__MC_SCALAR_AND 4
|
|
`define APB4_APU__MC_SCALAR_OR 5
|
|
`define APB4_APU__MC_SCALAR_XOR 6
|
|
`define APB4_APU__MC_SCALAR_SHL 7
|
|
`define APB4_APU__MC_SCALAR_SHR 8
|
|
`define APB4_APU__MC_SCALAR_SAR 9
|
|
`define APB4_APU__MC_SCALAR_CMP 10
|
|
`define APB4_APU__MC_SCALAR_MIN 11
|
|
`define APB4_APU__MC_SCALAR_MAX 12
|
|
`define APB4_APU__MC_SCALAR_SAT 13
|
|
`define APB4_APU__MC_BITSTREAM_REFILL 0
|
|
`define APB4_APU__MC_BITSTREAM_PEEK 1
|
|
`define APB4_APU__MC_BITSTREAM_GET 2
|
|
`define APB4_APU__MC_BITSTREAM_SKIP 3
|
|
`define APB4_APU__MC_BITSTREAM_ALIGN 4
|
|
`define APB4_APU__MC_BITSTREAM_FRAME_SYNC 5
|
|
`define APB4_APU__MC_BITSTREAM_CRC8 6
|
|
`define APB4_APU__MC_BITSTREAM_CRC16 7
|
|
`define APB4_APU__MC_ENTROPY_HUFF_SYMBOL 0
|
|
`define APB4_APU__MC_ENTROPY_HUFF_PAIR 1
|
|
`define APB4_APU__MC_ENTROPY_HUFF_QUAD 2
|
|
`define APB4_APU__MC_ENTROPY_UNARY 3
|
|
`define APB4_APU__MC_ENTROPY_RICE4 4
|
|
`define APB4_APU__MC_ENTROPY_RICE5 5
|
|
`define APB4_APU__MC_ENTROPY_SIGN_RESTORE 6
|
|
`define APB4_APU__MC_LOCAL_LD32 0
|
|
`define APB4_APU__MC_LOCAL_ST32 1
|
|
`define APB4_APU__MC_LOCAL_TABLE8 2
|
|
`define APB4_APU__MC_LOCAL_TABLE16 3
|
|
`define APB4_APU__MC_LOCAL_TABLE32 4
|
|
`define APB4_APU__MC_LOCAL_FIFO_POP 5
|
|
`define APB4_APU__MC_LOCAL_FIFO_PUSH 6
|
|
`define APB4_APU__MC_KERNEL_REQUANT 0
|
|
`define APB4_APU__MC_KERNEL_STEREO 1
|
|
`define APB4_APU__MC_KERNEL_IMDCT6 2
|
|
`define APB4_APU__MC_KERNEL_IMDCT18 3
|
|
`define APB4_APU__MC_KERNEL_DCT32_POLY 4
|
|
`define APB4_APU__MC_KERNEL_FIXED 5
|
|
`define APB4_APU__MC_KERNEL_LPC 6
|
|
`define APB4_APU__MC_KERNEL_DECORRELATE 7
|
|
`define APB4_APU__MC_KERNEL_RESAMPLE 8
|
|
`define APB4_APU__MC_KERNEL_PCM_PACK 9
|
|
`define APB4_APU__MC_TRANSPORT_INPUT_REFILL 0
|
|
`define APB4_APU__MC_TRANSPORT_OUTPUT_COMMIT 1
|
|
`define APB4_APU__MC_TRANSPORT_OUTPUT_STREAM 2
|
|
`define APB4_APU__MC_TRANSPORT_DMA_WAIT 3
|
|
`define APB4_APU__MC_TRANSPORT_FRAME_COMMIT 4
|
|
`define APB4_APU__MC_TRANSPORT_JOB_RESULT 5
|
|
`define APB4_APU__MC_TRANSPORT_EVENT 6
|
|
`define APB4_APU__MC_PRED_ALWAYS 0
|
|
`define APB4_APU__MC_PRED_EQ 1
|
|
`define APB4_APU__MC_PRED_NE 2
|
|
`define APB4_APU__MC_PRED_SIGNED_LT 3
|
|
`define APB4_APU__MC_PRED_SIGNED_GE 4
|
|
`define APB4_APU__MC_PRED_UNSIGNED_LT 5
|
|
`define APB4_APU__MC_PRED_UNSIGNED_GE 6
|
|
`define APB4_APU__MC_PRED_INPUT_EXHAUSTED 7
|
|
`define APB4_APU__MC_PRED_INPUT_READY 8
|
|
`define APB4_APU__MC_PRED_OUTPUT_READY 9
|
|
`define APB4_APU__MC_PRED_KERNEL_DONE 10
|
|
`define APB4_APU__MC_PRED_TRANSPORT_DONE 11
|
|
`define APB4_APU__MC_WAIT_DMA 0
|
|
`define APB4_APU__MC_WAIT_KERNEL 1
|
|
`define APB4_APU__MC_WAIT_INPUT_FIFO 2
|
|
`define APB4_APU__MC_WAIT_OUTPUT_FIFO 3
|
|
`define APB4_APU__MC_WAIT_TX_STREAM 4
|
|
`define APB4_APU__MC_WAIT_RING_WRITEBACK 5
|
|
`define APB4_APU__MC_PRIMITIVE_BITSTREAM 0
|
|
`define APB4_APU__MC_PRIMITIVE_CRC 1
|
|
`define APB4_APU__MC_PRIMITIVE_HUFFMAN 2
|
|
`define APB4_APU__MC_PRIMITIVE_RICE 3
|
|
`define APB4_APU__MC_PRIMITIVE_LOCAL_MEMORY 4
|
|
`define APB4_APU__MC_PRIMITIVE_LOCAL_FIFO 5
|
|
`define APB4_APU__MC_PRIMITIVE_REQUANTIZE 6
|
|
`define APB4_APU__MC_PRIMITIVE_STEREO 7
|
|
`define APB4_APU__MC_PRIMITIVE_IMDCT6 8
|
|
`define APB4_APU__MC_PRIMITIVE_IMDCT18 9
|
|
`define APB4_APU__MC_PRIMITIVE_DCT32_POLY 10
|
|
`define APB4_APU__MC_PRIMITIVE_FIXED 11
|
|
`define APB4_APU__MC_PRIMITIVE_LPC 12
|
|
`define APB4_APU__MC_PRIMITIVE_DECORRELATE 13
|
|
`define APB4_APU__MC_PRIMITIVE_RESAMPLER 14
|
|
`define APB4_APU__MC_PRIMITIVE_PCM_PACK 15
|
|
`define APB4_APU__MC_PRIMITIVE_DMA_INPUT 16
|
|
`define APB4_APU__MC_PRIMITIVE_DMA_OUTPUT 17
|
|
`define APB4_APU__MC_PRIMITIVE_STREAM_OUTPUT 18
|
|
`define APB4_APU__MC_PRIMITIVE_FRAME_COMMIT 19
|
|
`define APB4_APU__MC_PRIMITIVE_EVENT 20
|
|
`define APB4_APU__MC_TRAP_ILLEGAL 1
|
|
`define APB4_APU__MC_TRAP_PC_RANGE 2
|
|
`define APB4_APU__MC_TRAP_CALL_STACK 3
|
|
`define APB4_APU__MC_TRAP_LOOP 4
|
|
`define APB4_APU__MC_TRAP_LOCAL_RANGE 5
|
|
`define APB4_APU__MC_TRAP_UNAVAILABLE 6
|
|
`define APB4_APU__MC_TRAP_WATCHDOG 7
|
|
`define APB4_APU__MC_TRAP_RETIRED_BUDGET 8
|
|
`define APB4_APU__MC_TRAP_ENGINE 9
|
|
`define APB4_APU__MC_TRAP_EXPLICIT 10
|
|
// verilog_format: on
|
|
|
|
`endif
|