Z80 Finite State Machine

Микропроцессоры и микроконтроллеры от фирмы Zilog, а также компьютеры на них построенные

Moderator: Shaos

pfgx
Senior
Posts: 137
Joined: 20 Mar 2013 03:36
Location: Ростов-на-Дону

Post by pfgx »

Почти готов третий слой, осталось частично АЛУ, регистры и логика, работающая с управляющими выводами процессора (#RD, #WR...). В некоторых местах плохо видно, но может и без них можно обойтись.

Попробовал нарисовать схему подключения регистров к шине данных, вроде получилось. http://yadi.sk/d/-4nYjbYf5Voxa
Дальше будет управление регистрами, а потом попробую АЛУ, но там вообще жесть. Или может вас что-то другое в первую очередь интересует? ;)
User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

pfgx wrote:Дальше будет управление регистрами, а потом попробую АЛУ, но там вообще жесть.
Или может вас что-то другое в первую очередь интересует? ;)
А на уровне логических элементов и вентилей это никак не получается?
А то ты тратишь время и работу делаешь интересную, но только сколь это полезно
кому-либо в виде транзисторов?
iLavr
pfgx
Senior
Posts: 137
Joined: 20 Mar 2013 03:36
Location: Ростов-на-Дону

Post by pfgx »

Lavr wrote:А на уровне логических элементов и вентилей это никак не получается?
А то ты тратишь время и работу делаешь интересную, но только сколь это полезно кому-либо в виде транзисторов?
Пока на уровне логических элементов никак не получается, потому что не понимаю как это работает целиком. Полезно в первую очередь мне самому, в любом виде.

Вообще я хотел z80 на макетке запустить и вытащить подробности его работы, в том числе недокументированные, а по ним уже попытаться создать какую-то схему, которая вела себя так же. Но раз попались фотографии кристалла, то почему бы и нет? Вот и рисую транзисторы, потом буду в логику переводить. А чтобы проверить нет ли ошибок в этой логике - буду проверять на реальном процессоре.
User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

pfgx wrote:Пока на уровне логических элементов никак не получается, потому что не понимаю как это работает целиком.
Наш Хардыч, помнится, где-то участвовал в аналогичном проекте и они там вроде как
приспособились переводить эти транзисторные схемы в логику.
Может быть - он подскажет...

Мне же попадалось похожее вот в этом американском патенте:
US3564226 Pat. Electronic calculator or digital processor chip having multiple function
Посмотри его - может поможет... (по ссылке - "Загрузить PDF")

Всё же отрисовать 8500 транзисторов - не многовато ли будет? :o
iLavr
pfgx
Senior
Posts: 137
Joined: 20 Mar 2013 03:36
Location: Ростов-на-Дону

Post by pfgx »

Lavr wrote:Всё же отрисовать 8500 транзисторов - не многовато ли будет? :o
Один разряд: 12 регистров по 4 транзистора на бит плюс 2 на выборку - 72, на чтение-запись ещё 18, итого 90 на разряд. Разрядов 16, 90*16=1440 транзисторов уже "отрисовано" :)

Как транзисторы в логику перевести я в принципе понимаю. Практики не было.
pfgx
Senior
Posts: 137
Joined: 20 Mar 2013 03:36
Location: Ростов-на-Дону

Post by pfgx »

Срисовал всю регистровую часть: регистры, запись-чтение, 16-битный инкремент-декремент, формирование адреса. Ну и другие модули немного. Кое-где есть "зависающие в воздухе" затворы при #CLK=0.

Как вы думаете, почему у регистра R инкрементируются только 7 бит, а старший не меняется? ;)
User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

pfgx wrote:Дальше будет управление регистрами, а потом попробую АЛУ, но там вообще жесть.
Или может вас что-то другое в первую очередь интересует? ;)
Слушай, мне вот кажется, что АЛУ потрясающих открытий нам не даст, т.к. мы неплохо
представляем принцип его работы...

А вот весь участок, выделенный на рисунке, ты не мог бы срисовать и объяснить?

Image

Мы так и не поняли назначение вот этого "молотка", и как 8-битный путь данных
становится 4-битным и обратно.
Где-то же должны быть мультиплексоры, как мне кажется, хотя здесь их вроде как
принято называть коммутаторы...
iLavr
pfgx
Senior
Posts: 137
Joined: 20 Mar 2013 03:36
Location: Ростов-на-Дону

Post by pfgx »

