nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 23 Apr 2024 19:47



Reply to topic  [ 195 posts ]  Go to page Previous  1, 2, 3, 4, 5, 6 ... 13  Next
Проектирование троичных элементов (4) - пробуем CMOS-ключи 
Author Message
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22567
Location: Silicon Valley
Reply with quote
Mac Buster wrote:

А вот эти остатки (по 25%) не получится использовать для других целей?


Получится - их можно объединять с другими операциями
Ну в крайнем случае можно как буфер задействовать


20 Jul 2010 04:55
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22567
Location: Silicon Valley
Reply with quote
Shaos wrote:
Shaos wrote:
Прикинул на бумаге, что вторая схема подключения DG403 позволяет таким образом покрыть любые троичные функции с любым количеством аргументов, причём это дело можно автоматизировать - вплоть до автоматической разводки платы по таблицам истинности реализуемых функций!

Для того чтобы представлять для чего сколько нужно корпусов при таком подходе, привожу конкретные числа:
- NOT требует 2 микросхемы (точнее 50% от 2 микросхем - см. нижнюю часть второй схемы),
- MIN или MAX требуют по 2 микросхемы (точнее 75% от них),
- полусумматор требует 6 микросхем (точнее 83% от них),
- полный сумматор - ориентировочно 12 микросхем,
- троично-двоичный преобразователь 2t4b - ориентировочно 8 микросхем,
- троично-двоичный преобразователь 3t5b - ориентировочно 21 микросхема (что говорит о том, что троично-двоичные преобразователи экономичнее делать на основе двоичных ROM или PAL).

- схема определения знака трёхразрядного троичного числа - 2 микросхемы
- схема сдвига влево (RLA) и вправо (RRA) - 4 микросхемы (75% от них)
- унарный трёхразрядный универсальный троичный элемент (OPA) - 4 микросхемы (75% от них)
- бинарный трёхразрядный универсальный троичный элемент (OPB) - 12 микросхем


Перестановкой входов нашёл несколько более оптимальных решений:
- троично-двоичный преобразователь 1t2b - 2 микросхемы (75%)
- троично-двоичный преобразователь 2t4b - 8 микросхем (подтверждено)
- троично-двоичный преобразователь 3t5b - 18 микросхем
- троично-двоичный преобразователь 4t7b - 39 микросхем
- троично-двоичный преобразователь 5t8b - 83 микросхемы
- троично-двоичный преобразователь 6t10b - 162 микросхемы
Всё равно видно, что для преобразования троичного адреса в двоичный надо использовать двоичные же микросхемы (ROM или PAL)

P.S. С обратным преобразованием не лучше:
- двоично-троичный преобразователь 2b1t - 1 микросхема
- двоично-троичный преобразователь 4b2t - 11 микросхем
- двоично-троичный преобразователь 5b3t - 32 микросхемы
- двоично-троичный преобразователь 7b4t - 80 микросхем
- двоично-троичный преобразователь 8b5t - 154 микросхемы
- двоично-троичный преобразователь 10b6t - лучший известный вариант состоит из 309 микросхем

P.P.S. Умножители:
- 1x1=2 - 2 микросхемы
- 2x2=4 - 30 микросхем
- 3x3=6 - 188 микросхем
- 4x4=8 - 1088 микросхем


25 Jul 2010 22:22
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22567
Location: Silicon Valley
Reply with quote
Новая версия доступна вот тут: http://www.nedopc.org/forum/viewtopic.php?t=169


28 Jul 2010 17:42
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22567
Location: Silicon Valley
Reply with quote
Я тут прикинул вариант построения троичной постоянной памяти на троичных переключателях (MUX) - по сути эту память можно использовать как комбинационную схему, т.е. посчитав количество микросхем DG403, необходимых для построения памяти с N входами (адреса) и M выходами (данные) можно принять это число за верхнюю границу, от которой можно считать оптимальность того или иного решения (точнее чем ближе количество микросхем к этой границе, тем более хаотичные данные заложены в эту память/схему).

Вобщем формула такова: D(i)=3*D(i-1)+1 причём D(1)=1. Это для одного выхода:
D(1)=1 (ПЗУ на 3 трита)
D(2)=4 (ПЗУ на 9 тритов)
D(3)=13 (ПЗУ на 27 тритов)
D(4)=40 (ПЗУ на 81 трит)
D(5)=121 (ПЗУ на 243 трита)
D(6)=364 (ПЗУ на 729 тритов)
D(7)=1093 (ПЗУ на 2187 тритов)
D(8)=3280 (ПЗУ на 6561 трит)
D(9)=9841 (ПЗУ на 19683 трита)
D(10)=29524 (ПЗУ на 59049 тритов)

