Троичная логика и асинхронная схемотехника

Уравновешенная троичная система счисления - форум переехал с http://ternary.info

Moderator: haqreu

User avatar
Shaos
Admin
Posts: 24084
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Троичная логика и асинхронная схемотехника

Post by Shaos »

Регистровый слой в NCL может быть устроен вот так:
Screenshot from 2022-11-29 22-05-47.png
В данном случае обратная связь назад информирует предыдущий слой, что данные (или нулевое состояние) получены и сохранены и можно считать опять.

Пузатый 2-входовый элемент с двойкой внутри это на самом деле C-gate Мюллера, который был придумал ещё в 1955 году: https://en.wikipedia.org/wiki/C-element

Вот таким образом можно собирать каналы и разбирать каналы (тут ради упрощения показан один провод на канал, но на самом деле их должно быть как минимум 2 в каждом канале):
Screenshot from 2022-11-29 22-28-15.png
Screenshot from 2022-11-29 22-28-30.png
P.S. Троичная асинхронная логика может быть устроена точно также - просто добавляем третий провод к каждой паре...
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24084
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Троичная логика и асинхронная схемотехника

Post by Shaos »

После экспериментов с гуглосиликоном я получил достаточно простую схему C-гейта (вентиль Мюллера):
GF180-Comparison.jpg
Который вообще может быть построен только на ЛА3х :)
(точнее 4 NAND и 2 NOT):
Screenshot from 2022-12-04 16-34-06.png
Пользуясь такой схемой в Logisim мне вроде удалось построить асинхронный 3-проводной троичный селектор:
Screenshot from 2022-12-04 22-44-38.png
Единственное, что после каждого "вычисления" надо сбрасывать все входы в ноль, чтобы внутренние C-гейты очистились (иначе возможны ошибочные комбинации на выходах), и это выглядит несколько нелогичным, если речь идёт о селекторе все или некоторые входы которого подключены к константам N,O,P...
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24084
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Троичная логика и асинхронная схемотехника

Post by Shaos »

Ну вот я думал думал как уменьшить количество проводов (дабы не уподобляться господину Куликову с его "трёхбитной-трёхпроводной-троичкой") и кажется придумал - по двум проводам "asynchronous binary-coded-ternary" тоже вполне возможен! У нас ведь важно, чтобы троичный сигнал шёл по цепочке NULL -> N -> O -> P и троичный C-гейт учитывал бы максимум (т.е. остановился на O то запоминаем O, но если ушёл в P, то запоминаем P), соответственно кодировать в двоичном виде надо так, чтобы небыло пограничных состояний (одновременных переходов в обоих проводах):

Code: Select all

NULL => 0 0
   N => 0 1
   O => 1 1
   P => 1 0
Как можно видеть нулевым (нейтральным) состоянием становится ситуация, когда оба провода запитаны. С другой стороны если мы включаем это самое нейтральное состояние, то два провода запитываются не одновременно и какой-то из них обязательно отработает первым и сочетание кратковременно выдаст состояние P или состояние N, по которым что-то может успеть отработать...

P.S. Видимо без костылей асинхронная троичность возможна только в 3-проводном варианте :roll:
Я тут за главного - если что шлите мыло на me собака shaos точка net