PDA

Просмотр полной версии : Внутрисхемный эмулятор Z80



DVS
28.07.2006, 12:34
Где купить? Или можно самому собрать? Задача отладить прогу для Z80 с ПЦ.

jtn
28.07.2006, 13:09
эмуляторы пользовать

ZEK
28.07.2006, 13:47
ZDS c Zilog

DVS
28.07.2006, 14:56
эмуляторы пользовать

Устройство сложное.

DVS
28.07.2006, 14:57
ZDS c Zilog

Это ведь софт!?!? Zilog Development Studio !?!?

ZEK
28.07.2006, 15:16
Это ведь софт!?!? Zilog Development Studio !?!?
Ага если есть исходник можеш откомпилеть и погонять в симуляторе

DVS
28.07.2006, 15:22
Ага если есть исходник можеш откомпилеть и погонять в симуляторе

Прога на железо очень хорошо завязана...

ZEK
28.07.2006, 17:40
Прога на железо очень хорошо завязана...
Смотря насколько завязанна и насколько с С дружиш, можно в принципе Unreal Speccy эмулятор взять у него открытые исходники можно при желании железо описать и гоняй скоко душе угодно, либо симулировать при помощи HDL средств

DVS
28.07.2006, 18:13
Смотря насколько завязанна и насколько с С дружиш, можно в принципе Unreal Speccy эмулятор взять у него открытые исходники можно при желании железо описать и гоняй скоко душе угодно, либо симулировать при помощи HDL средств

Да, всё так, но только получается, что к тем багам, которые нужно отладить, добавятся ещё свои баги (описание железа и переделка софта).

PS: отлаживаемая железяка не Спек и не его клон.

ZEK
28.07.2006, 18:18
Да, всё так, но только получается, что к тем багам, которые нужно отладить, добавятся ещё свои баги (описание железа и переделка софта).

PS: отлаживаемая железяка не Спек и не его клон.
Тогда тяжкий случай подлючай с схеме регистр и пиши туда в контрольных точках и проц запусках пошагово, короче как в каменном веке :)

DVS
28.07.2006, 18:56
Вот нашёл!!!

http://alevlab.narod.ru/debug80.html

2 heroy

Не поможешь логику в CPLD (FPGA) запихать? Если конечно не трудно.

ZEK
29.07.2006, 12:53
Вот нашёл!!!

http://alevlab.narod.ru/debug80.html

2 heroy

Не поможешь логику в CPLD (FPGA) запихать? Если конечно не трудно.

Да я для спектрумистов - хоть лампочку с предзонника!

Рекомендую EP1C3 в 100 лакорпусе, если конечно все полезет, кстати можно просто засунуть в FPGA TV80 и при поможи отладчика чер JTAG юзать но удобсто на пару порядков ниже

DVS
29.07.2006, 17:56
FPGA TV80 и при поможи отладчика чер JTAG юзать но удобсто на пару порядков ниже

А софт с поддержкой этого дела какой юзать?

У этой http://alevlab.narod.ru/debug80.html разработки есть софт, причём по описанию довольно продвинутый, хотя и под DOS.

Я что-то схему не могу из OrCADa выдернуть?
Плиз, у кого открывается, сконвертируйте в Eagle или картинку.

DVS
29.07.2006, 18:00
Рекомендую EP1C3 в 100 лакорпусе, если конечно все полезет

Языки HDL почти не знаю. Для ознакомления установил Xilinx ISE 7.1 ( там вроде как можно в графике всё нарисовать, а потом в HDL конвертнуть ) Xilinx не используешь?

ZEK
30.07.2006, 19:01
Языки HDL почти не знаю. Для ознакомления установил Xilinx ISE 7.1 ( там вроде как можно в графике всё нарисовать, а потом в HDL конвертнуть ) Xilinx не используешь?

Реально приходилось сталкиваться с Altera, хотя принципы работы с Xilinx теже.

DVS
31.07.2006, 09:59
Схему открыл, сформирую "кусок" логики для CPLD.

