96 } 97} 98 99 100// conversion tables 101const sc_logic_value_t sc_logic::char_to_logic[128] = { 102 Log_0, Log_1, Log_Z, Log_X, Log_X, Log_X, Log_X, Log_X, 103 Log_X, Log_X, Log_X, Log_X, Log_X, Log_X, Log_X, Log_X, 104 Log_X, Log_X, Log_X, Log_X, Log_X, Log_X, Log_X, Log_X, 105 Log_X, Log_X, Log_X, Log_X, Log_X, Log_X, Log_X, Log_X, 106 Log_X, Log_X, Log_X, Log_X, Log_X, Log_X, Log_X, Log_X, 107 Log_X, Log_X, Log_X, Log_X, Log_X, Log_X, Log_X, Log_X, 108 Log_0, Log_1, Log_X, Log_X, Log_X, Log_X, Log_X, Log_X, 109 Log_X, Log_X, Log_X, Log_X, Log_X, Log_X, Log_X, Log_X, 110 Log_X, Log_X, Log_X, Log_X, Log_X, Log_X, Log_X, Log_X, 111 Log_X, Log_X, Log_X, Log_X, Log_X, Log_X, Log_X, Log_X, 112 Log_X, Log_X, Log_X, Log_X, Log_X, Log_X, Log_X, Log_X, 113 Log_X, Log_X, Log_Z, Log_X, Log_X, Log_X, Log_X, Log_X, 114 Log_X, Log_X, Log_X, Log_X, Log_X, Log_X, Log_X, Log_X, 115 Log_X, Log_X, Log_X, Log_X, Log_X, Log_X, Log_X, Log_X, 116 Log_X, Log_X, Log_X, Log_X, Log_X, Log_X, Log_X, Log_X, 117 Log_X, Log_X, Log_Z, Log_X, Log_X, Log_X, Log_X, Log_X 118}; 119 120const char sc_logic::logic_to_char[4] = { '0', '1', 'Z', 'X' }; 121 122const sc_logic_value_t sc_logic::and_table[4][4] = { 123 { Log_0, Log_0, Log_0, Log_0 }, 124 { Log_0, Log_1, Log_X, Log_X }, 125 { Log_0, Log_X, Log_X, Log_X }, 126 { Log_0, Log_X, Log_X, Log_X } 127}; 128 129const sc_logic_value_t sc_logic::or_table[4][4] = { 130 { Log_0, Log_1, Log_X, Log_X }, 131 { Log_1, Log_1, Log_1, Log_1 }, 132 { Log_X, Log_1, Log_X, Log_X }, 133 { Log_X, Log_1, Log_X, Log_X } 134}; 135 136const sc_logic_value_t sc_logic::xor_table[4][4] = { 137 { Log_0, Log_1, Log_X, Log_X }, 138 { Log_1, Log_0, Log_X, Log_X }, 139 { Log_X, Log_X, Log_X, Log_X }, 140 { Log_X, Log_X, Log_X, Log_X } 141}; 142 143const sc_logic_value_t sc_logic::not_table[4] = { 144 Log_1, Log_0, Log_X, Log_X 145}; 146 147// other methods 148void 149sc_logic::scan(::std::istream &is) 150{ 151 char c; 152 is >> c; 153 *this = c; 154} 155 156// #ifdef SC_DT_DEPRECATED 157const sc_logic sc_logic_0(Log_0); 158const sc_logic sc_logic_1(Log_1); 159const sc_logic sc_logic_Z(Log_Z); 160const sc_logic sc_logic_X(Log_X); 161// #endif 162 163const sc_logic SC_LOGIC_0(Log_0); 164const sc_logic SC_LOGIC_1(Log_1); 165const sc_logic SC_LOGIC_Z(Log_Z); 166const sc_logic SC_LOGIC_X(Log_X); 167 168} // namespace sc_dt
|