Форум Эму-Россия http://forum.emu-russia.net/ |
|
Очень низкоуровневый эмулятор 6502 / NES http://forum.emu-russia.net/viewtopic.php?f=13&t=3938 |
Страница 7 из 21 |
Автор: | org [ 20 ноя 2012, 00:03 ] |
Заголовок сообщения: | Re: Очень низкоуровневый эмулятор 6502 / NES |
Теперь тебе осталось доказать что когда на затворе NMOS-транзистора есть заряд - то он открыт Соответственно, если хотя бы один транс откроется в той "палке", то весь заряд стечет на землю. a b c 0 0 | 1 0 1 | 0 1 0 | 0 1 1 | 0 c = nor(a,b) |
Автор: | HardWareMan [ 20 ноя 2012, 13:09 ] |
Заголовок сообщения: | Re: Очень низкоуровневый эмулятор 6502 / NES |
org писал(а): Теперь тебе осталось доказать что когда на затворе NMOS-транзистора есть заряд - то он открыт Соответственно, если хотя бы один транс откроется в той "палке", то весь заряд стечет на землю. a b c 0 0 | 1 0 1 | 0 1 0 | 0 1 1 | 0 c = nor(a,b) Мы говорим об одном и том же, только разными терминами. Я думаю, надо закрыть тему и идти дальше. Какой блок на очереди? PS В предыдущих постах, когда я говорил ИЛИ забывал добавлять НЕ. Т.е., правильно ИЛИ-НЕ. |
Автор: | org [ 20 ноя 2012, 16:48 ] |
Заголовок сообщения: | Re: Очень низкоуровневый эмулятор 6502 / NES |
да, мы только что доказали то же самое, что и де Морган 200 лет назад: !(p or q) = !p and !q единственное что входы на H/V декодер не в инверсной логике, поэтому уместнее использовать NOR. ну да ладно ) |
Автор: | HardWareMan [ 20 ноя 2012, 20:11 ] |
Заголовок сообщения: | Re: Очень низкоуровневый эмулятор 6502 / NES |
org писал(а): да, мы только что доказали то же самое, что и де Морган 200 лет назад: !(p or q) = !p and !q Так ты признаешь, что там инверторы с ОК, соединенные в монтажное И? :3 org писал(а): единственное что входы на H/V декодер не в инверсной логике, поэтому уместнее использовать NOR. ну да ладно ) Давай уже следующий модуль. Прежде чем эти таблицы разбирать, нужно счетчики раскурить. Их разрядность, источник тактов и пр. Идти надо последовательно, сверху вниз по тактовой частоте. На входе с делителем разобрались, давай дальше по цепочке. |
Автор: | org [ 20 ноя 2012, 21:01 ] |
Заголовок сообщения: | Re: Очень низкоуровневый эмулятор 6502 / NES |
что-то я совсем запутался ) походу выходы все таки инвертированы у счетчиков =) -- 21 ноя 2012, 08:38 -- Вот, один "шаг" H/V счетчика: inc: если на входе 1, то счетчик делает инкремент, иначе на выходе (out) текущее значение. carry: перенос на следующий шаг RES: сигнал общего сброса HC (или VC у V-counter): сигнал очистки всего счетчика, H-counter сбрасывается когда декодер обнаруживает там значение H=340, V-counter сбрасывается при V=261. так как H-counter считает все время, то вход самого первого каскада заведен на Vcc. вход V-counterа регулируется H-декодером. когда H=340, то вход V устанавливается в 1, что дает возможность увеличить его значение на 1. carry каждого предыдущего бита заведен на inc следующего, получается carry-chain. По схеме: - без tri-state никак не обошлось. вход inc управляет двумя tri-state. Если inc = 1 (сделать шаг), то правый D-триггер (текущее значение счетчика) обновляется с выхода. Когда inc = 0, то этот D-триггер берет своё значение с левого D-триггера. - по поводу левого триггера, я честно ХЗ как его сделать стандартным )) он получается совмещенным: когда PCLK=1, то открывается прямой вход, когда PCLK=0 открывается реверсный вход - и всё это заливается на одну защелку. есть какой-то стандартный аналог этого элемента ? -- 21 ноя 2012, 09:14 -- Вот та же схема на tri-state: -- 21 ноя 2012, 10:35 -- Весь H-counter. переносы с 0 по 4 суммируются через NOR и подаются на вход 5. вход 0 заведен на Vcc (счетчик всегда считает) |
Автор: | HardWareMan [ 22 ноя 2012, 19:45 ] |
Заголовок сообщения: | Re: Очень низкоуровневый эмулятор 6502 / NES |
Интересно. Это видоизмененный синхронный счетчик. Обычно там применяется AND-XOR ступень. Ее смысл в том, чтобы зарулить выход триггера на вход без изменений, если нет кондиции и проинвертировать ее, чтобы триггер перекинулся, если кондиция случилась. Вот, например: |
Автор: | HardWareMan [ 23 ноя 2012, 20:21 ] |
Заголовок сообщения: | Re: Очень низкоуровневый эмулятор 6502 / NES |
org писал(а): Внешне это обыкновенный 9-разрядный up-counter по модулю 2, с одним синхровходом и 2-мя входами для сброса. 2 входа нужно чтобы не пересекаться с общей линией Reset. необычная схема для суммирования переносов с первой половины счетчика на самом деле нужна для уменьшения propagation delay в carry chain. да хотя у меня подозрения что даже с таким "фиксом" счетчик "плывет" по таймингу (тут даже не используется трюк с инвертированным carry chain как в 6502). Спасает только то, что он довольно часто очищается. Да не, пока такты идут на все ступени - он достаточно синхронный, гличи минимальны и соразмерны тактовому сигналу. Давай теперь подведем итог: первый горизонтальный счетчик на 9 бит. Но у ППУ всего 32 символа в ширину - т.е. 5 бит. Еще 4ре - это на каждые 8 точек экрана, т.е. по 2 такта на точку. Надо теперь смотреть в ПЛА (дешифратор) и смотреть какие линии он дергает в какие моменты. А, кстати, они считает до предела? Все 9 бит, сброс только общечиповый? |
Автор: | org [ 23 ноя 2012, 21:36 ] |
Заголовок сообщения: | Re: Очень низкоуровневый эмулятор 6502 / NES |
Там два счетчика. Слева - для подсчета пикселей (H), справа идентичный (но схематично зеркально отраженный) для подсчета строк (V). Различаются только тем, что вход V управляется дешифратором. Когда H = 340, то вход V временно включается и происходит его увеличение на 1. Сброс H/V счетчиков тоже осуществляется дешифратором, это видно по транзисторной схеме. У каждого счетчика помимо сброса по Reset есть свой дополнительный сброс HC/VC (H-clear, V-clear), так как счетчики не делают полный круг. Оба счетчика 9-разрядные. Цитата: Да не, пока такты идут на все ступени - он достаточно синхронный Дешифратор в общем не всегда дергает какие-то определенные пиксели/линии. Например часть выходов настроена так, что они срабатывают каждый 2й и 3й пиксель. Это нужно для отрисовки бэкграунда, ведь каждая точка требует чтения байта из NT, байта из AT и двух байт данных тайла: H:105 V:0 F/NT VIS PICTURE H:106 V:0 F/NT VIS PICTURE H:107 V:0 F/AT VIS PICTURE H:108 V:0 F/AT VIS PICTURE H:109 V:0 F/TA VIS PICTURE H:110 V:0 F/TA VIS PICTURE H:111 V:0 F/TB VIS PICTURE H:112 V:0 F/TB VIS PICTURE Часть других выходов срабатывает от A до B, например от 0 до 63 (подготовка дополнительной спрайтовой памяти). Если диапазон не удается подобрать по модулю 2, тогда для этого используются 2 линии, которые заведены на RS-триггер, который активен от линии A до линии B. |
Автор: | HardWareMan [ 24 ноя 2012, 10:39 ] |
Заголовок сообщения: | Re: Очень низкоуровневый эмулятор 6502 / NES |
Вот именно это давай и разберем. Входные такты и H счетчик с его частью дешифратора. |
Автор: | HardWareMan [ 04 дек 2012, 20:50 ] |
Заголовок сообщения: | Re: Очень низкоуровневый эмулятор 6502 / NES |
ПИНГ -T |
Автор: | EvGS [ 05 дек 2012, 23:55 ] |
Заголовок сообщения: | Re: Очень низкоуровневый эмулятор 6502 / NES |
Декап ревизии "H" заглох? |
Автор: | org [ 06 дек 2012, 09:41 ] |
Заголовок сообщения: | Re: Очень низкоуровневый эмулятор 6502 / NES |
HWM, я сейчас с 6502 вожусь, хочу добить его к НГ ) |
Автор: | HardWareMan [ 06 дек 2012, 12:21 ] |
Заголовок сообщения: | Re: Очень низкоуровневый эмулятор 6502 / NES |
ОК, ждемс. |
Автор: | Nepo [ 16 дек 2012, 12:36 ] |
Заголовок сообщения: | Re: Очень низкоуровневый эмулятор 6502 / NES |
что то тишина у вас тут хоть что нибудь упомянули, интересно же читать З.Ы.: Блин, из за вашей темы начал читать Хоровиц/Хилл - "Искусство схематехники" и Келим - "Вычислительная техника", скоро сессия а я читаю книги "малость" не своего профиля... |
Автор: | Homer [ 16 дек 2012, 20:14 ] |
Заголовок сообщения: | Re: Очень низкоуровневый эмулятор 6502 / NES |
Все будет. Просто работы невпроворот. |
Автор: | org [ 18 дек 2012, 16:58 ] |
Заголовок сообщения: | Re: Очень низкоуровневый эмулятор 6502 / NES |
Над 6502 работы ведутся, но чего-то интересного показывать пока нечего. Нудный процесс полировки полученной схемы и пошаговая симуляция логики. Параллельно веду трассировку APU, покажу как будут готовы все слои (сейчас пока только металл готов). Nepo, нечего читать эту фигню ) Все необходимые знания можно получить из этой темы ) |
Автор: | Akari [ 29 дек 2012, 21:50 ] |
Заголовок сообщения: | Re: Очень низкоуровневый эмулятор 6502 / NES |
Пытался понять как понять как работает схема и застопорился на принципе работы open-drain транзисторов у которых исток замкнут на базу. Кто-нибуть может объяснить как они могут проводить заряд? Ведь транзистор открыт только когда на базу подается заряд, но база подключена к земле. как тогда заряд то проходит? О_о |
Автор: | HardWareMan [ 30 дек 2012, 21:06 ] |
Заголовок сообщения: | Re: Очень низкоуровневый эмулятор 6502 / NES |
Это нагрузка. Такой режим полевика, в котором он работает как генератор тока. В логическом смысле это обычная нагрузка. |
Страница 7 из 21 | Часовой пояс: UTC + 3 часа [ Летнее время ] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |