Сообщения без ответов | Активные темы Текущее время: 28 мар 2024, 14:58



Ответить на тему  [ Сообщений: 28 ]  На страницу 1, 2  След.
 Срисовываю z80, есть вопрос 
Автор Сообщение
Сообщение 13 апр 2014, 11:05
Профиль

Зарегистрирован:
28 июн 2013, 20:42
Сообщения: 17
Здравствуйте.
Срисовываю z80, перевожу на Verilog. В процессе наткнулся на интересную вещь.
Вложение:
m5t5_20140413_0412_src.jpg
m5t5_20140413_0412_src.jpg [ 23.69 КБ | Просмотров: 16747 ]
Вложение:
m5t5_20140413_0412.jpg
m5t5_20140413_0412.jpg [ 26.24 КБ | Просмотров: 16747 ]

Цвета на картинке: диффузия - голубой, поликремний - фиолетовый, металлизация - зелёный (сигналы) и синий (GND). Голубой проводник в левом верхнем углу подключен к Vdd.
Фиолетовый поликремний пересекает голубую диффузию - транзистор. Получаем элемент 3-3И-2ИЛИ-НЕ из 7 транзисторов, в левом верхнем углу большой квадратный транзистор "подтяжки" выхода к Vcc.
Верхний из 6 транзисторов, затвор которого подключен ко второму справа зелёному сигнальному проводнику, совершенно не вписывается в логику работы. Совсем он её не портит, но влияет. Возник вопрос, может ли такое пересечение НЕ БЫТЬ транзистором, и, кажется, на этом форуме уже нашёл ответ viewtopic.php?p=19699#p19699
org писал(а):
-- 24 фев 2013, 18:32 --

В процессе стрима, в реальном времени связались с Quietust'ом и выяснили, что не всякое пересечение полисиликона по диффузии формирует транзистор.
Иногда получается так, что полисиликон проходит по диффузии безо всякого эффекта.

Это хорошо видно на картинке, которую прислал Q, там помечены места, где пересечение полисиликона формирует транзистор.
Какой при это происходит тех-процесс - не понятно. Возможно дополнительно индуцируется слой изоляции, который не даёт формироваться транзистору. Внешне, глядя на картинку, это никак не обнаружить. Q сказал что есть специальные "химикаты", которые позволяют явно проявить места, где транзисторы формируются, а где нет =)

Срисовано и разобрано уже пол-процессора, но такой "лишний" транзистор первый. Если это действительно так, и в остальной схеме я нигде не ошибся (а проверил уже много раз), то это вполне может быть той "закладкой" для защиты от копирования, про которую много слухов.

Кто-нибудь может прокомментировать?


Сообщение 15 апр 2014, 18:42
Профиль ICQ WWW
Аватара пользователя

Зарегистрирован:
24 июл 2007, 10:41
Сообщения: 570
Привет.
Очень похоже на обычный NAND & NAND, только левый верхний транс больше похож на depletion load. Посмотри на этот кусок без металла, там вполне может быть так, что "зарытый" контакт совмещен с виасом.

Если левый верхний транс - это не "резистор" подтяжки, то я хз что это получается)))

Вообще неплохо было бы глянуть на delayer этого участка (у меня даже где-то валялся z80 без металла).


Вложения:
nand_and_nand_33.jpg
nand_and_nand_33.jpg [ 75.87 КБ | Просмотров: 16680 ]
Сообщение 15 апр 2014, 21:59
Профиль

Зарегистрирован:
28 июн 2013, 20:42
Сообщения: 17
Не-не-не, не этот, там всё нормально, и виас есть. "Верхний из шести", который "a" обозначен, вот он лишний. Если он есть - появляются дополнительные такты в некоторых инструкциях, если его убрать или он всё время открыт, как depletion - всё соответствует документации.
Без металла у меня нет, только вот такая полупрозрачная.
На картинке жёлтым отмечено, где это находится.


Вложения:
m5t5_20140413_0412_src_all.jpg
m5t5_20140413_0412_src_all.jpg [ 33.05 КБ | Просмотров: 16667 ]
Сообщение 15 апр 2014, 23:24
Профиль ICQ WWW
Аватара пользователя

Зарегистрирован:
24 июл 2007, 10:41
Сообщения: 570
вот тут есть все слои :

http://uxul.org/~noname/visual6502/z80/

(там 4 разных степени "окисления", склееные панорамы называются stitch.png)

По поводу того куска - там действительно виас и зарытый контакт рядом стоят (но это я для себя, убедиться).

Ну а по поводу того, который обозначен как "a" - там может быть и depleted и enhanced. Если depleted, то такой транзистор всегда открыт, наподобии depletion load трансов, которые выполняют роль резисторов. Ну или как в barrel shifter-е NES APU. По картинке отличить depleted транзистор от enhanced никак не получится, только если логически додуматься :)

