|
nedoPC.orgElectronics hobbyists community established in 2002 |
|
Author |
Message |
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22414 Location: Silicon Valley
|
По дороге из Маями в Нью-Йорк начал писать "тримулятор", который бы эмулировал троичную логику на Java, причем на уровне ключей и компараторов, а не троичных блоков, т.е. предельно близко к железной реализации - из-за этого пришлось ввести в алфавит четвертое состояние U (unplugged). Вот описание модулей на гипотетическом языке описания схем (наверное он будет частью jEmul):
|
03 Jan 2005 07:32 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22414 Location: Silicon Valley
|
Можно еще добавить три модуля, выдающие уровни сигналов, соответственно, N O P. В реальной схеме это будет просто подключение к -5В, земле, +5В. Если кому интересно, логика на диодах, подцепляемых к CMOS, называется "Mickey-Mouse Logic" или MML https://web.archive.org/web/20050510232444/http://musicfromouterspace.com/analogsynth/mmlogic.html
|
08 Jan 2005 17:49 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22414 Location: Silicon Valley
|
Вот модифицированные правила (с новым jEmul-синтаксисом): | | | | Code: /*
Signals (alphabet T): N - negative (-1) O - ground (0) P - positive (+1) U - unplugged
Special marks: ! - last value (used in simulation of memory)
Unary blocks: MEM - memory cell BUF - buffer INV - inverter BLN - block negative (foreward diode) BLP - block positive (backward diode) PRP - pull-up resistor to +1 PRO - pull-down resistor to 0 PRN - pull-down resistor to -1 CAO - comparator above O (>0) CAN - comparator above N (>-1) CBO - comparator below O (<0) CBP - comparator below P (<+1)
Binary blocks: NOD - node (2->1) SOP - switch O-off P-on SPO - switch P-off O-on SNP - switch N-off P-on SPN - switch P-off N-on
Schemes: BUF2 - buffer with 3 outputs INV2 - inverter with 3 outputs
*/
alf T={N,O,P,U} "Ternary alphabet for hardware implementation"
def MEM (T:T) "Memory" N:N O:O P:P U:! end
def BUF (T:T) "Buffer" N:N O:O P:P end
def INV (T:T) "Inverter" N:P O:O P:N end
def BLP (T:T) "Block positive" N:N O:U P:U U:U end
def BLN (T:T) "Block negative" N:U O:U P:P U:U end
def PRP (T:T) "Pull-up resistor to +1" N:N O:O P:P U:P end
def PRO (T:T) "Pull-down resistor to 0" N:N O:O P:P U:O end
def PRN (T:T) "Pull-down resistor to -1" N:N O:O P:P U:N end
def CAO (T:T) "Comparator above O" N:N O:N P:P end
def CAN (T:T) "Comparator above N" N:N O:P P:P end
def CBO (T:T) "Comparator below O" N:P O:N P:N end
def CBP (T:T) "Comparator below P" N:P O:P P:N end
def NOD (T,T:T) "Node 2->1" N,U:N O,U:O P,U:P U,N:N U,O:O U,P:P U,U:U end
def SOP (T,T:T) "Switch O-off P-on" N,O:U N,P:N O,O:U O,P:O P,O:U P,P:P U,O:U U,P:U end
def SPO (T,T:T) "Switch P-off O-on" N,O:N N,P:U O,O:O O,P:U P,O:P P,P:U U,O:U U,P:U end
def SNP (T,T:T) "Switch N-off P-on" N,N:U N,P:N O,N:U O,P:O P,N:U P,P:P U,N:U U,P:U end
def SPN (T,T:T) "Switch P-off N-on" N,N:N N,P:U O,N:O O,P:U P,N:P P,P:U U,N:U U,P:U end
sch TEST "Test" >T i1 3 3 >T i2 3 5 <T o1 10 3 <T o2 10 5 +SPN obj 5 5 @obj.0 i1 @obj.1 i2 @o1 obj.0 @o2 =P end
| | | | |
Исчез символ '?' - теперь любое неописанное состояние будет неопределенным и специально его задавать ненужно. Внизу виден пример описания схемы TEST, собранной из троичных модулей.
|
27 Feb 2005 14:50 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22414 Location: Silicon Valley
|
Я снова слегка видоизменил jem-синтаксис:
|
10 Mar 2005 23:38 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22414 Location: Silicon Valley
|
Вернулся к тримулятору - почти дописал Jem-парсер. Описатель Jem-схем слегка упростился: символ > описывает вход символ < описывает выход символ + вставляет блок будет еще символ = означающий вход-выход (I/O)
|
17 Sep 2005 22:50 |
|
|
CHRV
God
Joined: 29 Dec 2003 01:00 Posts: 1101 Location: Москва
|
По заказу Мак-Бастера пишу щаз на Джаве в свободное время абстракцию эмулятора троичного проца с памятью похожего архитектурой PDP11. С возможностью пошагового и брекпоинтового дебаганья, но без реализации логики работы процессора и парсинга команд, для примера сделаю несколько команд, а потом МБР пусть сам делает. Моя версия предоставлять будет чисто среду для откатки набора команд и вообще для изучения троичной логики. Буду извещать по ходу работ. Пока сделан базовый класс Tryte со всевозможной логикой работы с Tryte-ами. Скорей всего буду для визуализации использовать AWT и Swing, так что Шурик потом в апплет если захочет легко передерет.
|
27 Oct 2005 12:25 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22414 Location: Silicon Valley
|
Может лучше назвать это состояние Z? Это вроде общепринятое обозначение для отключенного выхода.
|
03 Feb 2006 19:26 |
|
|
Alik
Dead
Joined: 26 Jan 2006 05:55 Posts: 26
|
По поводу "Mickey-Mouse Logic" - это американец похож на школьника, который доказал теорему Пифагора. Одно мне не понятно - зачем делать такой расширитель по входу, если есть стандартные вентили И-НЕ. Конечно же Z, в железе это все ключи разомкнуты. Эмулятор штука важная, поэтому у меня вопрос: как определяется задержка в прохождении сигнала через вентиль? По троичной арифметике обнаружил недавно очень хорошее описание, автор Александр Никитич. Участвует ли он в этом форуме?
|
04 Feb 2006 03:33 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22414 Location: Silicon Valley
|
Как ни странно - этот термин есть в американских книжках по CMOS, изданных еще в 70-х Можно сделать быстрый вариант - прохождение сигнала в прямом направлении мгновенно (в пределах одного такта), а в обратных связях с задержкой на один такт. А можно сделать медленный - когда каждый элемент будет привносить задержку в один такт эмуляции. Да - они написал несколько сообщений в ternary.info и давал там ссылку на свою заметку о троичной системе счисления
|
04 Feb 2006 08:11 |
|
|
Alik
Dead
Joined: 26 Jan 2006 05:55 Posts: 26
|
Nado delat' kak v jizni: zaderzhka opredelyetsya tol'ko ventilyami (CMOS: 5-20ns), no v simulyatore luchshe sdelat' option: "Select gates delay time" Программа разложения целого числа в троичное представление: http://www.oleg.314159.ru/index.htmВзаимообратные числа и их применение http://www.trinitas.ru/rus/doc/0232/009a/02320004.htmShaos, vozmojno ty skajesh' - poka nado sdelat' "clear ternary simulation" bez etih navorotov, ladno... But! Have place the problem of interface between blocks, predlagayu sdelat' ego kak TRIMOSBUS. Avtor originala Ivan Sutherland ego stat'yu ya poprosil otskanirovat', budet gotovo tol'ko v marte, posle my exams. Ochen' horosho napisano ob etom u Varshavskogo, (lejit u menya na saite) in english
|
04 Feb 2006 13:25 |
|
|
Mac Buster
Retired
Joined: 03 Aug 2003 22:37 Posts: 1474 Location: Moscow
|
Эта программа преобразует число в избыточную Стаховскую систему.
_________________ Extreme Entertainment
|
05 Feb 2006 01:04 |
|
|
Alexandr
Novelist
Joined: 20 Oct 2005 18:46 Posts: 34
|
|
05 Feb 2006 19:45 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22414 Location: Silicon Valley
|
Самое последние описание стандартного набора блоков всегда будет доступно тут: http://nedopc.org/ternary/rules.txt
Last edited by Shaos on 20 Sep 2012 21:07, edited 1 time in total.
|
19 Feb 2006 20:31 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22414 Location: Silicon Valley
|
В моей голове немного проясняется архитектура Тримулятора (а вместе с ней и детали более глобального jEmul-ятора). Итак, сама по себе программа будет являться Java-апплетом, который будет работать с файлами, лежащими на сервере в каталоге с class-файлами:
- файлы с расширением .jem - описание блоков и схем;
- файлы с расширением .jes - описание скриптов эмуляции;
- файлы с расширением .jep - описание проектов.
Формат файла проекта (элементы списков разделяются запятыми) :
scheme=имя_схемы_проекта authors=список_авторов sources=список_файлов_блоков scripts=список_файлов_скриптов watches=список_переменных_для_просмотра
В то же время я планирую создать некие PHP-средства создания и редактирования новых файлов для Тримулятора - тогда зарегистрированные посетители нашего портала смогут сами создавать и отлаживать новые схемы в троичной логике!
|
26 Feb 2006 22:11 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22414 Location: Silicon Valley
|
Что-то забросил я тему - пора завершать и вывешивать...
|
27 Aug 2007 18:58 |
|
|
Who is online |
Users browsing this forum: No registered users and 10 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
|
|