Сообщения без ответов | Активные темы Текущее время: 28 мар 2024, 12:33



Ответить на тему  [ Сообщений: 411 ]  На страницу Пред.  1 ... 6, 7, 8, 9, 10, 11, 12 ... 21  След.
 Очень низкоуровневый эмулятор 6502 / NES 
Автор Сообщение
Сообщение 21 янв 2013, 10:31
Профиль ICQ
Аватара пользователя

Зарегистрирован:
28 дек 2012, 05:58
Сообщения: 19
Откуда: Курган
org писал(а):
что за транзистор такой, затвор которого подсоединен к земле

Похоже на защитный "диод". Должны присутствовать на входных линиях.


Сообщение 22 янв 2013, 19:56
Профиль ICQ WWW
Аватара пользователя

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


Сообщение 24 янв 2013, 09:28
Профиль ICQ WWW
Аватара пользователя

Зарегистрирован:
24 июл 2007, 10:41
Сообщения: 570
Прогресс по APU:

Изображение

Исходники PSD : http://breaknes.com/files/APU/2A03.zip

-- 24 янв 2013, 19:09 --



Сообщение 25 янв 2013, 21:17
Профиль ICQ WWW
Аватара пользователя

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


В итоге подчистил схему 6502:

Изображение

И выкладываю PSD : http://breaknes.com/files/6502/6502.zip (140 MB)


Сообщение 27 янв 2013, 15:32
Профиль ICQ WWW
Аватара пользователя

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


Сообщение 29 янв 2013, 21:07
Профиль ICQ WWW
Аватара пользователя

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


Сообщение 31 янв 2013, 20:52
Профиль ICQ WWW
Аватара пользователя

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


-- 01 фев 2013, 18:48 --



Сообщение 02 фев 2013, 02:21
Профиль ICQ WWW
Аватара пользователя

Зарегистрирован:
24 июл 2007, 10:41
Сообщения: 570
после сегодняшнего стрима, через пару часиков, ALU был полностью завершен:

Изображение

Симуляция закачана на SVN. Схему и исходники PSD тоже скоро обновлю.

Дополнительную инфу можно получить тут : http://forum.6502.org/viewtopic.php?f=8 ... 135#p24135

Параллельно узнал новый "паттерн" соединения транзисторов =)
Изображение

out = NAND(a,b) & NAND(c,d)


Сообщение 05 фев 2013, 01:14
Профиль ICQ WWW
Аватара пользователя

Зарегистрирован:
24 июл 2007, 10:41
Сообщения: 570
- Закачал на SVN обновленную схему 6502
- Закачал исходники PSD на сайт breaknes
- Разобрался почему у меня PC считал вкривь-вкось. На самом деле всё хорошо считалось, просто каждый второй разряд PC находится в инверсной логике (трюк для оптимизации carry-chain), поэтому когда я считывал значения c PC, то забыл что нужно инвертировать каждый второй разряд, для получения правильного значения :D Последний бастион для "нижней" части процессора пал. Теперь осталось разобраться с "верхней" частью и постепенно складывается целая картина работы процессора.

Кстати очень сложно глядя на общую схему 6502 что-либо понять с первого взгляда. В стримах я пытался кое-где рассказать, но всё равно схема достаточно сложная для понимания, потому что очень "спутанная".


Сообщение 06 фев 2013, 21:34
Профиль ICQ WWW
Аватара пользователя

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


Сообщение 12 фев 2013, 13:25
Профиль ICQ WWW
Аватара пользователя

Зарегистрирован:
24 июл 2007, 10:41
Сообщения: 570
Между изучением 6502 параллельно рисую топологию APU:
Изображение
Осталось только контакты расставить.

В стане 6502 значительный прогресс, который можно посмотреть в стримах. Очень много важных линий и внутренних схем разобрано до мелочей)


Сообщение 12 фев 2013, 14:42
Профиль

Зарегистрирован:
28 ноя 2012, 17:56
Сообщения: 63
Когда планируеш к АПУ вернутся? И по ГПУ ни одного стрима не было еще )


Сообщение 12 фев 2013, 16:29
Профиль ICQ WWW
Аватара пользователя

Зарегистрирован:
24 июл 2007, 10:41
Сообщения: 570
Если вам ещё не надоели мои стримы, то сразу после получения топологии выйду в эфир с APU :D


Сообщение 12 фев 2013, 16:50
Профиль
Аватара пользователя

Зарегистрирован:
23 июл 2007, 19:37
Сообщения: 401
Откуда: Мытищи
APU - наше всё. Вкуснота.
Я сейчас балуюсь беткой nsplay 2.3b3 от рейнварриора,
которая умеет проигрывать NSF в режиме денди.

_________________
Nestopia 1.37/1.40 Fixed


Сообщение 12 фев 2013, 20:16
Профиль ICQ WWW
Аватара пользователя

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


-- 13 фев 2013, 13:39 --

Стало понятно как же именно выполняются инструкции на 6502. Подробности тут:

http://breaknes.com/#13022013


Сообщение 15 фев 2013, 15:47
Профиль ICQ WWW
Аватара пользователя

Зарегистрирован:
24 июл 2007, 10:41
Сообщения: 570
Завершена топология APU:
http://code.google.com/p/breaks/wiki/G2A03

-- 16 фев 2013, 12:53 --

Отличия встроенного в APU 6502

