removed unnecessary $writes

This commit is contained in:
Ethan Sifferman 2024-01-29 16:41:15 -08:00 committed by Zachary Snow
parent 924defc319
commit a020761709
3 changed files with 52 additions and 86 deletions

View File

@ -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] []))
]

View File

@ -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

View File

@ -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