Speccy - наш выбор!

Speccy - наш выбор! (http://zx-pk.ru/index.php)
-   Для начинающих (http://zx-pk.ru/forumdisplay.php?f=43)
-   -   ВременнЫе диаграммы и другие вопросы по Z80 (http://zx-pk.ru/showthread.php?t=21132)

Bolt 15th April 2013 10:48

ВременнЫе диаграммы и другие вопросы по Z80
 
Здравствуйте.

Решил "собрать" (то есть в ПЛИС и/или написать эмулятор) простой процессор, сначала повторить реальный, потом попробовать разработать что-то своё. Для начала выбрал Z80, потому что я его достаточно хорошо знаю, следующим будет наверное 80386. Для опытов на реальном железе (недокументированные команды и прочее) будет собрана минимальная плата с Z80, FLASH и SRAM. Два Z80 разных производителей уже купил, может будут ещё. Один есть впаянный на старой плате АОН, выпаивать пока не хочу, хотя оборудование есть.

В процессе проектирования платы для экспериментов возник вопрос по временнЫм диаграммам работы Z80. В документации, которую удалось найти в интернете, они нарисованы не совсем понятно. Может кто-нибудь снять двухлучевым осциллографом осциллограммы на реальном процессоре? Интересуют A(любой), #RD, #WR, #MREQ, все относительно CLK. Ещё можно D(любой) относительно #MREQ.

Ну и ещё есть другие вопросы. Например, существуют ли тесты для процессора/эмулятора, чтобы проверить арифметические операции, условия, недокументированные команды и т.п.? Есть ли хороший консольный ассемблер, желательно под Linux? (сам пока ещё не искал, даже не знаю что сейчас есть) С командами вращения тоже какая-то путаница, про неё расскажу отдельно, с картинками :)

ZEK 15th April 2013 11:26

1. Есть куча эмуляторов которые не документированые возможности эмитируются
2. Чем диаграммы не понятны? Там все правильно, из диаграмм тяжело разве что с первого раза въехать в цикл подтверждения прерываний

Эмули с исходниками: unreal speccy, zxmak2

И да, Z80 в HDL уже есть если что, 4 варианта если не ошибаюсь

Bolt 15th April 2013 12:25

Это вам понятно, а мне ещё нет. Именно поэтому и интересует в первую очередь реальное железо, а не эмуляторы, пусть даже идеально имитирующие какое-то железо.

О диаграммах. Например, адрес на шине устанавливается по фронту или спаду тактового импульса? Или это у разных производителей по-разному? Сколько нс реальные задержки между сигналами? Данные при чтении в какой момент защёлкиваются? В отсканированных даташитах на Z80 тоже встречаются ошибки, поэтому я им не особо доверяю.

ZEK 15th April 2013 13:08

Quote:

Originally Posted by Bolt (Post 593071)
Сколько нс реальные задержки между сигналами?

Да какая разница сколько нс, всеравно в FPGA эти нс точно такие не поставишь

Quote:

Originally Posted by Bolt (Post 593071)
Например, адрес на шине устанавливается по фронту или спаду тактового импульса?

без понятия, даташит на память не помню, но там нарисовано

Quote:

Originally Posted by Bolt (Post 593071)
пусть даже идеально имитирующие какое-то железо.

и этого результата добивались очень долго, много народа эксперементировало, делало предположение и опять эксперементировало, в итоге много было потрачено человекомесяцев, разумней уже накопленным опытом воспользоваться чем самому чип колоть

Quote:

Originally Posted by Bolt (Post 593071)
Данные при чтении в какой момент защёлкиваются?

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

Bolt 15th April 2013 13:21

ZEK, для Вас это может пройденный этап, интерес угас и уже всё забылось, но я буду "колоть чип". Пока, чтобы не переделывать потом плату, меня интересуют диаграммы с реального железа. Любого. Которого у меня пока нет. Некоторые вещи я не могу понять и даташит в понимании пока не помогает. Не будет осциллограмм - ну, значит попробую наугад, потом буду переделывать. Но отговорить меня не получится ;)

ZEK 15th April 2013 13:31

Я не отговариваю, я "информирую" :)
уже много чего люди раскопали и есть куда смотреть, а колоть там ну там очень много.

Допустим что бы разобраться с логикой скрытого регистра, в каких операциях он используется это достаточно сложно и очень много тестов разных надо делать, причем софтовых

Bolt 15th April 2013 13:41

Я достаточно информирован о объёме работ, спасибо за заботу :)

Ещё вопрос: кто-нибудь коротко может объяснить что происходит с 3 и 5 битами регистра флагов? Описания с кучей вариантов "при ... происходит ..." я уже читал. Уверен что всё описывается гораздо проще. Собираюсь заняться чем-то вроде http://zx.pk.ru/showthread.php?t=12970 , но основная цель скорее не "создать эмулятор", а "посмотреть на процессор изнутри". Если что - про http://www.visual6502.org/ я тоже знаю.

SAM style 15th April 2013 13:51

Quote:

Originally Posted by Bolt (Post 593096)
Ещё вопрос: кто-нибудь коротко может объяснить что происходит с 3 и 5 битами регистра флагов? Описания с кучей вариантов "при ... происходит ..." я уже читал. Уверен что всё описывается гораздо проще.

Обычно туда копируются 3 и 5 биты из результата операции, но есть исключения (3 и 5 биты старшего байта адреса или старшего байта MEMPTR, при LDI вообще слабо поддающаяся логике вакханалия).

Bolt 15th April 2013 14:51

Quote:

Originally Posted by SAM style (Post 593099)
при LDI вообще слабо поддающаяся логике вакханалия).

Во-от. Её в том числе и буду изучать.

SAM style 15th April 2013 20:29

Quote:

Originally Posted by Bolt (Post 593117)
Во-от. Её в том числе и буду изучать.

Нет, что в результате LDI получается в 3 и 5 битах - известно. Непонятно, почему так. Берётся перенесённый байт, складывается с регистром A, 3й бит результата сложения - в 3й бит флагов, 1й бит - в 5й.
В CPI/CPD ситуация ещё хуже.


All times are GMT +4. The time now is 00:16.

Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.