aboutsummaryrefslogtreecommitdiffstats
path: root/src/hls/ApplyExternctrl.v
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/hls/ApplyExternctrl.v
parenteafd62f89435eddafdb7bfab3f33a888a84e8608 (diff)
downloadvericert-77988ed8be364f0caa3dc7eac30d2251e2675b50.tar.gz
vericert-77988ed8be364f0caa3dc7eac30d2251e2675b50.zip
Tie clocks in the ApplyExternctrl pass
Diffstat (limited to 'src/hls/ApplyExternctrl.v')
-rw-r--r--src/hls/ApplyExternctrl.v8
1 files changed, 7 insertions, 1 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);