Просмотр полной версии : Внутрисхемный эмулятор Z80
Где купить? Или можно самому собрать? Задача отладить прогу для Z80 с ПЦ.
эмуляторы пользовать
Устройство сложное.
ZDS c Zilog
Это ведь софт!?!? Zilog Development Studio !?!?
Это ведь софт!?!? Zilog Development Studio !?!?
Ага если есть исходник можеш откомпилеть и погонять в симуляторе
Ага если есть исходник можеш откомпилеть и погонять в симуляторе
Прога на железо очень хорошо завязана...
Прога на железо очень хорошо завязана...
Смотря насколько завязанна и насколько с С дружиш, можно в принципе Unreal Speccy эмулятор взять у него открытые исходники можно при желании железо описать и гоняй скоко душе угодно, либо симулировать при помощи HDL средств
Смотря насколько завязанна и насколько с С дружиш, можно в принципе Unreal Speccy эмулятор взять у него открытые исходники можно при желании железо описать и гоняй скоко душе угодно, либо симулировать при помощи HDL средств
Да, всё так, но только получается, что к тем багам, которые нужно отладить, добавятся ещё свои баги (описание железа и переделка софта).
PS: отлаживаемая железяка не Спек и не его клон.
Да, всё так, но только получается, что к тем багам, которые нужно отладить, добавятся ещё свои баги (описание железа и переделка софта).
PS: отлаживаемая железяка не Спек и не его клон.
Тогда тяжкий случай подлючай с схеме регистр и пиши туда в контрольных точках и проц запусках пошагово, короче как в каменном веке :)
Вот нашёл!!!
http://alevlab.narod.ru/debug80.html
2 heroy
Не поможешь логику в CPLD (FPGA) запихать? Если конечно не трудно.
Вот нашёл!!!
http://alevlab.narod.ru/debug80.html
2 heroy
Не поможешь логику в CPLD (FPGA) запихать? Если конечно не трудно.
Да я для спектрумистов - хоть лампочку с предзонника!
Рекомендую EP1C3 в 100 лакорпусе, если конечно все полезет, кстати можно просто засунуть в FPGA TV80 и при поможи отладчика чер JTAG юзать но удобсто на пару порядков ниже
FPGA TV80 и при поможи отладчика чер JTAG юзать но удобсто на пару порядков ниже
А софт с поддержкой этого дела какой юзать?
У этой http://alevlab.narod.ru/debug80.html разработки есть софт, причём по описанию довольно продвинутый, хотя и под DOS.
Я что-то схему не могу из OrCADa выдернуть?
Плиз, у кого открывается, сконвертируйте в Eagle или картинку.
Рекомендую EP1C3 в 100 лакорпусе, если конечно все полезет
Языки HDL почти не знаю. Для ознакомления установил Xilinx ISE 7.1 ( там вроде как можно в графике всё нарисовать, а потом в HDL конвертнуть ) Xilinx не используешь?
Языки HDL почти не знаю. Для ознакомления установил Xilinx ISE 7.1 ( там вроде как можно в графике всё нарисовать, а потом в HDL конвертнуть ) Xilinx не используешь?
Реально приходилось сталкиваться с Altera, хотя принципы работы с Xilinx теже.
Схему открыл, сформирую "кусок" логики для CPLD.
Схему открыл, сформирую "кусок" логики для CPLD.
В CPLD не влезет корка Z80
Кстати есть еще один вариант но там тоже поработать надо, береш какой нить ARM контролер, березш исходник эмулятора Z80 (Есть бесплатные заточенные для ARM) немного дописуеш что бы он регистры по com-порту отсылал и немного умных команд принимал (типа установить точку останова по адресу, по порту ввода вывода, etc) дешевле и проще но надо будет что нить написать для клиента (pc). Получиться хороший метод для починки и отладки плат Speccy
Мощ еще прийдется придумать что то с шинными циклами, и еще кин сконверченную схемку на heroy(гав)mail.ru
Ядро в CPLD не надо!!! Только обвязку.
Вот в PDF распринтил.
Если никаких существенных препятствий нет, то на неделе обзаведусь Xilinx CoolRunner EV-BOARD + XILINX ISE, и можно что-то пробовать...
чтобы оно заработало надо еще "расширитель порта", его стоит тоже в матрицу засунуть
От расширителя надо ВВ55 + немного логики. Мне кажется ВВ55 в CPLD много места займёт.
От расширителя надо ВВ55 + немного логики. Мне кажется ВВ55 в CPLD много места займёт.
BB55 в класическом виде (с аппаратным квитированием и стробированием передач и всеми ее режимами) не влезет с CPLD надо резать.
Кстати есть еще один вариант но там тоже поработать надо, береш какой нить ARM контролер, березш исходник эмулятора Z80 (Есть бесплатные заточенные для ARM) немного дописуеш
А может проще - собрать нормально железяку на нормальном Z80, а ARM/AVR/еще_что/ повесить "сверху" как монитор пошаговой отладки (написав небольшую софтинку).
А то в предложенных вариантах столько мест где могутъ глюки поселиться, что я б завсегда "каменный век" предпочел.
может проще - собрать нормально железяку на нормальном Z80, а ARM/AVR/еще_что/ повесить "сверху" как монитор пошаговой отладки (написав небольшую софтинку).
А как в таком варианте дергать содержимое регистров?
А может проще - собрать нормально железяку на нормальном Z80
Дык линки зацени...
Кстати есть еще один вариант но там тоже поработать надо, береш какой нить ARM контролер, березш исходник эмулятора Z80 (Есть бесплатные заточенные для ARM)а что оно шину з80 будет эмулировать?
а что оно шину з80 будет эмулировать?
Нет шину эмулить не будет, пробовал дома под ATmega64 побаловаться, так вот если не брать что симулятор будет эмулить Z80 с частотой 1 к 1 то реализация вполне реальна, исходники SMT тоже не катят так как переделать его эмуляцию равносильно что заново написать, а так в принципе можно внутрисхемный отладчик собрать на 2 микруха (ATmega64 + MAX232)
А как в таком варианте дергать содержимое регистров?
А оно надо :) ну дык контроллер штука вумная - может и пару команд Ld x,xx подсунуть, и регистр R подогнать и тд и тп. иначе нафига его вообще вешать ? для простого пошагового исполнения и тумблера хватит :D
А оно надо ну дык контроллер штука вумная - может и пару команд Ld x,xx подсунуть, и регистр R подогнать и тд и тп. иначе нафига его вообще вешать ? для простого пошагового исполнения и тумблера хватит
Ну это понятно, этакое усовершенствование каменного века, я думал что речь идет имено о ВНУТРИСХЕМНОЙ отладке, а у неё как таковой доступ к внутренним операционным ресурсам подразумевается самим названием, так же удобно еще когда можно точки останова по событиям делать. И помоему вышепереведенная смема придерживается идеологии "внутрисхемной". Хотя я на неё быстрый полседений (невыбитый :) ) взляд бросил
PS А к тумблеру еще и тригер надо для устранения дребезга контактов ;)
Ну это понятно, этакое усовершенствование каменного века, я думал что речь идет имено о ВНУТРИСХЕМНОЙ отладке, а у неё как таковой доступ к внутренним операционным ресурсам подразумевается самим названием, так же удобно еще когда можно точки останова по событиям делать. И помоему вышепереведенная смема придерживается идеологии "внутрисхемной". Хотя я на неё быстрый полседений (невыбитый ) взляд бросил
ну если строить целый эмулятор проца к которому врезать внутрисхемную отладку, надеясь на высшее благословение, спасущее от тучи глюков - тебе ближе - пожайлуста :)
однако мне кажется лучше взять ИМЕННО ТУ ЖЕЛЕЗКУ которая и будет работать в девайсе, и уж в нее пробовать залезть. конечно и тут будут глюки, но их неизмеримо меньше, и всегда уверен что уж подопытная железяка именно такая какая должна быть.
есть третий способ - взять EZ80, у него JTAG вроде как есть :) :) :) и режим хм-совместимости с Z80 тоже :)
есть третий способ - взять EZ80, у него JTAG вроде как есть и режим хм-совместимости с Z80 тоже
Это наверное замый удобный, тем более что можно будет юзать ZDS
я думал что речь идет имено о ВНУТРИСХЕМНОЙ отладке
ТОЧНО!
есть третий способ - взять EZ80, у него JTAG вроде как есть и режим хм-совместимости с Z80 тоже
Серьёзно что-ли? Т.е. можно одноимёнными ногами воткнуться в панельку Z80 подцепить JTAG, загрузить IAR Workbench и можно лазить по ПЗУ и ОЗУ и шаги делать? Что-то как-то лёгко... Наверняка подвох какой-то есть, типа команды не все поддерживает...
Что-то как-то лёгко... Наверняка подвох какой-то есть, типа команды не все поддерживает...
В адресном пространсво ввода вывода 0000-00FF находятся внутренние регистры eZ80
Серьёзно что-ли? Т.е. можно одноимёнными ногами воткнуться в панельку Z80 подцепить JTAG, загрузить IAR Workbench и можно лазить по ПЗУ и ОЗУ и шаги делать? Что-то как-то лёгко... Наверняка подвох какой-то есть, типа команды не все поддерживает...
Не уверен насчёт IAR, но и ZDS никто не отменял. А подвох в LQFP64, такая "монетка" размером 1,5х1,5 см, думай как паять :) По поводу команд - наверное всё тоже, что и CMOS версии Z80 + внутренние порты, о которых уже написали.
А подвох в LQFP64, такая "монетка" размером 1,5х1,5 см, думай как паять
Не вопрос.
По поводу команд - наверное всё тоже
Вот и я думаю...
В адресном пространсво ввода вывода 0000-00FF находятся внутренние регистры eZ80
Обращение к ОЗУ или к портам имеется ввиду?
И ещё вопрос, если сделать переходную плату LQFP64 <---> DIP40, то есть eZ80 <---> Z80, то железка будет работать не замечая подмены? Или надо что-то конфигурить, т.е. хорошо разбираться в архитектуре ez80? Просто хотелось бы, чтобы всё выглядело примерно так: воткнули отладчик, загрузили софтину (ZDS, IAR и.т.п. ), она соеденилась с отладчиком, считала к себе в окно ПЗУ железки, состояние регистров, юзер расставил точки останова и побежали...
Надо писать загрузчик настройщик eZ80
что бы он настраивал внешную шину в определенном куске адресного пространства что бы она работала как настоящая шина Z80
правда в СПЕК напрямую не воткнеш, так как порты 00-FF заюзаны внутри - раз,
команды вида ld h,h ld a,a используются для расширения системы команд
Надо писать загрузчик настройщик eZ80
что бы он настраивал внешную шину в определенном куске адресного пространства что бы она работала как настоящая шина Z80
правда в СПЕК напрямую не воткнеш, так как порты 00-FF заюзаны внутри - раз,
команды вида ld h,h ld a,a используются для расширения системы команд
Значит не "сбиваемся" с курса ?
Ориентируюсь на серию XC9500 5V, реально получиться, XC95144 либо две XC9572 ( более предпочтительны из-за корпуса PLCC84 ).
Тогда вопросы:
1) Правильно ли я делаю, что пытаюсь "имплантировать" ИР22, ИР23, ИР35 ?
2) То же для АП5,6 ?
Или их оставлять внешними?
Две ИР22 + две ИР23 + две АП5 + одна АП6 (в точной реализации по pdf) занимают 90 макроячеек.
Две ИР22 + две ИР23 + две АП5 + одна АП6 (в точной реализации по pdf) занимают 90 макроячеек.
Многовато будет :) Надо на DHL языке попробывать участок, скажи какой кусок схемы я тебе его опишу попробуеш
Многовато будет :) Надо на DHL языке попробывать участок, скажи какой кусок схемы я тебе его опишу попробуеш
Я сначала на логически целесообразные куски всю схему побью, нарисую Shematic в Xilinx ISE, переведу в VHDL. И выложу тебе для оптимизации, пойдёт?
А вообще то довольно интересно выглядит процесс описания железа:
1) скачал pdf на все микрухи с www.st.com
2) нарисовл их используя примитивные элементы (Flip-flop, Latch, Logic) и создал из них симовлы sym
3) накидал несколько таких символов на базовую схему и соеденил
4) раскидал сигналы по ножкам
5) синтезировал файл прошивки
Мне пока всё понятно и я сильно не углубляюсь в тонкости HDL. Посмотрю как дальше пойдёт...
переведу в VHDL. И выложу тебе для оптимизации, пойдёт?
видел как к примеру Microsoft Front Page делает html странички ты рисуеш а он тебе страничку там где 90% мусора, и обычно быстрее переделать саново в блокноте чем вычищать и перекомпоновывать бред на выходе, то же самое и со смемных вводом перегнутым в хHDL тем более когда схему перегоняю в xHDL я смотрю не как сделанно а что делает, разница огромная
2 heroy
Я конечно Front Page не юзаю, вместо него Dreamweaver мне нравится. Вообще говоря, видимо это извечный спор по примеру C vs ASM. Ладно до уровня Hardware Description Language опускаться пока не буду и все вопросы будут более укрупнёнными.
Я конечно Front Page не юзаю, вместо него Dreamweaver мне нравится. Вообще говоря, видимо это извечный спор по примеру C vs ASM. Ладно до уровня Hardware Description Language опускаться пока не буду и все вопросы будут более укрупнёнными.
Побалываться можно, только вот на HDL написанна ULA которая поддерживает 4 видеорежима и все это все добро занимает 63 макроячейи (а это добрая половина спектрума), у тебя 32 тригера плюс буфера занимают 90 макроячеек
2 heroy
Я конечно Front Page не юзаю, вместо него Dreamweaver мне нравится. Вообще говоря, видимо это извечный спор по примеру C vs ASM. Ладно до уровня Hardware Description Language опускаться пока не буду и все вопросы будут более укрупнёнными.
К сожалению именно в HDL ручная оптимизация на данный момент рулит. На собственной шкуре испытал :)
Да и ваще если уже связываться то лучше с eZ80+ZDS
тебе надо будет платку сделать которая тыкается за место Z80 на которой должно быть только eZ80 и какая нить маленькая ROM (туда запихать стартовую настройку eZ80) Или еще лучше какой нить микроконтролек с ядром eZ80 тогда и ROM не понадобиться и прос фактически после сброса будет работать со стандартной шиной
эта, а может железяку просто навсегда переделать под eZ80 да и все :)
эта, а может железяку просто навсегда переделать под eZ80 да и все
Не "прокатит", там ПЗУ переписывать годы придётся (как Скорпион ПРОФ ПЗУ).
Интересней и выгодней самому отладчик собрать, кроме того автор отладчика не против перевода на CPLD его творения.
Не "прокатит", там ПЗУ переписывать годы придётся (как Скорпион ПРОФ ПЗУ).
Если в девайсе нет портов с адресами ниже 0X0100 и не используються команды вида ld a,a и в том числе недокументированные (котя есть вероятность что некоторые а возможно и все будут работать) то переделка минимальна 3 байта в начале ПЗУ+кусочек кода инициализации а если смотреть в строну мк на ядре eZ80 то вааще ничего переделывать не надо.
PS Я понял, это повод добраться до ПЛИС
Если в девайсе нет портов с адресами ниже 0X0100
Вопрос конечно, но думаю простейшим поиском по дизасму ПЗУ можно пределить, верно ?
а если смотреть в строну мк на ядре eZ80 то вааще ничего переделывать не надо
Это как?
PS Я понял, это повод добраться до ПЛИС
Экспириенс и левел апы всегда были в почёте или впереводе на русский стремление к познанию :-)
А если всё-таки используются команды ld a,a ld h,h ( FLASH то на 256Кб там стоит, много чего понаписано). То как поможет код инициализации?
А если всё-таки используются команды ld a,a ld h,h ( FLASH то на 256Кб там стоит, много чего понаписано). То как поможет код инициализации?
В общем давай на осонве микроконтролера
После старта проц начинает исполнять код из внтуреннего ПЗУ в нем ты настраиваеш скажем что область 10000-1FFFF работает с сигналом CS1 и настраиваеш что при обращении в эту область происходит обращение на внешнюю шину в том числе настраиваеш что работать шина будет в режиме Z80 далее ты (точно нюансов не знаю) переводиш проц в нативный режим так что бы в битах [23:16]PC было значение 0x01 и проц уже вертится в пределах своих 64К со стандартной адресацией но eZ80 транслирует все на адрес $1xxxx а контролер памяти заставляет его работать с внешней шиной, плюс во внутренней ПЗУ тебе надо будет настроить что бы прерывания работали в нормальном режиме
Короче читай доку по eZ80 там много интересного, правда дока иностранная а английский у меня на уровне 26 букв + чтение просебя :)
По точней это к IceBear и Spensor они доку вдоль и поперек перечитывали
2 heroy
Спасибо за более детальное описание.
По точней это к IceBear и Spensor они доку вдоль и поперек перечитывали
HELP!!!!! :-)))))))))
HELP!!!!! :-)))))))))
А в чём собсно проблема? По поводу обработки комманд LD A,A и т.п. я не в курсе, я вообще-то много читал про Z180, а вот eZ80 - это точно надо у Spensor'а спросить. По поводу внутренних портов - чистая правда. Все обращения по портам с адресами #00-#FF расцениваются как обращения к внутренним портам. В отличии от Z180 эта область портов не релоцируемая. Голый eZ80 я в продаже не видел, только в виде МК, т.е. без внутренней переферии (а значит и без внутренних портов) его не найти.
Вопрос: Что переводом внутрисхемного эмулятора в ПЛИС?
Есть куча прошивок от устройств на Z80 и свой программный эмулятор Z80,
выложен на http://www.niifivt.penza.net/products/Z80.php.
Нужно посмотреть реальную работу с портами и чего-то хочется поиметь что-то типа внутрисхемного эмулятора.
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot