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