1.2. Блок приема сигналов
16 внешних сигналов подаются параллельно и независимо друг от друга на 16-входовый мультиплексор (рис. 2), с IN0 до IN15.
GN на мультиплексоре обозначает вход разрешения рабочего режима. Чтобы логические значения с информационных входов передавались на выход OUT, на GN подается низкий уровень напряжения (GND).
Мы хотим передавать на выход мультиплексора значения всех входов по очереди, с целью дальнейшего счета лог. уровней 1. Чтобы формировалась желаемая выходная последовательность данных, должны циклически перебираться управляющие сигналы входов SEL0 – SEL3 (K[3..0]) от 0000 до 1111.
Рис. 2. Блок приема сигналов
1.3. Управляющий счетчик
Для формирования и подачи сигналов K[3..0] на мультиплексор ставится управляющий счетчик. Был выбран 4-разрядный счетчик на основе микросхемы 74191. Он имеет инверсный вход загрузки LDN. При подаче лог. 0 на этот вход, в счетчик устанавливается начальное число согласно лог. уровням на входах A, B, C, D. Мы подаем на данный вход инвертированный в «0» сигнал сброса nRST или сигнал res через элемент XOR2.
Инверсный вход разрешения счета GN позволяет при подаче на него логической единицы остановить счет. Он будет использоваться далее, в других счетчиках, а в управляющем мы его заземлим.
Вход DNUP при лог. 1 переводит счетчик в декрементный режим, что нам не нужно, поэтому подключим его к GND.
Выходы счетчика
дают значения разрядов QA
-
,
QB -
,
QC -
,
QD -
,
т. е. числа от 00002 до 11112,
которые шиной K[3..0] заводятся
на мультиплексор.
Мы также хотим получать сигнал сброса по окончании счета. К сожалению, 4-разрядный счетчик способен выдать числа от 0 до 15, а входных сигналов перебирается 16, поэтому будем считать до 16-ти добавлением второго такого же счетчика (рис. 3). Мы будем переносить в него бит с выхода переполнения RCON первого счетчика. Второй счетчик будет формировать сигнал сброса res при достижении числа 16 (100002). D-триггер служит для задержки выданного сигнала res на один такт.
Рис. 3. Управляющий счетчик
1.4. Блок разрешения записи в регистр
Для хранения посчитанного результата в схеме будет использоваться регистр, построенный на D-триггерах, с инверсным входом-разрешением EN. Нам нужно будет подавать на этот вход лог. 1 для запоминания регистром последнего посчитанного количества «единичек» с мультиплексора, а также лог. 0 перед концом счета «единичек» для сброса предыдущего записанного значения.
Реализуется логический блок, представленный на рис. 4. На первом цикле работы всей схемы элемент OR2 принимает «0» с AND5 и «1» с AND4, куда с управляющего счетчика приходят биты К0 – К3, равные 1 (число 11112 = 15 предшествует сбросу всех счетчиков). Формируется сигнал EN = 1 на выходе Т-триггера, который идет на вход-разрешение регистра.
На втором цикле работы схемы EN = 1 через обратную связь даст «1» на выходе AND5 за два счета до 16-ти, на числе 11102 = 14. Это позволит на один такт инвертировать EN в T-триггере в 0. После, на следующем такте, при 11112 = 15, T-триггер снова будет установлен в EN = 1, благодаря «1» с AND4.
На третьем и последующих циклах работы схемы ситуация будет чередоваться. В результате, в конце счета данных регистр будет получать кратковременную команду лог. 0 и перезаписываться по ближайшему фронту CLK. D-триггеры в блоке дают необходимую задержку на 1 такт.
Рис. 4. Блок разрешения записи в регистр