Для M выходов и N входов формула будет выглядеть так: M*D(N)


Last edited by Shaos on 11 Sep 2013 23:08, edited 1 time in total.



28 Jul 2010 18:43
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22567
Location: Silicon Valley
Reply with quote
Посчитаем процентное соотношение известного оптимального решения к универсальному (через ПЗУ на ключах):

2 входа и 1 выход (4*1=4):
MIN - 1.5/4=38%
MAX - 1.5/4=38%
двоично-троичный преобразователь 2b1t - 1/4=25%

2 входа и 2 выхода (4*2=8):
полусумматор - 5/8=63%
умножитель 1x1=2 - 2/8=25%

2 входа и 4 выхода (4*4=16):
троично-двоичный преобразователь 2t4b - 8/16=50%

3 входа и 1 выход (13*1=13):
схема определения знака трёхразрядного троичного числа - 2/13=15%

3 входа и 2 выхода (13*2=26):
полный сумматор - 12/26=46%

3 входа и 5 выходов (13*5=65):
троично-двоичный преобразователь 3t5b - 18/65=28%

4 входа и 2 выхода (40*2=80):
двоично-троичный преобразователь 4b2t - 11/80=14%

4 входа и 4 выхода (40*4=160):
умножитель 2x2=4 - 30/160=19%

4 входа и 7 выходов (40*7=280):
троично-двоичный преобразователь 4t7b - 39/280=14%

5 входов и 3 выхода (121*3=363):
двоично-троичный преобразователь 5b3t - 32/363=9%

5 входов и 4 выхода (121*4=484):
схема сдвига влево (RLA) и вправо (RRA) - 3/484=0.6%

5 входов и 8 выходов (121*8=968):
троично-двоичный преобразователь 5t8b - 83/968=9%

6 входов и 3 выхода (364*3=1092):
унарный трёхразрядный универсальный троичный элемент (OPA) - 3/1092=0.3%

6 входов и 6 выходов (364*6=2184):
умножитель 3x3=6 - 188/2184=9%

6 входов и 10 выходов (364*10=3640):
троично-двоичный преобразователь 6t10b - 162/3640=4%

7 входов и 4 выхода (1093*4=4372):
двоично-троичный преобразователь 7b4t - 80/4372=2%

8 входов и 5 выходов (3280*5=1640):
двоично-троичный преобразователь 8b5t - 154/1640=9%

8 входов и 8 выходов (3280*8=26240):
умножитель 4x4=8 - 1088/26240=4%

10 входов и 6 выходов (29524*6=177144):
двоично-троичный преобразователь 10b6t - 309/177144=0.2%

15 входов и 3 выхода (много):
бинарный трёхразрядный универсальный троичный элемент (OPB) - 12/много=0% ;)


Last edited by Shaos on 11 Sep 2013 23:09, edited 2 times in total.



28 Jul 2010 19:43
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22567
Location: Silicon Valley
Reply with quote
Преобразователь из одного троичного сигнала в два двоичных состоит из одного элемента E12 и одного E21 (как и MUX). Преобразователь из двух двоичных сигналов в один троичный состоит из двух элементов E21 и одного E12. Это означает, что если нам нужно сделать комбинационную схему с N входами и M выходами, и DDT даёт нам решение, в котором больше чем N+1.5*M микросхем DG403 (причём N и M должны быть чётными), то проще делать реализацию такой схемы на двоичном ROM или PAL, преобразовав сигналы на входе и выходе.

P.S. На самом деле если мы возьмём вариант когда N=11, а не N=10 (для ПЗУ это не важно - даже логичнее когда -1=11), то преобразователь двух двоичных в один троичный сигнал можно сделать всего лишь на двух E21, т.е. формула будет N+M (причём M уже может быть нечётным).

P.P.S. Вообще-то, в этой формуле также надо учитывать и стоимость ROM или PAL (или MCU), однако цена одной DG403 по сути сравнима с ценой дешёвых MCU, PAL или ROM. Ну скажем пусть будет N+M+2...


31 Jul 2010 22:51
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22567
Location: Silicon Valley
Reply with quote
Shaos wrote:

P.S. 12 июля выделил пару новых функций BLP (Block Positive) и BLN (Block Negative), т.к. их реализация может быть совсем простой - один диод и один резистор.

P.P.S. Из бинарных функций по видимому надо выделять MIN и MAX.


Это потому что MIN и MAX также отлично строятся из диодов и резистора - только что проверил на макетке