ZEK
31.07.2006, 11:05
Схему открыл, сформирую "кусок" логики для CPLD.
В CPLD не влезет корка Z80

Кстати есть еще один вариант но там тоже поработать надо, береш какой нить ARM контролер, березш исходник эмулятора Z80 (Есть бесплатные заточенные для ARM) немного дописуеш что бы он регистры по com-порту отсылал и немного умных команд принимал (типа установить точку останова по адресу, по порту ввода вывода, etc) дешевле и проще но надо будет что нить написать для клиента (pc). Получиться хороший метод для починки и отладки плат Speccy

Мощ еще прийдется придумать что то с шинными циклами, и еще кин сконверченную схемку на heroy(гав)mail.ru

DVS
31.07.2006, 11:35
Ядро в CPLD не надо!!! Только обвязку.

Вот в PDF распринтил.

DVS
31.07.2006, 11:43
Если никаких существенных препятствий нет, то на неделе обзаведусь Xilinx CoolRunner EV-BOARD + XILINX ISE, и можно что-то пробовать...

skyther
31.07.2006, 11:45
чтобы оно заработало надо еще "расширитель порта", его стоит тоже в матрицу засунуть

DVS
31.07.2006, 12:05
От расширителя надо ВВ55 + немного логики. Мне кажется ВВ55 в CPLD много места займёт.

ZEK
31.07.2006, 12:13
От расширителя надо ВВ55 + немного логики. Мне кажется ВВ55 в CPLD много места займёт.

BB55 в класическом виде (с аппаратным квитированием и стробированием передач и всеми ее режимами) не влезет с CPLD надо резать.

Ronin
31.07.2006, 14:00
Кстати есть еще один вариант но там тоже поработать надо, береш какой нить ARM контролер, березш исходник эмулятора Z80 (Есть бесплатные заточенные для ARM) немного дописуеш

А может проще - собрать нормально железяку на нормальном Z80, а ARM/AVR/еще_что/ повесить "сверху" как монитор пошаговой отладки (написав небольшую софтинку).
А то в предложенных вариантах столько мест где могутъ глюки поселиться, что я б завсегда "каменный век" предпочел.

ZEK
31.07.2006, 15:31
может проще - собрать нормально железяку на нормальном Z80, а ARM/AVR/еще_что/ повесить "сверху" как монитор пошаговой отладки (написав небольшую софтинку).
А как в таком варианте дергать содержимое регистров?

DVS
31.07.2006, 18:11
А может проще - собрать нормально железяку на нормальном Z80

Дык линки зацени...

jtn
31.07.2006, 21:34
Кстати есть еще один вариант но там тоже поработать надо, береш какой нить ARM контролер, березш исходник эмулятора Z80 (Есть бесплатные заточенные для ARM)а что оно шину з80 будет эмулировать?

ZEK
01.08.2006, 10:45
а что оно шину з80 будет эмулировать?
Нет шину эмулить не будет, пробовал дома под ATmega64 побаловаться, так вот если не брать что симулятор будет эмулить Z80 с частотой 1 к 1 то реализация вполне реальна, исходники SMT тоже не катят так как переделать его эмуляцию равносильно что заново написать, а так в принципе можно внутрисхемный отладчик собрать на 2 микруха (ATmega64 + MAX232)

Ronin
01.08.2006, 12:30
А как в таком варианте дергать содержимое регистров?

А оно надо :) ну дык контроллер штука вумная - может и пару команд Ld x,xx подсунуть, и регистр R подогнать и тд и тп. иначе нафига его вообще вешать ? для простого пошагового исполнения и тумблера хватит :D

