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 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117
|
// DESCRIPTION: Verilator: Verilog Test module
//
// This file ONLY is placed under the Creative Commons Public Domain, for
// any use, without warranty, 2024 by Wilson Snyder.
// SPDX-License-Identifier: CC0-1.0
`begin_keywords "1800-2023"
`define ONE
`undef ZERO
`ifdef ( ONE )
"ok ( ONE )"
`endif
// Test no spaces around ()
`ifdef (ZERO)
`error "( ZERO )"
`endif
`ifndef ( ! ONE )
"ok ( ! ONE )"
`endif
// Test no spaces around ()
`ifndef (!ZERO)
`error "( ! ZERO )"
`endif
`ifdef ( ! ZERO )
"ok ( ! ZERO )"
`endif
`ifdef ( ! ONE )
`error "( ! ONE )"
`endif
`ifdef ( ZERO || ZERO || ONE )
"ok ( ZERO || ZERO || ONE )"
`endif
`ifdef ( ZERO || ZERO || ZERO )
`error "( ZERO || ZERO || ZERO )"
`endif
`ifdef ( ONE && ONE && ONE )
"ok ( ONE && ONE && ONE )"
`endif
`ifdef ( ONE && ONE && ZERO )
`error "( ONE && ONE && ZERO )"
`endif
// Precedence of && is under ||
`ifdef ( ZERO && ZERO || ONE )
"ok ( ZERO && ZERO || ONE )"
`endif
`ifdef ( ONE || ZERO && ZERO )
"ok ( ONE || ZERO && ZERO )"
`endif
`ifdef ZERO
`elsif ( ONE && !( ZERO && ONE ) )
"ok ( ONE && !( ZERO && ONE ) )"
`endif
`ifdef ( ZERO -> ZERO)
"ok ( ZERO -> ZERO)"
`endif
// Text extra newlines
`ifdef ( ZERO
->
ONE)
"ok ( ZERO -> ONE)"
`endif
// Text comments
`ifdef ( ZERO // Zero
-> // Operator
ONE) // One
"ok ( ZERO -> ONE)"
`endif
`ifdef ( /*val*/ ZERO
/*op*/ ->
/*val*/ ONE)
"ok ( ZERO -> ONE)"
`endif
`ifndef ( ONE -> ZERO)
"ok ( ONE -> ZERO)"
`endif
`ifdef ( ONE -> ONE)
"ok ( ONE -> ONE)"
`endif
`ifdef ( ZERO <-> ZERO)
"ok ( ZERO <-> ZERO)"
`endif
`ifndef ( ZERO <-> ONE)
"ok ( ZERO <-> ONE)"
`endif
`ifndef ( ONE <-> ZERO)
"ok ( ONE <-> ZERO)"
`endif
`ifdef ( ONE <-> ONE)
"ok ( ONE <-> ONE)"
`endif
`ifdef (ZERO)
"bad"
`elsif (ZERO)
"bad"
`elsif (ONE)
"ok "
`elsif (ONE)
"bad"
`endif
// Did we end up right?
Line: `__LINE__
|