01 Aug 2010 01:18
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22567
Location: Silicon Valley
Reply with quote
Shaos wrote:
Shaos wrote:
Shaos wrote:
Прикинул на бумаге, что вторая схема подключения DG403 позволяет таким образом покрыть любые троичные функции с любым количеством аргументов, причём это дело можно автоматизировать - вплоть до автоматической разводки платы по таблицам истинности реализуемых функций!

Для того чтобы представлять для чего сколько нужно корпусов при таком подходе, привожу конкретные числа:
- NOT требует 2 микросхемы (точнее 50% от 2 микросхем - см. нижнюю часть второй схемы),
- MIN или MAX требуют по 2 микросхемы (точнее 75% от них),
- полусумматор требует 6 микросхем (точнее 83% от них),
- полный сумматор - ориентировочно 12 микросхем,
- троично-двоичный преобразователь 2t4b - ориентировочно 8 микросхем,
- троично-двоичный преобразователь 3t5b - ориентировочно 21 микросхема (что говорит о том, что троично-двоичные преобразователи экономичнее делать на основе двоичных ROM или PAL).

- схема определения знака трёхразрядного троичного числа - 2 микросхемы
- схема сдвига влево (RLA) и вправо (RRA) - 4 микросхемы (75% от них)
- унарный трёхразрядный универсальный троичный элемент (OPA) - 4 микросхемы (75% от них)
- бинарный трёхразрядный универсальный троичный элемент (OPB) - 12 микросхем


Перестановкой входов нашёл несколько более оптимальных решений:
- троично-двоичный преобразователь 1t2b - 2 микросхемы (75%)
- троично-двоичный преобразователь 2t4b - 8 микросхем (подтверждено)
- троично-двоичный преобразователь 3t5b - 18 микросхем
- троично-двоичный преобразователь 4t7b - 39 микросхем
- троично-двоичный преобразователь 5t8b - 83 микросхемы
- троично-двоичный преобразователь 6t10b - 162 микросхемы
Всё равно видно, что для преобразования троичного адреса в двоичный надо использовать двоичные же микросхемы (ROM или PAL)

P.S. С обратным преобразованием не лучше:
- двоично-троичный преобразователь 2b1t - 1 микросхема
- двоично-троичный преобразователь 4b2t - 11 микросхем
- двоично-троичный преобразователь 5b3t - 32 микросхемы
- двоично-троичный преобразователь 7b4t - 80 микросхем
- двоично-троичный преобразователь 8b5t - 154 микросхемы
- двоично-троичный преобразователь 10b6t - лучший известный вариант состоит из 309 микросхем

P.P.S. Умножители:
- 1x1=2 - 2 микросхемы
- 2x2=4 - 30 микросхем
- 3x3=6 - 188 микросхем
- 4x4=8 - 1088 микросхем


Схема инкремента-декремента (имеем N тритов на входе плюс один трит управления и N+1 тритов на выходе):
N=1 - 6 микросхем (83%)
N=2 - 10 микросхем
N=3 - 16 микросхем
N=4 - 22 микросхемы
N=5 - 28 микросхем
N=6 - 34 микросхемы
N=7 - 40 микросхем
N=8 - 46 микросхем
N=9 - 52 микросхемы, однако вручную можно получить более оптимальную схему:
Ручной вариант схемы инкремента для 9-тритового слова, составленный из трёх 3-тритовых схем инкремента-декремента, соединённых последовательно, состоит из 3*16=48 микросхем. Напомню, что на этой схеме можно построить счётчик программного адреса для 3niti alpha.

P.S. Схемы сравнения двух N-разрядных троичных чисел:
N=1 - 2 микросхемы
N=2 - 6 микросхем (83%)
N=3 - 8 микросхем
N=4 - 12 микросхем (92%)
N=5 - пока DDTp нашёл 44 микросхемы, но думаю что оптимальное решение - 14

P.P.S. Схемы сложения двух N-разрядных троичных чисел с переносом:
N=1 - 12 микросхем (задержка не более 3)
N=2 - 28 микросхем (задержка не более 5)
N=3 - 50 микросхем (98% - задержка не более 7)
N=4 - 76 микросхем (99% - задержка не более 9)
N=5 - 106 микросхем (задержка не более 11)
В последнем случае если делать последовательную схему из 5 одноразрядных сумматоров, то получится 60 микросхем с задержкой 15.