ZEK
01.08.2006, 12:45
А оно надо ну дык контроллер штука вумная - может и пару команд Ld x,xx подсунуть, и регистр R подогнать и тд и тп. иначе нафига его вообще вешать ? для простого пошагового исполнения и тумблера хватит
Ну это понятно, этакое усовершенствование каменного века, я думал что речь идет имено о ВНУТРИСХЕМНОЙ отладке, а у неё как таковой доступ к внутренним операционным ресурсам подразумевается самим названием, так же удобно еще когда можно точки останова по событиям делать. И помоему вышепереведенная смема придерживается идеологии "внутрисхемной". Хотя я на неё быстрый полседений (невыбитый :) ) взляд бросил

PS А к тумблеру еще и тригер надо для устранения дребезга контактов ;)

Ronin
01.08.2006, 13:03
Ну это понятно, этакое усовершенствование каменного века, я думал что речь идет имено о ВНУТРИСХЕМНОЙ отладке, а у неё как таковой доступ к внутренним операционным ресурсам подразумевается самим названием, так же удобно еще когда можно точки останова по событиям делать. И помоему вышепереведенная смема придерживается идеологии "внутрисхемной". Хотя я на неё быстрый полседений (невыбитый ) взляд бросил

ну если строить целый эмулятор проца к которому врезать внутрисхемную отладку, надеясь на высшее благословение, спасущее от тучи глюков - тебе ближе - пожайлуста :)

однако мне кажется лучше взять ИМЕННО ТУ ЖЕЛЕЗКУ которая и будет работать в девайсе, и уж в нее пробовать залезть. конечно и тут будут глюки, но их неизмеримо меньше, и всегда уверен что уж подопытная железяка именно такая какая должна быть.

есть третий способ - взять EZ80, у него JTAG вроде как есть :) :) :) и режим хм-совместимости с Z80 тоже :)

ZEK
01.08.2006, 13:50
есть третий способ - взять EZ80, у него JTAG вроде как есть и режим хм-совместимости с Z80 тоже
Это наверное замый удобный, тем более что можно будет юзать ZDS

DVS
01.08.2006, 14:01
я думал что речь идет имено о ВНУТРИСХЕМНОЙ отладке

ТОЧНО!


есть третий способ - взять EZ80, у него JTAG вроде как есть и режим хм-совместимости с Z80 тоже

Серьёзно что-ли? Т.е. можно одноимёнными ногами воткнуться в панельку Z80 подцепить JTAG, загрузить IAR Workbench и можно лазить по ПЗУ и ОЗУ и шаги делать? Что-то как-то лёгко... Наверняка подвох какой-то есть, типа команды не все поддерживает...

ZEK
01.08.2006, 14:06
Что-то как-то лёгко... Наверняка подвох какой-то есть, типа команды не все поддерживает...
В адресном пространсво ввода вывода 0000-00FF находятся внутренние регистры eZ80

icebear
01.08.2006, 14:48
Серьёзно что-ли? Т.е. можно одноимёнными ногами воткнуться в панельку Z80 подцепить JTAG, загрузить IAR Workbench и можно лазить по ПЗУ и ОЗУ и шаги делать? Что-то как-то лёгко... Наверняка подвох какой-то есть, типа команды не все поддерживает...

Не уверен насчёт IAR, но и ZDS никто не отменял. А подвох в LQFP64, такая "монетка" размером 1,5х1,5 см, думай как паять :) По поводу команд - наверное всё тоже, что и CMOS версии Z80 + внутренние порты, о которых уже написали.

DVS
01.08.2006, 19:03
А подвох в LQFP64, такая "монетка" размером 1,5х1,5 см, думай как паять

Не вопрос.


По поводу команд - наверное всё тоже

Вот и я думаю...


В адресном пространсво ввода вывода 0000-00FF находятся внутренние регистры eZ80

Обращение к ОЗУ или к портам имеется ввиду?

DVS
01.08.2006, 19:11
И ещё вопрос, если сделать переходную плату LQFP64 <---> DIP40, то есть eZ80 <---> Z80, то железка будет работать не замечая подмены? Или надо что-то конфигурить, т.е. хорошо разбираться в архитектуре ez80? Просто хотелось бы, чтобы всё выглядело примерно так: воткнули отладчик, загрузили софтину (ZDS, IAR и.т.п. ), она соеденилась с отладчиком, считала к себе в окно ПЗУ железки, состояние регистров, юзер расставил точки останова и побежали...

