summaryrefslogtreecommitdiff
path: root/sched/netlist_printer.ml
diff options
context:
space:
mode:
authorAlex AUVOLAT <alex.auvolat@ens.fr>2013-11-07 10:59:38 +0100
committerAlex AUVOLAT <alex.auvolat@ens.fr>2013-11-07 10:59:38 +0100
commitf57717d1a662d519515d5431198709bcb703b8dd (patch)
tree963165f6c3399381f15e710eda357dc617713c4c /sched/netlist_printer.ml
parent818f81108fa30cd5a90c99df955f811fed043993 (diff)
downloadSystDigit-Projet-f57717d1a662d519515d5431198709bcb703b8dd.tar.gz
SystDigit-Projet-f57717d1a662d519515d5431198709bcb703b8dd.zip
Started work on second version of dumb netlist format.
Diffstat (limited to 'sched/netlist_printer.ml')
-rw-r--r--sched/netlist_printer.ml94
1 files changed, 0 insertions, 94 deletions
diff --git a/sched/netlist_printer.ml b/sched/netlist_printer.ml
index 746867f..547a0be 100644
--- a/sched/netlist_printer.ml
+++ b/sched/netlist_printer.ml
@@ -1,8 +1,6 @@
open Netlist_ast
open Format
-(* GENERAL PRINTER *)
-
let rec print_env print lp sep rp ff env =
let first = ref true in
fprintf ff "%s" lp;
@@ -84,95 +82,3 @@ let print_program oc p =
fprintf ff "@."
-(* PRINTER FOR DUMBED-DOWN NETLIST (variables are identified by numbers) *)
-
-(* constants *)
-let c_arg = 0
-let c_reg = 1
-let c_not = 2
-let c_binop = 3
-let c_mux = 4
-let c_rom = 5
-let c_ram = 6
-let c_concat = 7
-let c_slice = 8
-let c_select = 9
-
-let binop_i = function
- | Or -> 0
- | Xor -> 1
- | And -> 2
- | Nand -> 3
-
-let print_dumb_program oc p =
- let ff = formatter_of_out_channel oc in
- (* associate numbers to variables *)
- let n_vars = Env.fold (fun _ _ n -> n+1) p.p_vars 0 in
- let n = ref 0 in
- let var_id = Hashtbl.create n_vars in
- fprintf ff "%d\n" n_vars;
- Env.iter
- (fun k v ->
- Hashtbl.add var_id k !n;
- fprintf ff "%d %s\n"
- (match v with
- | TBit -> 1
- | TBitArray(n) -> n)
- k;
- n := !n + 1)
- p.p_vars;
- (* write input vars *)
- fprintf ff "%d" (List.length p.p_inputs);
- List.iter (fun k -> fprintf ff " %d" (Hashtbl.find var_id k)) p.p_inputs;
- fprintf ff "\n";
- (* write output vars *)
- fprintf ff "%d" (List.length p.p_outputs);
- List.iter (fun k -> fprintf ff " %d" (Hashtbl.find var_id k)) p.p_outputs;
- fprintf ff "\n";
- (* write equations *)
- fprintf ff "%d\n" (List.length p.p_eqs);
- (* write equations *)
- let print_arg = function
- | Avar(k) -> fprintf ff " $%d" (Hashtbl.find var_id k)
- | Aconst(n) -> fprintf ff " ";
- begin match n with
- | VBit(x) -> fprintf ff "%d" (if x then 1 else 0)
- | VBitArray(a) ->
- for i = 0 to Array.length a - 1 do
- fprintf ff "%d" (if a.(i) then 1 else 0)
- done
- end
- in
- List.iter
- (fun (k, eqn) ->
- fprintf ff "%d " (Hashtbl.find var_id k);
- begin match eqn with
- | Earg(a) -> fprintf ff "%d" c_arg;
- print_arg a
- | Ereg(i) -> fprintf ff "%d %d" c_reg (Hashtbl.find var_id i)
- | Enot(a) -> fprintf ff "%d" c_not;
- print_arg a
- | Ebinop(o, a, b) -> fprintf ff "%d %d" c_binop (binop_i o);
- print_arg a;
- print_arg b
- | Emux(a, b, c) -> fprintf ff "%d" c_mux;
- print_arg a; print_arg b; print_arg c
- | Erom(u, v, a) -> fprintf ff "%d %d %d" c_rom u v;
- print_arg a
- | Eram (u, v, a, b, c, d) -> fprintf ff "%d %d %d" c_ram u v;
- print_arg a; print_arg b; print_arg c; print_arg d
- | Econcat(a, b) -> fprintf ff "%d" c_concat;
- print_arg a; print_arg b
- | Eslice(u, v, a) -> fprintf ff "%d %d %d" c_slice u v;
- print_arg a
- | Eselect(i, a) -> fprintf ff "%d %d" c_select i;
- print_arg a
- end;
- fprintf ff "\n")
- p.p_eqs;
- (* flush *)
- fprintf ff "@."
-
-
-
-