пятница, 8 февраля 2013 г.

простая транзисторная схема триггера шмитта

Созрел для тактовой эмуляции 6502, буду тут складировать свои раскопки Источник всех картинок Visual 6502 : Но так как их визуальный симулятор не позволяет сделать вменяемую логическую схему (нет ни виасов, ни обозначения транзисторов), я решил разбирать 6502 по кусочкам самостоятельно.Дополнительные источники :Схема 6502 от Дональда Хенсона : Реверсинг 6502 от Берегнея Балазса (кажется так) : -- 19 июн 2012, 14:52 --API эмулятораУправление виртуальным процессором осуществляется путем изменения сигнальных переменных контекста.Сигнальные переменные соответствуют реальным выводам микросхемы оригинального процессора.Контекст процессора 6502 :Код:typedef struct context_6502{    // Внутреннее состояние    // ......    // Входные сигналы    int    RDY, IRQ, NMI, RES, SO;    // Выходные сигналы    int    SYNC, RW;    // Шины    unsigned short ADDR;    unsigned char DATA;} context_6502;Управление выполнением процессораКод:void    step_6502_phi1 ( context_6502 * cpu );        // assume PHI1 highvoid    step_6502_phi2 ( context_6502 * cpu );        // assume PHI2 highЗачем сделано два вызова ? Внутренняя архитектура 6502 разделяет входной такт на два "подтакта" - PHI1 и PHI2, сдвинутые немного по фазе, относительно входного сигнала PHIПри этом эти тактовые импульсы выдаются наружу управляющему устройству. Логика следующая :Высокий уровень PHI1 : адресная шина и шина данных доступна для чтения внешними устройствамиВысокий уровень PHI2 : внешним устройствам разрешено писать в шину данныхТаким образом задается синхронизация чтения-записи между внешней шиной и внутренними шинами процессораПоэтому фактически работа с 6502 происходит полутактами.Графически это можно представить так :Код:                ____    PHI0  |____|    |____            ____      ___     PHI1  _|    |____|          _      ____    PHI2   |____|    |__Как исполнять виртуальный процессор ?Костяк эмулятора выглядит следующим образом : 1. Установить входные сигналы перед фазой PHI1, считать значения шины адреса и данных 2. Выполнить step_6502_phi1 3. Установить входные сигналы перед фазой PHI2, установить значение шины данных 4. Выполнить step_6502_phi2 5. Синхронизировать время исполнения с реальным временем 6. Выполнить сервисные функции эмулятора (отобразить видео, проиграть аудио, отладка и пр.)

Зарегистрирован: 24 июл 2007, 09:41Сообщения: 218

 Очень низкоуровневый эмулятор 6502 / NES 

 [ Сообщений: 169 ] 

 Страница 1 из 9

Часовой пояс: UTC + 3 часа

Текущее время: 05 фев 2013, 02:37

British English Русский

Форум Эму-Россия - Просмотр темы - Очень низкоуровневый эмулятор 6502 / NES

Комментариев нет:

Отправить комментарий