как спроектировать троичный счётчик?

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

Moderator: haqreu

xakepp35
Novelist
Posts: 26
Joined: 10 Feb 2016 16:59

как спроектировать троичный счётчик?

Post by xakepp35 »

Hi Everybody! :kruto:
Я - программист, и хочу подучить цифровую технику "в железе".
В частности, меня интересует троичная логика.
Я поставил перед собой практическую задачку - реализовать трёхтритный счётчик в железе.

Для наглядности я накидал демонстрационную веб-программку

Итак что я хочу: интерфейс должен представляется в виде
- трёх пар светодиодов (зелёный+, красный-), отображающих текущее состояние регистра
- трёх кнопок (увеличить на 1, уменьшить на 1, сбросить в ноль)

моя основная задача - разобраться, как такое вообще можно реализовать в железе, и сделать это 8)
в частности, мне требуется понять, как я мог бы сделать
- троичную ячейку памяти(трит)
- троичный регистр(набор ячеек-тритов, котрый можно считать на шину светодиодов или алу, а также записать результат алу)
- простое троичное АЛУ (тоесть как её увеличить+1?, уменьшить-1?, и сбросить?)
- как реализовать перенос разряда?
- как реализовать переполнение регистра?

какие есть предложения?
с чего мне начать?
из каких узлов такое вообще можно составить?
User avatar
Shaos
Admin
Posts: 24083
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: как спроектировать троичный счётчик?

Post by Shaos »

Перенёс в "Ternary" - всё уже сделано ;)

И вместо пары светодиодов надо юзать один где в одном корпусе подцеплено 2 светодиода навстречу друг-другу - красный и зелёный...
Я тут за главного - если что шлите мыло на me собака shaos точка net
xakepp35
Novelist
Posts: 26
Joined: 10 Feb 2016 16:59

Re: как спроектировать троичный счётчик?

Post by xakepp35 »

а можно логику работы, хотябы в двух словах? :ebiggrin:

и ещё, там цена устройства примерно указана, ээмм, а откуда цифра 333$? :esurprised:

вот я посмотрел http://www.chipdip.ru/product/dg403dyz/
1 штука переключатель стоит 24р, а нужно их 50 штук = 1200р = 15 usd.
текстолит тоже не может стоить 300$, потом у меня уже есть
какие ещё компоненты потребуются, чтобы собрать?
User avatar
Shaos
Admin
Posts: 24083
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: как спроектировать троичный счётчик?

Post by Shaos »

50 штучек DG403 только на счётчик секунд, а для часов надо ещё минуты и часы - и того 150 штучек, а это по местным (американским) ценам за DIP (кстати микрухи подешевели!) 150*$1.25=$187.5 плюс 150 танталовых конденсаторов 0.1 мкФ (по питанию) это порядка 150*$0.25=$37.5 плюс плата примерно 75 квадратных дюйма - это порядка $125 (если делать через oshpark.com) т.е. всё вместе $348 (если делать плат много, то можно снизить себестоимость одной платы раза в 3)...

P.S. В случае 3-тритного счётчика надо сделать только 3 каскада - оно будет несколько дешевле, чем полноценные часы
Я тут за главного - если что шлите мыло на me собака shaos точка net
xakepp35
Novelist
Posts: 26
Joined: 10 Feb 2016 16:59

Re: как спроектировать троичный счётчик?

Post by xakepp35 »

В троичной системе считать "человеческие" часы минуты.. - это немного неудобно! :ebiggrin:
у меня было изыскание, согласно которому на часы необходим 12-тритный счётчик, работающий на частоте 3^12/(24*3600)=6.1509375 Hz. Чтобы обеспечить точность до секунды, ему потребуется 10,35 трит..
именно такие часы я и хочу, которые поделят сутки на трое :rotate:

