From a0207617093d694049512a9bca0d5b42d69a30fe Mon Sep 17 00:00:00 2001 From: Ethan Sifferman Date: Mon, 29 Jan 2024 16:41:15 -0800 Subject: [PATCH] removed unnecessary $writes --- src/Convert/SystemTasks.hs | 44 +++++++++++---------------- test/core/elab_task.v | 62 +++++++++++++++----------------------- test/core/system_tasks.v | 32 ++++++-------------- 3 files changed, 52 insertions(+), 86 deletions(-) diff --git a/src/Convert/SystemTasks.hs b/src/Convert/SystemTasks.hs index 73c11e0..33147b0 100644 --- a/src/Convert/SystemTasks.hs +++ b/src/Convert/SystemTasks.hs @@ -46,35 +46,31 @@ traverseDescription description = traverseModuleItems convertModuleItem descript convertModuleItem :: ModuleItem -> ModuleItem -convertModuleItem (ElabTask SeverityInfo args) = +convertModuleItem (ElabTask SeverityInfo (Args args [])) = Initial (Block Seq "" [] [ - (Subroutine (Ident "$write") (Args [(String "Elaboration Info: ")] [])), - (Subroutine (Ident "$display") args) + (Subroutine (Ident "$display") (Args ([(String "Elaboration Info: ")] ++ args) [])) ]) -convertModuleItem (ElabTask SeverityWarning args) = +convertModuleItem (ElabTask SeverityWarning (Args args [])) = Initial (Block Seq "" [] [ - (Subroutine (Ident "$write") (Args [(String "Elaboration Warning: ")] [])), - (Subroutine (Ident "$display") args) + (Subroutine (Ident "$display") (Args ([(String "Elaboration Warning: ")] ++ args) [])) ]) -convertModuleItem (ElabTask SeverityError args) = +convertModuleItem (ElabTask SeverityError (Args args [])) = Initial (Block Seq "" [] [ - (Subroutine (Ident "$write") (Args [(String "Elaboration Error: ")] [])), - (Subroutine (Ident "$display") args) + (Subroutine (Ident "$display") (Args ([(String "Elaboration Error: ")] ++ args) [])) ]) convertModuleItem (ElabTask SeverityFatal (Args [] [])) = Initial (Block Seq "" [] [ - (Subroutine (Ident "$display") (Args [(String "Elaboration Fatal:")] [])), - (Subroutine (Ident "$finish") (Args [] [])) + (Subroutine (Ident "$display") (Args [(String "Elaboration Fatal: ")] [])), + (Asgn AsgnOpEq Nothing (LHSIdent elaborationFatalIdent) (RawNum 0)) ]) convertModuleItem (ElabTask SeverityFatal (Args (finishArgs:displayArgs) _)) = Initial (Block Seq "" [] [ - (Subroutine (Ident "$write") (Args [(String "Elaboration Fatal: ")] [])), - (Subroutine (Ident "$display") (Args displayArgs [])), - (Subroutine (Ident "$finish") (Args [finishArgs] [])) + (Subroutine (Ident "$display") (Args ([(String "Elaboration Fatal: ")] ++ displayArgs) [])), + (Asgn AsgnOpEq Nothing (LHSIdent elaborationFatalIdent) finishArgs) ]) convertModuleItem other = @@ -84,33 +80,29 @@ timeCall :: Expr timeCall = Call (Ident "$time") (Args [] []) convertStmt :: Stmt -> Stmt -convertStmt (Subroutine (Ident "$info") args) = +convertStmt (Subroutine (Ident "$info") (Args args [])) = Block Seq "" [] [ - (Subroutine (Ident "$write") (Args [(String "[%0t] Info: "), timeCall] [])), - (Subroutine (Ident "$display") args) + (Subroutine (Ident "$display") (Args ([(String "[%0t] Info: "), timeCall] ++ args) [])) ] -convertStmt (Subroutine (Ident "$warning") args) = +convertStmt (Subroutine (Ident "$warning") (Args args [])) = Block Seq "" [] [ - (Subroutine (Ident "$write") (Args [(String "[%0t] Warning: "), timeCall] [])), - (Subroutine (Ident "$display") args) + (Subroutine (Ident "$display") (Args ([(String "[%0t] Warning: "), timeCall] ++ args) [])) ] -convertStmt (Subroutine (Ident "$error") args) = +convertStmt (Subroutine (Ident "$error") (Args args [])) = Block Seq "" [] [ - (Subroutine (Ident "$write") (Args [(String "[%0t] Error: "), timeCall] [])), - (Subroutine (Ident "$display") args) + (Subroutine (Ident "$display") (Args ([(String "[%0t] Error: "), timeCall] ++ args) [])) ] convertStmt (Subroutine (Ident "$fatal") (Args [] [])) = Block Seq "" [] [ - (Subroutine (Ident "$display") (Args [(String "[%0t] Fatal:"), timeCall] [])), + (Subroutine (Ident "$display") (Args [(String "[%0t] Fatal: "), timeCall] [])), (Subroutine (Ident "$finish") (Args [] [])) ] convertStmt (Subroutine (Ident "$fatal") (Args (finishArgs:displayArgs) _)) = Block Seq "" [] [ - (Subroutine (Ident "$write") (Args [(String "[%0t] Fatal: "), timeCall] [])), - (Subroutine (Ident "$display") (Args displayArgs [])), + (Subroutine (Ident "$display") (Args ([(String "[%0t] Fatal: "), timeCall] ++ displayArgs) [])), (Subroutine (Ident "$finish") (Args [finishArgs] [])) ] diff --git a/test/core/elab_task.v b/test/core/elab_task.v index 82223cc..663b6bb 100644 --- a/test/core/elab_task.v +++ b/test/core/elab_task.v @@ -1,40 +1,26 @@ module top; - initial begin - $write("Elaboration Info: "); - $display; - end - initial begin - $write("Elaboration Info: "); - $display("%b", 1); - end - initial begin - $write("Elaboration Warning: "); - $display; - end - initial begin - $write("Elaboration Warning: "); - $display("%b", 2); - end - initial begin - $write("Elaboration Error: "); - $display; - end - initial begin - $write("Elaboration Error: "); - $display("%b", 3); - end - initial begin - $display("Elaboration Fatal:"); - $finish; - end - initial begin - $write("Elaboration Fatal: "); - $display; - $finish(0); - end - initial begin - $write("Elaboration Fatal: "); - $display("%b", 4); - $finish(0); - end + integer _sv2v_elaboration_fatal = -1; + initial $display("Elaboration Info: "); + initial $display("Elaboration Info: ", "%b", 1); + initial $display("Elaboration Warning: "); + initial $display("Elaboration Warning: ", "%b", 2); + initial $display("Elaboration Error: "); + initial $display("Elaboration Error: ", "%b", 3); + initial begin + $display("Elaboration Fatal: "); + _sv2v_elaboration_fatal = 0; + end + initial begin + $display("Elaboration Fatal: "); + _sv2v_elaboration_fatal = 0; + end + initial begin + $display("Elaboration Fatal: ", "%b", 4); + _sv2v_elaboration_fatal = 0; + end + initial begin + #0; + if (_sv2v_elaboration_fatal != -1) + $finish(_sv2v_elaboration_fatal); + end endmodule diff --git a/test/core/system_tasks.v b/test/core/system_tasks.v index 6f42803..f459895 100644 --- a/test/core/system_tasks.v +++ b/test/core/system_tasks.v @@ -1,24 +1,12 @@ module top; - initial begin - $write("[%0t] Info: ", $time); - $display; - $write("[%0t] Info: ", $time); - $display("%b", 1); - $write("[%0t] Warning: ", $time); - $display; - $write("[%0t] Warning: ", $time); - $display("%b", 2); - $write("[%0t] Error: ", $time); - $display; - $write("[%0t] Error: ", $time); - $display("%b", 3); - $display("[%0t] Fatal:", $time); - $finish; - $write("[%0t] Fatal: ", $time); - $display; - $finish(0); - $write("[%0t] Fatal: ", $time); - $display("%b", 4); - $finish(0); - end + initial begin + $display("[%0t] Info: ", $time); + $display("[%0t] Info: ", $time, "%b", 1); + $display("[%0t] Warning: ", $time); + $display("[%0t] Warning: ", $time, "%b", 2); + $display("[%0t] Error: ", $time); + $display("[%0t] Error: ", $time, "%b", 3); + $display("[%0t] Fatal: ", $time); + $finish; + end endmodule