|
nedoPC.orgElectronics hobbyists community established in 2002 |
|
Author |
Message |
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Всего их 27. Часть тривиальна. А вот полезных сколько - затрудняюсь сказать... Это как у 4-битного АЛУ К155ИП3 (aka 74181) - всего "их" 32, а вот сколько из них полезных, мы так и не решили...
_________________ iLavr
|
29 Oct 2017 18:54 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22577 Location: Silicon Valley
|
Я в своё время вот такую объяснялку нагородил для одно-аргументных функций в DDT: | | | | Code: all ternary functions of one argument: NNN = N NNO = SHD(x) = E21(x,N,O) NNP = E21(x,N,P) NON = MUX(x,N,O,N) = E12(x,N,E21(x,O,N)) NOO = BLP(x) = E12(x,N,O) // analog of reverse diode NOP = x // BUF(x) or buffer MUX(x,N,O,P) = E12(x,N,E21(x,O,P)) NPN = MUX(x,N,P,N) = E12(x,N,E21(x,P,N)) NPO = MUX(x,N,P,O) = E12(x,N,E21(x,P,O)) NPP = E12(x,N,P) ONN = NHI(x) = E12(x,O,N) ONO = MUX(x,O,N,O) = E12(x,O,E21(x,N,O)) ONP = MUX(x,O,N,P) = E12(x,O,E21(x,N,P)) OON = E21(x,O,N) OOO = O OOP = BLN(x) = E21(x,O,P) // analog of forward diode OPN = ROU(x) = MUX(x,O,P,N) = E12(x,O,E21(x,P,N)) OPO = MUX(x,O,P,O) = E12(x,O,E21(x,P,O)) OPP = SHU(x) = E12(x,O,P) PNN = NTI(x) = E12(x,P,N) PNO = ROD(x) = MUX(x,P,N,O) = E12(x,P,E21(x,N,O)) PNP = MUX(x,P,N,P) = E12(x,P,E21(x,N,P)) PON = INV(x) = MUX(x,P,O,N) = E12(x,P,E21(x,O,N)) POO = E12(x,P,O) POP = MUX(x,P,O,P) = E12(x,P,E21(x,O,P)) PPN = PTI(x) = E21(x,P,N) PPO = PHI(x) = E21(x,P,O) PPP = P
| | | | |
А двухаргументных будет аж 19683 А если рассматривать только симметричные, то останется всего 729
|
10 Nov 2017 18:57 |
|
|
petrenko
Doomed
Joined: 10 Mar 2012 16:21 Posts: 598 Location: РФ
|
Объяснение такой функции как раз несложно : Это "нуль подтверждает знак, в остальных комбинациях ==0 " Вот сформулировать словесно некоторые другие гораздо сложнее ..
|
11 Nov 2017 10:18 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
А вобще вопрос, поднятый топикстартером, оказался довольно непраздным вот в каком аспекте: А какой минимальный набор функций надо бы обеспечить в троичном АЛУ? И подумать об этом с точки зрения минимальных аппаратных затрат - тримуксы довольно недешевое удовольствие! С точки зрения теории базис троичной логики составляют одна из двухвходовых функций (MIN или MAX) и правая циклическая инверсия (Rotate Up). Как в двоичной логике AND (или OR) и NOT. Кстати, в PDP-8 и был минимальный набор: сумма, AND и NOT. И в троичном АЛУ с точки зрения схемотехники удобно бы выбрать 9 функции, ну либо 27 - хотя это уже многовато с аппаратной точки зрения.
_________________ iLavr
|
15 Nov 2017 04:41 |
|
|
petrenko
Doomed
Joined: 10 Mar 2012 16:21 Posts: 598 Location: РФ
|
Предположим, что нам зачем то надо вычислять так называемую "fuzzy_logik"~"нечёткую_ логику" с какой-нибудь точностью. Самое простое представление будет "нет"==(-1) , "вероятность50%"==0 , "да (100%)"==(+1) и это займёт ровно один трит. Больше градаций будет при изпользовании трёх тритов , ещё больше - девяти ну и т.д. ,в зависимости от доступности ресурсов. Поелику ресурсов мало, можно для начала ограничиться тремя тритами ( диапазон целых чисел от (-13) 10 до (+13) 10 или можно подразумевать, что там дробные, это уже трактовка ). Для нечётких вычислений нужны операции : сложения(2оп.) , перемножения(верояностей)(2оп.) , инверсии(1оп.) , установки в |(-1)(-1)(-1)| ,в |0 0 0 | ,в |(+1)(+1)(+1)| (1оп.) ,сравнения( а вот возможно ли сделать результат "100%совпадают"/"схожи_на_xxx%"/"несхожи (0%)" ??? ) (2оп.) . Для всякой другой математики пригодится также : вычитание(2оп.) с заёмом( однотритовй флажок"C") , перемножение(чисел) ( с уст. флажка "C" и "OVR" ) (2оп.) , деление(чисел) ( с уст. флажка "C" и "OVR" ) (2оп.) , может быть сдвиги( они дадут x*3 и x/3 )через однотритовй флажок"Z ero/N eg" (1оп.) , может быть операции с "троично-кодированными_десятичными" ( TCD по аналогии с BCD ) , неплохо инекремент и декремент ,что впрочем заменимо на нечто вроде ADI(+1) ADI(-1) ... Мож что нужное упустил .. можно добавить потом . .|..| \/ \/ _ | | | | AlexanderZh wrote: .. ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ Можно поподробней, почему именно две * ? И далее по тексту тоже встречается... | | | | |
___ ___ ___ ___ ___ ___ ___ ___ ___ *_Не "две" ,а "два" .. Видимо надо было пояснить, что в скобочках отмечено количество операндов функции/операции . То есть рассматриваем некоторые одно-операндные и двух-операндные функции.
Last edited by petrenko on 15 Nov 2017 22:13, edited 1 time in total.
|
15 Nov 2017 11:15 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Дешифратор есть уже 2-в-9 позиций - при дороговизне троичной схемотехники стыдно будет его недогрузить. Но я соглашаюсь, что пока хорошо иметь сумму (с переносом/заёмом), MIN, MAX, вместо инверсии я предпочитаю XOR - он и XOR и управляемый инвертор. Rotate Up и Rotate Down - специфичные троичные инверсии нужны. Инкремент и декремент можно сделать функцией регистра-аккумулятора, а не АЛУ, как, впрочем, и сдвиги.
_________________ iLavr
|
15 Nov 2017 13:17 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Не знаю, как её зовут в Ваших табличках - но я её смоделировал именно с заданной целью: Троичный XOR -/- управляемый инвертор.
_________________ iLavr
|
15 Nov 2017 14:06 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Никогда не поздно восполнить этот пробел, тем более, что осциллограф - "глаза" электронщика... И на мой взгляд, всё просто очевидно, поскольку и схема приведена рядом. На вход А вентиля XOR подаются импульсы размахом от -1 до +1 - красная осциллограмма. На вход В вентиля XOR я кнопками подаю -1 ... 0 ... +1 . Синяя оциллограмма - выход вентиля XOR . Видно, что пока В = -1, синяя и красная синфазны. При В = 0 и синий луч едет посредине - по уровню "0". Как только В = 1 синяя и красная становятся противофазны, значит вентиль XOR сынвертировал сигнал.
_________________ iLavr
|
15 Nov 2017 14:53 |
|
|
petrenko
Doomed
Joined: 10 Mar 2012 16:21 Posts: 598 Location: РФ
|
Да, XOR это универсальнее, в варианте XRI получится инверсия, правильный подход. Регистров надо стараться избежать, сделать по минимуму, без которых никак : PC , IDX , SP , а несколько наборов р.о.н. - в локальном быстром о.з.у. в режиме считывание->модификация->запись . Сдвиг можно мультиплексорами после выхода а.л.у. ( по аналогии с двоичной и.м.с. 531ир21( которая хоть и "ир" ,но не регистр) ) ,так быстрее. Инкремент и декремент лучше всё-таки в а.л.у. ,чутка усложнив, добавлением второго входного переноса/заёма Кстати, счёт в PC можно делать не инкрементом, а ,по аналогии LFSR (,как в м.к. семейства TMS1000 ), но надо изобрести "троичный LFSR" ( или другой вариант ,столь же "простой" - изобрести по быстренькому троичный "код_типа_как_бы_грея" )
|
15 Nov 2017 22:41 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Собрать калькулятор будет можно, и даже очень неплохой калькулятор! Вот для примера - CASIO PB-100 - в нём даже Basic есть! А внутри-то CASIO PB-100 довольно слабенький 4-битный процессор... Весь вопрос упрётся в программное обеспечение, которого у нас нет, пока мы мудруем над железками... Вот я сделал 4-битный процессор, причем сразу предусмотрел и графический дисплей! Уж калькулятор-то на нём сделать запросто можно, но ПО никакого НЕТ!
_________________ iLavr
|
16 Nov 2017 03:53 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22577 Location: Silicon Valley
|
я лет эдак десять назад изучал вопрос и пришёл к выводу, что коды грея в троичной системе счисления невозможны...
|
16 Nov 2017 04:01 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
А Вы на чем-нибуть не пишете, ну типа С++ или VBasic хотя бы? А то железку-то мы сделаем, а троичного софта к ней не будет... И опять получится мертворожденная железка... Нам бы "писателя" в команду... А то всё сразу делать некогда...
_________________ iLavr
|
16 Nov 2017 10:00 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Этим постулатом ты меня несколько удивил... Я про коды Грея смотрел совсем недавно, когда мучался с дешифратором троичного кода. И мелькнула мысль - а помню ведь был дешифратор кода Грея... может посмотреть...
_________________ iLavr
|
16 Nov 2017 10:12 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Ну " набаловали" бы для нас компилятор троичного ассемблера? А то Shaos из года в год " кормит" патчами своего древнего ассемблера, а хотелось бы уже чего-то новенького... с виндавозными окнами...
_________________ iLavr
|
16 Nov 2017 10:17 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Предлагаю ускорить процесс следующим образом. Вот 16 команд АЛУ моего 4-битного ЦПУ: Две команды вычитания я выкинул - они нам не нужны. Я однозначно четко представляю, как аппаратно реализовать этот набор в троичном АЛУ. Давайте предметно и споро обдумаем, обсудим, и либо сократим этот набор до 9-и, либо расширим до 18-ти. P.S. Регистра В в этой конструкции не будет. Но на его месте на втором входе АЛУ будет регистр Т(Temp). Он не будет доступен програмно напрямую, но в командах типа ADI 39 число 39 будет находиться именно в Т.
_________________ iLavr
Last edited by Lavr on 17 Nov 2017 14:28, edited 1 time in total.
|
16 Nov 2017 17:49 |
|
|
Who is online |
Users browsing this forum: No registered users and 48 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
|
|