Но изначальная моя цель - понять реализацию. Желательно на транзисторах, примерно я представляю это как вот тут. Для задачки, которую я описал в первом посте в виде веб-програмки достаточно 3-тритного счётчика, 3 светодиодов и трёх кнопок. Могли бы вы предложить "блок-схему" подобного устройства, и разобрать со мной реализацию каждого блока, в целях ликбеза такскть?) Энергопотребление и скорость работы не критична, мне требуется понять принципы постоения логических схем для троичной логики в железе.
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Re: как спроектировать троичный счётчик?

Post by Lavr »

А Вы не пробовали удовлетворить свои хотения хотя бы системой поиска по сайту? :lol:
Уверяю Вас, что ответы на большинство Ваших вопросов здесь есть и даже в весьма
развернутом виде...
А админ наш как бы и никому не обязан заниматься троичным ликбезом и выступать
в роли "просветителя славянства"... :ebiggrin:
iLavr
xakepp35
Novelist
Posts: 26
Joined: 10 Feb 2016 16:59

Re: как спроектировать троичный счётчик?

Post by xakepp35 »

да пробовал я всё, проглядывал сайт ещё пару лет назад. только всё слишком сложно и запутанно для начинающего, и непонятно как оно работает. вижу восновном схемы, предполагающие опыт работы в данной области.. это как новичку в программировании предлагать в одиночку разобрать движок javascript v8 по загугленному открытому исходному коду.. сами понимаете, неподъёмно. и, разумеется, я никого ни к чему не обязываю! я лишь спросил - есть ли, навскидку, простенькая схема, реализующая сабж на сотне-другой транзисторов? и можете ли вы со мной ею заделиться, с десятком-другим сопутствующих комментов? ведь форум для того и создан, чтобы общаться и передавать знания! :ebiggrin:
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Re: как спроектировать троичный счётчик?

Post by Lavr »

xakepp35 wrote:ведь форум для того и создан, чтобы общаться и передавать знания! :ebiggrin:
Совершенно с Вами согласен, я и сам всегда об этом говорю!

Но для общения на техническом форуме нужен некоторый базовый уровень,
и тут никто не знает, какой он у Вас.
Ну, скажем, совершенно бестолково общаться на тему электроники, не зная
хотя бы закона Ома.
Так и в цифровой технике - не зная законов алгебры логики, трудно что-то
понять... Но обычно фундаментальные вещи есть практически везде, а здесь
мы говорим, как из них что-то посложнее сделать.

Ну давайте так - покажите, что Вы у нас тут подходящее для себя нашли, и
что в нем непонятно.

А стартовый курс троичной логики, я считаю, хорошо изложен здесь:
http://trilog.narod.ru/4.htm ну и практически там всё
очень неплохо изложено: http://trilog.narod.ru/contents.htm
iLavr
User avatar
Shaos
Admin
Posts: 24083
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: как спроектировать троичный счётчик?

Post by Shaos »

Lavr, по твоим ссылкам неправильная троичная логика - не уравновешанная ;)

Ну если строить всё на моих троичных мультиплексорах (TRIMUX-ах), то для каждого трита троичного счётчика нужно 2 элемента троичной памяти:

Image

и один троичный полусумматор:

Image

соединённых как в моих троичных часах:

Image

логика сброса в начальное состояние (справа) нужна только если надо чтобы счётчик не считал насквозь...
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Re: как спроектировать троичный счётчик?

Post by Lavr »

Shaos wrote:Lavr, по твоим ссылкам неправильная троичная логика - не уравновешанная ;)
Ну тогда и просвещай славянство правильной логике сам, а не расписывай из чего сложились $333
в тот момент, когда человек хочет познать основы троичности, как он сам и говорит.
iLavr
xakepp35
Novelist
Posts: 26
Joined: 10 Feb 2016 16:59

Re: как спроектировать троичный счётчик?

Post by xakepp35 »

Shaos, благодарю вас.
по схеме половина ясно, половина нет.

я представляю себе что система работает дискретно, все блоки отрабатывают параллельно, считывая-записывая результат в провода, как в виртуальные ячейки памяти. что неясно

