diff --git a/evm/src/all_stark.rs b/evm/src/all_stark.rs index 27751a5d..14d8cd73 100644 --- a/evm/src/all_stark.rs +++ b/evm/src/all_stark.rs @@ -283,8 +283,8 @@ mod tests { } for i in 0..num_memory_ops { let mem_timestamp: usize = memory_trace[memory::columns::TIMESTAMP].values[i].to_canonical_u64().try_into().unwrap(); - let clock = mem_timestamp / 4; - let channel = mem_timestamp % 4; + let clock = mem_timestamp / NUM_CHANNELS; + let channel = mem_timestamp % NUM_CHANNELS; let row: &mut cpu::columns::CpuColumnsView = cpu_trace_rows[clock].borrow_mut(); diff --git a/evm/src/memory/memory_stark.rs b/evm/src/memory/memory_stark.rs index d4962862..5ea4da13 100644 --- a/evm/src/memory/memory_stark.rs +++ b/evm/src/memory/memory_stark.rs @@ -33,7 +33,7 @@ pub fn ctl_data() -> Vec> { let mut res = Column::singles([IS_READ, ADDR_CONTEXT, ADDR_SEGMENT, ADDR_VIRTUAL]) .collect_vec(); res.extend(Column::singles((0..8).map(value_limb))); - res.push(Column::single(TIMESTAMP)); + // res.push(Column::single(TIMESTAMP)); res } @@ -64,8 +64,7 @@ pub fn generate_random_memory_ops( let mut current_memory_values: HashMap<(F, F, F), [F; 8]> = HashMap::new(); let num_cycles = num_ops / 2; - for i in 0..num_cycles { - let timestamp = F::from_canonical_usize(i); + for clock in 0..num_cycles { let mut used_indices = HashSet::new(); let mut new_writes_this_cycle = HashMap::new(); let mut has_read = false; @@ -76,7 +75,7 @@ pub fn generate_random_memory_ops( } used_indices.insert(channel_index); - let is_read = if i == 0 { + let is_read = if clock == 0 { false } else { !has_read && rng.gen() @@ -112,6 +111,7 @@ pub fn generate_random_memory_ops( (context, segment, virt, vals) }; + let timestamp = F::from_canonical_usize(clock * NUM_CHANNELS + channel_index); memory_ops.push(MemoryOp { channel_index, timestamp,