PDA

Просмотр полной версии : Z80 - чтение из памяти



icebear
27.02.2006, 19:29
Вот смотрю я на времянку чтения памяти и тупею. Я правильно понимаю, что действительные данные на шине можно поднимать по спаду третьего периода? А можно юзать фронт /MREQ + /RD для этого? Маловато времени, в Z180 и то больше.

James DiGreze
27.02.2006, 19:51
Судя по всему, понимаешь правильно. А по фронту /MREQ и /RD делать этого не стоит, так как рискуешь подхватить "нечто" при переходном процессе шины данных... Интересно что чтение команды идет по переднему фронту 3-го такта, а чтение данных по заднему...

icebear
27.02.2006, 20:04
Судя по всему, понимаешь правильно. А по фронту /MREQ и /RD делать этого не стоит, так как рискуешь подхватить "нечто" при переходном процессе шины данных...

Мда... В который раз убеждаюсь, что японцы пошли на пользу Z80. Спасибо.
Кстати, я так понимаю, что все имеющиеся клоны да и вообще системы на Z80 "реагируют" именно на спад Т3?


Интересно что чтение команды идет по переднему фронту 3-го такта, а чтение данных по заднему...

А как же ещё? При М1 грубо говоря по фронту третьего периода начинается по идее рефреш. Т.е. к этом моменту шина данных должна быть в Z. Другой вопрос что мешало им сделать задержку данных на шине на момент с фронта и по спад Т3?

icebear
01.03.2006, 19:48
Не буду новую тему открывать, вопрос касается чтения, как памяти так и портов в/в. Итак, согласно DS при считывание из порта в/в вводится автоматом один цикл ожидания и действительные данные снимаются с шины в промежутке между спадом и фронтом третьего периода (третьего не по счёту, а потому что счёт идёт Т1, Т2, Tw и Т3). При чтении из памяти такая же ситуация (за исключением 3-х тактов вместо 4-х, но один фиг, перепады на последнем периоде играют роль). Я так думаю, страшно не будет , если данные появятся скажем по спаду Т1 на шине, а исчезнут по спаду Т3 в обоих случаях (что бы не запутаться с номерами периодов, посмотрите диаграммы)? Не охота подгонят именно под рисунок из DS. Ведь при записи данные долго на шине должны висеть.

icebear
02.03.2006, 11:37
Ну что, нет идей по вышеуказаному вопросу? Хорошо, спрошу по-другому у бывших и действующих разработчиков: в цикле считывания из порта в/в или памяти, когда выставляются данные на шину данных и когда они оттуда "удаляются"?

Ronin
02.03.2006, 17:19
ты скажи на кой тебе это надо ?

в смысле тебе надо проц симитировать ? или девайс правильно прикрутить ?

если девайс - просят у тебя по rd,mreq данные - так и выдавай хоть сразу после rd,mreq но держи до Т3. проц схватит по срезу Т3 - можешь снимать.
в даташите показано когда проц читает, а не когда устройства выдают. в промежутках процу вобще плевать что там на ШД твориться - а там могут твориться и реальные данные.

icebear
02.03.2006, 17:31
ты скажи на кой тебе это надо ?

в смысле тебе надо проц симитировать ? или девайс правильно прикрутить ?

Ну почему сразу спрашивают "зачем это надо"? В своё время всё узнаешь :) Тайны никакой нет, просто ещё рано.


если девайс - просят у тебя по rd,mreq данные - так и выдавай хоть сразу после rd,mreq но держи до Т3. проц схватит по срезу Т3 - можешь снимать.
в даташите показано когда проц читает, а не когда устройства выдают. в промежутках процу вобще плевать что там на ШД твориться - а там могут твориться и реальные данные.

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

ZEK
03.03.2006, 03:07
В КАY данные из памяти защелкиваются каждый положительный перепад сигнала с частотой 3.5МГц а выставляются на шину данных по MREQ=0 RD=0

Запись происходит CAS=0 MREQ=0 RD=1 и текущее время доступа к памяти принадлежит процу при эти всех делах формируется сигнал WE в память. В режиме турбо чуть по хуже там процессору сигнал WAIT подсовываю пока его очередь не наступит

Ronin
03.03.2006, 10:06
Ну почему сразу спрашивают "зачем это надо"? В своё время всё узнаешь Тайны никакой нет, просто ещё рано.
просто когда знаешь для чего - проще объяснять. а не от праздного любопытства :D

icebear
03.03.2006, 12:10
В КАY данные из памяти защелкиваются каждый положительный перепад сигнала с частотой 3.5МГц а выставляются на шину данных по MREQ=0 RD=0

Когда выставляются я уже допёр, спасибо. Мне вот было в основном непонятно, когда они снимаются. Имеется две библии от Zilog, одна старая, другая та, которая лежит у них сейчас и в обоих написано немного по-разному, точнее несходятся они в диаграмме чтения памяти (в новой нарисовано, что данные снимаются до перепада /MREQ и /RD, в старой, что как раз в момент этого перепада). В тексте не особо внятно это описано, минской книге я доверяю меньше, чем библии :) Отсюда собсно и возник вопрос.

Ronin
03.03.2006, 14:07
В тексте не особо внятно это описано, минской книге я доверяю меньше, чем библии Отсюда собсно и возник вопрос.
читай не юз/ман um0080.pdf а криво отсканеный прод/спек ps0178.pdf - там на fig.6 pag.25 времена разрисованы. Только нафига тебе это надо не понимаю - там все также относительно спада Т3 разрисовано.

блин только что заметил что min time16=0ns !!! (а max ессно не нормирован) хаха вот как.

icebear
03.03.2006, 14:27
читай не юз/ман um0080.pdf а криво отсканеный прод/спек ps0178.pdf - там на fig.6 pag.25 времена разрисованы.

Это была моя вторая библия


Только нафига тебе это надо не понимаю - там все также относительно спада Т3 разрисовано.

Так да не так. Именно поэтому и возникли вопросы. В UM по спаду Т3 уже данные ёк, а в PS данные ещё некоторое время висят после этого спада. Т.е. согласно PS именно момент спада Т3 есть момент, когда процессор поднимает данные шины. Я уже разобрался, спасибо. Кстати, в Z180 такая же бадяга.

icebear
03.03.2006, 14:40
блин только что заметил что min time16=0ns !!! (а max ессно не нормирован) хаха вот как.

Ну вот, как только /RD сняли - данный тю-тю. И в UM именно так и нарисовано. Хотя для меня это не критично, до конца Т3 шину осободить успею.

Ronin
03.03.2006, 16:17
Ну вот, как только /RD сняли - данный тю-тю. И в UM именно так и нарисовано. Хотя для меня это не критично, до конца Т3 шину осободить успею.
данные проц читает по срезу Т3, но холлд до снятия RD/ видимо нужен (так в PS нарисовано). хотя на практике наверно необязательно.
данные проц снять с ШД не может - не он выставлял :)
убирать их можно сразу после снятия RD/, а можно и подождать покурить (точнее это время получается в результате задержки в элементах от RD/ до Z-буфера данных - и оно ненулевое)

James DiGreze
06.03.2006, 11:11
Главное успеть покурить до переднего фронта следующего такта ;)
Скорее всего данные нужно "снять" когда /RD "впадет в спячку", т.е. "1"

icebear
06.03.2006, 12:03
Главное успеть покурить до переднего фронта следующего такта ;)
Скорее всего данные нужно "снять" когда /RD "впадет в спячку", т.е. "1"

Именно так и сделано на данный момент.