aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMichalis Pardalos <m.pardalos@gmail.com>2021-08-12 20:23:45 +0100
committerMichalis Pardalos <m.pardalos@gmail.com>2021-08-12 20:23:45 +0100
commit77988ed8be364f0caa3dc7eac30d2251e2675b50 (patch)
tree9654d8c157a8201afd9aa8b8d678d0b5400891fd /src
parenteafd62f89435eddafdb7bfab3f33a888a84e8608 (diff)
downloadvericert-77988ed8be364f0caa3dc7eac30d2251e2675b50.tar.gz
vericert-77988ed8be364f0caa3dc7eac30d2251e2675b50.zip
Tie clocks in the ApplyExternctrl pass
Diffstat (limited to 'src')
-rw-r--r--src/hls/ApplyExternctrl.v8
-rw-r--r--src/hls/HTLgen.v1
2 files changed, 7 insertions, 2 deletions
diff --git a/src/hls/ApplyExternctrl.v b/src/hls/ApplyExternctrl.v
index 5ddbd4a..b024b9e 100644
--- a/src/hls/ApplyExternctrl.v
+++ b/src/hls/ApplyExternctrl.v
@@ -19,6 +19,12 @@ Section APPLY_EXTERNCTRL.
Let modmap := prog_modmap prog.
+ Definition global_clk :=
+ match modmap ! (AST.prog_main prog) with
+ | None => Error (msg "ApplyExternctrl: No main")
+ | Some main => OK (HTL.mod_clk main)
+ end.
+
Definition get_mod_signal (othermod : HTL.module) (signal : HTL.controlsignal) :=
match signal with
| ctrl_finish => OK (HTL.mod_finish othermod)
@@ -139,7 +145,7 @@ Section APPLY_EXTERNCTRL.
Definition module_apply_externctrl : res HTL.module :=
do mod_start' <- reg_apply_externctrl (HTL.mod_start m);
do mod_reset' <- reg_apply_externctrl (HTL.mod_reset m);
- do mod_clk' <- reg_apply_externctrl (HTL.mod_clk m);
+ do mod_clk' <- global_clk;
do mod_finish' <- reg_apply_externctrl (HTL.mod_finish m);
do mod_return' <- reg_apply_externctrl (HTL.mod_return m);
do mod_st' <- reg_apply_externctrl (HTL.mod_st m);
diff --git a/src/hls/HTLgen.v b/src/hls/HTLgen.v
index 2e4cf48..a979a40 100644
--- a/src/hls/HTLgen.v
+++ b/src/hls/HTLgen.v
@@ -532,7 +532,6 @@ Definition transf_instr (ge : RTL.genv) (fin rtrn stack: reg) (ni: node * instru
do finish_reg <- map_externctrl fn ctrl_finish;
do reset_reg <- map_externctrl fn ctrl_reset;
do return_reg <- map_externctrl fn ctrl_return;
- do _ <- map_externctrl fn ctrl_clk;
let fork_instr := fork reset_reg params in
let join_instr := join return_reg reset_reg dst in