Троичная перепрограммируемая микросхема TERNARO (TRI00)

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

Moderator: haqreu

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

Re: Троичная перепрограммируемая микросхема TERNARO (TRI00)

Post by Shaos »

Shaos wrote:P.S. Для отладки можно предусмотреть возможность снятия состояний всех горизонтальных линий через последовательный интерфейс (точно также по 2 бита на трит) либо адресовать их N-битным адресом (их всего 135 предполагается в полноценном варианте 7x9 из которых 9 будут входами, что уменьшает интересуемое количество до 126, умещаясь в 7 бит адреса)
В связи с этим предлагается несколько иной набор сигналов с двоичной половины микросхемы:

pin 1 - IO1
pin 2 - IO2
pin 3 - IO3
pin 4 - IO4
pin 5 - IO5
pin 6 - IO6
pin 7 - IO7
pin 8 - IO8
pin 9 - IO9
pin 10 - Vneg (общая земля)
pin 11 - Vref (среднее значение между Vneg и Vpos - обычно +2.5В)
pin 12 - Vpos (общее питание +5В)

pin 13 - GND (двоичная земля, тоже самое что и Vneg на троичной стороне) или /PRG (разрешение программирования)?
pin 14 - /RES (сброс программы устройства)
pin 15 - SCK (входной клок для Slave SPI)
pin 16 - SDI (вход данных для Slave SPI)
pin 17 - SDO (выход данных для Slave SPI если тестовый адрес 0000000) или TEST (троичный тестовый выход, если TA=1...127)
pin 18 - TA0 (тестовый адресный бит 0)
pin 19 - TA1 (тестовый адресный бит 1)
pin 20 - TA2 (тестовый адресный бит 2)
pin 21 - TA3 (тестовый адресный бит 3)
pin 22 - TA4 (тестовый адресный бит 4)
pin 23 - TA5 (тестовый адресный бит 5)
pin 24 - TA6 (тестовый адресный бит 6)

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

P.S. при подключении земли к Vref эта микросхема вырождается в двоичную программируемую матрицу с открытой архитектурой :mrgreen:

P.P.S. выход TEST можно использовать для существенного расширения количества выходов - просто будет нужна какая-то внешняя схема, которая будет постоянно перебирать необходимый набор адресов TA (которых может быть сильно меньше 127) и сохранять состояние TEST на внешних триггерах :oidea:
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24088
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Троичная перепрограммируемая микросхема TERNARO (TRI00)

Post by Shaos »

Мнения? Суждения?

P.S. Добавив 4-й байт в описатель троичной логической ячейки можно сделать её ещё более универсальной, что увеличит длину битстрима всего лишь на 63 байта (и общая длина станет равной 3654):
ternaro-9to1mux4.jpg
P.P.S. XXY и XYY биты должны быть взаимосвязаны - надо это как-то по другому изобразить, т.к. если любой из них устанавливается в 1, то связанный со вторым переключатель также отключается, чтобы освободить средний контакт (а если оба в 1, то все входы соединяются вместе)
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24088
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Троичная перепрограммируемая микросхема TERNARO (TRI00)

Post by Shaos »

Я думаю на этом варианте архитектуры надо остановиться - он предельно универсален :mrgreen:

Новый вариант битстримового описателя логического блока версии 4:

Code: Select all

Byte 0 - 1st selector:
 bit 0 - input N of 1st selector
 bit 1 /
 bit 2 - input O of 1st selector
 bit 3 /
 bit 4 - input P of 1st selector
 bit 5 /
 bit 6 - make 1st selector E21 (XXY1)
 bit 7 - make 1st selector E12 (XYY1)

Byte 1 - 2nd selector:
 bit 0 - input N of 2nd selector
 bit 1 /
 bit 2 - input O of 2nd selector
 bit 3 /
 bit 4 - input P of 2nd selector
 bit 5 /
 bit 6 - make 2nd selector E21 (XXY2)
 bit 7 - make 2nd selector E12 (XYY2)

