Давайте думать над железкой (TRIADOR)

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

Moderator: haqreu

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

Re: Давайте думать над железкой (TRIADOR)

Post by Shaos »

Нарисовал :)

(точнее нафигачил в дос-нафигаторе)

Image

Исходник в кодировке ДОС прилагается :eugeek:
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Давайте думать над железкой (TRIADOR)

Post by Lavr »

Shaos wrote:Нарисовал :)
Спасибо, что потратил время, но сразу всё проясняется! :kruto:
iLavr
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Давайте думать над железкой (TRIADOR)

Post by Shaos »

По-моему опкод длинноват...
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Давайте думать над железкой (TRIADOR)

Post by Shaos »

Lavr wrote:
Shaos wrote:Нарисовал :)
Спасибо, что потратил время, но сразу всё проясняется! :kruto:
Добавил в картинку табличку с кратким описанием системы команд (досовский текст также обновил)
Я тут за главного - если что шлите мыло на me собака shaos точка net
haqreu
Maniac
Posts: 318
Joined: 10 Mar 2017 05:30

Re: Давайте думать над железкой (TRIADOR)

Post by haqreu »

Я рисовать не умею, я умею фотографировать :)
Собрал плату памяти, она запоминает значения по нисходящему P-O-N фронту. Почему именно так, нарисую потом.

К сожалению, пока только 12 регистров, китайцы прислали меньше плат чем я заказывал :(
Добавлю тринадцатый, как только приедут новые платы, которые я перезаказал пару дней назад.

Image

Итого к листу ПВХ я прикрутил 12 (будет 13) трёхтритных регистров, они доступны через 7 мультиплексоров 1:13.

Почему семь мультиплескоров:
1. Один мукс на клок
2. Три мукса на три входа А регистров
3. Три мукса на три выхода Q регистров.

Итого плата памяти у триадора занимает 6*13 + 7*4 = 106 тримуксов (напоминаю, что тримукс - это треугольная платка, несёт на себе два мультиплексора).

Интерфейс у этой платы получается 10 пинов: 3 пина номер регистра, и семь пинов C + Ahi + Amid + Alow + Qhi + Qmid + Qlow.
haqreu
Maniac
Posts: 318
Joined: 10 Mar 2017 05:30

Re: Давайте думать над железкой (TRIADOR)

Post by haqreu »

Все регистры и все 1:13 муксы у меня однотипные, а соединение нужной линии регистра и с нужной линией мукса осуществляется при помощи платы-перемешивателя, куда муксы и регистры втыкаются гибкими шлейфами. Я эту плату разводил трое суток, в какой-то момент уже думал, что это просто невозможно :mrgreen:


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

Re: Давайте думать над железкой (TRIADOR)

Post by Shaos »

Shaos wrote:Ещё идея - OPB таки убрать в EX, но на её место поставить SKIP-ы:

Code: Select all

NPNNN - skip_if_not_negative_r4
NPNNO - skip_if_not_zero_r4
NPNNP - skip_if_not_positive_r4
NPNON - skip_if_not_negative_r3
NPNOO - skip_if_not_zero_r3
NPNOP - skip_if_not_positive_r3
NPNPN - skip_if_not_negative_r2
NPNPO - skip_if_not_zero_r2
NPNPP - skip_if_not_positive_r2
NPONN - skip_if_not_negative_r1
NPONO - skip_if_not_zero_r1
NPONP - skip_if_not_positive_r1
NPOON - skip_if_borrow
NPOOO - skip_if_no_overflow
NPOOP - skip_if_carry
NPOPN - skip_if_negative_r1
NPOPO - skip_if_zero_r1
NPOPP - skip_if_positive_r1
NPPNN - skip_if_negative_r2
NPPNO - skip_if_zero_r2
NPPNP - skip_if_positive_r2
NPPON - skip_if_negative_r3
NPPOO - skip_if_zero_r3
NPPOP - skip_if_positive_r3
NPPPN - skip_if_negative_r4
NPPPO - skip_if_zero_r4
NPPPP - skip_if_positive_r4
Вроде схемотехника вышеизложенного не должна быть сильно сложной и позволит сразу же задействовать условное ветвление например для циклов (decrement R1, skip if zero, jump)
Суть в том, что следующая инструкция подменяется на NOP (OOOOO) если условие выполняется
В поддержку этой системы скипов предлагаю её железячную реализацию на 11 тримуксах (созданную в соавторстве с DDT):
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Давайте думать над железкой (TRIADOR)

Post by Shaos »

Сигнал skip станет P если следующую инструкцию надо подменить на OOOOO (нет операции)

P.S. Упустил один момент - щас перерисую...

P.P.S. Перерисовал - теперь условие NOT должно обсчитываться корректно

P.P.P.S. Интересно, что если делать плату не на тримуксах, а непосредственно на DG403, то получится на 2 микросхемы меньше (не 22, а 20), потому что как минимум в 5 местах можно полный мультиплексор заменить на "полумультиплексор"

P.P.P.P.S. Дорисовал на картинке сигнал "enableNP", который будет приходить из внешнего декодера инструкции, который в простейшем случае может быть построен из троичных мультиплексоров "наоборот":
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Давайте думать над железкой (TRIADOR)

Post by Shaos »

haqreu wrote:Все регистры и все 1:13 муксы у меня однотипные, а соединение нужной линии регистра и с нужной линией мукса осуществляется при помощи платы-перемешивателя, куда муксы и регистры втыкаются гибкими шлейфами. Я эту плату разводил трое суток, в какой-то момент уже думал, что это просто невозможно :mrgreen:

Image
А когда успел заказать то её? ;)
Я смотрю она на фотке уже есть - белая:

