nedoPC.org

Community of electronics hobbyists established in 2002

...
Atom Feed | View unanswered posts | View active topics It is currently 26 Nov 2020 06:25



Reply to topic  [ 65 posts ]  Go to page Previous  1, 2, 3, 4, 5  Next
Троичная перепрограммируемая микросхема TERNARO (TRI00) 
Author Message
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 18968
Location: Silicon Valley
Reply with quote
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:

_________________
:eugeek: https://twitter.com/Shaos1973


21 Jul 2018 14:28
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 18968
Location: Silicon Valley
Reply with quote
Мнения? Суждения?

P.S. Добавив 4-й байт в описатель троичной логической ячейки можно сделать её ещё более универсальной, что увеличит длину битстрима всего лишь на 63 байта (и общая длина станет равной 3654):

Attachment:
ternaro-9to1mux4.jpg
ternaro-9to1mux4.jpg [ 118.31 KiB | Viewed 3143 times ]


P.P.S. XXY и XYY биты должны быть взаимосвязаны - надо это как-то по другому изобразить, т.к. если любой из них устанавливается в 1, то связанный со вторым переключатель также отключается, чтобы освободить средний контакт (а если оба в 1, то все входы соединяются вместе)

_________________
:eugeek: https://twitter.com/Shaos1973


21 Jul 2018 14:50
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 18968
Location: Silicon Valley
Reply with quote
Я думаю на этом варианте архитектуры надо остановиться - он предельно универсален :mrgreen:

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

Code:
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)
...

_________________
:eugeek: https://twitter.com/Shaos1973


21 Jul 2018 16:45
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 18968
Location: Silicon Valley
Reply with quote
Пеар :)

https://hackaday.io/project/159905-ternaro


Attachments:
ternaro-final.jpg
ternaro-final.jpg [ 151.84 KiB | Viewed 3124 times ]

_________________
:eugeek: https://twitter.com/Shaos1973
22 Jul 2018 05:04
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 18968
Location: Silicon Valley
Reply with quote
В статье 2009 года "Towards a balanced ternary FPGA" есть очень похожие иллюстрации (к тексту пока нету доступа) :roll:

Attachment:
9to1.jpg
9to1.jpg [ 76.35 KiB | Viewed 2974 times ]


https://www.semanticscholar.org/paper/Towards-a-balanced-ternary-FPGA-Beckett/617938c0aceac9b5ff3e8094f334f7b9104effc8

Attachment:
5-Figure10-1.png
5-Figure10-1.png [ 91.35 KiB | Viewed 3122 times ]


P.S. Потом скачал PDF-ку будучи в местном университете (в американских универах через студенческий WiFi можно качать IEEE научные статьи бесплатно)

_________________
:eugeek: https://twitter.com/Shaos1973


22 Jul 2018 15:44
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 18968
Location: Silicon Valley
Reply with quote
Повторюсь

Shaos wrote:
Мнения? Суждения?


Есть несколько путей развития темы:
1) добавить генерацию битстрима в DDT
2) сделать софт для ПЦ где мышкой можно пробовать биты конфигурации
3) сделать софт онлайн где мышкой можно пробовать биты конфигурации
4) сделать облегченный вариант на рассыпухе (2х2 например)
5) нарисовать микросхему в Magic и бежать заказывать немедленно
6) сделать эмуляцию TERNARO на VHDL и попробовать в Xilinx Spartan-3
7) сделать синтезирование скажем из Verilog...

_________________
:eugeek: https://twitter.com/Shaos1973


22 Jul 2018 17:47
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 18968
Location: Silicon Valley
Reply with quote
Средствами своего Circuits.CC перерисовал логический блок для пущёй понятности:


Attachments:
ternaro.gif
ternaro.gif [ 7.31 KiB | Viewed 3077 times ]

_________________
:eugeek: https://twitter.com/Shaos1973
24 Jul 2018 22:56
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 18968
Location: Silicon Valley
Reply with quote
Подписал недостающие переключатели и переставил кое-какие линии:


