Вот смотрю я на времянку чтения памяти и тупею. Я правильно понимаю, что действительные данные на шине можно поднимать по спаду третьего периода? А можно юзать фронт /MREQ + /RD для этого? Маловато времени, в Z180 и то больше.
Вид для печати
Вот смотрю я на времянку чтения памяти и тупею. Я правильно понимаю, что действительные данные на шине можно поднимать по спаду третьего периода? А можно юзать фронт /MREQ + /RD для этого? Маловато времени, в Z180 и то больше.
Судя по всему, понимаешь правильно. А по фронту /MREQ и /RD делать этого не стоит, так как рискуешь подхватить "нечто" при переходном процессе шины данных... Интересно что чтение команды идет по переднему фронту 3-го такта, а чтение данных по заднему...
Мда... В который раз убеждаюсь, что японцы пошли на пользу Z80. Спасибо.Цитата:
Сообщение от jdigreze
Кстати, я так понимаю, что все имеющиеся клоны да и вообще системы на Z80 "реагируют" именно на спад Т3?
А как же ещё? При М1 грубо говоря по фронту третьего периода начинается по идее рефреш. Т.е. к этом моменту шина данных должна быть в Z. Другой вопрос что мешало им сделать задержку данных на шине на момент с фронта и по спад Т3?Цитата:
Сообщение от jdigreze
Не буду новую тему открывать, вопрос касается чтения, как памяти так и портов в/в. Итак, согласно DS при считывание из порта в/в вводится автоматом один цикл ожидания и действительные данные снимаются с шины в промежутке между спадом и фронтом третьего периода (третьего не по счёту, а потому что счёт идёт Т1, Т2, Tw и Т3). При чтении из памяти такая же ситуация (за исключением 3-х тактов вместо 4-х, но один фиг, перепады на последнем периоде играют роль). Я так думаю, страшно не будет , если данные появятся скажем по спаду Т1 на шине, а исчезнут по спаду Т3 в обоих случаях (что бы не запутаться с номерами периодов, посмотрите диаграммы)? Не охота подгонят именно под рисунок из DS. Ведь при записи данные долго на шине должны висеть.
Ну что, нет идей по вышеуказаному вопросу? Хорошо, спрошу по-другому у бывших и действующих разработчиков: в цикле считывания из порта в/в или памяти, когда выставляются данные на шину данных и когда они оттуда "удаляются"?
ты скажи на кой тебе это надо ?
в смысле тебе надо проц симитировать ? или девайс правильно прикрутить ?
если девайс - просят у тебя по rd,mreq данные - так и выдавай хоть сразу после rd,mreq но держи до Т3. проц схватит по срезу Т3 - можешь снимать.
в даташите показано когда проц читает, а не когда устройства выдают. в промежутках процу вобще плевать что там на ШД твориться - а там могут твориться и реальные данные.
Ну почему сразу спрашивают "зачем это надо"? В своё время всё узнаешь :) Тайны никакой нет, просто ещё рано.Цитата:
Сообщение от Ronin
Вот, я так и думал. Т.е. я ещё не совсем тупой буратино и тайминги можно разгрузить. Ура и спасибо.Цитата:
Сообщение от Ronin
В КАY данные из памяти защелкиваются каждый положительный перепад сигнала с частотой 3.5МГц а выставляются на шину данных по MREQ=0 RD=0
Запись происходит CAS=0 MREQ=0 RD=1 и текущее время доступа к памяти принадлежит процу при эти всех делах формируется сигнал WE в память. В режиме турбо чуть по хуже там процессору сигнал WAIT подсовываю пока его очередь не наступит
просто когда знаешь для чего - проще объяснять. а не от праздного любопытства :DЦитата:
Сообщение от icebear
Когда выставляются я уже допёр, спасибо. Мне вот было в основном непонятно, когда они снимаются. Имеется две библии от Zilog, одна старая, другая та, которая лежит у них сейчас и в обоих написано немного по-разному, точнее несходятся они в диаграмме чтения памяти (в новой нарисовано, что данные снимаются до перепада /MREQ и /RD, в старой, что как раз в момент этого перепада). В тексте не особо внятно это описано, минской книге я доверяю меньше, чем библии :) Отсюда собсно и возник вопрос.Цитата:
Сообщение от heroy
читай не юз/ман um0080.pdf а криво отсканеный прод/спек ps0178.pdf - там на fig.6 pag.25 времена разрисованы. Только нафига тебе это надо не понимаю - там все также относительно спада Т3 разрисовано.Цитата:
Сообщение от icebear
блин только что заметил что min time16=0ns !!! (а max ессно не нормирован) хаха вот как.
Это была моя вторая библияЦитата:
Сообщение от Ronin
Так да не так. Именно поэтому и возникли вопросы. В UM по спаду Т3 уже данные ёк, а в PS данные ещё некоторое время висят после этого спада. Т.е. согласно PS именно момент спада Т3 есть момент, когда процессор поднимает данные шины. Я уже разобрался, спасибо. Кстати, в Z180 такая же бадяга.Цитата:
Сообщение от Ronin
Ну вот, как только /RD сняли - данный тю-тю. И в UM именно так и нарисовано. Хотя для меня это не критично, до конца Т3 шину осободить успею.Цитата:
Сообщение от Ronin
данные проц читает по срезу Т3, но холлд до снятия RD/ видимо нужен (так в PS нарисовано). хотя на практике наверно необязательно.Цитата:
Сообщение от icebear
данные проц снять с ШД не может - не он выставлял :)
убирать их можно сразу после снятия RD/, а можно и подождать покурить (точнее это время получается в результате задержки в элементах от RD/ до Z-буфера данных - и оно ненулевое)
Главное успеть покурить до переднего фронта следующего такта ;)
Скорее всего данные нужно "снять" когда /RD "впадет в спячку", т.е. "1"
Именно так и сделано на данный момент.Цитата:
Сообщение от jdigreze