01 Aug 2010 14:01
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22567
Location: Silicon Valley
Reply with quote
Конструкцию троичного железа на CMOS-ключах можно сильно удешевить, применив 4016 ключи (4 ключа в одном корпусе с независимым управлением - 22 цента за DIP и 7 центов за SOIC), однако тут боком вылезает то, что ВСЕ сигналы управления становятся двоичными (с уровнями -V и +V). Причём один троичный вход с помощью дополнительной полуаналоговой логики (CMOS-"конструктор" 4007 или отдельные CMOS-транзисторы) будет преобразовываться в 3 (а лучше 5) сигналов - PNN, NPN, NNP (а также PPN и NPP), которые будут щёлкать дешёвыми ключами 4016. Подобная "трёхпроводная (пятипроводная) троичность" выглядит сильно некошерно...

P.S. Если будет спрос, то в DDT это также можно поддержать без проблем


07 Aug 2010 17:06
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22567
Location: Silicon Valley
Reply with quote
Shaos wrote:

Image

Вторая схема выглядит сложнее (и дороже), но она не противоречит даташиту и не использует недокументированные "окна" в логическом питании. К тому же она не требует буферов и использует один компонент без каких бы то ни было вспомогательных элементов. Однако я успел только частично удостовериться в её работоспособности на макетке (отдельно тестировал левое и правое подключение на одной микросхеме).

Code:
При подключении GND к 0В, а Vl к +4.4В вход управления переключает входы следующим образом:
-4.4В -> нормально замкнутый ключ замкнут, нормально разомкнутый - разомкнут;
 0.0В -> нормально замкнутый ключ замкнут, нормально разомкнутый - разомкнут;
+1.4В -> нормально замкнутый ключ разомкнут, однако нормально разомкнутый всё ещё разомкнут ("окно" началось);
+2.0В -> нормально замкнутый ключ разомкнут, нормально разомкнутый ключ - замкнут ("окно" закончилось);
+4.4В -> нормально замкнутый ключ разомкнут, нормально разомкнутый ключ - замкнут.

При подключении GND к -4.4В, а Vl к 0В вход управления переключает входы следующим образом:
-4.4В -> нормально замкнутый ключ замкнут, нормально разомкнутый - разомкнут;
-3.0В -> нормально замкнутый ключ разомкнут, нормально разомкнутый - замкнут (ключи одновременно перещёлкнулись);
 0.0В -> нормально замкнутый ключ разомкнут, нормально разомкнутый - замкнут;
+4.4В -> нормально замкнутый ключ разомкнут, нормально разомкнутый - замкнут;


Как видно во втором случае (на схеме он слева) никакого "окна" не наблюдается. В результате общая таблица состояний показанного на схеме троичного селектора будет следующей (с одним неиспользуемым окном Z вместо ожидаемых двух):

Code:
-4.4 В -> OUT = RN
-3.0 В -> OUT = RN->RO
-2.0 В -> OUT = RO
-1.5 В -> OUT = RO
 0.0 В -> OUT = RO
+1.5 В -> OUT = RO->Z
+2.0 В -> OUT = Z->RP
+3.0 В -> OUT = RP
+4.4 В -> OUT = RP


Напомню, что троичный инвертор из селектора (универсального троичного унарного элемента) получается путём подключения +5В к RN, OВ к RO и -5В к RP.


Сегодня собрал схему полностью! При этом взял дешёвые соики, что купил недавно по смешной цене - всего 56 центов за штучку (толи отбраковка, толи выпаянка). При этом собрал "стандартный" компонент TRI41 (два троичных мультиплексора с общим управлением):

Code:
 1)  S - троичный вход управления
 2) N1 - подключаемый контакт первого селектора, если S=N
 3) O1 - подключаемый контакт первого селектора, если S=O
 4) P1 - подключаемый контакт первого селектора, если S=P
 5) C1 - подсоединяется к N1,O1,P1 в зависимости от значения S
 6) N2 - подключаемый контакт второго селектора, если S=N
 7) O2 - подключаемый контакт второго селектора, если S=O
 8) P2 - подключаемый контакт второго селектора, если S=P
 9) C2 - подсоединяется к N2,O2,P2 в зависимости от значения S
10)-5В - отрицательное питание
11) 0В - земля
12)+5В - положительное питание

На плате кроме двух DG403 присутствуют 4 дип-конденсатора 0.22 мФ (их почти не видно), ну и 12-ногий разъём:
Image

Не знаю с чем это связано, но у этих DG403 нету "окна" неподключения - т.е. переключатели при плавном изменении управляющего напряжению перещёлкиваются мгновенно. Более того - в районе плюсового перещёлкивания наблюдался эффект одновременного горения разнонаправленных светодиодов - это значит что ток стал переменный - переключатели постоянно перещёлкивались туда-сюда - эффект неприятный, но не страшный. В результате имеем при подаче на вход S:

Code:
Test -V = -4.4V, +V = +4.4V:

