Самодельный сумматор 4бит

4-битные микроконтроллеры и микропроцессоры (прошлое, настоящее, будущее)

Moderator: Lavr

Mogrif
Writer
Posts: 23
Joined: 27 Feb 2014 05:15
Location: 93.123.183.154

Post by Mogrif »

Долепил-таки сумматор до 4бит

Нулевой разряд:
любые 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

Собираюсь взять его за базовый для своего проекта, если, конечно, не вскроется что-либо новенькое.

вот он разложенный по блокам:
Image

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

И таки скажите как процессор определяет когда пора снимать результат с АЛУ, т.е по какому принципу АЛУ выдает сигнал "выполнено"

PS жду комментариев картинок, не накосячил ли

PSS Дайте пожалуйста линк на схему какого-нибудь проца (580, z80, i386, Cortex... какой есть) на предмет подсмотреть идей.
User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

Mogrif wrote:И таки скажите как процессор определяет когда пора снимать результат с АЛУ, т.е по какому принципу АЛУ выдает сигнал "выполнено"
Никак не определяет... берется наихудшее время задержки схемы АЛУ.
Mogrif wrote:Дайте пожалуйста линк на схему какого-нибудь проца (580, z80, i386, Cortex... какой есть) на предмет подсмотреть идей.
Поищешь сам хотя бы на этом форуме? А то так некогда для тебя искать... :(

А схем различных и на самОм этом форуме достаточно много.
iLavr
Bill
Fanat
Posts: 92
Joined: 25 Jan 2014 21:54
Location: 37.113.169.14

Post by Bill »

Mogrif wrote: PSS Дайте пожалуйста линк на схему какого-нибудь проца (580, z80, i386, Cortex... какой есть) на предмет подсмотреть идей.
Для начала можно здесь посмотреть: http://cpuville.com/index.htm
Mogrif
Writer
Posts: 23
Joined: 27 Feb 2014 05:15
Location: 93.123.183.154

Post by Mogrif »

пасиба за линки,

скажите ещё, какая цифровая элементная база была доступна на рубеже 70х годов (68-73) кроме диодов Д2 :) и ручной сборки диодной логики
User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

Первые ТТЛ ИС живьём появились как раз в 1968-м году (133 серию), а серийная аппаратура
на ТТЛ появилась примерно в 1969-70-м.
iLavr