Потребовалось реализовать следующую схему:
Входов 9 штук: clk + a1,a2,a3,a4,b1,b2,b3,b4. Выходов 5 штук c1,c2,c3,c4,c5. Всегда
только один из выходов находится в лог 1 (после подачи питания по умолчанию это выход с1). По фронту на входе clk состояние на выходе меняется по следующему алгоритму (перечислены все возможные состояния на входах):
- на на всех входах лог 0 - состояние на выходе не меняется.
- a1 в лог 1 - на выходе произойдёт сдвиг на +1.
- a1,a2 в лог 1 - на выходе произойдёт сдвиг на +2.
- a1,a2,a3 в лог 1 - на выходе произойдёт сдвиг на +3.
- a1,a2,a3,a4 в лог 1 - на выходе произойдёт сдвиг на +4.
- b1 в лог 1 - на выходе произойдёт сдвиг на -1.
- b1,b2 в лог 1 - на выходе произойдёт сдвиг на -2.
- b1,b2,b3 в лог 1 - на выходе произойдёт сдвиг на -3.
- b1,b2,b3,b4 в лог 1 - на выходе произойдёт сдвиг на -4.
Сдвиг на +1 означает, что , например, если лог 1 было на выходе с3, то по фронту на clk на выходе с3 станет лог 0, а на выходе с4 - лог1. Сдвиг нужен без переноса - если, например, лог 1 было на выходе с5, любой сдвиг в + ничего на выходе не изменит.
Вопрос: на каких логически микросхемах (сдвиговые регистры, счётчики и т.п.) можно реализовать такую схему? (микроконтроллер не предлагать

)