Verilog управляющие сигналы на том же проводе - PullRequest
2 голосов
/ 17 апреля 2011

Я просмотрел интернет и не смог найти четкого и краткого ответа на свой вопрос.Я хочу знать, что произойдет, если я подведу одинаковые силовые сигналы к одному и тому же проводу, один из которых будет логическим 1, а другой - логическим 0?Что мне делать, если я хочу сигнал «победить», из-за отсутствия лучшего слова, в зависимости от ситуации?

Ответы [ 2 ]

2 голосов
/ 18 апреля 2011

Исходя из вашего комментария, звучит так, будто вы хотите автобус с тремя состояниями. Базовая структура для управления автобусом с тремя состояниями:

assign bus = enable ? out : 1'bz;

Каждый модуль, управляющий шиной, имеет драйвер этой формы. Только один модуль может иметь активацию в любое время; протокол шины должен определять способ определения владельца шины. Например, последовательные шины, такие как I2C, имеют «ведущий» и «ведомый»; мастер всегда говорит первым, а раб говорит только после того, как его попросил мастер.

Если вы не хотите, чтобы шина плавала, когда ничего не движется (в симуляции это отображается как значение Z), вы можете объявить шину как tri0 или tri1, а не как обычную wire .

Если несколько модулей имеют активацию, установленную одновременно, или если у вас есть несколько стандартных assign bus = out; драйверов, пытающихся управлять различными значениями на шине, это называется «конфликт». Это будет отображаться как значение X при моделировании и может привести к повреждению драйверов в физическом устройстве.

1 голос
/ 18 апреля 2011

Я хочу знать, что произойдет, если я подавать одинаковые сигналы силы на тот же провод, один из них логика 1 а другая логика 0?

Если нагрузка представляет собой простую сеть, ей будет присвоен StX (Strong X).

Что мне делать, если я хочу сигнал "победить", из-за отсутствия лучшего слова, в зависимости от ситуации?

Вы спрашиваете, как смоделировать это в Verilog или как это сделать с устройствами MOS?

...