aboutsummaryrefslogtreecommitdiffstats
path: root/src/hls/Schedule.ml
diff options
context:
space:
mode:
authorYann Herklotz <git@yannherklotz.com>2021-11-17 12:11:12 +0000
committerYann Herklotz <git@yannherklotz.com>2021-11-17 12:11:12 +0000
commitfea7ee4d30aa7597ff5b8e2a2954ed452a1a7a57 (patch)
treef8ac2fb75b23716adf369f7cfa8220aa10b11754 /src/hls/Schedule.ml
parent508d59dfb16f97cf5f1b9a994bd5a8159c9e1a3e (diff)
downloadvericert-fea7ee4d30aa7597ff5b8e2a2954ed452a1a7a57.tar.gz
vericert-fea7ee4d30aa7597ff5b8e2a2954ed452a1a7a57.zip
Fix generation of RTLParFU
Diffstat (limited to 'src/hls/Schedule.ml')
-rw-r--r--src/hls/Schedule.ml9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/hls/Schedule.ml b/src/hls/Schedule.ml
index 94225fa..b75465b 100644
--- a/src/hls/Schedule.ml
+++ b/src/hls/Schedule.ml
@@ -289,6 +289,7 @@ let comb_delay = function
| _ -> 1
let pipeline_stages = function
+ | RBload _ -> 2
| RBop (_, op, _, _) ->
(match op with
| Odiv -> 32
@@ -743,7 +744,7 @@ let solve_constraints constr =
|> drop 3
|> List.fold_left parse_soln (IMap.empty, IMap.empty)
in
- Sys.remove fn; res
+ (*Sys.remove fn;*) res
let subgraph dfg l =
let dfg' = List.fold_left (fun g v -> DFG.add_vertex g v) DFG.empty l in
@@ -806,14 +807,14 @@ let transf_rtlpar c c' schedule =
let body = IMap.to_seq i_sched_tree |> List.of_seq |> List.map snd
|> List.map (List.map (fun x -> (x, List.nth bb_body' x)))
in
- (*let body2 = List.fold_left (fun x b ->
+ let body2 = List.fold_left (fun x b ->
match IMap.find_opt b i_sched_tree with
| Some i -> i :: x
| None -> [] :: x
) [] (range (fst bb_st_e) (snd bb_st_e + 1))
|> List.map (List.map (fun x -> (x, List.nth bb_body' x)))
|> List.rev
- in*)
+ in
(*let final_body = List.map (fun x -> subgraph dfg x |> order_instr) body in*)
let final_body2 = List.map (fun x -> subgraph dfg x
|> (fun x ->
@@ -821,7 +822,7 @@ let transf_rtlpar c c' schedule =
|> List.map (subgraph x)
|> List.map (fun y ->
TopoDFG.fold (fun i l -> snd i :: l) y []
- |> List.rev))) body
+ |> List.rev))) body2
(*|> (fun x -> TopoDFG.fold (fun i l -> snd i :: l) x [])
|> List.rev) body2*)
in