blob: 6fae7c095fd1e14c1334477563175903730022b3 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
mod rv32_cpu;
use rv32_cpu::rv32_cpu::Rv32Cpu;
mod instruction;
mod rv32i;
use rv32i::rv32i::Rv32i;
mod rv32m;
use rv32m::rv32m::Rv32m;
mod extension;
use std::error::Error;
use std::thread;
const HART_CNT: usize = 4;
fn main() -> Result<(), Box<dyn Error>> {
let mut handles = vec![];
for i in 0..HART_CNT {
let handle = thread::spawn(move || {
let mut cpu: Rv32Cpu = Rv32Cpu::new(i as u32).add_extension::<Rv32i>().add_extension::<Rv32m>();
cpu.execute(0b00000000000000000001000000010011).unwrap();
});
handles.push(handle);
}
for handle in handles {
handle.join().unwrap();
}
Ok(())
}
|