summaryrefslogtreecommitdiff
path: root/camlsim/simulator.ml
diff options
context:
space:
mode:
Diffstat (limited to 'camlsim/simulator.ml')
-rw-r--r--camlsim/simulator.ml67
1 files changed, 0 insertions, 67 deletions
diff --git a/camlsim/simulator.ml b/camlsim/simulator.ml
deleted file mode 100644
index fbb831a..0000000
--- a/camlsim/simulator.ml
+++ /dev/null
@@ -1,67 +0,0 @@
-(*
- Système Digital, cours de J.Vuillemin, 2013-2013
- Alex AUVOLAT, ENS INFO 2013
-
- Circuit Simulator, main file
-*)
-
-open Netlist_ast
-
-let num_steps = ref (-1)
-let step = ref 0
-
-let read_input = function
- | (s, TBit) -> Format.printf "%s (1 bit) : @?" s;
- let k = ref (read_line()) in
- while String.length !k < 1 do
- Format.printf "Too short. Retry : ";
- k := read_line();
- done;
- VBit ((!k).[0] = '1')
- | (s, TBitArray(n)) -> Format.printf "%s (%d bits) : @?" s n;
- let k = ref (read_line()) in
- while String.length !k < 1 do
- Format.printf "Too short. Retry : ";
- k := read_line();
- done;
- let r = Array.make n false in
- for i = 0 to n-1 do
- r.(i) <- ((!k).[i] = '1')
- done;
- VBitArray(r)
-
-let print_output = function
- | (n, VBit (b)) ->
- Format.printf "%s\t: %d@." n (if b then 1 else 0)
- | (n, VBitArray (a)) ->
- Format.printf "%s\t: " n;
- for i = 0 to Array.length a - 1 do
- Format.printf "%d" (if a.(i) then 1 else 0)
- done;
- Format.printf "@."
-
-let loadrun filename =
- let p = Netlist.read_file filename in
-
- let machine = Machine.create p in
-
- while !num_steps > !step || !num_steps == -1 do
- step := !step + 1;
- Format.printf "Step #%d@." !step;
-
- Machine.read_inputs machine read_input;
- Machine.step machine;
- Machine.print_outputs machine print_output
- done
-
-let () =
- try
- Arg.parse
- ["-rom", Arg.String(Machine.load_rom), "Load one ROM file into the simulator (will be used by all ROM chips).";
- "-n", Arg.Set_int num_steps, "Number of steps to simulate"]
- loadrun
- ""
- with
- | Netlist.Parse_error s -> Format.eprintf "An error occurred: %s@." s; exit 2
- | Machine.Error s -> Format.eprintf "An error occurred: %s@." s; exit 2
-