ppTests Add tests from LRM, but don't run them yet.
This commit is contained in:
parent
9a254105c6
commit
93f305c448
@ -0,0 +1,10 @@
|
||||
/* IEEE1800-2017 Clause 22.5.1 page 679
|
||||
*/
|
||||
|
||||
`define max(a,b)((a) > (b) ? (a) : (b))
|
||||
`define TOP(a,b) a + b
|
||||
|
||||
module m;
|
||||
assign n = `max(p+q, r+s) ;
|
||||
assign z = `TOP( `TOP(b,1), `TOP(42,a) );
|
||||
endmodule
|
@ -0,0 +1,7 @@
|
||||
/* IEEE1800-2017 Clause 22.5.1 page 680
|
||||
*/
|
||||
|
||||
`define append(f) f``_master
|
||||
|
||||
module `append(clock);
|
||||
endmodule
|
10
sv-parser-pp/testcases/IEEE18002017_macro_mix_quotes.sv
Normal file
10
sv-parser-pp/testcases/IEEE18002017_macro_mix_quotes.sv
Normal file
@ -0,0 +1,10 @@
|
||||
/* IEEE1800-2017 Clause 22.5.1 page 680
|
||||
*/
|
||||
|
||||
`define msg(x,y) `"x: `\`"y`\`"`"
|
||||
|
||||
module a;
|
||||
initial begin
|
||||
$display(`msg(left side,right side));
|
||||
end
|
||||
endmodule
|
13
sv-parser-pp/testcases/IEEE18002017_macro_noexpand_string
Normal file
13
sv-parser-pp/testcases/IEEE18002017_macro_noexpand_string
Normal file
@ -0,0 +1,13 @@
|
||||
/* IEEE1800-2017 Clause 22.5.1 page 679
|
||||
*/
|
||||
|
||||
module main;
|
||||
`define HI Hello
|
||||
`define LO "`HI, world"
|
||||
`define H(x) "Hello, x"
|
||||
initial begin
|
||||
$display("`HI, world");
|
||||
$display(`LO);
|
||||
$display(`H(world));
|
||||
end
|
||||
endmodule
|
25
sv-parser-pp/testcases/IEEE18002017_macro_with_defaults.sv
Normal file
25
sv-parser-pp/testcases/IEEE18002017_macro_with_defaults.sv
Normal file
@ -0,0 +1,25 @@
|
||||
/* IEEE1800-2017 Clause 22.5.1 page 678
|
||||
* NOTE: Illegal cases are not included in this testcase.
|
||||
* NOTE: Use of EMPTY is suggested on page 679
|
||||
*/
|
||||
|
||||
`define MACRO1(a=5,b="B",c) $display(a,,b,,c);
|
||||
`define MACRO2(a=5, b, c="C") $display(a,,b,,c);
|
||||
`define MACRO3(a=5, b=0, c="C") $display(a,,b,,c);
|
||||
|
||||
`define EMPTY
|
||||
|
||||
module m;
|
||||
initial begin
|
||||
`MACRO1 ( , 2, 3 )
|
||||
`MACRO1 ( 1 , , 3 )
|
||||
`MACRO1 ( , 2, )
|
||||
`MACRO2 (1, , 3)
|
||||
`MACRO2 (, 2, )
|
||||
`MACRO2 (, 2)
|
||||
`MACRO3 ( 1 )
|
||||
`MACRO3 ( )
|
||||
|
||||
`MACRO3 (`EMPTY,`EMPTY,`EMPTY)
|
||||
end
|
||||
endmodule
|
@ -0,0 +1,15 @@
|
||||
/* IEEE1800-2017 Clause 22.5.1 page 677
|
||||
* NOTE: Illegal cases are not included in this testcase.
|
||||
*/
|
||||
|
||||
`define D(x,y) initial $display("start", x , y, "end");
|
||||
|
||||
module m;
|
||||
initial begin
|
||||
`D( "msg1" , "msg2" )
|
||||
`D( " msg1", )
|
||||
`D(, "msg2 ")
|
||||
`D(,)
|
||||
`D( , )
|
||||
end
|
||||
endmodule
|
@ -0,0 +1,10 @@
|
||||
/* IEEE1800-2017 Clause 22.5.1 page 679
|
||||
*/
|
||||
|
||||
`define max(a,b)((a) > (b) ? (a) : (b))
|
||||
`define TOP(a,b) a + b
|
||||
|
||||
module m;
|
||||
assign n = ((p+q) > (r+s) ? (p+q) : (r+s)) ;
|
||||
assign z = b + 1 + 42 + a;
|
||||
endmodule
|
@ -0,0 +1,7 @@
|
||||
/* IEEE1800-2017 Clause 22.5.1 page 680
|
||||
*/
|
||||
|
||||
`define append(f) f``_master
|
||||
|
||||
module clock_master;
|
||||
endmodule
|
@ -0,0 +1,10 @@
|
||||
/* IEEE1800-2017 Clause 22.5.1 page 680
|
||||
*/
|
||||
|
||||
`define msg(x,y) `"x: `\`"y`\`"`"
|
||||
|
||||
module a;
|
||||
initial begin
|
||||
$display("left side: \"right side\"");
|
||||
end
|
||||
endmodule
|
@ -0,0 +1,13 @@
|
||||
/* IEEE1800-2017 Clause 22.5.1 page 679
|
||||
*/
|
||||
|
||||
module main;
|
||||
`define HI Hello
|
||||
`define LO "`HI, world"
|
||||
`define H(x) "Hello, x"
|
||||
initial begin
|
||||
$display("`HI, world");
|
||||
$display("`HI, world");
|
||||
$display("Hello, x");
|
||||
end
|
||||
endmodule
|
@ -0,0 +1,25 @@
|
||||
/* IEEE1800-2017 Clause 22.5.1 page 678
|
||||
* NOTE: Illegal cases are not included in this testcase.
|
||||
* NOTE: Use of EMPTY is suggested on page 679
|
||||
*/
|
||||
|
||||
`define MACRO1(a=5,b="B",c) $display(a,,b,,c);
|
||||
`define MACRO2(a=5, b, c="C") $display(a,,b,,c);
|
||||
`define MACRO3(a=5, b=0, c="C") $display(a,,b,,c);
|
||||
|
||||
`define EMPTY
|
||||
|
||||
module m;
|
||||
initial begin
|
||||
$display(5,,2,,3);
|
||||
$display(1,,"B",,3);
|
||||
$display(5,,2,,);
|
||||
$display(1,,,,3);
|
||||
$display(5,,2,,"C");
|
||||
$display(5,,2,,"C");
|
||||
$display(1,,0,,"C");
|
||||
$display(5,,0,,"C");
|
||||
|
||||
$display(,,,,);
|
||||
end
|
||||
endmodule
|
@ -0,0 +1,15 @@
|
||||
/* IEEE1800-2017 Clause 22.5.1 page 677
|
||||
* NOTE: Illegal cases are not included in this testcase.
|
||||
*/
|
||||
|
||||
`define D(x,y) initial $display("start", x , y, "end");
|
||||
|
||||
module m;
|
||||
initial begin
|
||||
$display("start", "msg1" , "msg2", "end");
|
||||
$display("start", " msg1" , , "end");
|
||||
$display("start", , "msg2 ", "end");
|
||||
$display("start", , , "end");
|
||||
$display("start", , , "end");
|
||||
end
|
||||
endmodule
|
Loading…
x
Reference in New Issue
Block a user