This commit is contained in:
Daniel Lubarov 2022-12-03 12:02:51 -08:00
parent d091910d79
commit f4fdb6a12f
2 changed files with 3 additions and 0 deletions

View File

@ -24,6 +24,7 @@ pub(crate) fn generate_bootstrap_kernel<F: Field>(state: &mut GenerationState<F>
// Iterate through chunks of the code, such that we can write one chunk to memory per row. // Iterate through chunks of the code, such that we can write one chunk to memory per row.
for chunk in &KERNEL.code.iter().enumerate().chunks(NUM_GP_CHANNELS) { for chunk in &KERNEL.code.iter().enumerate().chunks(NUM_GP_CHANNELS) {
let mut cpu_row = CpuColumnsView::default(); let mut cpu_row = CpuColumnsView::default();
cpu_row.clock = F::from_canonical_usize(state.traces.clock());
cpu_row.is_bootstrap_kernel = F::ONE; cpu_row.is_bootstrap_kernel = F::ONE;
// Write this chunk to memory, while simultaneously packing its bytes into a u32 word. // Write this chunk to memory, while simultaneously packing its bytes into a u32 word.
@ -38,6 +39,7 @@ pub(crate) fn generate_bootstrap_kernel<F: Field>(state: &mut GenerationState<F>
} }
let mut final_cpu_row = CpuColumnsView::default(); let mut final_cpu_row = CpuColumnsView::default();
final_cpu_row.clock = F::from_canonical_usize(state.traces.clock());
final_cpu_row.is_bootstrap_kernel = F::ONE; final_cpu_row.is_bootstrap_kernel = F::ONE;
final_cpu_row.is_keccak_sponge = F::ONE; final_cpu_row.is_keccak_sponge = F::ONE;
// The Keccak sponge CTL uses memory value columns for its inputs and outputs. // The Keccak sponge CTL uses memory value columns for its inputs and outputs.

View File

@ -116,6 +116,7 @@ pub struct CpuStark<F, const D: usize> {
} }
impl<F: RichField, const D: usize> CpuStark<F, D> { impl<F: RichField, const D: usize> CpuStark<F, D> {
// TODO: Remove?
pub fn generate(&self, local_values: &mut [F; NUM_CPU_COLUMNS]) { pub fn generate(&self, local_values: &mut [F; NUM_CPU_COLUMNS]) {
let local_values: &mut CpuColumnsView<_> = local_values.borrow_mut(); let local_values: &mut CpuColumnsView<_> = local_values.borrow_mut();
decode::generate(local_values); decode::generate(local_values);