Byte 2 - 3rd selector:
 bit 0 - input N of 3rd selector
 bit 1 /
 bit 2 - input O of 3rd selector
 bit 3 /
 bit 4 - input P of 3rd selector
 bit 5 /
 bit 6 - make 3rd selector E21 (XXY3)
 bit 7 - make 3rd selector E12 (XYY3)

Byte 3 - additional configuration:
 bit 0 - connect feedback line to form MEM block
 bit 1 - simplification bit SIMP1
 bit 2 - simplification bit SIMP2 (spare input control)
 bit 3 - simplification bit SIMP3
 bit 4 - make 1st selector independent (INDEP1) 
 bit 5 - make 3rd selector independent (INDEP3)
 bit 6 - AUX line control (00 - not connected, 01 - 1st selector output, 10 - 2nd selector output, 11 - 3rd selector output)
 bit 7 /

Byte 4 - 1st and 2nd vertical line control (0000 means not connected)
Byte 5 - 3rd and 4th vertical line control (0000 means not connected)
Byte 6 - 5th and 6th vertical line control (0000 means not connected)
Byte 7 - 7th and 8th vertical line control (0000 means not connected)
Byte 8 - 9th and 10th vertical line control (0000 means not connected)
Byte 9 - 11th and 12th vertical line control (0000 means not connected)
...
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24088
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Троичная перепрограммируемая микросхема TERNARO (TRI00)

Post by Shaos »

You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24088
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Троичная перепрограммируемая микросхема TERNARO (TRI00)

Post by Shaos »

В статье 2009 года "Towards a balanced ternary FPGA" есть очень похожие иллюстрации (к тексту пока нету доступа) :roll:
9to1.jpg
https://www.semanticscholar.org/paper/Towards-a-balanced-ternary-FPGA-Beckett/617938c0aceac9b5ff3e8094f334f7b9104effc8
5-Figure10-1.png
P.S. Потом скачал PDF-ку будучи в местном университете (в американских универах через студенческий WiFi можно качать IEEE научные статьи бесплатно)
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24088
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Троичная перепрограммируемая микросхема TERNARO (TRI00)

Post by Shaos »

Повторюсь
Shaos wrote:Мнения? Суждения?
Есть несколько путей развития темы:
1) добавить генерацию битстрима в DDT
2) сделать софт для ПЦ где мышкой можно пробовать биты конфигурации
3) сделать софт онлайн где мышкой можно пробовать биты конфигурации
4) сделать облегченный вариант на рассыпухе (2х2 например)
5) нарисовать микросхему в Magic и бежать заказывать немедленно
6) сделать эмуляцию TERNARO на VHDL и попробовать в Xilinx Spartan-3
7) сделать синтезирование скажем из Verilog...
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24088
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Троичная перепрограммируемая микросхема TERNARO (TRI00)

Post by Shaos »

Средствами своего Circuits.CC перерисовал логический блок для пущёй понятности:
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24088
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Троичная перепрограммируемая микросхема TERNARO (TRI00)

Post by Shaos »

Подписал недостающие переключатели и переставил кое-какие линии:
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24088
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Троичная перепрограммируемая микросхема TERNARO (TRI00)

Post by Shaos »

Изобразил переключатели попроще и расширил легенду:
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24088
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Троичная перепрограммируемая микросхема TERNARO (TRI00)

Post by Shaos »

Ну или вот в таком виде :)
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
Alekcandr
Doomed
Posts: 665
Joined: 01 Oct 2007 10:30
Location: Ukraine

Re: Троичная перепрограммируемая микросхема TERNARO (TRI00)

Post by Alekcandr »

Почитал о редакторе схем. Забавная тузла. Хотя я не готов вот так извращаться уже.

Схема выглядит как будто ее на Орион-е рисовали, эх. И потом уже из принтера склеили уже. Только шрифт не Орион-ий.
Эмулятор OrionEXT:
http://www.orion-ext.narod.ru
User avatar
Shaos
Admin
Posts: 24088
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Троичная перепрограммируемая микросхема TERNARO (TRI00)