Image
Я тут за главного - если что шлите мыло на me собака shaos точка net
haqreu
Maniac
Posts: 318
Joined: 10 Mar 2017 05:30

Re: Давайте думать над железкой (TRIADOR)

Post by haqreu »

Не очень понял про когда успел, пару месяцев назад я её заказал, тогда же, когда и схемы памяти и муксы 1:13 разводил и заказывал.
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Давайте думать над железкой (TRIADOR)

Post by Shaos »

haqreu wrote:Не очень понял про когда успел, пару месяцев назад я её заказал, тогда же, когда и схемы памяти и муксы 1:13 разводил и заказывал.
Ну ты так пишешь, как будто ты её только что закончил разводить:
haqreu wrote:Я эту плату разводил трое суток, в какой-то момент уже думал, что это просто невозможно
А она такая хлоп и уже на фотке :roll:
Ну теперь понятно, что речь шла про пару месяцев назад...
Я тут за главного - если что шлите мыло на me собака shaos точка net
haqreu
Maniac
Posts: 318
Joined: 10 Mar 2017 05:30

Re: Давайте думать над железкой (TRIADOR)

Post by haqreu »

А, нене, это давно было. Просто хотел поделиться своей болью. Я ж вообще новичок в паяльном деле, поэтому такие платы мне кажутся страшным ужасом :)
haqreu
Maniac
Posts: 318
Joined: 10 Mar 2017 05:30

Re: Давайте думать над железкой (TRIADOR)

Post by haqreu »

Я пока ещё не разбирался с последними предложениями про прыжки, но пока что прокомментирую декодер инструкции: мне не очень нравится генерировать enable_XX, где же троичность? :ewink:

На самом деле, у нас без доп инструкций пять типов инструкций, я собирался генерировать пять линий клока, которые соответствуют каждому типу. Например, если мы хотим копировать регистры, старшие два трита инструкции (я их зову A и B) должны быть нулевыми, вот эта схема генерирует ненулевой клок только если A=B=0:
decoder1.jpg
А вот декодер для прямой записи в регистры (клок ненулевой только если A=1 или A=0 и B=1):
decoder2.jpg
You do not have the required permissions to view the files attached to this post.
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Давайте думать над железкой (TRIADOR)

Post by Shaos »

Понятно
Я тут за главного - если что шлите мыло на me собака shaos точка net
haqreu
Maniac
Posts: 318
Joined: 10 Mar 2017 05:30

Re: Давайте думать над железкой (TRIADOR)

Post by haqreu »

И я не понимаю механику подмены следующей инструкции на OOOOO. Я собирался для пропуска инструкции перезаписывать значение IP. Как просто подменить, мне неясно...