Система C поддерживает логику трех состояний?
Поддерживает ли система C логику трех состояний? То есть биты, которые можно получить 0
, 1
или же X
, где X
значит "неизвестно"?
Если это так, поддерживает ли он векторы, которые могут содержать X
В том числе логические и арифметические операции?
2 ответа
Вот что вам нужно:
У него нет переменных в трех состояниях, но есть переменные в четырех состояниях (это правильно?:P) (0,1,X,Z). Подробнее об этом в приведенных выше ссылках. Он также поддерживает векторы этих переменных.
Надеюсь, я вам немного помог:)
Да, вы ищете типы sc_logic и sc_lv, которые представляют собой 4 переменные состояния: 0, 1, X и Z. Обратите внимание на то, как они взаимодействуют, когда вы решаете их вместе. На сайте asic-world.com есть прекрасные таблицы, взятые непосредственно из Руководства пользователя SystemC.
Обратите внимание, что это не работает, как в Verilog, где X также может выступать в качестве подстановочного знака. Мне пришлось создать свою собственную функцию, чтобы добавить эту функциональность.