blob: 76f2ba3d00ab975cdbfeca081ac340590176a2fc [file] [log] [blame]
// Copyright 2020 Google LLC.
// SPDX-License-Identifier: Apache-2.0
//- @PRINT_STRING defines/binding _
`define PRINT_STRING(str1) $display("%s\n", str1)
//- @PRINT_3_STRINGS defines/binding Print3Strings
`define PRINT_3_STRINGS(str1, str2, str3) \
`PRINT_STRING(str1); \
`PRINT_STRING(str2); \
`PRINT_STRING(str3);
//- @TEN defines/binding Ten
`define TEN 10
package my_pkg;
//- @my_function defines/binding MyFunction
function automatic my_function(int arg1, int arg2);
return arg1 + arg2;
endfunction
endpackage
//- @macro defines/binding _
module macro;
initial begin
//- @arg2 defines/binding Arg2
automatic integer arg2 = 2;
//- @ii defines/binding _
//- @my_function ref/call MyFunction
//- @"TEN" ref/expands Ten
//- @arg2 ref Arg2
automatic integer ii = my_pkg::my_function(`TEN, arg2);
//- @"PRINT_3_STRINGS" ref/expands Print3Strings
`PRINT_3_STRINGS("Grand", "Tour", "S4");
end
endmodule