aboutsummaryrefslogtreecommitdiffstats
path: root/src/verilog/PrintHTL.ml
diff options
context:
space:
mode:
Diffstat (limited to 'src/verilog/PrintHTL.ml')
-rw-r--r--src/verilog/PrintHTL.ml15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/verilog/PrintHTL.ml b/src/verilog/PrintHTL.ml
index 430a4b4..aa90dbe 100644
--- a/src/verilog/PrintHTL.ml
+++ b/src/verilog/PrintHTL.ml
@@ -45,7 +45,7 @@ let print_instruction pp (pc, i) =
fprintf pp "%5d:\t%s" pc (pprint_stmnt 0 i)
let pprint_datapath_stmnt i = function
- | HTLVstmnt s -> pprint_stmnt i s
+ | HTLDataVstmnt s -> pprint_stmnt i s
| HTLfork (name, args) -> concat [
"fork "; extern_atom name; "("; concat (intersperse ", " (List.map register args)); ");\n"
]
@@ -56,6 +56,17 @@ let pprint_datapath_stmnt i = function
let print_datapath_instruction pp (pc, i) =
fprintf pp "%5d:\t%s" pc (pprint_datapath_stmnt 0 i)
+let pprint_control_stmnt i = function
+ | HTLCtrlVstmnt s -> pprint_stmnt i s
+ | HTLwait (name, statereg, expr) -> concat [
+ "wait("; extern_atom name; ", ";
+ register statereg; ", ";
+ pprint_expr expr; ");\n"
+ ]
+
+let print_control_instruction pp (pc, i) =
+ fprintf pp "%5d:\t%s" pc (pprint_control_stmnt 0 i)
+
let ptree_to_list ptree =
List.sort
(fun (pc1, _) (pc2, _) -> compare pc2 pc1)
@@ -70,7 +81,7 @@ let print_module pp id f =
fprintf pp "datapath {\n";
List.iter (print_datapath_instruction pp) datapath;
fprintf pp " }\n\n controllogic {\n";
- List.iter (print_instruction pp) controllogic;
+ List.iter (print_control_instruction pp) controllogic;
fprintf pp " }\n}\n\n"
let print_globdef pp (id, gd) =