nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 28 Mar 2024 09:26



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

Joined: 29 Jun 2018 08:48
Posts: 413
Reply with quote
Shaos wrote:
...7 бит...

7 трит... О_О
биты - в двоичной системе.
триты - в троичной.
квадры - в четвертичной...


28 Jul 2018 01:08
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Клапауций wrote:
Shaos wrote:
...7 бит...

7 трит... О_О
биты - в двоичной системе.
триты - в троичной.
квадры - в четвертичной...

Это гибридный девайс - управление и конфигурирование остаются двоичными, а вот после конфигурирования оно работает полностью как троичное устройство :roll:

_________________
:dj: https://mastodon.social/@Shaos


28 Jul 2018 07:15
Profile WWW
Banned
User avatar

Joined: 29 Jun 2018 08:48
Posts: 413
Reply with quote
Shaos wrote:
Это гибридный девайс...

ок. тогда - да...


28 Jul 2018 07:52
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Что-то подумалось мне, что надо иметь ещё один вход разрешения программирования /PRG и в конце этого сигнала (т.е. по фронту) задвинутые через SDI биты передадутся в конфигурационные ячейки и FPGA заработает. Раньше я планировал переключение из программирования в работу, когда первая единичка дойдёт до конца цепочки - т.е. надо было бы обязательно засовывать весь битстрим, чтобы работать, а с отдельным входом разрешения программирования появится возможность заводить неполный битстрим и начинать работать с ним (все недовведённые конфигурационные биты остаются нулями после ресета) - это и в отладке сильно поможет, если скажем чего-то где-то не пропечётся. Значит ногу GND можно заменить на этот /PRG (всё равно земля уже есть в виде Vneg) ну и для пущей логичности можно переставить /PRG и /RES местами (а также TA биты перевернуть):
Code:
         ___________
        /     U     \
 IO1 --|1          24|-- TA0
 IO2 --|2          23|-- TA1
 IO3 --|3          22|-- TA2
 IO4 --|4          21|-- TA3
 IO5 --|5          20|-- TA4
 IO6 --|6  TERNARO 19|-- TA5
 IO7 --|7          18|-- TA6
 IO8 --|8   DIP24  17|-- SDO
 IO9 --|9          16|-- SDI
Vneg --|10         15|-- SCK
Vref --|11         14|-- /PRG
Vpos --|12         13|-- /RES
        \___________/

_________________
:dj: https://mastodon.social/@Shaos


28 Jul 2018 08:29
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
AlexanderZh wrote:
Shaos wrote:
Что-то подумалось мне

Правильно подумалось.
Shaos wrote:
когда первая единичка дойдёт до конца цепочки

А если первый с конца нужен нолик? :roll:

Ну вот по этому я и хотел в цепочку D-триггеров (обнулённую при включении через /RES) засунуть сначала "лишнюю" единичку, а потом уже сам битстрим бит за битом от конца к началу - как только первая единичка выплюнется из SDO - значит все битики встали на свои места и полное программирование закончено :roll:

AlexanderZh wrote:
Во сколько, на данный момент, оценивается производство штучки и сколько планируется испечь для начала?

У мосиса будет 40 микросхем по цене чуть больше восьми штук убитых енотов ( кстати только что посмотрел - у них DIP28, а не 24 - надо ещё 4 ноги пририсовать : )
Code:
         ___________
        /     U     \
 IO1 --|1          28|-- TA0
 IO2 --|2          27|-- TA1
 IO3 --|3          26|-- TA2
 IO4 --|4          25|-- TA3
 IO5 --|5          24|-- TA4
 IO6 --|6  TERNARO 23|-- TA5
 IO7 --|7          22|-- TA6
 IO8 --|8   DIP28  21|-- SDO/TEST
 IO9 --|9          20|-- SDI
Vneg --|10         19|-- SCK
Vref --|11         18|-- /PRG
Vpos --|12         17|-- /RES
N.C. --|13         16|-- N.C.
N.C. --|14         15|-- N.C.
        \___________/

P.S. Четыре N.C. (Not Connected) т.к. я планирую делить чип с кем-то ещё и TERNARO займёт только половину кристалла с 48 выводными площадками, т.е. мне перепадут только 24 площадки...