-4.4V -> C1=N1 C2=N2
-2.9V -> C1=N1->O1 C2=N2->O2
 0.0V -> C1=O1 C2=O2
+1.8V -> C1=O1->P1 C2=O2->P2
+4.4V -> C1=P1 C2=P2

Ternary Multiplexer:
---------------------------------------------
NNNNNNNOOOOOOOOOOOOOOO|OOOOOOOOOPPPPPPPPPPPPP
---------------------------------------------

Ternary Inverter (N1=+V O1=GND P1=-V):
---------------------------------------------
                      ^
=======\              |
       |              |
       |              |
       |              |
       |              |
-------\==============|=========\------------>
                      |         |
                      |         |
                      |         |
                      |         |
                      |         \============
---------------------------------------------


P.S. Большую фотку девайса можно посмотреть по короткой ссылке: http://nedopc.org?0010


08 Aug 2010 18:56
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22567
Location: Silicon Valley
Reply with quote
По ходу DG403DY что я заюзал - фирмы Intersil. Даташит обещает сопротивление ключа 45 Ом максимум при комнатной температуре (типовое значение - 20 Ом). Разница в сопротивлении каналов - не более 5 Ом. Время срабатывания ключа - 100 нс (максимум 150), а время отпускания - 60 нс (максимум 100), что даёт предельную скорость щёлканья - до 4 МГц. Максимальный ток текущий через логические входы +-1 мкА. Максимальный ток текущий через ключ - 30 мА (или в 30000 раз больше), а в пике - аж до 100 мА. Ёмкость канала - 39 пФ. Ширина полосы пропускания ключей явно не указана, однако в даташите есть график соотношения потерь к частоте, где частота уходит за 10 МГц (график почти равномерный при низких сопротивлениях нагрузки - 50 и 75 Ом).


09 Aug 2010 19:39
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22567
Location: Silicon Valley
Reply with quote
Развёл сдвоенный универсальный троичный элемент TRIMUX:

Image

Ширина короткой стороны треугольника (которых две) - 2.2 дюйма (или 56 мм), а длинной - соответственно 3.1 дюйм (или 79 мм).

Image

P.S. Планирую начать торговать долларов за 13 (меньше к сожалению будет себе в убыток)

P.P.S. См. http://www.trimux.com ;)


27 Nov 2010 10:31
Profile WWW
Writer
User avatar

Joined: 02 Jan 2009 05:23
Posts: 21
Location: Киров, РФ
Reply with quote
Собрал на отечественных аналогах КР590КН4 - всё работает и от 5В, хотя справочник говорит о питании +-9В.
Сначала подал -12В вместо +5В: микросхемы стали тёплыми, на выходе было -7В. Через минуту заметил и включил как надо: никто не сгорел.
Плату развёл в SL5, микросхемы купил по 30рублей.


19 Dec 2010 01:09
Profile ICQ
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22567
Location: Silicon Valley
Reply with quote
poisk wrote:
Собрал на отечественных аналогах КР590КН4 - всё работает и от 5В, хотя справочник говорит о питании +-9В.
Сначала подал -12В вместо +5В: микросхемы стали тёплыми, на выходе было -7В. Через минуту заметил и включил как надо: никто не сгорел.
Плату развёл в SL5, микросхемы купил по 30рублей.


А КР590КН4 это аналоги чего? И на схему можно посмотреть?


19 Dec 2010 06:26
Profile WWW
Writer
User avatar

Joined: 02 Jan 2009 05:23
Posts: 21
Location: Киров, РФ
Reply with quote
Shaos wrote:
poisk wrote:
Собрал на отечественных аналогах КР590КН4 - всё работает и от 5В, хотя справочник говорит о питании +-9В.
Сначала подал -12В вместо +5В: микросхемы стали тёплыми, на выходе было -7В. Через минуту заметил и включил как надо: никто не сгорел.
Плату развёл в SL5, микросхемы купил по 30рублей.


А КР590КН4 это аналоги чего? И на схему можно посмотреть?


Аналог DG403, как и DG190, DG191, DG390, HI5043, HI5151, HI5151. Схема здешняя, плату развёл на один инвертор относительно 0 и универсальный троичный элемент. Размер 26х26мм, но расположение выводов не по принятому стандарту: не получилась бы такая маленькая.


Attachments:
File comment: Rar-архив на плату
Trinary2.rar [8.33 KiB]
Downloaded 365 times
19 Dec 2010 09:33
Profile ICQ
Display posts from previous:  Sort by  
Reply to topic   [ 195 posts ]  Go to page Previous  1, 2, 3, 4, 5, 6 ... 13  Next

Who is online

Users browsing this forum: No registered users and 17 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.