ZXNet эхоконференция «hardware.zx»
тема: Z80 - чтение из памяти
от: Andreas Kaiser
кому: All
дата: 27 Feb 2006
Hello, All
Вот смотрю я на времянку чтения памяти и тупею. Я правильно понимаю, что
действительные данные на шине можно поднимать по спаду третьего периода? А
можно юзать фронт /MREQ + /RD для этого? Маловато времени, в Z180 и то больше.
от: Andreas Kaiser
кому: All
дата: 27 Feb 2006
Hello, jdigreze
jdi> Судя по всему, понимаешь правильно. А по фронту /MREQ и /RD делать
jdi> этого не стоит, так как рискуешь подхватить "нечто" при переходном
jdi> процессе шины данных...
Мда... В который раз убеждаюсь, что японцы пошли на пользу Z80. Спасибо.
Кстати, я так понимаю, что все имеющиеся клоны да и вообще системы на Z80
"реагируют" именно на спад Т3?
jdi> Интересно что чтение команды идет по переднему фронту 3-го такта, а
jdi> чтение данных по заднему...
А как же ещё? При М1 грубо говоря по фронту третьего периода начинается по идее
рефреш. Т.е. к этом моменту шина данных должна быть в Z. Другой вопрос что
мешало им сделать задержку данных на шине на момент с фронта и по спад Т3?
от: Игорь Афонькин
кому: All
дата: 27 Feb 2006
Hello, icebear
Судя по всему, понимаешь правильно. А по фронту /MREQ и /RD делать этого не
стоит, так как рискуешь подхватить "нечто" при переходном процессе шины
данных... Интересно что чтение команды идет по переднему фронту 3-го такта, а
чтение данных по заднему...
от: Andreas Kaiser
кому: All
дата: 01 Mar 2006
Hello, icebear
Hе буду новую тему открывать, вопрос касается чтения, как памяти так и портов
в/в. Итак, согласно DS при считывание из порта в/в вводится автоматом один цикл
ожидания и действительные данные снимаются с шины в промежутке между спадом и
фронтом третьего периода (третьего не по счёту, а потому что счёт идёт Т1, Т2,
Tw и Т3). При чтении из памяти такая же ситуация (за исключением 3-х тактов
вместо 4-х, но один фиг, перепады на последнем периоде играют роль). Я так
думаю, страшно не будет , если данные появятся скажем по спаду Т1 на шине, а
исчезнут по спаду Т3 в обоих случаях (что бы не запутаться с номерами периодов,
посмотрите диаграммы)? Hе охота подгонят именно под рисунок из DS. Ведь при
записи данные долго на шине должны висеть.
от: Andreas Kaiser
кому: All
дата: 02 Mar 2006
Hello, Ronin
Ron> ты скажи на кой тебе это надо ?
Ron>
Ron> в смысле тебе надо проц симитировать ? или девайс правильно
Ron> прикрутить ?
Hу почему сразу спрашивают "зачем это надо"? В своё время всё узнаешь :) Тайны
никакой нет, просто ещё рано.
Ron> если девайс - просят у тебя по rd,mreq данные - так и выдавай хоть
Ron> сразу после rd,mreq но держи до Т3. проц схватит по срезу Т3 - можешь
Ron> снимать.
Ron> в даташите показано когда проц читает, а не когда устройства выдают.
Ron> в промежутках процу вобще плевать что там на ШД твориться - а там
Ron> могут твориться и реальные данные.
Вот, я так и думал. Т.е. я ещё не совсем тупой буратино и тайминги можно
разгрузить. Ура и спасибо.
от: Victor Ronin
кому: All
дата: 02 Mar 2006
Hello, icebear
ты скажи на кой тебе это надо ?
в смысле тебе надо проц симитировать ? или девайс правильно прикрутить ?
если девайс - просят у тебя по rd,mreq данные - так и выдавай хоть сразу после
rd,mreq но держи до Т3. проц схватит по срезу Т3 - можешь снимать.
в даташите показано когда проц читает, а не когда устройства выдают. в
промежутках процу вобще плевать что там на ШД твориться - а там могут твориться
и реальные данные.
от: Дмитрий Демьяненко
кому: All
дата: 03 Mar 2006
Hello, icebear
В КАY данные из памяти защелкиваются каждый положительный перепад сигнала с
частотой 3.5МГц а выставляются на шину данных по MREQ=0 RD=0
от: Дмитрий Демьяненко
кому: All
дата: 03 Mar 2006
Hello, icebear
В КАY данные из памяти защелкиваются каждый положительный перепад сигнала с
частотой 3.5МГц а выставляются на шину данных по MREQ=0 RD=0 и сигнал CLC
процессора находиться в высоком логическом уровне
Запись происходит CLC=1 CAS=0 MREQ=0 RD=1 при эти всех делах формируется сигнал
WE в память
от: Andreas Kaiser
кому: All
дата: 03 Mar 2006
Hello, heroy
her> В КАY данные из памяти защелкиваются каждый положительный перепад
her> сигнала с частотой 3.5МГц а выставляются на шину данных по MREQ=0
her> RD=0
Когда выставляются я уже допёр, спасибо. Мне вот было в основном непонятно,
когда они снимаются. Имеется две библии от Zilog, одна старая, другая та,
которая лежит у них сейчас и в обоих написано немного по-разному, точнее
несходятся они в диаграмме чтения памяти (в новой нарисовано, что данные
снимаются до перепада /MREQ и /RD, в старой, что как раз в момент этого
перепада). В тексте не особо внятно это описано, минской книге я доверяю
меньше, чем библии :) Отсюда собсно и возник вопрос.
от: Victor Ronin
кому: All
дата: 03 Mar 2006
Hello, icebear
ice> Hу почему сразу спрашивают "зачем это надо"? В своё время всё узнаешь
ice> Тайны никакой нет, просто ещё рано.
просто когда знаешь для чего - проще объяснять. а не от праздного любопытства
:D
от: Andreas Kaiser
кому: All
дата: 03 Mar 2006
Hello, Ronin
Ron> блин только что заметил что min time16=0ns !!! (а max ессно не
Ron> нормирован) хаха вот как.
Hу вот, как только /RD сняли - данный тю-тю. И в UM именно так и нарисовано.
Хотя для меня это не критично, до конца Т3 шину осободить успею.
от: Andreas Kaiser
кому: All
дата: 03 Mar 2006
Hello, Ronin
Ron> читай не юз/ман um0080.pdf а криво отсканеный прод/спек ps0178.pdf -
Ron> там на fig.6 pag.25 времена разрисованы.
Это была моя вторая библия
Ron> Только нафига тебе это надо не понимаю - там все также относительно
Ron> спада Т3 разрисовано.
Так да не так. Именно поэтому и возникли вопросы. В UM по спаду Т3 уже данные
ёк, а в PS данные ещё некоторое время висят после этого спада. Т.е. согласно PS
именно момент спада Т3 есть момент, когда процессор поднимает данные шины. Я
уже разобрался, спасибо. Кстати, в Z180 такая же бадяга.
от: Victor Ronin
кому: All
дата: 03 Mar 2006
Hello, icebear
ice> В тексте не особо внятно это описано, минской книге я доверяю
ice> меньше, чем библии Отсюда собсно и возник вопрос.
читай не юз/ман um0080.pdf а криво отсканеный прод/спек ps0178.pdf - там на
fig.6 pag.25 времена разрисованы. Только нафига тебе это надо не понимаю - там
все также относительно спада Т3 разрисовано.
блин только что заметил что min time16=0ns !!! (а max ессно не нормирован) хаха
вот как.
Файл: time16.gif http://zx.pk.ru/attachment.php?attachmentid=2734
Файл: fig6pag25.zip http://zx.pk.ru/attachment.php?attachmentid=2733
от: Victor Ronin
кому: All
дата: 03 Mar 2006
Hello, icebear
ice> Hу вот, как только /RD сняли - данный тю-тю. И в UM именно так и
ice> нарисовано. Хотя для меня это не критично, до конца Т3 шину осободить
ice> успею.
данные проц читает по срезу Т3, но холлд до снятия RD/ видимо нужен (так в PS
нарисовано). хотя на практике наверно необязательно.
данные проц снять с ШД не может - не он выставлял :)
убирать их можно сразу после снятия RD/, а можно и подождать покурить (точнее
это время получается в результате задержки в элементах от RD/ до Z-буфера
данных - и оно ненулевое)
от: Andreas Kaiser
кому: All
дата: 06 Mar 2006
Hello, jdigreze
jdi> Главное успеть покурить до переднего фронта следующего такта ;)
jdi> Скорее всего данные нужно "снять" когда /RD "впадет в спячку", т.е.
jdi> "1"
Именно так и сделано на данный момент.
от: Игорь Афонькин
кому: All
дата: 06 Mar 2006
Hello, Ronin
Главное успеть покурить до переднего фронта следующего такта ;)
Скорее всего данные нужно "снять" когда /RD "впадет в спячку", т.е. "1"
|