ZEK
01.08.2006, 19:22
Надо писать загрузчик настройщик eZ80
что бы он настраивал внешную шину в определенном куске адресного пространства что бы она работала как настоящая шина Z80
правда в СПЕК напрямую не воткнеш, так как порты 00-FF заюзаны внутри - раз,
команды вида ld h,h ld a,a используются для расширения системы команд

DVS
02.08.2006, 06:33
Надо писать загрузчик настройщик 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 макроячеек.

ZEK
02.08.2006, 10:20
Две ИР22 + две ИР23 + две АП5 + одна АП6 (в точной реализации по pdf) занимают 90 макроячеек.
Многовато будет :) Надо на DHL языке попробывать участок, скажи какой кусок схемы я тебе его опишу попробуеш

DVS
02.08.2006, 13:13
Многовато будет :) Надо на DHL языке попробывать участок, скажи какой кусок схемы я тебе его опишу попробуеш

Я сначала на логически целесообразные куски всю схему побью, нарисую Shematic в Xilinx ISE, переведу в VHDL. И выложу тебе для оптимизации, пойдёт?

А вообще то довольно интересно выглядит процесс описания железа:

1) скачал pdf на все микрухи с www.st.com
2) нарисовл их используя примитивные элементы (Flip-flop, Latch, Logic) и создал из них симовлы sym
3) накидал несколько таких символов на базовую схему и соеденил
4) раскидал сигналы по ножкам
5) синтезировал файл прошивки

Мне пока всё понятно и я сильно не углубляюсь в тонкости HDL. Посмотрю как дальше пойдёт...

ZEK
02.08.2006, 13:37
переведу в VHDL. И выложу тебе для оптимизации, пойдёт?
видел как к примеру Microsoft Front Page делает html странички ты рисуеш а он тебе страничку там где 90% мусора, и обычно быстрее переделать саново в блокноте чем вычищать и перекомпоновывать бред на выходе, то же самое и со смемных вводом перегнутым в хHDL тем более когда схему перегоняю в xHDL я смотрю не как сделанно а что делает, разница огромная

DVS
02.08.2006, 17:14
2 heroy

Я конечно Front Page не юзаю, вместо него Dreamweaver мне нравится. Вообще говоря, видимо это извечный спор по примеру C vs ASM. Ладно до уровня Hardware Description Language опускаться пока не буду и все вопросы будут более укрупнёнными.

ZEK
02.08.2006, 17:26
Я конечно Front Page не юзаю, вместо него Dreamweaver мне нравится. Вообще говоря, видимо это извечный спор по примеру C vs ASM. Ладно до уровня Hardware Description Language опускаться пока не буду и все вопросы будут более укрупнёнными.

Побалываться можно, только вот на HDL написанна ULA которая поддерживает 4 видеорежима и все это все добро занимает 63 макроячейи (а это добрая половина спектрума), у тебя 32 тригера плюс буфера занимают 90 макроячеек

icebear
02.08.2006, 17:43
2 heroy

Я конечно Front Page не юзаю, вместо него Dreamweaver мне нравится. Вообще говоря, видимо это извечный спор по примеру C vs ASM. Ладно до уровня Hardware Description Language опускаться пока не буду и все вопросы будут более укрупнёнными.

К сожалению именно в HDL ручная оптимизация на данный момент рулит. На собственной шкуре испытал :)

ZEK
02.08.2006, 18:06
Да и ваще если уже связываться то лучше с eZ80+ZDS

тебе надо будет платку сделать которая тыкается за место Z80 на которой должно быть только eZ80 и какая нить маленькая ROM (туда запихать стартовую настройку eZ80) Или еще лучше какой нить микроконтролек с ядром eZ80 тогда и ROM не понадобиться и прос фактически после сброса будет работать со стандартной шиной

