|
nedoPC.orgElectronics hobbyists community established in 2002 |
|
SpetSvga-2011 --> ТурбоСпец/MiniWhiz-2023
Author |
Message |
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22793 Location: Silicon Valley
|
Пытаюсь разобраться как в MX^2 тактируется Z80... В схеме, что железочел тут оставил в 2011 году, всё было просто: (N2M это инвертированные 2.5 МГц) А вот в последней схеме MX^2, что недавно Fifan выложил, есть замысловатости: Или FSL это и есть та самая кнопка замедления, которая переключает из 2.5 МГц в 2 МГц? Я тут части формирователя фаз для i8080 тоже вытащил на картинку т.к они там тоже замешаны, а в старой схеме F2 получался непосредственно из 2.5 МГц (которые там назывались 2M):
|
20 Feb 2023 20:25 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22793 Location: Silicon Valley
|
Я правильно понимаю, что асинхронный счётчик DD6 считает до 10 т.к. сбрасывается на цифре 10 (1010)? И выход Q находится в 1 в последних двух тактах, т.е. 0 0 0 0 0 0 0 0 1 1 QT это запомненное на триггере значение кнопки FSL - причём запоминание происходит по фронту сигнала Q FSL' это !(QT & Q) и далее оно гейтует тактирование на оба проца. Если QT=0, то FSL'=1 всегда и оба проца просто получают 2.5 МГц в качестве клока. Если QT=1, то FSL' будет 1 только 4/5 времени - пропуская каждый пятый такт?
|
20 Feb 2023 22:24 |
|
|
fifan
Devil
Joined: 06 Oct 2006 03:17 Posts: 858 Location: г.Лянтор,Сургутского р-на,ХМАО
|
Всё верно в рассуждениях.
|
20 Feb 2023 22:28 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22793 Location: Silicon Valley
|
Я как-то всё равно не улавливаю в каком месте находится та самая хитрость, которая позволяет Z80 не конфликтовать с граф.контроллером?... P.S. Кстати я у себя могу сделать аналогичное замедление 3.5 МГц, используя 3/5 вместо 4/5 (скажем по схеме 0 0 1 1 0 0 0 0 1 1 вместо 0 0 0 0 0 0 0 0 1 1), что даст эквивалент 2.1 МГц - почти что классические 2 P.P.S. О - а если программно разрешить переключать это наряду с кнопкой и турбами? т.е. тут сможет работать Z80 на 16 и на 20 МГц (хотя в данный момент у нас доставаемы только 20 МГц в DIP40) P.P.P.S. Кстати такой момент - чтобы влезть в стандартные времянки SVGA 800x600@60 я выбрал неровное количество точек, которое не кратно восьми - 739. Получается, что в последнем неполном "знакоместе" будет 3 "бесхозных" пиксела, в течение которых проц лучше бы не тактировать и к началу следующей строки нужно будет обнулить этот счётчик тактов, чтобы он начал считать сначала строки с "правильной ноги" т.е. фактически частота "непрореженного" процессора будет не 3.5 МГц, а 3.486 МГц, что на 0.4% меньше ожидаемого, а "прореженного" по схеме 3/5 - 2.084 МГц т.к. в 92.375 знакомест каждой строки будет попадать ровно 55 рабочих тактов. P.P.P.P.S. Можно на плате иметь кнопочку, переключающую режимы и 2 семисегментных индикатора, которые будут показывать текущую частоту
|
20 Feb 2023 22:32 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22793 Location: Silicon Valley
|
По поводу вейтов - поглядим на режимы и нарезку памяти MX^2: На частотах 7 или 14 МГц в режиме 0 и 3 выставляем /WAIT по /MREQ или /IORQ если пробегается зона графики (это 21% кадра для 384x256, 53% для 480x256 и 56% для 512x256). В режиме 1 делаем это только если обращение идёт к памяти выше #FFC0 (т.к. ниже идёт доп.память, которую вейтить ненадо т.к. она совсем сбоку). В режиме 2 память наполовину заполнена медленным (скорее всего) ПЗУ, поэтому тут наверное турбу надо вообще сбрасывать. Также надо сбрасывать турбу, если в режиме 3 подключено ПЗУ вместо ОЗУ (при сбросе турбы уже ничего вейтить ненадо). P.S. Надо подумать может быть ещё нужно вейтить разогнанный проц при обращении в область портов ввода-вывода в независимости от графики - просто чтобы успело вычитать что-то из медленных ВВ55х (современные 82C55 умеют максимум 8 МГц)...
|
21 Feb 2023 00:53 |
|
|
fifan
Devil
Joined: 06 Oct 2006 03:17 Posts: 858 Location: г.Лянтор,Сургутского р-на,ХМАО
|
Мне идея с индикатором частоты понравилась.
Last edited by fifan on 23 Feb 2023 06:07, edited 1 time in total.
|
21 Feb 2023 04:13 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
А ты это смоделируй, а то на словах слишком замысловато... И у Железного Дровосека была фраза "мы воруем у процессора...", вот что воруем - уже забыл я. А фраза почему-то запомнилась...
_________________ iLavr
|
21 Feb 2023 09:45 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22793 Location: Silicon Valley
|
Ну я типа смоделировал - в голове
|
21 Feb 2023 19:08 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22793 Location: Silicon Valley
|
Возможно надо сделать чтение взад как минимум одного регистра - старших битов адреса. Заодно можно туда примешать битики кадрового синхроимпульса и даже наврное строчного синхроимпульса Это чтобы можно было без торможения читать их сосотяние - скажем по адресу #FFFF. А чтение из порта COL можно замкнуть на чтение текущего байта цвета - в этом случае можно будет всякие хитрые штуки делать Цена вопроса - два буфера плюс 2 гейта OR Пока наверное mini-ITX/DTX c ISA-слотами делать рано - туда ведь ещё и контроллер USB-клавы (и мыши) на PIC24 городить придётся Наверное для начала надо выкатить то, что я и планировал в 2011 году: Можно бортовую клавку сразу QWERTY сделать и даже с кнопочками Cherry-MX - тогда будет оправдано название MX2023 Пока для простоты можно в русскоязычной обстановке ссылаться на это поделие как "ТурбоСпец" ТурбоСпец Rev.A не будет иметь аппаратного текстового режима и графического режима "цвет на точку" (там надо ещё думать), но будет иметь режим турбо Работы с портами как с портами и ISA-слотов также пока не предвидится ( можно сделать пару разъёмов MX-BUS как в MX^2 - так сказать для преемственности поколений : )
|
21 Feb 2023 19:44 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22793 Location: Silicon Valley
|
Ввиду того, что на цепочку счётчиков знакомест в качестве тактирования идёт прямой сигнал 2M5, а не инверсный, то это значит, что ALD приходится на середину знакоместа? Надо просмотреть внимательно как стробируется сдвигатель пикселов... По старой схеме STB = 2M & !5M & 10M Ещё есть сигнал S/C = 2M & !5M, который выбирает какие адресные биты подключаются к адресам основной памяти и памяти цвета В новой схеме STB = 2M5 & 5M & 10M и S/C = 2M5 & 5M (т.е. похоже на старую схему, но только 5M не инвертированный) т.е. из этих сигналов S/C самый широкий, к его концу примыкает STB, к концу которого примыкает ALD: Либо тут не важно в каком месте начинается X0 (нулевой бит номера знакоместа), а в каком заканчивается - главное, чтобы во время этих стробов адресный сигнал был стабильный? И похоже стробы с клоком, что на проц идёт, вполне единообразно выводятся - что в старой схеме, что в новой (хотя в новой X0 уже в 1 при первом стробе). И это видимо как-то соотносится с реалиями Z80:
|
21 Feb 2023 22:28 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22793 Location: Silicon Valley
|
Я понял - в MX^2 видимая часть экрана начинается только на 16-м знакоместе, поэтому ничего страшного нету в том, что нулевое знакоместо "потерялось", но в моём варианте его терять нельзя т.к. у меня видимая часть экрана начинается прям сразу же (хотя в начале строки у меня тоже не графика будет, а бордюр) - можно попробовать остаться в парадигме более ранней схемы хардыча, но сделать сквозной синхронный счёт: тут видно, что графика как бы сдвинута на 6 пикселов вправо - наверное это надо учитывать при выборе моментов, в которые надо начинать и заканчивать рисовать бордюр (хотя бордюр тоже кратный знакоместам будет и его будут выводить те же самые сдвиговые регистры). P.S. Также я там пририсовал циклы ожидания для турбо-режимов - выходит, что на фоне графики теряться будут половина циклов (в худшем случае). Наверное 7 МГц можно и без вейтов нагородить, если применить пентагоновский трюк с регистром, но мне пока неохота на эту тему голову ломать...
|
23 Feb 2023 00:21 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22793 Location: Silicon Valley
|
Либо можно попробовать сделать некое гибридное решение - сквозной счёт, но формирование управляющих сигналов, как в более новой схеме MX^2: В этом случае графика будет сдвинута на 8 пикселов (т.е. ровно одно знакоместо) - это надо будет учесть при вычислении номеров для начала и конца бордюра и рабочей графики...
|
23 Feb 2023 02:27 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22793 Location: Silicon Valley
|
А можно ведь и синхронную тормозилку сделать - без дополнительного счётчика - прямо на основных счётчиках - пускать такты на проц каждые 9 из 16 - это будет эквивалентно 3.5/16*9=1.96875 МГц, а с учётом неровности строк оно будет случаться 52 раза из 92.375 возможных т.е. 1.97 МГц, но можно исхитриться и сделать 53 раза - тогда оно уже будет совсем близко - 2.008 МГц. Кстати надо померять на сколько в среднем Z80 по тактам быстрее, чем i8080, например воспользовавшись статистикой, набранной мною в эмуляторе Ориона где-то в нулевых и озвученной тут на форуме в 2011 году.
|
24 Feb 2023 05:08 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22793 Location: Silicon Valley
|
Вобщем вот что получилось - взял Top60 опкодов, которые покрывают 95% всех команд выполняемых в моём эмуляторе Ориона, и посчитал общее покрытие для 8080, 8085 и Z80 (там где давались 2 цифры - типа успешная/неуспешная проверка - я просто ставил среднее арифметическое, предположив, что вероятности пойти по тому или иному пути равносильны): Получается, что 2.0 МГц 8080 примерно соответствует 1.9336 МГц 8085 или 1.9689 МГц z80 (т.е. z80 в среднем на 1.58% быстрее, чем 8080 при такой же тактовой частоте) - выходит получившиеся выше 1.97 МГц будут ок. P.S. На следующий вечер перезалил табличку т.к. некоторые цифры были не верные для 8085 - сейчас вроде всё норм ( 8085 на 8080-м подмножестве инструкций даже быстрее z80 оказался ; )
|
24 Feb 2023 06:25 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22793 Location: Silicon Valley
|
Вот пришли парочка мелких с DigiKey и парочка крупных с eBay - можно начинать экспериментировать
|
25 Feb 2023 20:55 |
|
|
Who is online |
Users browsing this forum: No registered users and 6 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
|
|