Temporary fix rust validator

This commit is contained in:
ilgeco
2026-02-26 18:43:48 +01:00
parent 8bb5385961
commit 7b2baeacd3
3 changed files with 16 additions and 10 deletions

View File

@@ -46,7 +46,10 @@ fn main() -> Result<()> {
let mut executor = json_to_executor::json_to_executor(config_json, core_jsons.iter());
populate_crossbar(&args, &mut executor);
set_memory(&mut executor, memory);
TRACER.lock().unwrap().init(executor.cpu().num_core(), args.output.clone());
TRACER
.lock()
.unwrap()
.init(executor.cpu().num_core(), args.output.clone());
executor.execute();
dump_memory(executor, &args)?;
Ok(())
@@ -80,13 +83,16 @@ fn populate_crossbar(args: &Args, executor: &mut pimcore::Executable) {
})
.collect();
bin_files.sort_by_key(|&(num, _)| num);
let core = executor.cpu_mut().core(core_idx+1);
let core = executor.cpu_mut().core(core_idx);
let (_memory, crossbars) = core.get_memory_crossbar();
for (i, path) in bin_files {
let bytes = std::fs::read(path).expect("Failed to read binary file");
crossbars.get_mut(i as usize)
.unwrap().execute_store(&bytes).unwrap();
crossbars
.get_mut(i as usize)
.unwrap()
.execute_store(&bytes)
.unwrap();
}
}

View File

@@ -487,7 +487,7 @@ fn json_to_send(
let json = json.as_object().expect("Not an object");
assert_eq!("send", json_str!(json, "op"));
let rd = json_i64!(json, "rd") as i32;
let core = json_i64!(json, "core") as i32 + 1;
let core = json_i64!(json, "core") as i32;
let size = json_i64!(json, "size") as i32;
let (offset_select, offset_value) = json_to_offset(json.get("offset").unwrap());
inst_data_builder
@@ -508,7 +508,7 @@ fn json_to_recv(
let json = json.as_object().expect("Not an object");
assert_eq!("recv", json_str!(json, "op"));
let rd = json_i64!(json, "rd") as i32;
let core = json_i64!(json, "core") as i32 + 1;
let core = json_i64!(json, "core") as i32;
let size = json_i64!(json, "size") as i32;
let (offset_select, offset_value) = json_to_offset(json.get("offset").unwrap());
inst_data_builder

View File

@@ -23,17 +23,17 @@ pub fn json_to_executor<'a>(
let xbar_size = config.get("xbar_size").unwrap().as_array().unwrap();
let rows_crossbar = xbar_size[0].as_i64().unwrap() as i32;
let column_corssbar = xbar_size[1].as_i64().unwrap() as i32;
let array_group_map = config.get("array_group_map");
let mut cpu = CPU::new(core_cnt);
cpu.reserve_crossbar(xbar_count, column_corssbar * 4, rows_crossbar);
let mut core_insts_builder = CoreInstructionsBuilder::new(core_cnt as usize);
cores.next();
for core_indx in 1..=core_cnt {
let mut insts_builder = InstructionsBuilder::new();
let mut inst_data_builder = InstructionDataBuilder::new();
inst_data_builder.set_core_indx(core_indx).fix_core_indx();
let json_core = cores
.next()
.unwrap_or_else(|| panic!("cores files less than {}", core_indx - 1));
.unwrap_or_else(|| panic!("cores files less than {}", core_indx ));
let json_core_insts = json_core
.as_array()
.unwrap_or_else(|| panic!("core{} has not a list of instruction", core_indx));