Нулевой разряд:
любые 2 из трёх сигналов (A0, B0, P) инициируют перенос
P0 = A0*B0 + A0*P + B0*P = NOT(A0*B0 * A0*P * B0*P)
можно пользовать и первую часть и вторую, но в моем случае удобнее на элементах И-НЕ.
Первый разряд:
тут немного сложнее
P1 = A1*B1 + A1*P0 + B1*P0 = (A1*B1) + (A1*A0*B0) + (A1*A0*P) + (A1*B0*P) + (B1*A0*B0) + (B1*A0*P) + (B1*B0*P)
так... получилось 7 блоков, смотрим в справочник микросхем логики...
к сожалению 7ИЛИ или 7И в справочнике не нашлось, придется что-то делать
итак сокращаем:
P1 = A1*B1 + A0*B0*(A1+B1) + A0*P*(A1+B1) + B0*P*(A1+B1)
вышло 4 влока, уже лучше, что-то вроде 4ХХХХ мне в справочнике попадалось,
ВОТ ЖЕЖ! с элементами ИЛИ вообще прямо беда, но зато есть И-НЕ, значит переделываем дальше
P1 = NOT(A1*B1 * A0*B0*(A1+B1) * A0*P*(A1+B1) * B0*P*(A1+B1))
вышло 4И-НЕ, жаль не получилось уложиться в 2 слоя элементов, а значит следующий разряд будет считаться немного дольше, но и так тоже неплохо
Второй разряд:
P2=A2*B2 + A2*P1 + B2*P1 = A2*B2 + A2*A1*B1 + A2*A1*A0*P + A2*A1*B0*P + A2*A1*A0*B0 + A2*B1*A0*P + A2*B1*B0*P + A2*B1*A0*B0 + B2*A1*B1 + B2*A1*A0*P + B2*A1*B0*P + B2*A1*A0*B0 + B2*B1*A0*P + B2*B1*B0*P + B2*B1*A0*B0
ох-ох-ох! так... что у нас есть в справочнике ближайшее? опа! ЛА2 (8И-НЕ) попробуем
P2 = <A2*B2> + <A1*B1*(A2+B2)> + <A1*A0*P*(A2+B2)> + <A1*B0*P*(A2+B2)> + <A1*A0*B0*(A2+B2)> + <B1*A0*P*(A2+B2)> + <B1*B0*P*(A2+B2)> + <B1*A0*B0*(A2+B2)>
о чудо! получаем точно 8 блоков, значит надо их переделывать под 8И-не
P2 = NOT((A2*B2) * (A1*B1*(A2+B2)) * (A1*A0*P*(A2+B2)) * (A1*B0*P*(A2+B2)) * (A1*A0*B0*(A2+B2)) * (B1*A0*P*(A2+B2)) * (B1*B0*P*(A2+B2)) * (B1*A0*B0*(A2+B2))) =
= NOT((A2*B2) * (A1*B1+(A2+B2)) * (A1*A0*P+(A2+B2)) * (A1*B0*P+(A2+B2)) * (A1*A0*B0+(A2+B2)) * (B1*A0*P+(A2+B2)) * (B1*B0*P+(A2+B2)) * (B1*A0*B0+(A2+B2)))
ну вот, то что надо, 2И-НЕ, 2ИЛИ, 3И-НЕ и 8И-НЕ.
Третий разряд:
он же Свых ничего делать не буду, пусть выходит одновременно с выходом S3
Люди проверьте пожалуйста моё Р2, если не лень, что-то я сам запутался пока копался в этом.
В итоге получился почти полностью параллельный 4х разрядный сумматор, на который можно навешивать остальное АЛУ
добавив совсем немного можно кроме SUM получить ещё AND, OR, XOR, SUB, CMP
Собираюсь взять его за базовый для своего проекта, если, конечно, не вскроется что-либо новенькое.
вот он разложенный по блокам:

а вот он же, но только без дублирующихся элементов:

И таки скажите как процессор определяет когда пора снимать результат с АЛУ, т.е по какому принципу АЛУ выдает сигнал "выполнено"
PS жду комментариев картинок, не накосячил ли
PSS Дайте пожалуйста линк на схему какого-нибудь проца (580, z80, i386, Cortex... какой есть) на предмет подсмотреть идей.