Post by Shaos »

Ещё попереставлял проводки для пущей эстетичности :roll:
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24088
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Троичная перепрограммируемая микросхема TERNARO (TRI00)

Post by Shaos »

Shaos wrote:Хм, по идее ВСЕ вертикальные линии должны иметь возможность заинтерконнектиться со ВСЕМИ горизонтальными - значит число интерконнектов будет зависеть не только от числа логических блоков, но и от числа горизонтальных каналов! При 9 каналах (9 входах) у нас будет ДЕВЯТЬ блоков интерконнекта на КАЖДЫЙ троичный логический блок...
Вобщем вот так оно выглядит в моей голове:
ternaro-topology.png
Многовато интерконнектов получается и каждый будет работать как 12 16-позиционных переключателей (позиция 0000 означает НЕ подключено):
ternaro-interconnect.png
Интерконнект соединяет выходы (горизонтальные сигналы) со входами (вертикальные сигналы) ну и кроме того может неиспользованные вертикали или горизонтали использовать для дальней передачи сигналов между блоками...
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24088
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Троичная перепрограммируемая микросхема TERNARO (TRI00)

Post by Shaos »

Вот как можно уменьшить количество блоков интерконнекта:
ternaro-topology-slim.png
И даже перерисовать потом можно:
ternaro-topology-slim-s.jpg
В таком случае добавление новых IO не потребует разрастания количества интерконнектов в геометрической прогрессии, как в оригинальном варианте...
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24088
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Троичная перепрограммируемая микросхема TERNARO (TRI00)

Post by Shaos »

Немного фантазии на тему названия таких микросхем :roll:

Исторически сложилось, что программируемый троичный блок с 9 входами-выходами я называю TRI00

Чтобы отличать именно TERNARO можно далее писать кол-во логических блоков в канале (количество колонок) - в данном случае 7 - плюс далее количество входов-выходов (2 десятичных цифры) - в данном случе 9:

TRI00709

Диагонально-урезанный дизайн можно обозвать "Slim" и скажем добавлять к имени буковку S, за которой будет идти ширина "обреза" - в вышеприведённых случаях это соответственно 7 и 3 - плюс надо ещё смещение указать - в первом случае это было 3, а во втором - 0 (логический блок цепляется к левому из оставшихся интерконнектов), т.е. наименование приведённых выше дизайнов может быть:

TRI00709S73 и TRI00709S30

Slim-вариант можно безболезненно расширять в смысле добавления новых IO - можно скажем отталкиваться от количества входов TA для адресации горизонтальных сигналов для теста (14 в каждом канале):

7 бит - 128 тестовых сигналов: 128/14=9.14 это 9 каналов плюс 2 дополнительных сигнала (это текущий дизайн TRI00709S...)
8 бит - 256 тестовых сигналов: 256.14=18.29 это 18 каналов плюс 4 дополнительных сигнала (TRI00718S...)
9 бит - 512 тестовых сигналов: 512/14=36.57 это 36 каналов плюс 8 дополнительных сигнала (TRI00736S...)
10 бит - 1024 тестовых сигналов: 1024/14=73.14 это 73 канала плюс 2 дополнительных сигнала (TRI00773S...)

Получается разумный максимум это 73 IO плюс 10 TA плюс оставшиеся 8 ног - всего получается 91 нога - несовсем удачно т.к. самый большой хоббитский корпус, что я знаю, это PLCC84 (в TQFP залезать неохота). С другой стороны можно вместо параллельной адресации тестовых сигналов перейти к последовательному доступу через SPI тогда отпадает необходимость привязываться к степеням двойки и можно сделать столько IO сколько нужно, чтобы воткнуться в корпус PLCC84 (и за компанию в PLCC68 с меньшим некруглым количеством)...
Я тут за главного - если что шлите мыло на me собака shaos точка net