Lavr wrote:А вот весь участок, выделенный на рисунке, ты не мог бы срисовать и объяснить?
Интересный рисунок. Откуда он? Очень похож, по-моему даже порядок регистров совпадает с кристаллом.

Мультиплексоров (как я понимаю это слово) у процессора нет, у него действительно коммутаторы, то есть просто транзисторы "в разрыв". И входы-выходы во всей схеме понятие относительное, что для меня очень непривычно.

Срисовать придётся всё АЛУ, потому что всё очень плотно расположено и где что я с первого взгляда понять не могу. T и AC по-моему находятся внутри АЛУ, да и тактовый сигнал куда-то в АЛУ заведён вместе с остальными тремя десятками управляющих сигналов.
User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

pfgx wrote:Интересный рисунок. Откуда он? Очень похож, по-моему даже порядок регистров совпадает с кристаллом.
Shaos wrote:Вот блок-схема из книжки F. Anceau. The Architecture of Microprocessors. Workingham, England: Addison-Wesley, 1986.
Собственно, видимо, это пока единственный найденный нами печатный источник,
где блок-схему z80 приводят, учитывая 4-битность.
Обычно - фальшиво показывают его 8-битным полностью.

Но Shaos говорит - особых комментариев с подробностями к этому рисунку в книге нет.
iLavr
User avatar
Shaos
Admin
Posts: 24014
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Вот тут обсуждалось же:

viewtopic.php?t=9215
Я тут за главного - если что шлите мыло на me собака shaos точка net
pfgx
Senior
Posts: 137
Joined: 20 Mar 2013 03:36
Location: Ростов-на-Дону

Post by pfgx »

Shaos wrote:Вот тут обсуждалось же:
Головы не хватает всё удерживать, я уже стал за собой замечать что и читаю через строчку, особенно когда чем-то занят... чем-то вроде срисовывания схемы микропроцессора :)

Завтра начну с шины данных и пойду в сторону АЛУ. Тем более что уже пора замеченное упорядочить в виде блок-схемы, самому же проще будет.
pfgx
Senior
Posts: 137
Joined: 20 Mar 2013 03:36
Location: Ростов-на-Дону

Post by pfgx »

О микрокоде (там обсуждалось viewtopic.php?t=7790 )

- instruction register
- декодер примерно на 100 выходов, распознающий команды и группы команд
- блок многовходовых ИЛИ-НЕ (штук 50), на них заведены выходы декодера
- штук 80 элементов И-ИЛИ-НЕ, ИЛИ-И-НЕ, которые в основном обрабатывают сигналы с 11 линий, идущих из управляющего блока (halt, wait, busrq и т.п.),
- выходы этих элементов идут на АЛУ, блок регистров, и прочее управление

Если микрокодом считать регулярную структуру логических элементов, которая что-то декодирует и выдаёт управляющие сигналы, то там таких структур, если не придираться к регулярности, аж три штуки.
Mixa64
Doomed
Posts: 480
Joined: 25 Aug 2009 07:02
Location: Москва

Post by Mixa64 »

pfgx wrote:Как вы думаете, почему у регистра R инкрементируются только 7 бит, а старший не меняется? ;)
Тот, который адрес регенерируемой строки держит? А что тут думать, DRAM того времени не более 128 усилителей строк имели.
pfgx
Senior
Posts: 137
Joined: 20 Mar 2013 03:36
Location: Ростов-на-Дону

Post by pfgx »

Mixa64 wrote: А что тут думать, DRAM того времени не более 128 усилителей строк имели.
Да? А я о другом подумал. У схемы inc/dec чёткая структура, I и R хранятся как 16-битное значение, а блокировку переноса было очень удобно сделать именно в этом разряде, потому что на нём как раз схема ускоренного переноса. Или наоборот, ускоренный перенос сделали в этом разряде, чтобы блокировку добавить? Или просто так совпало?

Не покидает ощущение, что при проектировании было две основных проблемы "куда впихнуть желаемое" и "чего б такого добавить в оставшееся место" :) и всё это без возможности выделить/скопировать/вырезать/вставить.
Mixa64
Doomed
Posts: 480
Joined: 25 Aug 2009 07:02
Location: Москва

Post by Mixa64 »

Mixa64 wrote:DRAM того времени не более 128 усилителей строк имели.
Неверно, 128 строк регенерации, усилители это CAS. RAS это выбор ячейки в плече усилителя, по 64 в плече стало быть.