МАРСОХОД

Open Source Hardware Project

Использование троичной логики в ПЛИС Альтера

ternary logic
Внимание! Эта статья была написана 1-го апреля и я вляется не больше чем шуткой...
Известно, что большинство современных вычислительных систем использует двоичную логику. Однако, так же известно, что основание двойки для представления чисел не является оптимальным при выполнении математических операций над этими числами. Существуют и другие, более эффективные способы представления информации использующие троичную систему счисления.

Плотность записи информации описывается уравнением

equation

из которого следует, что оптимальным основанием все же является дробное число Эйлера e = 2,7182818284...

Понятно, что целое число 3 гораздо ближе к числу Эйлера, чем целое число 2. Значит и компьютеры, работающие на троичной логике, будут  эффективнее хранить и обрабатывать информацию, чем двоичные компьютеры.

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

Вот так могут быть представлены некоторые числа в троичном виде:

0  - - -
1  - - 0
2  - - +
3  - 0 -
4  - 0 0
5  - 0 +
6  - + -

...

Существуют и другие способы кодирования сигналов в троичной системе счисления.

Один из первых промышленных троичных компьютеров Сетунь был разработан еще в Советском Союзе под руководством известного ученого Н. П. Брусенцова.

Сегодня, вместе с появлением ПЛИС, троичные вычисления получили второе дыхание. Многие современные микросхемы FPGA включая и серию  Altera Cyclone III могут хранить и обрабатывать данные в троичном виде. Тут правда нужно сделать оговорку, что питание микросхемы должно вестись от нескольких источников с разным уровнем напряжения, чтобы стало возможным представлять сигнал разными уровнями по одной линии. Но это не является серьезным ограничением. Даже на плате Марсоход2 микросхема ПЛИС EP3C10E144 питается от напряжения VCC +3.3В и VCCINT +1.2В. Значит использовать троичные вычисления можно и на этой плате.

Использование троичной логики в ПЛИС Altera становится совершенно простым и прозрачным с точки зрения программиста. Вы можете в своем проекте использовать обычное двоичное представление и стандартные языки программирования VHDL или Verilog HDL, но достаточно просто включить в настройках проекта Altera Quartus II методы Ternary Options и компилятор сам преобразует проект в троичный и соберет новый образ.

Откройте любой ваш проект для ПЛИС Cyclone III. Зайдите в главное меню среды разработки Altera Quartus II и выбирайте пункты

Assignments => Device...

dlg1

Далее в открывшемся диалоговом окне найдите кнопку Device and Pin Options. Открывается новое диалоговое окно в котором нужно выбрать самый нижний пункт слева, собственно Ternary Options.

dlg2

Далее в чекбоксах я обычно выбираю только первые два: включаю внутренние троичные регистры и разрешаю троичную арифметику. Третья опция иногда требует модификации печатной платы и использование специальных внешних компонентов. Так, что я ее обычно не ставлю. То есть сигналы на внешние пины пойдут все же обычные двоичные. Специальные схемы внутри ПЛИС произведут конвертацию сигналов.

Нужно заметить, что использование этих опций позволяет существенно экономить место в микросхеме. В некоторых проектах удается разместить в одной и той же FPGA в полтора раза больше логики, что в общем-то и неудивительно. Так что я иногда советую использовать эти опции при компиляции проектов для ПЛИС Altera Cyclone III

 

 

Комментарии  

+1 #7 Alex 03.04.2013 07:43
Цитирую Chettuser:
Мда... видимо вы невнимательно искали. Я нашёл.

Я нашел и во всю использую. Кстати автор забыл указать, что троичная группа триггеров объявляется reg3
Например reg3 [1:0]
+1 #6 Chettuser 02.04.2013 02:11
Мда... видимо вы невнимательно искали. Я нашёл.
+1 #5 Impartial 01.04.2013 15:08
Мало того,что более эффективно используется емкость чипа, а еще появляется возможность контролировать внутренние ошибки в логических элементах.
Альтеровцы внимательно изучили инструкцию
http://karchevskie.at.ua/load/diskretnye_troichnye_ehlementy_s_obnaruzheniem_otkazov/1-1-0-7
И на ее основе сделали такой классный чип как Циклон 3
0 #4 Alex 01.04.2013 14:36
Интересно сколько человек(включая меня) решило проверить наличие данной опции? :P
0 #3 afad 01.04.2013 10:17
Pervoaprelskaja Shutka? :lol: :lol: :lol:
0 #2 мимо проходил 01.04.2013 08:31
фейк?
+1 #1 ЛамерXXX 01.04.2013 06:19
Ого! Вот это да! А я то всю жизнь ошибался оказывается!! Про это нужно на Хабр написать статью!!

Добавить комментарий



facebook  GitHub  YouTube  Twitter
Вы здесь: Начало Статьи о разном Использование троичной логики в ПЛИС Альтера