P.P.S. Тогда в 2015 я начал с DIP24 т.к. был в процессе подписания бумаг с европейской конторой типа мосиса - у них несколько дешевле и как раз DIP24 был самым дешёвым вариантом.
Но с той конторой не срослось (выбранный ими австрийский заводик меня послал), а у мосиса самые дешёвые упаковки это DIP28 и DIP16, а DIP24 нету вовсе...

P.P.P.S. Похоже цены на 0.35um упали - теперь оно чуть ли не в 2 раза дешевле, чем 0.5um :o

_________________
:dj: https://mastodon.social/@Shaos


28 Jul 2018 18:24
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Shaos wrote:
Немного фантазии на тему названия таких микросхем :roll:

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

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

TRI00709

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

TRI00709S73 и TRI00709S30...

Типа вот :mrgreen:


Attachments:
ternaro-fake.jpg
ternaro-fake.jpg [ 48.98 KiB | Viewed 7076 times ]

_________________
:dj: https://mastodon.social/@Shaos
28 Jul 2018 21:59
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
AlexanderZh wrote:
Shaos wrote:
Типа вот

А не слишком ли широка? :lol:

Ну какая есть :)


_________________
:dj: https://mastodon.social/@Shaos


29 Jul 2018 13:42
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
AlexanderZh wrote:
Shaos wrote:
Ну какая есть

В керамике по другому выглядят :ebiggrin:

Ну масс-продакшин будет в пластмассе (хотя наверное таки оно в этом случае станет DIP24) :roll:

_________________
:dj: https://mastodon.social/@Shaos


29 Jul 2018 14:00
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Shaos wrote:
Что-то подумалось мне, что надо иметь ещё один вход разрешения программирования /PRG и в конце этого сигнала (т.е. по фронту) задвинутые через SDI биты передадутся в конфигурационные ячейки и FPGA заработает. Раньше я планировал переключение из программирования в работу, когда первая единичка дойдёт до конца цепочки - т.е. надо было бы обязательно засовывать весь битстрим, чтобы работать, а с отдельным входом разрешения программирования появится возможность заводить неполный битстрим и начинать работать с ним (все недовведённые конфигурационные биты остаются нулями после ресета) - это и в отладке сильно поможет, если скажем чего-то где-то не пропечётся...

А если всё пропечётся, то также появится возможность подцепить несколько микросхем в цепочку и программировать их разом одной последовательностью битиков :)

_________________
:dj: https://mastodon.social/@Shaos


29 Jul 2018 18:55
Profile WWW
Admin
User avatar

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

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

Attachment:
ternaro-interswitch.jpg
ternaro-interswitch.jpg [ 116.54 KiB | Viewed 7018 times ]


Подразумевается, что треугольнички на картинке - это управляемые троичные буферы для "усиления" сигналов между партишинами (либо полного отключения цепей друг от друга) - лишний управляющий битик (номер 0 снизу) можно скажем вместо цепляния к средней как на картинке точке (Vref), сделать битиком для превращения троичных буферов в двоичные (из NOP в NNP) если микросхема используется в режиме двоичного FPGA.

Чтобы получить 1000 логических блоков в одной микросхеме, имея "партишины" высотой в 73 канала, потребуется 1000/(73*7) = 1.95 "партишинов" - округляем до 2 - будет 1022 логических блока на две партиции. Четыре соответственно дадут 2044 логических блока, а шесть - 3066 (дальнейшее увеличение количества "партишинов" скорее всего бессмысленно, т.к. они используют по сути одни и теже горизонтальные каналы и в какой-то момент все линии этих каналов просто будут заняты).

P.S. Более того, можно сделать так, чтобы "партишены" программировались независимо друг от друга! Скажем путём добавления стольких сигналов разрешения программирования _PRG, сколько есть партишинов (межпартиционные соединения будут программироваться скажем если оба сигнала разрешения в нуле). Если у нас будет корпус PLCC84 в котором 73 ноги это IO, ещё 3 это Vneg, Vpos и Vref, т.е. остаётся 8 ног:
/SCK
/SDI
/SDO
/RES
/PRG1 (for 1, 2, and 4-partition chip)
/PRG2 (for 2 and 4-partition chip)
/PRG3 (for 4-partition chip only)
/PRG4 (for 4-partition chip only)
Тестирование в таком случае будет по последовательному интерфейсу, когда все /PRG в "1" - загоняем в SDI десять бит тестового адреса и далее вытягиваем 2 или 4 троичных значения из SDO - по одному на каждый "партишин".

