diff options
| author | omagdy7 <omar.professional8777@gmail.com> | 2023-11-27 16:27:46 +0200 |
|---|---|---|
| committer | omagdy7 <omar.professional8777@gmail.com> | 2023-11-27 16:27:46 +0200 |
| commit | 3eceea8dbcb0743258ab7b3bc7ca90477c81f40d (patch) | |
| tree | cb43ff97b6c7c94f0b53fbb75a64b1dcc8652d9c /src/main.rs | |
| parent | 7ccc460a99bdd6299af9fc95d246826715092df1 (diff) | |
| download | lgsim-3eceea8dbcb0743258ab7b3bc7ca90477c81f40d.tar.xz lgsim-3eceea8dbcb0743258ab7b3bc7ca90477c81f40d.zip | |
Added dfs traversal of gates graph
Diffstat (limited to 'src/main.rs')
| -rw-r--r-- | src/main.rs | 50 |
1 files changed, 12 insertions, 38 deletions
diff --git a/src/main.rs b/src/main.rs index a70ace9..9acda46 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,4 +1,5 @@ #![allow(dead_code)] +mod circuit; mod gate; mod pin; mod types; @@ -7,34 +8,9 @@ use crate::pin::*; use crate::types::*; use std::vec; -// Define a struct to represent the Circuit -#[derive(Debug, Clone)] -struct Circuit { - chips: Chips, -} - -impl Circuit { - fn new() -> Circuit { - Circuit { chips: Vec::new() } - } - - fn add_chip(&mut self, chip: Chip) -> usize { - self.chips.push(chip); - 0 - } - - fn connect_chip(&mut self, from: usize, to: usize) { - todo!() - } - - fn simulate(&mut self) { - todo!(); - } -} - fn main() { let mut _chip = Chip::new(); - let a: u8 = 1; + let a: u8 = 0; let b: u8 = 1; let input: Vec<PinValue> = vec![a, b]; println!("input: {:?}", input); @@ -58,18 +34,16 @@ fn main() { xor.connect_gate(&mut gate_6, &mut gate_7, 1); xor.connect_gate(&mut gate_7, &mut gate_8, 0); - // let dag = xor.gate_dag(); - let mut sorted = xor.pins(); - sorted.sort_by(|&x, &y| x.id.cmp(&y.id)); - - // println!("pins: {:#?}", sorted); - // println!("connections: {:#?}", xor.connections); - // println!("dag: {:#?}", dag); - println!( - "Gate: {:?}\n output = {:?}", - &mut gate_8.evaluate(), - gate_8.clone(), - ); + let dag = xor.gate_dag(); + // println!("pins: {:#?}", xor.pins()); + println!("dag: {:#?}", dag); + // println!("dag: {:#?}", xor.gates); + // xor.simulate(); + // println!( + // "Output: {:?}\n Gate = {:?}", + // &mut gate_8.evaluate(), + // gate_8.clone(), + // ); } // #[macroquad::main("lgsim")] |
