Сосчитай До Трёх: Два.

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

В прошлый раз мы познакомились с самым базовым элементом: троичным (дем)мультиплексором, а также построили на его основе полу- и полный сумматор.

На этот раз мы поговорим о ячейках памяти.

В прошлой статье я подробно объяснил, зачем мне это нужно: это будет демо-железка.

Не поленитесь, посмотрите моя мотивация.

Итак, вот список опубликованных статей серии (будет обновляться):

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

Вот фото оригинальный тримукс дизайн Александра Шабаршина и мое исполнение для поверхностного монтажа.

На одной такой плате установлены два троичных (дем)мультиплексора:

Сосчитай до трёх: два.
</p><p>

Моя версия тримукса для поверхностного монтажа была рассчитана на сравнительно легкое воспроизведение «на коленке»: плата хотя и двусторонняя, но содержит всего 12 переходных отверстий.

Кстати, на форуме nedopc.org Я запустил вариант сквозной установки без единого сквозного отверстия:

Сосчитай до трёх: два.
</p><p>

Однако сверление отверстий для выводов микросхемы все равно требует, так что мой вариант более экономичен :) тримуксIO Моя цель — не теоретизировать, а построить вполне осязаемую железку.

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

В прошлый раз все входы тестируемых схем были перемычками на макетных платах, а выходы — набором светодиодов на той же макетной плате.

Это довольно неудобно (особенно при подключении входов), поэтому конструкцию Александра на один вход-выход я видел так:

Сосчитай до трёх: два.
</p><p>

Каждый вход-выход несет по одному трехпозиционному переключателю, который по умолчанию (среднее положение) слегка подтянут до 0В.

Если вывод используется для индикации выхода триплексора, то переключатель следует оставить в среднем положении, и тогда тримукс подтянет слабое подтягивание к 0В.

Mitter Follower обеспечивает надежную индикацию даже самых слабых сигналов.

Если вывод необходимо использовать в качестве входа, то переключатель можно подключить либо к +5В, либо к -5В.

Резистор сопротивлением 150 Ом защищает цепь от короткого замыкания.

Плата тестирования ввода-вывода содержит 9 абсолютно одинаковых схем:

Сосчитай до трёх: два.
</p><p>

Плата предназначена для удобного воспроизведения в домашних условиях: она однослойная и не содержит ни одной перемычки.

А вот как можно подключить плату ввода-вывода для проверки, например, статической ячейки памяти:

Сосчитай до трёх: два.
</p><p>

Имеется три входа: C, A, B и один выход Q. Статическая ячейка памяти (троичный триггер с уровнем хранения) Подключим два мультиплексора (напомним, они помещаются на одну карту тримукса) следующим образом:

Сосчитай до трёх: два.
</p><p>

Давайте договоримся о терминологии: тактовые триггеры делятся на управляемые.

уровень и управлял передний .

Теперь мы говорим об управлении уровень , что означает, что при одном уровне тактового сигнала С (-1 или 1) триггер воспринимает входные сигналы (А или В соответственно), а при другом (0) он его не воспринимает и остается в том же положении.

Наша схема состоит из двух мультиплексоров, второй мультиплексор представляет собой просто прозрачный буфер, а первый (в зависимости от тактового сигнала С) выводит либо А, либо В, либо сам вывод буфера на вход второго! Это означает следующее поведение: при C=-1 выход Q замыкается на вход A, при C=1 выход Q замыкается на вход B, а при C=0 выход Q остается постоянным, а входы A и B отключаются.

просто проигнорировали.

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

В остальное время, независимо от уровня тактового сигнала, триггер не воспринимает входные сигналы и остается в неизменном состоянии.



Ээкскурсия в хорошо изученную местность

Давайте на минутку совершим путешествие в двоичный (бррр) мир, чтобы прояснить ситуацию.

В русскоязычной литературе для всех подобных схем используется слово «спусковой крючок» (поправьте меня, я только что нашел маску).

Бинарный триггер с контролем уровня называется закрытая D-защелка .

Грубо говоря, у него два входа: D (данные) и E (включение).

Единственный выход Q равен D, если E=1, и сохраняет свое значение, если E=0.

Сосчитай до трёх: два.
</p><p>

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

Сосчитай до трёх: два.
</p><p>

Эта схема называется D-триггер с запуском по фронту «главный-подчиненный».



Назад в мир троицы или terra (почти) инкогнита

Если мы хотим запускаться по фронту, мы можем использовать две троичные защелки и один эквивалент двоичного инвертора, как в двоичном мире, как на этой диаграмме:

Сосчитай до трёх: два.
</p><p>

Наша ячейка динамической памяти имеет два входа: C и Am; у него один выход Qs. В двоичном мире инвертор генерирует второй сдвинутый по фазе сигнал, который синхронизирует ведомую защелку.

В нашей троичной схеме тактовый сигнал разделяется на два: min(C,0) и max(C,0), каждый из которых синхронизирует свою собственную защелку.

Чтобы сигнал Am достиг выхода Qs, нам нужны два нарастающих фронта подряд на сигнале C:

Сосчитай до трёх: два.
</p><p>

Обратите внимание, что сразу после включения схемы, до того как сигнал С изменится от минус единицы к единице, выходной сигнал Qs имеет неопределенное значение.

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

Это можно использовать для быстрой инициализации памяти, но об этом в следующий раз.

Вот соответствующие видео работы ячейки памяти с динамическим управлением: Заключение Мы рассмотрели два варианта ячеек памяти.

Динамически управляемая ячейка памяти является основным элементом троичного счетчика, который мы рассмотрим в следующий раз.

Потом поговорим об ALU и тому подобном.

Конечно, получить таким образом даже один килолитр памяти — задача очень дорогая (если делать это на коленях), но поскольку моя железка будет предназначена для демонстрационных целей и с гораздо меньшим объемом памяти, то это не так уж и страшно.

Наслаждаться! Теги: #троичный калькулятор #память #пальцевые вычисления #Аномальное программирование #Занимательные задачи #программирование #математика #Программирование микроконтроллеров

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.