P.P.S. По поводу названий таких микросхем:
TRI00773S73 - TERNARO на 7 блоков в канале, 73 канала, slim-design с шириной окна 7 и смещением 3 (511 логических блоков)
TRI00773S73X2 - TERNARO как описано выше, но с двумя "партишинами" (1022 логических блока)
TRI00773S73X4 - TERNARO как описано выше, но с четырьмя "партишинами" (2044 логических блока)
Если будет отбраковка, то можно запрещать "убитые" партишины, перемаркировав микросхему - TRI00773S73/1 если живая только первая "партишин", TRI00883S73/3 если только третья и т.д.

P.P.P.S. Кстати скорее всего для производства таких больших микросхем придётся уходить на техпроцесс 0.35um с питанием 3.3V - получается нейтральная точка (Vref) в этом случае будет 1.65V...

_________________
:dj: https://mastodon.social/@Shaos


01 Aug 2018 23:31
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Интересный момент у меня в голове только что проявился - в одной партишине может сидеть виртуальный троичный софт-компьютер (тот же TRIADOR), который будет иметь возможность программировать вторую партишин той же самой микросхемы! Взрыв мозга - буффф... :obye:

P.S. На движке Circuits.CC начал делать сайт для поиграться c TERNARO: http://ternaro.com

Attachment:
ternaro-playground.png
ternaro-playground.png [ 20.9 KiB | Viewed 7012 times ]


Исходный текст этой веб-странички (всё остальное написано на JS и ROBBY):
Code:
<HTML>
<HEAD><TITLE>TERNARO PLAYGROUND</TITLE>
<META HTTP-EQUIV="Content-Language" content="en">
<META HTTP-EQUIV="Content-Type" content="text/html; charset=utf-8">
<SCRIPT type="text/javascript" src="Rgrid.js"></SCRIPT>
<SCRIPT type="text/javascript" src="robot.js"></SCRIPT>
<SCRIPT type="text/javascript" src="ternaro.js"></SCRIPT>
</HEAD>
<BODY BGCOLOR=#000000 TEXT=#00AA00 LINK=#00AAAA>
<center>
<h3>TERNARO PLAYGROUND</h3>
</center>
<p id="tut" align=center>TERNARO.COM requires a modern web-browser to work properly...</p>
<font size=-4>
<p id="pow" align=center>Powered...</p>
<p align=center>
Click <a href="https://hackaday.io/project/159905-ternaro">here</a> for more info about TERNARO FPGA
</p>
</font>
</BODY>
<script type="text/javascript">

var dx=90;
var dy=45;
$R.files = library;
$R.prefix = "pcb/";

$_("pow","Powered by " + $R.powered());

function action(x,y) {
 $R.event(0,-1,1,x,y);
}

if($R.grid('tut',dx,dy,action)>0) {
 var i,j;
 for(j=0;j<dy;j++){
 for(i=0;i<dx;i++){
   $R.set(i,j,32);
 }}
 $R.add(robot);
 $R.start();
}

</script>
</HTML>

_________________
:dj: https://mastodon.social/@Shaos


