From 975a5fb0c11af6e8db3f250322794c0712f4af90 Mon Sep 17 00:00:00 2001 From: Yann Herklotz Date: Mon, 1 Mar 2021 11:05:12 +0000 Subject: Change lists in case statements to stmnt_list --- src/hls/HTLPargen.v | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/hls/HTLPargen.v') diff --git a/src/hls/HTLPargen.v b/src/hls/HTLPargen.v index 9213514..618c5e6 100644 --- a/src/hls/HTLPargen.v +++ b/src/hls/HTLPargen.v @@ -758,7 +758,7 @@ Fixpoint translate_cfi' (fin rtrn stack preg: reg) (cfi: cf_instr) ret ((Vcond (pred_expr preg p) tc1s tc2s), (Vcond (pred_expr preg p) tc1c tc2c)) | RBjumptable r tbl => do s <- get; - ret (Vskip, Vcase (Vvar r) (tbl_to_case_expr s.(st_st) tbl) (Some Vskip)) + ret (Vskip, Vcase (Vvar r) (list_to_stmnt (tbl_to_case_expr s.(st_st) tbl)) (Some Vskip)) | RBcall sig ri rl r n => error (Errors.msg "HTLPargen: RPcall not supported.") | RBtailcall sig ri lr => -- cgit From 05347ca5126f335b0479b71a4576b141e082fab5 Mon Sep 17 00:00:00 2001 From: Yann Herklotz Date: Tue, 2 Mar 2021 10:27:33 +0000 Subject: Add RAM to HTL --- src/hls/HTLPargen.v | 1 + 1 file changed, 1 insertion(+) (limited to 'src/hls/HTLPargen.v') diff --git a/src/hls/HTLPargen.v b/src/hls/HTLPargen.v index 618c5e6..9bf7ed7 100644 --- a/src/hls/HTLPargen.v +++ b/src/hls/HTLPargen.v @@ -821,6 +821,7 @@ Definition transf_module (f: function) : mon HTL.module := clk current_state.(st_scldecls) current_state.(st_arrdecls) + None (conj (max_pc_wf _ LECTRL) (max_pc_wf _ LEDATA))) | _, _ => error (Errors.msg "More than 2^32 states.") end -- cgit From 23a2a2fb2916a7ecb240aa51686bbe049f8418e4 Mon Sep 17 00:00:00 2001 From: Yann Herklotz Date: Tue, 6 Apr 2021 23:08:03 +0100 Subject: Finish load and store proof, but broke top-level --- src/hls/HTLPargen.v | 29 +++++++++++++++++++++++------ 1 file changed, 23 insertions(+), 6 deletions(-) (limited to 'src/hls/HTLPargen.v') diff --git a/src/hls/HTLPargen.v b/src/hls/HTLPargen.v index 9bf7ed7..50defee 100644 --- a/src/hls/HTLPargen.v +++ b/src/hls/HTLPargen.v @@ -786,7 +786,19 @@ Definition transf_bblock (fin rtrn stack preg: reg) (ni : node * bblock) | _ => translate_cfi fin rtrn stack preg (nstate, bb.(bb_exit)) end. -Definition transf_module (f: function) : mon HTL.module := +Definition decide_order a b c d e f g : {module_ordering a b c d e f g} + {True}. + refine (match bool_dec ((a left _ + | _ => _ + end); auto. + simplify; repeat match goal with + | H: context[(_ apply Pos.ltb_lt in H + end; unfold module_ordering; auto. +Defined. + +Definition transf_module (f: function) : mon HTL.module. + refine ( if stack_correct f.(fn_stacksize) then do fin <- create_reg (Some Voutput) 1; do rtrn <- create_reg (Some Voutput) 32; @@ -804,8 +816,10 @@ Definition transf_module (f: function) : mon HTL.module := match zle (Z.pos (max_pc_map current_state.(st_datapath))) Integers.Int.max_unsigned, zle (Z.pos (max_pc_map current_state.(st_controllogic))) - Integers.Int.max_unsigned with - | left LEDATA, left LECTRL => + Integers.Int.max_unsigned, + decide_order (st_st current_state) fin rtrn stack start rst clk + with + | left LEDATA, left LECTRL, left MORD => ret (HTL.mkmodule f.(fn_params) current_state.(st_datapath) @@ -822,10 +836,13 @@ Definition transf_module (f: function) : mon HTL.module := current_state.(st_scldecls) current_state.(st_arrdecls) None - (conj (max_pc_wf _ LECTRL) (max_pc_wf _ LEDATA))) - | _, _ => error (Errors.msg "More than 2^32 states.") + (conj (max_pc_wf _ LECTRL) (max_pc_wf _ LEDATA)) + MORD + _) + | _, _, _ => error (Errors.msg "More than 2^32 states.") end - else error (Errors.msg "Stack size misalignment."). + else error (Errors.msg "Stack size misalignment.")); discriminate. +Defined. Definition max_state (f: function) : state := let st := Pos.succ (max_reg_function f) in -- cgit From 8573889ca84a84475761b4d75d55547a2995c831 Mon Sep 17 00:00:00 2001 From: Yann Herklotz Date: Wed, 7 Apr 2021 01:11:04 +0100 Subject: Basically done with proof --- src/hls/HTLPargen.v | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'src/hls/HTLPargen.v') diff --git a/src/hls/HTLPargen.v b/src/hls/HTLPargen.v index 50defee..7ce6c7a 100644 --- a/src/hls/HTLPargen.v +++ b/src/hls/HTLPargen.v @@ -817,9 +817,10 @@ Definition transf_module (f: function) : mon HTL.module. Integers.Int.max_unsigned, zle (Z.pos (max_pc_map current_state.(st_controllogic))) Integers.Int.max_unsigned, - decide_order (st_st current_state) fin rtrn stack start rst clk + decide_order (st_st current_state) fin rtrn stack start rst clk, + max_list_dec (fn_params f) (st_st current_state) with - | left LEDATA, left LECTRL, left MORD => + | left LEDATA, left LECTRL, left MORD, left WFPARAMS => ret (HTL.mkmodule f.(fn_params) current_state.(st_datapath) @@ -838,8 +839,9 @@ Definition transf_module (f: function) : mon HTL.module. None (conj (max_pc_wf _ LECTRL) (max_pc_wf _ LEDATA)) MORD - _) - | _, _, _ => error (Errors.msg "More than 2^32 states.") + _ + WFPARAMS) + | _, _, _, _ => error (Errors.msg "More than 2^32 states.") end else error (Errors.msg "Stack size misalignment.")); discriminate. Defined. -- cgit From 77f718fea849b389a8fd4c2b1dc2b5d6f7c39508 Mon Sep 17 00:00:00 2001 From: Yann Herklotz Date: Sun, 11 Jul 2021 15:43:06 +0200 Subject: Add legup script --- src/hls/HTLPargen.v | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/hls/HTLPargen.v') diff --git a/src/hls/HTLPargen.v b/src/hls/HTLPargen.v index 7ce6c7a..eda597a 100644 --- a/src/hls/HTLPargen.v +++ b/src/hls/HTLPargen.v @@ -641,7 +641,7 @@ Definition add_control_instr_force_state_incr : s.(st_arrdecls) s.(st_datapath) (AssocMap.set n st s.(st_controllogic))). -Admitted. +Abort. Definition add_control_instr_force (n : node) (st : stmnt) : mon unit := fun s => -- cgit From 178a7c4781c96857fe0a33c777da83e769516152 Mon Sep 17 00:00:00 2001 From: Yann Herklotz Date: Sun, 11 Jul 2021 15:59:21 +0200 Subject: Remove unnecessary files and proofs --- src/hls/HTLPargen.v | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'src/hls/HTLPargen.v') diff --git a/src/hls/HTLPargen.v b/src/hls/HTLPargen.v index eda597a..9e1f156 100644 --- a/src/hls/HTLPargen.v +++ b/src/hls/HTLPargen.v @@ -643,7 +643,7 @@ Definition add_control_instr_force_state_incr : (AssocMap.set n st s.(st_controllogic))). Abort. -Definition add_control_instr_force (n : node) (st : stmnt) : mon unit := +(*Definition add_control_instr_force (n : node) (st : stmnt) : mon unit := fun s => OK tt (mkstate s.(st_st) @@ -708,7 +708,7 @@ Lemma create_new_state_state_incr: s.(st_arrdecls) s.(st_datapath) s.(st_controllogic)). -Admitted. +Abort. Definition create_new_state (p: node): mon node := fun s => OK s.(st_freshstate) @@ -876,3 +876,4 @@ Definition transl_program (p : RTLBlockInstr.program) : Errors.res HTL.program : if main_is_internal p then transform_partial_program transl_fundef p else Errors.Error (Errors.msg "Main function is not Internal."). +*) -- cgit