Мне кажется что все 6 трансов (a-f) - это enhanced транзисторы (то есть обычные), но вам виднее )


Вложения:
buried+vias.jpg
buried+vias.jpg [ 36.22 КБ | Просмотров: 16661 ]
Сообщение 16 апр 2014, 01:13
Профиль

Зарегистрирован:
28 июн 2013, 20:42
Сообщения: 17
То есть "подтяжечные" транзисторы depletion mode, и сделать ещё один такой транзистор было несложно?

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

Выполнение операции состоит из нескольких M-циклов, каждый цикл из нескольких тактов. От этого транзистора зависит 5 или 6 тактов будет в M-цикле, 3- и 4-тактовые циклы остаются без изменений. Корректность выполнения инструкций пострадать не должна, потому что T6 (6-й такт M-цикла) никуда не заведён и вроде как "холостой", но кто его знает...


Сообщение 16 апр 2014, 09:07
Профиль ICQ WWW
Аватара пользователя

Зарегистрирован:
24 июл 2007, 10:41
Сообщения: 570
Если затвор висит в воздухе, а там перерезано, то тут уже начинаются аналоговые эффекты - если потенциала будет достаточно чтобы открыть транзистор через перерезанную щель, то он откроется. Если не хватит, то так и останется закрытым, а нижние 2 транса тоже никогда не откроются, потому что земля будет отрезана. А такое поведение маловероятно)

А когда получаются M-циклы из шести T-state?


Сообщение 16 апр 2014, 09:23
Профиль

Зарегистрирован:
28 июн 2013, 20:42
Сообщения: 17
"Нормальные" 6 тактов в add HL,RR и ещё какой-то, ex [SP],HL кажется.
"Ненормальные" появляются с этим транзистором в относительных переходах и, по идее, во всех IX+nn и IY+nn вместо 5 тактов, инструкции будут выполняться на 1 такт дольше. Префиксные пока не разбирал, поэтому вывод чисто теоретический.

Посмотрел в записи. "Нормальные" 6 тактов в inc/dec RR и ld SP,HL. add HL,RR это 4+4+3 такта.


Сообщение 16 апр 2014, 09:42
Профиль

Зарегистрирован:
28 ноя 2012, 17:56
Сообщения: 63
Кстати если что то Z80 разбирал Кен Ширифф

http://www.righto.com/2013/11/the-z-80s ... ement.html
http://www.righto.com/2013/09/the-z-80- ... ow-it.html
http://www.righto.com/2013/09/understan ... -gate.html

Можно ему задать вопросы.


Сообщение 16 апр 2014, 10:23
Профиль ICQ WWW
Аватара пользователя

Зарегистрирован:
24 июл 2007, 10:41
Сообщения: 570
Чтобы однозначно сказать надо разбирать всю state logic. Кстати - чип вверх ногами у вас получается) В те времена логику и декодер инструкций было принято размещать вверху, а регистры и АЛУ внизу чипа)


Сообщение 16 апр 2014, 10:40
Профиль

Зарегистрирован:
28 июн 2013, 20:42
Сообщения: 17
Ну а я чем занимаюсь? Я эту state logic и разбираю :)

Мне вообще показалось что регистры должны быть справа внизу, то есть кристалл "боком". Тогда нумерация шин и вся логика от УУ через декодер к регистрам и АЛУ идёт слева направо, все управляющие выводы тоже слева, адресные выходы справа, регистры расположены сверху вниз и декодер инструкций получается как бы от простых сверху к сложным снизу. GND внизу, +5 вверху.
Но воспринимать логику кристалла для меня оказалось проще именно так, "вверх ногами".


Сообщение 22 май 2014, 12:48
Профиль

Зарегистрирован:
28 июн 2013, 20:42
Сообщения: 17
http://yadi.sk/d/pDm0-qI6QxwdW

// что есть в этом файле:
// регистр текущей инструкции, декодер инструкций, группировка инструкций, прочая логика декодера
// логика условных инструкций (переходы, возвраты, ldir/lddr)
// счётчик M-циклов и T-тактов (почти рабочий)
// управление коммутаторами внутренней шины данных
// входы INT и NMI, выход HALT (частично) TODO
// вход BUSRQ и выход BUSACK (частично) TODO
// выходы M1, REFRESH, MREQ, IORQ, RD, WR
// формирование сигналов управления АЛУ (частично)
// формирование сигналов управления блоком регистров: выбор регистров, управление буферами чтения-записи
// todo и ошибки

// чего нет в этом файле:
// регистров
// АЛУ, формирования флагов
// внутренних шин, коммутаторов на шинах
// внешних шин (адреса, данных)
// прочей управляющей логики (обмен регистров, префиксы, прерывания и т.п.)


Сообщение 27 май 2014, 09:39
Профиль

