Мне часто задают вопросы о правильных осциллограммах работы компьютеров на Z80. Особенно в части ОЗУ, формировании RAS/CAS/WAIT, разделении доступа ЦП и видеоадаптера к ОЗУ. Поэтому решил сделать в Proteus симуляцию базовой версии "Ленинград-48", чтобы можно было увидеть и изучить любой сигнал схемы, и их взаимодействие.
Подобные работы уже были опубликованы (nedopc.org), но там схема "в лоб" не заработала, и приходилось отступать от оригинала. Мой же вариант предельно точно повторяет схему от micklab.ru, с сохранением нумерации элементов и выводов. Хорошо подойдёт для собирающих и восстанавливающих платы реальных компьютеров, имеющих осциллографы, но не знающих, что должен показать прибор на тех или иных выводах микросхем.
Некоторые изменения всё-таки внесены в схему, но они касаются базовых доработок платы для нормальной работы. А именно:
- входы DD4 (D0-D3) настроены под кварц 14.0 МГц;
- сигнал INT/ формируется не аналоговой цепочкой, а триггером, и имеет длину ровно 9 мкс;
- устранен конфликт шины данных, происходящий из-за "иголок" в сигнале CSRAM (Proteus выдавал предупреждение);
- ввиду отсутствия в Proteus симуляции динамического ОЗУ, блок микросхем 565РУ5 заменён на симулятор, с сохранением всех сигналов, подключаемым к РУ5;
- устранен дефект "неполный круг" значка (c);
- диоды в формирователе видео заменены на элемент "ИЛИ".
Все доп.элементы, применённые при доработках, обозначены как UD.
Самым тонким моментом является формирование сигнала WAIT/. Поскольку он вырабатывается только при работе программы в ОЗУ, было решено сделать виртуальный картридж для загрузки программы при старте компьютера. Я взял для этого простенькую игру "Sir Lancelot" - первую игру, которую я увидел на ZX-Spectrum. Она стартует сразу при запуске компьютера вместо Basic (ROM Basic48 слегка изменён), позволяет изучить тайминги WAIT/, и даже поиграть в неё.
Для просмотра нужных сигналов, выберите в меню слева пробник ( Probe / Voltage ), установите его на проводник, и добавьте пробник в окно анализатора (Digital Analysis) через контекстное меню (Add Traces...). В свойствах анализатора можно выбрать интересующий временной интервал для просмотра. После этого запустить расчёт (Simulate Graph).
Образец диаграммы:
Спасибо Mick за схему и реплику "Ленинграда", участникам форума nedopc.org за dll Z80 и цветного монитора для Proteus.
Версия ISIS Proteus - 8.6sp2.
Схема-оригинал.
Проект Proteus: Lenin48.zip