Примем, что выходной код В{1:k} - двоичный позиционный код, численный эквивалент которого равен числу единичных символов кода А{1:32}. Легко заметить, что максимальное число "единиц", равное 32, потребует формирования шестиразрядного выходного кода B{1:6}, так как (32)10 = (100000)2 (32Д = 100000B).
В качестве сопутствующей можно рассмотреть задачу формирования выходного кода в двоично-десятичном представлении. Разрядность при этом не изменится: потребуется тетрада для формирования младшей цифры (0 - 9) и два двоичных разряда для представления старшей цифры (0 - 3). Представляет интерес введение контрольного разряда В{7} для проверки кода на четность (нечетность) при передаче по каналу связи.
Итак, задание на проектирование может быть выражено в виде функциональной схемы и эпюр напряжения, изображенных на рис. 2.1.
Примем, что в разрабатываемом устройстве не требуется введения внутренней индикации, и не будем пока накладывать никаких ограничений на потребляемую устройством мощность и, следовательно, на выбор оптимальной элементной базы. Эти вопросы могут быть решены при дальнейшей работе над заданием.
Разработка схемы устройства начинается с главного вопроса - определения метода построения устройства как комбинационного или как регистрового. Согласно заданию устройство преобразует входной параллельный код в выходной, поэтому оно может быть построено и как комбинационное, и как регистровое. Рассмотрим оба варианта, сравним сложность их реализации и определим область применения.
2.2. КОМБИНАЦИОННАЯ РЕАЛИЗАЦИЯ УСТРОЙСТВА
При построении устройства в виде комбинационной схемы надо решить задачу синтеза системы шести логических функций 32 переменных. Эта задача достаточно сложна и в условиях ограниченного времени проектирования решена быть не может.
К решению задачи можно подойти с позиций операционного синтеза, построив устройство, реализующее цепочку простых преобразований. Разобьем входной код на такие части, для которых решение задачи преобразования "числа единиц" в позиционный двоичный код является практически реализуемым. Разобьем входной код на четыре части:
А{1:32} = A{l:8}. А{9:16}. А{17:24}. А{25:32}.