Ronin
02.08.2006, 18:21
эта, а может железяку просто навсегда переделать под eZ80 да и все :)

DVS
02.08.2006, 18:54
эта, а может железяку просто навсегда переделать под eZ80 да и все

Не "прокатит", там ПЗУ переписывать годы придётся (как Скорпион ПРОФ ПЗУ).

Интересней и выгодней самому отладчик собрать, кроме того автор отладчика не против перевода на CPLD его творения.

ZEK
02.08.2006, 18:59
Не "прокатит", там ПЗУ переписывать годы придётся (как Скорпион ПРОФ ПЗУ).
Если в девайсе нет портов с адресами ниже 0X0100 и не используються команды вида ld a,a и в том числе недокументированные (котя есть вероятность что некоторые а возможно и все будут работать) то переделка минимальна 3 байта в начале ПЗУ+кусочек кода инициализации а если смотреть в строну мк на ядре eZ80 то вааще ничего переделывать не надо.

PS Я понял, это повод добраться до ПЛИС

DVS
02.08.2006, 19:50
Если в девайсе нет портов с адресами ниже 0X0100

Вопрос конечно, но думаю простейшим поиском по дизасму ПЗУ можно пределить, верно ?


а если смотреть в строну мк на ядре eZ80 то вааще ничего переделывать не надо

Это как?


PS Я понял, это повод добраться до ПЛИС

Экспириенс и левел апы всегда были в почёте или впереводе на русский стремление к познанию :-)

А если всё-таки используются команды ld a,a ld h,h ( FLASH то на 256Кб там стоит, много чего понаписано). То как поможет код инициализации?

ZEK
02.08.2006, 20:07
А если всё-таки используются команды ld a,a ld h,h ( FLASH то на 256Кб там стоит, много чего понаписано). То как поможет код инициализации?
В общем давай на осонве микроконтролера

После старта проц начинает исполнять код из внтуреннего ПЗУ в нем ты настраиваеш скажем что область 10000-1FFFF работает с сигналом CS1 и настраиваеш что при обращении в эту область происходит обращение на внешнюю шину в том числе настраиваеш что работать шина будет в режиме Z80 далее ты (точно нюансов не знаю) переводиш проц в нативный режим так что бы в битах [23:16]PC было значение 0x01 и проц уже вертится в пределах своих 64К со стандартной адресацией но eZ80 транслирует все на адрес $1xxxx а контролер памяти заставляет его работать с внешней шиной, плюс во внутренней ПЗУ тебе надо будет настроить что бы прерывания работали в нормальном режиме

Короче читай доку по eZ80 там много интересного, правда дока иностранная а английский у меня на уровне 26 букв + чтение просебя :)

По точней это к IceBear и Spensor они доку вдоль и поперек перечитывали

DVS
02.08.2006, 20:25
2 heroy
Спасибо за более детальное описание.


По точней это к IceBear и Spensor они доку вдоль и поперек перечитывали

HELP!!!!! :-)))))))))

icebear
03.08.2006, 11:59
HELP!!!!! :-)))))))))

А в чём собсно проблема? По поводу обработки комманд LD A,A и т.п. я не в курсе, я вообще-то много читал про Z180, а вот eZ80 - это точно надо у Spensor'а спросить. По поводу внутренних портов - чистая правда. Все обращения по портам с адресами #00-#FF расцениваются как обращения к внутренним портам. В отличии от Z180 эта область портов не релоцируемая. Голый eZ80 я в продаже не видел, только в виде МК, т.е. без внутренней переферии (а значит и без внутренних портов) его не найти.

SPsoft
08.06.2009, 12:02
Вопрос: Что переводом внутрисхемного эмулятора в ПЛИС?
Есть куча прошивок от устройств на Z80 и свой программный эмулятор Z80,
выложен на http://www.niifivt.penza.net/products/Z80.php.
Нужно посмотреть реальную работу с портами и чего-то хочется поиметь что-то типа внутрисхемного эмулятора.