nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 19 Mar 2024 00:32



Reply to topic  [ 128 posts ]  Go to page Previous  1, 2, 3, 4, 5, 6, 7, 8, 9  Next
Z80 Finite State Machine 
Author Message
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
pfgx wrote:
Да на этом форуме столько всего написано!.. Надо будет потом отдельно заняться только чтением...

Да я сам его (форум) с год примерно почитывал... жалко некому всё это упорядочить,
ибо - работа огромная!... :(

Но я хоть немного в общих чертах стал представлять где и что у нас лежит... :wink:
Конечно же, Shaos это всё лучше знает и помнит!

_________________
iLavr


09 Jun 2013 10:43
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22383
Location: Silicon Valley
Reply with quote
Post 
Shaos к сожалению не всё помнит - иногда только Search спасает, да и то не всегда...

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


09 Jun 2013 11:13
Profile WWW
Senior

Joined: 20 Mar 2013 03:36
Posts: 137
Location: Ростов-на-Дону
Reply with quote
Post 
Lavr wrote:
Мне кажется, пора бы делать прикидку на соответствие топологии командам z80...

Вот тут можно уже и прикидывать, это "ядро" АЛУ http://yadi.sk/d/-UL-KbU05fDn6

Я нашёл ещё 4 защёлки :) Находятся между выходом АЛУ и младшими разрядами локальной шины. http://yadi.sk/d/75ZpHn-i5fP8M


10 Jun 2013 02:17
Profile
Senior

Joined: 20 Mar 2013 03:36
Posts: 137
Location: Ростов-на-Дону
Reply with quote
Post 
Вопросов пока больше нет? ;)

Попытался нарисовать управление блоком АЛУ. Запутался в сигналах, поэтому продолжил рисовать от instruction register. В направлении к РОН там только комбинационная логика с мелкими вкраплениями триггеров различной конструкции для, например, exx или ex DE,HL. Расположение РОН скорее всего всё-таки соответствует иллюстрации из книги.

Что обработано:
- instruction register
- "распознаватель" команд
- комбинационная логика после "распознавателя"
- комбинационная логика с сигналами от блока управления (почти готово)
- блок АЛУ
- блок РОН

Что осталось:
- логика управления блоком АЛУ, блоком РОН, коммутацией шин и т.п.
- формирование флагов
- блок управления (reset, wait, interrupt, машинные циклы и т.п.)
- подключение выводов D0...D7 к внутренней шине данных
- прочие мелочи

Блок управления наверное будет самым сложным, он занимает 20% площади кристалла, в нём куча логики с обратными связями (триггеры, причём, кажется, многофазные) и нет никакой системы.


15 Jun 2013 03:18
Profile
Senior

Joined: 20 Mar 2013 03:36
Posts: 137
Location: Ростов-на-Дону
Reply with quote
Post 
Картинка ещё раз http://yadi.sk/d/75ZpHn-i5fP8M
Сигнал 10 соединён с 24, а 11 и 25 это инвертированные 10 и 24, то есть одно и то же. Перекрёстное соединение полубайтов видимо используется только для rrd.

Примерный порядок работы блока АЛУ.

С ШД процессора через коммутатор-сдвигатель аргументы записываются в 8-битные регистры (прямоугольные блоки слева и справа). Левый регистр может инвертировать данные.

На АЛУ подаются младшие полубайты (открыты транзисторы, управляемые сигналами 24 и 10), при этом также выход АЛУ соединён с 4-битным регистром (квадратный блок в середине).

На АЛУ подаются старшие полубайты (открыты транзисторы 25 и 11), при этом 4-битный регистр отключается от АЛУ и хранит младший полубайт результата.

Затем подаётся сигнал 15, открываются транзисторы, на локальную шину блока АЛУ подаётся байт результата, активируются драйверы (сигнал 34) и результат попадает на шину процессора.

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


15 Jun 2013 04:32
Profile
Doomed

Joined: 25 Aug 2009 07:02
Posts: 459
Location: Москва
Reply with quote
Post 
А вот интересно, ИП3 круче, чем АЛУ сабжа?


19 Jun 2013 06:29
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
pfgx wrote:
Вопросов пока больше нет? ;)

Попытался нарисовать управление блоком АЛУ. Запутался в сигналах, поэтому продолжил
рисовать от instruction register.

Я не знаю, увидел ты или нет, но вот здесь коллега sheff440 свой вклад в понимание
и объяснение реализации 4-битного АЛУ у Z80 оставил
...

_________________
iLavr


19 Jun 2013 07:04
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
Mixa64 wrote:
А вот интересно, ИП3 круче, чем АЛУ сабжа?

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

Но если сравнивать что называется "в лоб" - то ИП3 - НЕ круче, поскольку
не может делать RAL, RAR, RRC, да и набор флагов победнее будет...

_________________
iLavr


19 Jun 2013 07:09
Profile
Senior