02 Aug 2018 00:44
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Посчитал размеры по площадям моих компонентов - полноценная "не-Slim" версия TERNARO на 9 входов в 4 кв.мм НЕ влезает :(
Влезает только в 11 кв.мм (при технологии 0.5um), производство которых уже зашкаливает за 15 штук...

P.S. И это я ещё не посчитал цепочки D-триггеров, которые будут при прошивке использоваться - если ещё и их посчитать, то получается совсем всё страшно :(
Короче выходит, что 63 логических блока + 63 интерконнекта (вместе с сопутствующими цепочками D-триггеров) займут аж 16 кв.мм! :o
Далее каждая дополнительная пара блоков интерконнекта вокруг каждого логического блока (опять же с D-триггерами) потребует 19 кв.мм!! :evil:
В итоге Slim вариант с 3 интерконнектами в ряд потребует 35 кв.мм,
Slim вариант с 7 интерконнектами в ряд потребует 73 кв.мм,
а полноценный вариант с 9 интерконнектами в ряд - аж 92 кв.мм - это ж почти сантиметр на сантиметр!!!
Если скажем делать только 3-входовой вариант TERNARO, то с 7 колонками (TRI00703) он тоже под 12 кв.мм займёт, а меньше делать бессмысленно...

P.P.S. Либо на пробу сделать только 3 входа и 3 колонки в 2x2 мм? Это будет только 9 конфигурируемых логических блоков, 27 блоков интерконнекта и 9*32 + 27*48 = 1584 сдвоенных D-триггеров для прошивки...

_________________
:dj: https://mastodon.social/@Shaos


05 Aug 2018 01:01
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Shaos wrote:
Посчитал размеры по площадям моих компонентов - полноценная "не-Slim" версия TERNARO на 9 входов в 4 кв.мм НЕ влезает :(
Влезает только в 11 кв.мм (при технологии 0.5um), производство которых уже зашкаливает за 15 штук...

P.S. И это я ещё не посчитал цепочки D-триггеров, которые будут при прошивке использоваться - если ещё и их посчитать, то получается совсем всё страшно :(
Короче выходит, что 63 логических блока + 63 интерконнекта (вместе с сопутствующими цепочками D-триггеров) займут аж 16 кв.мм! :o
Далее каждая дополнительная пара блоков интерконнекта вокруг каждого логического блока (опять же с D-триггерами) потребует 19 кв.мм!! :evil:
В итоге Slim вариант с 3 интерконнектами в ряд потребует 35 кв.мм,
Slim вариант с 7 интерконнектами в ряд потребует 73 кв.мм,
а полноценный вариант с 9 интерконнектами в ряд - аж 92 кв.мм - это ж почти сантиметр на сантиметр!!!
Если скажем делать только 3-входовой вариант TERNARO, то с 7 колонками (TRI00703) он тоже под 12 кв.мм займёт, а меньше делать бессмысленно...

P.P.S. Либо на пробу сделать только 3 входа и 3 колонки в 2x2 мм? Это будет только 9 конфигурируемых логических блоков, 27 блоков интерконнекта и 9*32 + 27*48 = 1584 сдвоенных D-триггеров для прошивки...

С другой стороны можно попробовать сделать упрощённый вариант троичного селектора без просветов между срабатываниями:

Image

Хотя оно уменьшит только площать логических блоков, а блоки интерконнектов останутся такими же т.к. там просто много аналоговых переключателей...

_________________
:dj: https://mastodon.social/@Shaos


05 Aug 2018 13:28
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Shaos wrote:
TRI00773S73 - TERNARO на 7 блоков в канале, 73 канала, slim-design с шириной окна 7 и смещением 3 (511 логических блоков)
TRI00773S73X2 - TERNARO как описано выше, но с двумя "партишинами" (1022 логических блока)
TRI00773S73X4 - TERNARO как описано выше, но с четырьмя "партишинами" (2044 логических блока)
Если будет отбраковка, то можно запрещать "убитые" партишины, перемаркировав микросхему - TRI00773S73/1 если живая только первая "партишин", TRI00883S73/3 если только третья и т.д.

Если воспользоватся методикой Xilinx по подсчёту эквивалентных логических гейтов (см. тут), то в случае использования TERNARO как двоичного FPGA (когда каждый троичный мультиплексор превратится в двоичный 2-to-1) каждый логический блок будет равносилен 4*4=16 логическим гейтам! Это значит, что
Микросхема TRI00773S73 имея 511 логических блоков будет эквивалентна 8K гейтам
Микросхема TRI00773S73X2 имея 1022 логических блоков будет эквивалентна 16К гейтам
Микросхема TRI00773S73X4 имея 2044 логических блоков будет эквивалентна 32К гейтам

_________________
:dj: https://mastodon.social/@Shaos


06 Aug 2018 21:35
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Shaos wrote:
Интересный момент у меня в голове только что проявился - в одной партишине может сидеть виртуальный троичный софт-компьютер (тот же TRIADOR), который будет иметь возможность программировать вторую партишин той же самой микросхемы! Взрыв мозга - буффф... :obye:

P.S. На движке Circuits.CC начал делать сайт для поиграться c TERNARO: http://ternaro.com

Поддержал отображение всех переключателей:


Attachments:
ternaro-mem.png
ternaro-mem.png [ 22.23 KiB | Viewed 5524 times ]

_________________
:dj: https://mastodon.social/@Shaos
10 Aug 2018 01:45
Profile WWW
Display posts from previous:  Sort by  
Reply to topic   [ 62 posts ]  Go to page Previous  1, 2, 3, 4, 5  Next

Who is online

Users browsing this forum: No registered users and 13 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.