mirror of
https://github.com/logos-storage/plonky2.git
synced 2026-01-09 01:03:08 +00:00
* Column definitions for addition, range checks & lookups I implemented addition (unsigned for now) as an example of how the arithmetic unit can interact with the 16-bit range check unit. Range checks and lookups aren't implemented yet. * Missing constraints * Tweaks to get tests passing * Reorg registers into files * Minor
21 lines
839 B
Rust
21 lines
839 B
Rust
//! Core registers.
|
|
|
|
/// A cycle counter. Starts at 0; increments by 1.
|
|
pub(crate) const COL_CLOCK: usize = super::START_CORE;
|
|
|
|
/// A column which contains the values `[0, ... 2^16 - 1]`, potentially with duplicates. Used for
|
|
/// 16-bit range checks.
|
|
///
|
|
/// For ease of verification, we enforce that it must begin with 0 and end with `2^16 - 1`, and each
|
|
/// delta must be either 0 or 1.
|
|
pub(crate) const COL_RANGE_16: usize = COL_CLOCK + 1;
|
|
|
|
/// Pointer to the current instruction.
|
|
pub(crate) const COL_INSTRUCTION_PTR: usize = COL_RANGE_16 + 1;
|
|
/// Pointer to the base of the current call's stack frame.
|
|
pub(crate) const COL_FRAME_PTR: usize = COL_INSTRUCTION_PTR + 1;
|
|
/// Pointer to the tip of the current call's stack frame.
|
|
pub(crate) const COL_STACK_PTR: usize = COL_FRAME_PTR + 1;
|
|
|
|
pub(super) const END: usize = COL_STACK_PTR + 1;
|