Joined: 20 Mar 2013 03:36
Posts: 137
Location: Ростов-на-Дону
Reply with quote
Post 

Как оно внутри устроено я понял (http://www.nedopc.org/forum/viewtopic.php?p=105741#105741), но к блоку АЛУ подходит около 30 управляющих сигналов, которые формируются отдельной схемой. В эту же схему идёт десяток выходов АЛУ, и она же участвует в формировании флагов. Вот в этой схеме я и запутался.


19 Jun 2013 11:33
Profile
Senior

Joined: 20 Mar 2013 03:36
Posts: 137
Location: Ростов-на-Дону
Reply with quote
Post 
Не с той стороны я рисовать схему начал. Надо было как раз с этой сложной схемы управления, можно было бы хоть как-то внешние сигналы сэмулировать, чтение команды в instruction register, а потом и всё остальное.

Процесс движется, надо будет отдельно заняться упрощением схемы. Сейчас это почти 40 страниц А4 и около 400 сигналов, рисовавшихся по принципу "что вижу, то пою" :)


28 Jun 2013 13:41
Profile
Senior

Joined: 20 Mar 2013 03:36
Posts: 137
Location: Ростов-на-Дону
Reply with quote
Post 
Дорисовал схему управления. На эту схему завязаны все входящие и выходящие управляющие сигналы микропроцессора (CLK, RESET, RD, WR, BUSRQ...), также она содержит два "счётчика" тактов (или FSM, не знаю как точно назвать). Один счётчик считает такты, сброс по условию, второй счётчик несколько сложнее. Выходы счётчиков заведены на огромную комбинационную схему, которая в зависимости от декодированной команды и номера такта (и цикла?) формирует сигналы управления для АЛУ, чтения-записи регистров, сброса счётчиков и т.д.

На рисунке http://yadi.sk/d/hHdabDM46f1UY слева второй счётчик (счётный вход 625, выходы 202...206), справа схема разрешения тактирования этого счётчика (выход 609 комбинируется с CLK и получается 625). То есть условие, при котором меняется состояние этого "счётчика", достаточно сложное.
Сигналы 1xx, 2xx (кроме 20x, это выходы счётчиков) формируются той самой комбинационной схемой.


09 Jul 2013 14:39
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
pfgx wrote:
Выходы счётчиков заведены на огромную комбинационную схему, которая в зависимости от декодированной команды и номера такта (и цикла?) формирует сигналы управления для АЛУ, чтения-записи регистров, сброса счётчиков и т.д.

Ну так "хардварный" он получается наш любимый Z80 - так?

_________________
iLavr


09 Jul 2013 15:05
Profile
Senior

Joined: 20 Mar 2013 03:36
Posts: 137
Location: Ростов-на-Дону
Reply with quote
Post 
Как бы да, но в схеме много "табличных" преобразований.


10 Jul 2013 01:40
Profile
Senior

Joined: 20 Mar 2013 03:36
Posts: 137
Location: Ростов-на-Дону
Reply with quote
Post 
http://yadi.sk/d/s5RRVIjP7cRgA
Похоже что это всё-таки "счётчик" циклов.

Сигнал 627 - запись "10000", сброс. Формируется очень просто: для каждого цикла (их 5, сигналы 206, 205, 204, 203, 202) существует группа команд, при которых формируется сигнал 613. Например, для цикла 206 (первого) это выходы декодера 171, 172, 173, 177. Проверил - да, это одноцикловые команды.

Сигнал 626 - запись "x001x", переход с цикла 1 или 2 на цикл 4. Используются выходы декодера команд 49, 172, 173, 177. Какие это команды сложно сказать, в декодере не всё так просто. (Впрочем, как и везде в этом процессоре.)

Сигнал 609 - переход на следующий цикл. Логику формирования объяснить не возьмусь :)

Вверху схема #BUSRQ и #BUSACK, на неё же заведён 609, то есть запрос будет обработан только после окончания очередного цикла. 606 это, видимо, блокировка тактирования счётчика тактов (сигналы 211, 210, 209, 208...).


06 Aug 2013 03:05
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
pfgx wrote:
...надо будет отдельно заняться упрощением схемы. Сейчас это почти 40 страниц А4
и около 400 сигналов, рисовавшихся по принципу "что вижу, то пою" :)

Ты извини, не подумай, что под работающую руку лезу тебе с советами...

Может в момент "упрощения схемы" тебе перейти к отрисовке в электронном виде?
А то, на мой взгляд, ты скоро с бумажками путаться начнешь...

Элементов у тебя немного - в основном это вентили однотипные... отрисуй их один раз
все по одному красиво, а потом - вставляй методом "копи-паст" и соединяй мышью.

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

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

_________________
iLavr


06 Aug 2013 07:38
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 128 posts ]  Go to page Previous  1, 2, 3, 4, 5, 6, 7, 8, 9  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.