1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
|
`ifndef SAIL_LIBRARY
`define SAIL_LIBRARY
// The Sail unit type.
typedef enum logic [0:0] {SAIL_UNIT=0} sail_unit;
// The Sail zero-width bitvector.
typedef enum logic [0:0] {SAIL_ZWBV=0} sail_zwbv;
`ifdef SAIL_NOSTRINGS
function automatic sail_unit sail_print_endline(sail_unit s);
return SAIL_UNIT;
endfunction // sail_print_endline
function automatic sail_unit sail_prerr_endline(sail_unit s);
return SAIL_UNIT;
endfunction // sail_prerr_endline
function automatic sail_unit sail_print(sail_unit s);
return SAIL_UNIT;
endfunction // sail_print
function automatic sail_unit sail_prerr(sail_unit s);
return SAIL_UNIT;
endfunction // sail_prerr
function automatic sail_unit sail_assert(bit b, sail_unit msg);
return SAIL_UNIT;
endfunction // sail_assert
function automatic bit sail_eq_string(sail_unit s1, sail_unit s2);
return 0;
endfunction
`else
function automatic sail_unit sail_print_endline(string s);
$display(s);
return SAIL_UNIT;
endfunction // sail_print_endline
function automatic sail_unit sail_prerr_endline(string s);
$display(s);
return SAIL_UNIT;
endfunction // sail_prerr_endline
function automatic sail_unit sail_print(string s);
$write(s);
return SAIL_UNIT;
endfunction // sail_print
function automatic sail_unit sail_prerr(string s);
$write(s);
return SAIL_UNIT;
endfunction // sail_prerr
function automatic sail_unit sail_assert(bit b, string msg);
if (!b) begin
$display("%s", msg);
end;
return SAIL_UNIT;
endfunction // sail_assert
function automatic bit sail_eq_string(string s1, string s2);
return s1 == s2;
endfunction
`endif
typedef enum logic [0:0] {SAIL_REAL} sail_real;
`endif // `ifndef SAIL_LIBRARY
|