Схема должна иметь 6 логических входов (FA, FB, FC, DA, DB, DC) и два сдвиговых регистра на выходе. Смысл в том, чтобы при поступлении фронта (любого - положительного или отрицательного) на вход FA считать уровень сигнала на входе DA и вдвинуть этот бит в регистр. То же самое для пар (FB, DB) и (FC,DC). По условию задачи фронты на линиях FA, FB, FC не могут прийти одновременно, гарантируется интервал не менее 30 нс между фронтами. Последовательность фронтов на линиях FA, FB, FC может быть произвольной, например, сначала пришли 3 фронта на FA, потом один фронт на FB и 10 фронтов на FC, соответственно в таком же количестве и порядке должны быть собраны биты данных с линий DA, DB, DC. Вообще хотелось бы эти поступающие биты данных собирать в одном сдвиговом регистре, но поскольку все существующие микросхемы сдвиговых регистров тактируются фронтом одной полярности, то пускай регистров будет два, один собирает биты данных на чётных позициях, другой - на нечётных (то есть, где-то внутри этой схемы вычисляется XOR линий FA,FB,FC, чтобы тактировать регистры сдвига).
Как бы это компактно реализовать?