Attachments:
ternaro.gif
ternaro.gif [ 8.11 KiB | Viewed 3073 times ]

_________________
:eugeek: https://twitter.com/Shaos1973
24 Jul 2018 23:39
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 18968
Location: Silicon Valley
Reply with quote
Изобразил переключатели попроще и расширил легенду:


Attachments:
ternaro_.gif
ternaro_.gif [ 7.8 KiB | Viewed 3070 times ]

_________________
:eugeek: https://twitter.com/Shaos1973
25 Jul 2018 02:07
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 18968
Location: Silicon Valley
Reply with quote
Ну или вот в таком виде :)


Attachments:
ternaro_w.gif
ternaro_w.gif [ 8.87 KiB | Viewed 3070 times ]

_________________
:eugeek: https://twitter.com/Shaos1973
25 Jul 2018 02:28
Profile WWW
Doomed

Joined: 01 Oct 2007 11:30
Posts: 529
Location: Ukraine
Reply with quote
Почитал о редакторе схем. Забавная тузла. Хотя я не готов вот так извращаться уже.

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

_________________
Эмулятор OrionEXT:
http://www.orion-ext.narod.ru


25 Jul 2018 05:52
Profile
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 18968
Location: Silicon Valley
Reply with quote
Ещё попереставлял проводки для пущей эстетичности :roll:


Attachments:
ternaro.gif
ternaro.gif [ 7.99 KiB | Viewed 3030 times ]

_________________
:eugeek: https://twitter.com/Shaos1973
25 Jul 2018 23:28
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 18968
Location: Silicon Valley
Reply with quote
Shaos wrote:
Хм, по идее ВСЕ вертикальные линии должны иметь возможность заинтерконнектиться со ВСЕМИ горизонтальными - значит число интерконнектов будет зависеть не только от числа логических блоков, но и от числа горизонтальных каналов! При 9 каналах (9 входах) у нас будет ДЕВЯТЬ блоков интерконнекта на КАЖДЫЙ троичный логический блок...

Вобщем вот так оно выглядит в моей голове:

Attachment:
ternaro-topology.png
ternaro-topology.png [ 15.58 KiB | Viewed 3017 times ]


Многовато интерконнектов получается и каждый будет работать как 12 16-позиционных переключателей (позиция 0000 означает НЕ подключено):

Attachment:
ternaro-interconnect.png
ternaro-interconnect.png [ 1.07 KiB | Viewed 3017 times ]


Интерконнект соединяет выходы (горизонтальные сигналы) со входами (вертикальные сигналы) ну и кроме того может неиспользованные вертикали или горизонтали использовать для дальней передачи сигналов между блоками...


Attachments:
ternaro-topology.txt [5.97 KiB]
Downloaded 368 times

_________________
:eugeek: https://twitter.com/Shaos1973
26 Jul 2018 21:38
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 18968
Location: Silicon Valley
Reply with quote
Вот как можно уменьшить количество блоков интерконнекта:

Attachment:
ternaro-topology-slim.png
ternaro-topology-slim.png [ 60.5 KiB | Viewed 3014 times ]


И даже перерисовать потом можно:

Attachment:
ternaro-topology-slim-s.jpg
ternaro-topology-slim-s.jpg [ 73.39 KiB | Viewed 3014 times ]


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

_________________
:eugeek: https://twitter.com/Shaos1973


27 Jul 2018 01:26
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 18968
Location: Silicon Valley
Reply with quote
Немного фантазии на тему названия таких микросхем :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 с меньшим некруглым количеством)...

_________________
:eugeek: https://twitter.com/Shaos1973


27 Jul 2018 19:52
Profile WWW
Display posts from previous:  Sort by  
Reply to topic   [ 65 posts ]  Go to page Previous  1, 2, 3, 4, 5  Next

Who is online

Users browsing this forum: No registered users and 4 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.