7 трит... О_ОShaos wrote:...7 бит...
биты - в двоичной системе.
триты - в троичной.
квадры - в четвертичной...
Moderator: haqreu
7 трит... О_ОShaos wrote:...7 бит...
Это гибридный девайс - управление и конфигурирование остаются двоичными, а вот после конфигурирования оно работает полностью как троичное устройствоКлапауций wrote:7 трит... О_ОShaos wrote:...7 бит...
биты - в двоичной системе.
триты - в троичной.
квадры - в четвертичной...
ок. тогда - да...Shaos wrote:Это гибридный девайс...
Code: Select all
___________
/ 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
\___________/
Ну вот по этому я и хотел в цепочку D-триггеров (обнулённую при включении через /RES) засунуть сначала "лишнюю" единичку, а потом уже сам битстрим бит за битом от конца к началу - как только первая единичка выплюнется из SDO - значит все битики встали на свои места и полное программирование законченоAlexanderZh wrote:Правильно подумалось.Shaos wrote:Что-то подумалось мнеА если первый с конца нужен нолик?Shaos wrote:когда первая единичка дойдёт до конца цепочки![]()
У мосиса будет 40 микросхем по цене чуть больше восьми штук убитых енотов ( кстати только что посмотрел - у них DIP28, а не 24 - надо ещё 4 ноги пририсовать : )AlexanderZh wrote: Во сколько, на данный момент, оценивается производство штучки и сколько планируется испечь для начала?
Code: Select all
___________
/ 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.
\___________/
Типа вотShaos wrote:Немного фантазии на тему названия таких микросхем![]()
Исторически сложилось, что программируемый троичный блок с 9 входами-выходами я называю TRI00
Чтобы отличать именно TERNARO можно далее писать кол-во логических блоков в канале (количество колонок) - в данном случае 7 - плюс далее количество входов-выходов (2 десятичных цифры) - в данном случе 9:
TRI00709
Диагонально-урезанный дизайн можно обозвать "Slim" и скажем добавлять к имени буковку S, за которой будет идти ширина "обреза" - в вышеприведённых случаях это соответственно 7 и 3 - плюс надо ещё смещение указать - в первом случае это было 3, а во втором - 0 (логический блок цепляется к левому из оставшихся интерконнектов), т.е. наименование приведённых выше дизайнов может быть:
TRI00709S73 и TRI00709S30...
Ну масс-продакшин будет в пластмассе (хотя наверное таки оно в этом случае станет DIP24)AlexanderZh wrote:В керамике по другому выглядятShaos wrote:Ну какая есть
А если всё пропечётся, то также появится возможность подцепить несколько микросхем в цепочку и программировать их разом одной последовательностью битиковShaos wrote:Что-то подумалось мне, что надо иметь ещё один вход разрешения программирования /PRG и в конце этого сигнала (т.е. по фронту) задвинутые через SDI биты передадутся в конфигурационные ячейки и FPGA заработает. Раньше я планировал переключение из программирования в работу, когда первая единичка дойдёт до конца цепочки - т.е. надо было бы обязательно засовывать весь битстрим, чтобы работать, а с отдельным входом разрешения программирования появится возможность заводить неполный битстрим и начинать работать с ним (все недовведённые конфигурационные биты остаются нулями после ресета) - это и в отладке сильно поможет, если скажем чего-то где-то не пропечётся...
Придумал как соединять разные "партишины" внутри большой микросхемы - чтобы несколько полосок шириной 7 логических блоков могли соединяться друг с другом:Shaos wrote:Немного фантазии на тему названия таких микросхем![]()
Исторически сложилось, что программируемый троичный блок с 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 с меньшим некруглым количеством)...
Code: Select all
<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>
С другой стороны можно попробовать сделать упрощённый вариант троичного селектора без просветов между срабатываниями:Shaos wrote:Посчитал размеры по площадям моих компонентов - полноценная "не-Slim" версия TERNARO на 9 входов в 4 кв.мм НЕ влезает
Влезает только в 11 кв.мм (при технологии 0.5um), производство которых уже зашкаливает за 15 штук...
P.S. И это я ещё не посчитал цепочки D-триггеров, которые будут при прошивке использоваться - если ещё и их посчитать, то получается совсем всё страшно
Короче выходит, что 63 логических блока + 63 интерконнекта (вместе с сопутствующими цепочками D-триггеров) займут аж 16 кв.мм!![]()
Далее каждая дополнительная пара блоков интерконнекта вокруг каждого логического блока (опять же с D-триггерами) потребует 19 кв.мм!!![]()
В итоге 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-триггеров для прошивки...
Если воспользоватся методикой Xilinx по подсчёту эквивалентных логических гейтов (см. тут), то в случае использования TERNARO как двоичного FPGA (когда каждый троичный мультиплексор превратится в двоичный 2-to-1) каждый логический блок будет равносилен 4*4=16 логическим гейтам! Это значит, чтоShaos wrote:TRI00773S73 - TERNARO на 7 блоков в канале, 73 канала, slim-design с шириной окна 7 и смещением 3 (511 логических блоков)
TRI00773S73X2 - TERNARO как описано выше, но с двумя "партишинами" (1022 логических блока)
TRI00773S73X4 - TERNARO как описано выше, но с четырьмя "партишинами" (2044 логических блока)
Если будет отбраковка, то можно запрещать "убитые" партишины, перемаркировав микросхему - TRI00773S73/1 если живая только первая "партишин", TRI00883S73/3 если только третья и т.д.
Поддержал отображение всех переключателей:Shaos wrote:Интересный момент у меня в голове только что проявился - в одной партишине может сидеть виртуальный троичный софт-компьютер (тот же TRIADOR), который будет иметь возможность программировать вторую партишин той же самой микросхемы! Взрыв мозга - буффф...
P.S. На движке Circuits.CC начал делать сайт для поиграться c TERNARO: http://ternaro.com