#pragma once
#include "risc0/zkp/core/constants.h"
#include "risc0/zkvm/platform/memory.h"
namespace risc0 {
namespace CodeCycleType {
enum {
NORMAL,
FINAL,
INIT,
MEM_WRITE,
RESET,
FINI,
NUM_TYPES,
};
}
namespace DataCycleType {
enum {
DECODE,
COMPUTE_0,
COMPUTE_1,
COMPUTE_2,
COMPUTE_3,
MULTIPLY,
DIVIDE,
FINAL,
SHA_SYNC,
SHA_CONTROL,
SHA_DATA,
HALT,
NUM_CYCLE_TYPES,
};
}
namespace ShaCycleType {
enum {
CONTROL,
LOAD,
MIX,
NUM_TYPES,
};
}
CONSTSCALAR size_t kCodeSize = 16;
CONSTSCALAR size_t kDataSize = 160;
CONSTSCALAR size_t kAccumSize = 10;
CONSTSCALAR size_t kOutputRegs = 9;
CONSTSCALAR size_t kMinCycles = 512;
CONSTSCALAR size_t kZkCycles = kQueries;
CONSTSCALAR size_t kRegistersGlobalOffset = 0;
CONSTSCALAR size_t kRegistersGlobalSize = kOutputRegs * 2;
CONSTSCALAR size_t kAccumMixGlobalOffset = kRegistersGlobalSize;
CONSTSCALAR size_t kAccumMixGlobalSize = 20;
CONSTSCALAR size_t kGlobalSize = kAccumMixGlobalOffset + kAccumMixGlobalSize;
CONSTSCALAR size_t kComboCount = 5;
}