Зарегистрирован:
28 июн 2013, 20:42
Сообщения: 17
В общем, для меня основная проблема на данный момент это реализация внутренних шин на Verilog. Шина данных состоит из четырёх частей, в каждой части есть свои драйвера, части между собой коммутируются транзисторами, то есть можно соединить в одну большую длинную шину. Как это описать?


Сообщение 28 май 2014, 12:52
Профиль ICQ WWW
Аватара пользователя

Зарегистрирован:
24 июл 2007, 10:41
Сообщения: 570
Если имеются ввиду pass-gate транзисторы, то иначе как tristate-логикой их не определить. Такие транзисторы это просто tristate-буферы.


Сообщение 28 май 2014, 17:17
Профиль

Зарегистрирован:
28 июн 2013, 20:42
Сообщения: 17
Ага, только двунаправленные :) и ещё надо учесть сохранение заряда в проводниках когда шиной никто не управляет.


Сообщение 28 май 2014, 20:04
Профиль ICQ WWW
Аватара пользователя

Зарегистрирован:
24 июл 2007, 10:41
Сообщения: 570
Аа, если те которые соединяют шину с шиной, то это "tran":

Цитата:
The tran and rtran devices have terminal lists containing two bidirectional terminals.


А плавающую шину обычно подкрепляют bus keeper-ом)
http://en.wikipedia.org/wiki/Bus-holder

Обычно разработчики стараются избегать плавающей шины, чтобы не было undefined результатов.


Сообщение 28 май 2014, 20:22
Профиль

Зарегистрирован:
28 июн 2013, 20:42
Сообщения: 17
Про tran читал, пробовал, но что-то мне не понравилось, не помню что.

В плавающей шине, хранящей предущее значение, как раз вся фишка 3-го и 5-го битов регистра флагов :)

Я сейчас обнаружил две вещи:
1. Все шины и регистры читаются-пишутся по уровню, а не по перепаду, при этом всё работает за счёт задержек сигналов в управляющей логике. Даже есть "линия задержки" на нескольких последовательно соединённых инверторах с последующим сложением с исходным сигналом. При описании этого "в лоб" на Verilog симулятор выдаёт полную чушь, а пробовать запускать такое в ПЛИС по-моему вообще бесполезно.
2. Все действия с шиной имеют какую-то систему, которую я пока не постиг, но, кажется, система хорошо переведётся на синхронную логику.

-- 28 май 2014, 20:32 --

Я боюсь что при описании "как есть" с использованием tran и плавающих/подкреплённых шин, в реальной ПЛИС, внутри которой нет конденсаторов, резисторов и z-состояний, это всё разложится не совсем корректно и вылезет куча гонок и иголок, которые всё испортят.


Сообщение 29 май 2014, 12:35
Профиль

Зарегистрирован:
28 июн 2013, 20:42
Сообщения: 17
Вопрос знатокам. Какую задержку может дать транзистор или логический элемент в nMOS? Сколько нс сигнал будет идти из одного угла кристалла в другой через 5-10 логических элементов?


Сообщение 29 май 2014, 15:17
Профиль ICQ WWW
Аватара пользователя

Зарегистрирован:
24 июл 2007, 10:41
Сообщения: 570
Перерыл инет, нашёл задержку только для CMOS-инвертора: порядка 100 пикосекунд.


Сообщение 29 май 2014, 23:48
Профиль

Зарегистрирован:
28 июн 2013, 20:42
Сообщения: 17
И то хорошо, хотя это же для современных...

Я к чему спрашиваю. При перепаде CLK 1->0 изменяется состояние счётчика циклов-тактов, всё это проходит через огромные комбинационные схемы, а выходы схем синхронизируются по CLK=1 (триггер по уровню). Так вот если за время нахождения CLK в 0 всё успеет устаканиться - замечательно, можно упрощать и схему, и Verilog. По идее оно так и должно быть, но я пока не уверен.


Сообщение 31 май 2014, 11:56
Профиль ICQ WWW
Аватара пользователя

Зарегистрирован:
24 июл 2007, 10:41
Сообщения: 570
У меня тоже был вопрос - успеет ли схема устаканиться и не разрядятся ли статические латчи, если их периодически не рефрешить. В общем к такому сценарию могут привести только работа процессора с недокументированными инструкциями. Точнее говоря с инструкциями, на которые разработчики положили болт и не стали париться как будут работать резервированные опкоды)

В NMOS очень сложно найти триггеры по фронту, например в 6502 есть один такой, который ловит фронт прерывания NMI, так вот там такая мешанина..)) Чтобы сказать точно - нужно вначале найти триггеры по фронту, они наверняка там есть в небольшом количестве.


Показать сообщения за:  Поле сортировки  
Ответить на тему   [ Сообщений: 28 ]  На страницу 1, 2  След.

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 12


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by STSoftware for PTF (mod by Zeru-j).
Русская поддержка phpBB