Забавно, что поГрамисту со стажем нужно объяснять, что это такое, может у зилог изменилась политика, давно не интересуюсь, лет 7 :) надеюсь сможешь,
Это MCU, не CPU, но если хочешь будет CPU
Вид для печати
А к геймплею он имеет отношение? Я запускаю игруху( неважно из какой операционки и какого командера), код начал выполняться на ЦП. И вот где-то ближе к началу программы у меня по задумке надо проиграть видео большего, чем стандартного разрешения. Допустим 640x480 256 цветов на точку. Монитор поддерживает режим? Да. Видео лежит где-то в памяти платы расширения памяти? Положим ( не через один только проц загрузили с флэхи перед запуском игры) да лежит. Программа на ЦП убедилась по статусам что все o'k? Если действительно все o'k, она с помощью стандартной процедуры переключает ФИЗИЧЕСКИ видеовыходы( отрубает стандартный, подрубает видеовыход платы расширения видео) и без участия ЦП промулькивает мне его на дисплее. Что непонятно? Но поскольку клавиатура продолжает генерить прерывания на ЦП, то при нажатии на определенную клавишу, процесс прокручивания видео прерывается, видеовыход платы расширения ФИЗИЧЕСКИ отключается и включается стандартный видеовыход. Процесс геймплея продолжается. Если надо параллельно воспроизводить нестандартный звук, то точно также на вход усилителя НЧ идет сигнал не со стандартного аудиовыхода, а с аудиовыхода платы расширенного звука. Да, ЦП в этом случае используется просто как управление проигрыванием. Только не говорите, что это управление видеоплеером. Может быть это и так, если только видео и аудио фрагменты в нем пронумерованы и умеют практически мгновенно переключаться.
Если шина адресная, данных и управления наружу выходят, а не просто порты, то это не MCU, а скорее расширенный процессор.
Нет, это не управление видеоплеером. Это 3dfx Voodoo :)
Вложение 69796
Totem, да уймись ты, уже заказано и оплачено.
- - - Добавлено - - -
Причём заказано то, что мне нужно, а не какие-то там отладки :v2_dizzy_biggrin2:
имеет конечно, возьмем для примера ассисонов любых и думак на вулкане, нук давай расскажи нам о лучах в метро ? сам то видел или так потрещать?
- - - Добавлено - - -
ну ждемс результатов, если уж ты в теме , то будет - верю надеюсь жду:v2_dizzy_roll:
Так если это всем так очевидно, то почему никто не сделал-то? ( переключение видео и звука) Я в данном случае исхожу из интересов тех, кто будет играть, и кто будет игры делать. Давай лучше ссылки какие-то, если есть для пользы дела.
ссылки есть , там примерно с 12 проектов на ешке, тебе прислать распиновку модулей или чего? Вон Болт и оформит все, сконцентирустя такой напишет ОС и эмуль, верю в него.
- - - Добавлено - - -
еще одна цитата из древнего проекта, ну так может быть -идеи рождаются от незнаний , так появился Hynix,почему нет? хотя нет , там забористая история .
Наконец я кажется нашел
https://zx-pk.ru/threads/14027-zetni...ect/page5.html
Почему ты по-русски назвал это "зетикс"? Про шину ничего не нашел. Про переключение видео и аудиовыходов тоже. И если есть где-то финальная часть того проекта, то где? Только без загадок, работающую ссылку пожалуйста.
Кому нужно ретро - пусть берёт 5 um. Ещё раз повторю - у меня нет цели создать ещё один клон, потактово соблюдая все каноны аутентичности.
- - - Добавлено - - -
Пытаюсь разобраться с загадочным входом #WAIT. Пока понятно только то, что без wait states работать не получится.
так ретро это более широкое понятие чем клон спекки, на youtube с каждым днем все больше каналов посвященных теме новоделов в ретро-стиле, народ фантазирует на тему "что было возможно в те времена, но по разным причинам не было реализованно", это как спорт типа "метания копья", уже давно нет практического смысла применять в военных действия копье и учиться его метать... но метание копья жило живет и будет жить
с другой стороны есть специфическая часть народу которые применяют например raspberry pi как эмулятор ULA для вывода изображения на HDMI, что естественно полный бред и треш (прикрутить полу-эмулятор zx-a к реальному z80 с памятью)
Скажите, как такое может быть?Цитата:
There is not min/max time before/after rise of PHI. For as long as #WAIT is asserted (low), on every clock rising edge of the internal system clock. When #WAIT is deasserted (high), it will take effect on the next rising edge of the internal system clock.
А если "#WAIT deassert" произойдёт за 0.1 нс до "rising edge of the internal system clock" - успеет сработать?
Нарисуй пожалуйста на бумаге в масштабе, а не в голове. По идее действительно внутренний clock не растянутый искусственно определяет максимальное быстродействие чипа. Ядро же на автомате делается как ни крути. Или ты думаешь там аналоговый каскад применили сверхбыстродействующий и дифференцирующий?
Речь идёт не о максимальном быстродействии чипа.
Есть вот такая картинка:
Вложение 69844
но на ней нет, например, WAIT. Когда его подавать? Если я его сделаю assert на первом цикле - сработает? А если за 1 нс до rise edge? А если отпущу за 0.5 нс - сработает, или проскочит ещё один такт ожидания? Вот это я и пытаюсь добиться от техподдержки. Цитата выше - это их ответ. Это они пусть нарисуют как у них там каскад устроен, что "there is not min/max time before/after rise of PHI".
такое легко может быть, на входе стоит flip-flop и срабатывает по edge, соответственно уровень сигнала #wait будет взят тот который был в момент этого самого "rise", если предположить что время этого самого rise такое длинное что #wait успевает побывать и в 0 и в 1... то результат непредсказуем, т.е. требуется гарантированно "устаканившийся" уровень сигнала #wait в момент "rise"
"there is not min/max time before/after rise of PHI" - это значит что по фронту защелкивается значение а не как в latch-aх
Это ловля блох (фронт/срез). В Z80 wait ловится в T2. А в еZ80 в каком такте?
Ну и длительность wait не сложно сделать (сколько тактов ждем) при наличии сигнала clock cpu.
У flip-flop есть параметры setup и hold. "Устаканившийся" это сколько наносекунд? Об этом речь.
- - - Добавлено - - -
Ловится на любом, у него 1 такт на операцию.
Речь не о длительности WAIT в тактах, а в какой момент можно его подавать и снимать. Так же как BUSRQ, про него тоже ничего нет.
Если проц анализирует сигналы по фронту клока, то меняйте их по спаду. И будет гарантированно работать.
Кстати за один такт все там происходит и адрес выставляется и с шины данные читаются?
Один внешний такт - одна операция. Может и две за такт? Это так? Поэтому все так и сложно. О конвейере забыли (продвинутый), тоже жрет внутренние такты. И может конфликтовать с внешней шиной.
Давите на вайт в начале такта, может к середине такта сигнал дойдет. А там набор +1 вайт с периферией работающей на 1МГц вы не заметите :)
- - - Добавлено - - -
А тех поддержка (волна беженцев). Вам будет парить мозги о фронте о 1нс. Да и сами разробы видимо слабо понимают в некоторых нюансах проца. Я, почему так сужу. Почитайте документаху на Z280 и гарантирую мозг бубликом согнется.
Bolt, какие то противоречивые условия задачи. Хотите скорость-не используйте Wait. Берите частоту системы 200-300 МГц, и обрабатывайте запросы от проца. Иначе получится не по книжке, и даже если Ваш экземпляр заработает, то при повторении конструкции может и не сработать. Решайте-надежность или авось.
Все просто. Навешиваем рекумендуемую память и погнали отдовать запросы железу, и получать странные ответы от железа :v2_dizzy_roll:
Да, хочу скорость, но количество wait states может динамически меняться. Например, если будет RAM 70 нс, а в ПЛИС небольшой кэш. Получается, что процессор может получить данные и за один такт, но в случае необходимости надо успеть дёрнуть WAIT, отсюда и противоречивость. ПЛИС только внутри на 300 МГц работает, а "от ноги до ноги" 6 нс даже если напрямую соединить.
Самое простое понизить частоту, например, до 25 МГц, но тогда теряется половина скорости процессора. Не наш метод :)
- - - Добавлено - - -
А потом навешиваем трансляцию адресов и прочее, и скорость падает минимум в два раза.
- - - Добавлено - - -
А фишка в том, что в книжке-то и не всё описано. Поэтому где-то определю экспериментально, где-то дофантазирую. Всё в лучших традициях цифровой техники прошлого века :)
Как все сложно.
Мне всегда казалось, что память живет своей жизнью. Ставьте вайт на память если нужно. Это самое быстрое, что должно быть.
И неужели память о 10нс будетбыстреймедленней некой микрухи от AMD мат-процессора. Для AMD будет отдельный подтормаживатель (или можно в тупую понижать такт цпу до самой медленной периферии /MSX/). Опять же вы это заметите. Все просто будет летать в рамках ЦПУ-Память.
- - - Добавлено - - -
Можно еще нарваться на фиг-вам, когда регистры микрухи мапятся на память. Ну, это так, если задумаете перемирию сторонюю подключать.
Про разработчиков я сперва смеялся, ведь проц идет в массовое изделие - калькулятор от TI и "косяки" давно бы всплыли. Но потом стало ясно, что все ситуации использования они не могут предусмотреть. А желание понять то, что в доках не описано и в чем поплыла "техподдержка" как раз индикатор этого нестандартного подхода. Выход здесь может быть такой. Для экспериментов изваять все же ядро на FPGA. Потом можно получать большие деньги с Zilog-а :) так как если решение покажет свою эффективность это расширение функционала микрухи, которое им можно продать.
Блин, ну английским же по белому написано, что циклы WAIT (от 1 до 7 тактов, программируется битами [7:5] регистров CSx_CTL) вводятся для сигналов CSx и всех внешних шин, чтоб внешние устройства успели сработать. Захват происходит по положительному (rising) перепаду внутреннего тактового сигнала, на входе внешнего wait стоит триггер (фига 8). Цикоы ожидания вводятся со следующего такта после захвата (фига 9) документа ps0192.pdf
От себя замечу, что клок как правило идёт по самому короткому пути внутри кристалла и имеет самые короткие задержки.
А вот тут и начинается ловля блох...
Наиболее вероятно, что "не успеет", но зависит это от уймы факторов - если к входу подключен двухтактный выход, то может и успеть, а если открытый коллектор, то скорее всего не успеет..
Для максимальной уверенности желательно всю мелочь спрятать в ПЛИС (для рассыпухи частоты великоваты) и синхронизировать всю схему от того же положительного перепада такта, тогда захват wait произойдёт на следующий такт после изменения сигнала, а циклы ожидания вставятся после него.
такт 0 - смена сигнала
такт 1 - захват
такт 2-:-8 цикл ожидания
Ах да, тактировать ЦПУ и ПЛИС одним сигналом.
- - - Добавлено - - -
Ога!
"Принеси то, не знаю что..."
То есть как это не могут? 580 смогли, а этот нет?
Я ж тоже срисовывал и на Verilog переводил...
Модели. Капитан. Модели ;)
Я конечно не спец, но вот как делали спецы 80386 из Светланы МЭ. Сперва делали ядро RISC, а потом дешифратор и микропрограммы для CISC, тогда вентилей меньше нужно! Ну да, топология не идентична, но функционал тот же. У них заняла разработка 18 человеко*месяцев, но тесты не все прошли.
Предлагаю из Светланы выпилять пять яхт. Ты с Урала (с)
Вопрос по RAM.
То, что на данный момент абсолютно неизвестно сколько её понадобится, не учитываем :)
Максимум что я смог найти это 4 мегабайта за 1400 рублей, ещё и корпус с шагом 0,5 мм.
А какую бы SRAM поставили вы? Пусть даже купленную у китайцев.
DRAM ставти (только джедаи о 8 бит ставят срам), и потом мучайтесь. SRAM дорого. еZ80 на DRAM заточен, ведь?
Нет, eZ80 на DRAM не заточен.
Для DRAM у ПЛИС ног не хватит. Или QFP-144 и SRAM, или BGA-256 и DRAM. По цене одинаково выходит.