После детального изучения схемы 2A03 были получены следующие результаты.
- Отличий в декодере не обнаружено
- Флаг D работает как обычно, его можно установить или сбросить, он используется нормальным образом при обработке прерываний (сохраняется в стеке) и после выполнения инструкций PHP/PLP, RTI.
- Рандомная логика отвечающая за генерацию двух контрольных линий DAA (decimal addition adjust) и DSA (decimal subtraction adjust) работает обычным образом.

Отличие заключается в том, что контрольные линии DAA и DSA, отвечающие за включение схем коррекции, отсоединены от схемы, путём вырезания 5 кусочков полисиликона (см. картинку). полисиликон обозначен фиолетовым цветом, вырезанные кусочки обозначены голубым, а места обведены красным.

Это приводит к тому, что схема вычилсения десятичного переноса при сложении и схема добавления/отнимания 6 к результату - не работают. Поэтому встроенный процессор 2A03 всегда считает двоичными числами, даже если флаг D установлен.

Изображение

PSD с которым я работал тут : http://breaknes.com/files/APU/core.zip [155 MB]



Сообщение 18 фев 2013, 20:12
Профиль ICQ WWW
Аватара пользователя

Зарегистрирован:
24 июл 2007, 10:41
Сообщения: 570
Пока я рожаю 6502, начинаем серию стримов по APU:



Как промежуточный результат - схема счетчика и его управление (показан только Square 1, остальные идентичны):
Изображение
В конце стрима краткие итоги. Следующая серия должна добить length counters окончательно.
После length counter буду разбирать работу квадратного канала.

Параллельно тужусь над симуляцией 6502...

-- 19 фев 2013, 16:54 --

Разобрал схему спрайтовой DMA:
Изображение

Принцип работы:
- Старшие 8 разрядов адреса (HI) - это константа, которая записывается в регистр $4014
- Младшие 8 разрядов (LO) - это up-counter, считает от 0 до 255. После переполнения - DMA прекращает работу.
При загрузке нового значения в $4014 - младший адрес (LO) очищается.
- Адрес DMA попеременно меняется с текущего значения HI:LO, на $2004 (порт записи PPU), при этом порт $2003 (начальный адрес в спрайтовой памяти) должен быть установлен ручками, до запуска DMA.
Понятно это сделано для того, чтобы вначале прочитать байт по адресу HI:LO, а затем записать его в $2004.
Переключение адреса делает flip/flop, который можно найти внизу схемы.
- На время DMA CPU бездействует (RDY=0)
- DMA стартует при записи в $4014 (устанавливается защелка START), а останавливается только после отправки всех 256 байт.

Работа спрайтовой DMA тесно переплетается с DMC. Во время DMC (RUNDMC=1) спрайтовая DMA временно приостанавливается.
Также DMC как-то завязана на линию RDY (я пока точно не выяснил).

Контрольные линии на схеме:
- SPRS: sprite step, увеличить счетчик адреса
- SPRE: sprite DMA end, после переполнения счетчика DMA останавливается
- DOSPR: спрайтовая DMA в процессе
- SPR/PPU : спрайтовая DMA работает по направлению SPRITE BUFFER->PPU
- SPR/CPU : спрайтовая DMA работает по направлению MEMORY->SPRITE BUFFER

Маленькая "звиздюлина", которая мелькала в стримах - это sprite buffer, временное хранилище для спрайтовой DMA.

Как-то так)

Обновил PSD: http://breaknes.com/files/APU/2A03.zip
теперь там обозначены почти все контрольные линии.


Сообщение 23 фев 2013, 11:59
Профиль ICQ WWW
Аватара пользователя

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


Сообщение 24 фев 2013, 16:27
Профиль ICQ WWW
Аватара пользователя

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


-- 24 фев 2013, 18:32 --

В процессе стрима, в реальном времени связались с Quietust'ом и выяснили, что не всякое пересечение полисиликона по диффузии формирует транзистор.
Иногда получается так, что полисиликон проходит по диффузии безо всякого эффекта.

Это хорошо видно на картинке, которую прислал Q, там помечены места, где пересечение полисиликона формирует транзистор.
Какой при это происходит тех-процесс - не понятно. Возможно дополнительно индуцируется слой изоляции, который не даёт формироваться транзистору. Внешне, глядя на картинку, это никак не обнаружить. Q сказал что есть специальные "химикаты", которые позволяют явно проявить места, где транзисторы формируются, а где нет =)


Вложения:
adders.png
adders.png [ 14.57 КБ | Просмотров: 14567 ]
Сообщение 24 фев 2013, 21:36
Профиль

Зарегистрирован:
28 ноя 2012, 17:56
Сообщения: 63
Нашел тут в контексте 6502 объяснение про enhanced и depletion транзисторы http://www.righto.com/2013/01/a-small-p ... ained.html
ну и википедия достаточно подробно расказывает об этом http://en.wikipedia.org/wiki/Depletion-load_NMOS_logic
http://visual6502.org/wiki/index.php?ti ... ransistors
в общем достаточно полно разжевано, кроме того как их находить ((


Показать сообщения за:  Поле сортировки  
Ответить на тему   [ Сообщений: 411 ]  На страницу Пред.  1 ... 6, 7, 8, 9, 10, 11, 12 ... 21  След.

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by STSoftware for PTF (mod by Zeru-j).
Русская поддержка phpBB