Помогите построить цифровую логическую схему (из таблицы истинности и диаграммы состояний)

Я несколько застрял и отчаянно нуждаюсь в помощи. Я столкнулся с проблемой светофора и полностью понимаю ее фактическую логику. Однако мне очень трудно превратить это в цифровую логику. Я продумал диаграмму состояний. Моя самая большая проблема, которую я не могу понять, заключается в том, что состояние представлено двухбитным двоичным числом. Итак, при построении моей схемы, как мне «создать» это двухбитное число с помощью вентилей, а что нет?

Это моя упрощенная таблица истинности для задачи. 4 состояния: новый красный свет (00), существующий красный свет (01), новый зеленый свет (10) и существующий зеленый свет (11) [желтый свет игнорируется в моей версии проблемы].

Reduced Truth Table
State Input  new State
  00    00     10    
  00    *1     10
  00    10     01

  01    00     10
  01    *1     10
  01    10     01

  10    **     11

  11    0*     11
  11    1*     00

Теперь я понимаю, как грубо спроектировать вывод каждого состояния + ввод, чтобы получить каждое новое состояние. Мне просто очень трудно собрать все это воедино. У меня есть вся моя диаграмма состояний, и я понимаю, когда должен произойти переход, это цифровая логика, с которой у меня проблемы.

У меня все еще много проблем с мультиплексорами, хотя я знаю, что их можно использовать в этой схеме, которую я нарисовал ниже (потому что я создал грубый дизайн из состояния, а не из входных данных).

схематический

смоделируйте эту схему - схема, созданная с помощью CircuitLab

У меня есть еще одна гораздо более сложная схема, которая включает в себя как состояние, так и входы, но я не уверен, что она правильная и как ее использовать дальше (т.е. подключить к триггеру и создать вывод цвета светофора) [ПРИМЕЧАНИЕ : ВЫВОД НЕВЕРНЫЙ, выход первого элемента ИЛИ должен быть S0, а выход второго элемента ИЛИ должен быть S1] [ введите описание изображения здесь] 1

Ответы (1)

Я ввел вашу таблицу истинности в окно комбинационного анализа Logisim и получил вот это. Это то, что вы ищете?Схема

Что касается наличия двух битов состояния, это не имеет большого значения, если результат один и тот же. Я просто использовал S0 и S1 для старого состояния и BCar и CCar для ввода. New0 и New1 — это новое состояние вывода.

Таблица истинности

Вы получили большую часть выходных результатов правильно, но есть и неправильные. Состояние 6 должно быть 01, а не 00, а состояние 11 должно быть 11, а не 10.
@Guill Вы правы. Я исправил это. Жаль, что он не вписывается в 3 чипа TTL, как другой.