при таком раскладе чтобы второй полусумматор выдал правильный ответ, он должен дождаться результата вычисления флага переноса с первого полусумматора, полученного на предыдущем шаге-такте. неясно - как это достигается?

далее непонятно что такое mux? что такое e12? blp? bln? как достигается запись выходного регистра во входной? как определяется момент что выходной регистр заполнен правильно? (тоесть что флаг переноса распространился до конца стека полусумматоров)

lavr, не, знания кое какие есть, но не по железу, а по логике. если интересно, я разрабатывал универсальный троичный логический симулятор на С++, прекрасная архитектура, но в базовом состоянии. не-программисты использовать не смогут, контрольная панель и интерфейс отсутствуют, только писать и компилировать. могу поделиться деталями, если интересует - сделаем тред.

TRIMUX прикольный интересный проект, нно слишком дорого для славянских зарплат. и не даёт понимания как это работает на уровне электрических сигналов. Как бы мне собрать троичную ячейку памяти на транзисторах? хоть на биполярных, важна максимально дешёвая цена (чтоб по-русски было массово доступно) и понимание структуры и принципов работы. энергопотребление и быстродействие неважны.
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Re: как спроектировать троичный счётчик?

Post by Lavr »

xakepp35 wrote:lavr, не, знания кое какие есть, но не по железу
Ну я и дал ссылку, на то, как человек превратил троичную логику в схемы на транзисторах,
как Вам того и хотелось...
Причем, все схемы можно попробовать без пайки в EWB.

Но эти материалы все есть и на нашем форуме... впрочем, не буду более надоедать своими
"неправильными" советами. 8)

И, кстати, Shaos, может, у него математическая запись логики в некошерной, на твой взгляд, форме,
но на транзисторах он это воплотил в самом, что ни на есть, уравновешенном виде.

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

Re: как спроектировать троичный счётчик?

Post by Shaos »

На транзисторах будет сильно больше элементов нежели на троичных мультиплексорах. Троичный мультиплексор/демультиплексор - это по сути трёхпозиционный переключатель и первый сигнал управляет тем, какой из следующих трёх входов будет подключен к выходу - на них можно построить всё остальное. E12 и E21 это упрощённые мультиплексоры, являющиеся двухпозиционными переключателями - у первого средний уровень и положительный уровень подключают к выходу второй сигнал (соответственно негативный уровень подключает первый), а у второго - негативный и средний подключают первый (а положительный - второй). BLP и BLN - это по сути диод, который гасит плюс либо гасит минус (подключён в одну сторону в первом случае и в другую во втором). MEM запоминает то, что было на входе, когда сигнал управления был не равен нулю - соответственно имея двухфазную синхронизацию (полученную из синусодиального тактирования путём выпрямления прямым и обратным диодами), мы щёлкаем поочередно первым и вторым набором MEM-ов, считая, что перенос успеет распостраниться в паузе между этими фазами - вобщем как-то так...
Я тут за главного - если что шлите мыло на me собака shaos точка net
xakepp35
Novelist
Posts: 26
Joined: 10 Feb 2016 16:59

Re: как спроектировать троичный счётчик?

Post by xakepp35 »

кажется можно упростить схему, избавившись от второго регистра - заставить полусумматоры выдавать результат на вход B первого регистра, а выход его соединить не только с полусумматорами но и непосредственно со светодиодами. для счётчика нам же только нужно увеличить? значит записать мы можем туда же, откуда и считали (по принципу ассемблерной команды INC AX), сэкономив мультиплексоров..
Last edited by xakepp35 on 11 Feb 2016 22:55, edited 2 times in total.
xakepp35
Novelist
Posts: 26
Joined: 10 Feb 2016 16:59

Re: как спроектировать троичный счётчик?

Post by xakepp35 »

хотя.. я подумал - если сделать кнопку "+1", которая записывала бы в исходный регистр, откуда читают сумматоры, значения их выходов, то по её нажатию в системе началась бы дичь - значение в регистре начало бы изменяться хаотически. получается, без второго буферного регистра - никак? или как-то эта задача ещё решается?