aboutsummaryrefslogtreecommitdiffstats
path: root/src/verilog/PrintVerilog.ml
diff options
context:
space:
mode:
Diffstat (limited to 'src/verilog/PrintVerilog.ml')
-rw-r--r--src/verilog/PrintVerilog.ml18
1 files changed, 5 insertions, 13 deletions
diff --git a/src/verilog/PrintVerilog.ml b/src/verilog/PrintVerilog.ml
index a355a17..b3fb6c8 100644
--- a/src/verilog/PrintVerilog.ml
+++ b/src/verilog/PrintVerilog.ml
@@ -36,11 +36,6 @@ let fold_map f s = List.map f s |> concat
let pstr pp = fprintf pp "%s"
-let rec intersperse c = function
- | [] -> []
- | [x] -> [x]
- | x :: xs -> x :: c :: intersperse c xs
-
let pprint_binop l r =
let unsigned op = sprintf "{%s %s %s}" l op r in
let signed op = sprintf "{$signed(%s) %s $signed(%s)}" l op r in
@@ -74,8 +69,6 @@ let unop = function
| Vnot -> " ! "
let register a = sprintf "reg_%d" (P.to_int a)
-let vmodule a = sprintf "%s" (extern_atom a)
-let instance a = sprintf "instance_%d" (P.to_int a)
(*let literal l = sprintf "%d'd%d" (Nat.to_int l.vsize) (Z.to_int (uvalueToZ l))*)
@@ -141,12 +134,6 @@ let print_io = function
let decl i = function
| Vdecl (io, r, sz) -> concat [indent i; declare (print_io io) (r, sz)]
| Vdeclarr (io, r, sz, ln) -> concat [indent i; declarearr (print_io io) (r, sz, ln)]
- | Vdeclwire (r, sz) -> concat [indent i; declare "wire" (r, sz)]
- | Vinstancedecl (m, name, args) -> concat [
- indent i; vmodule m; " ";
- instance name; "("; concat (intersperse ", " (List.map register args)); ")";
- ";\n"
- ]
(* TODO Fix always blocks, as they currently always print the same. *)
let pprint_module_item i = function
@@ -158,6 +145,11 @@ let pprint_module_item i = function
| Valways_comb (e, s) ->
concat [indent i; "always "; pprint_edge_top i e; "\n"; pprint_stmnt (i+1) s]
+let rec intersperse c = function
+ | [] -> []
+ | [x] -> [x]
+ | x :: xs -> x :: c :: intersperse c xs
+
let make_io i io r = concat [indent i; io; " "; register r; ";\n"]
let compose f g x = g x |> f