Хорошо бы картинку осциллограмм из симулятора добавить. Будет нагляднее, кмк.
Хорошо бы картинку осциллограмм из симулятора добавить. Будет нагляднее, кмк.
Есть предположение, что мультиплексоры появляются только в отображении RTL Viewer, тогда как Technology Map Viewer показывает совершенно идентичную картинку. В обоих случаях расходуются две логические ячейки с одинаковыми LUT и даже Fitter размещает их в одном и том же месте. Получается, различные варианты кода из примера выше синтезируются одинаково и разницы на осциллограмме быть не должно.
Поправьте, если я ошибаюсь.
Вложение 58722
Я закончил преобразовывать схемный ввод модели PPU в синхронную модель. Теперь я готов выкладывать все узлы сюда, с пояснениями. Моделька работает отлично, я даже убрал артефакт, присущий аппаратной реализации, правда он виден только если телевизор правильно настроен. Это узкая (1-1,5 пикселя) белая полоска слева от растра, на границе экрана. Вот как было => стало:
Процесс шел так: сначала я покромсал каждый блок в схемном вводе, приводя его к синхронному виду и избавляясь от второй фазы пиксельклока. Затем перевод в Верилог. Очень сложным оказался узел формирования адреса VRAM. Там лихо закручен сюжет со счетчиками, которые по совместительству еще и регистры. И вот хитросплетение переносов между разрядами счетчика в схемном вводе не вызывает сомнений у Quartus'а - варнингов вообще нет. А как только я описал их в Верилоге, так ТаймКвест сразу поругался на 5 цепей, что они якобы образуют комбинаторное кольцо. Попробуем проанализировать эту проблему позже. А сейчас отдыхать!
Последний раз редактировалось HardWareMan; 20.10.2017 в 17:22.
SegaBoy, 9й Квартус вот такой код:
Развернул вот так (RTL):Код:if (W6_2) W6Req <= 1'b1; else if (W6Done) W6Req <= 1'b0;
А в карте технологии вот так:
[Изображение утеряно]
Красный трейс это выход W6Req, он на другой странице (Q9 разбивает схему мельче, чем Q10+). А выход открытого LUTа идет на его вход. И комбинация AND-OR это уже классический мультиплексор, который формируется вот так (MX4x1):
Быть может более свежий Квартус умнее, другого объяснения я не могу найти. Или выбрано не то семейство ПЛИС (правила меняются от семейства к семейству).
- - - Добавлено - - -
Titus, она меня раздражала. Но на растактовку патч не влияет - я просто синхронизировал выходной поток пикселей: часть сигналов гашения оказалось идет асинхронно и из-за небольшого лага просачивается пиксель с серым цветом.
Последний раз редактировалось HardWareMan; 20.10.2017 в 17:25.
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Есть. Да везде, в том числе и китайских 6538. Правда ширина ее колеблется от модели к модели. Вот полные (я вставлял маркер в левый верхний угол тайла и смотрел как поплывут относительно него спрайты, это очень помогло при выравнивании фаз тактирования):
Сейчас все примерно вот так:
На цвета не обращайте внимания: сейчас там кривая быстрая RGB палитра. Про формирование настоящего выхода я расскажу в разделе про видео ЦАП.
Последний раз редактировалось HardWareMan; 20.10.2017 в 17:28.
А вот ты меня заинтересовал. Она точно есть на оригинальной 2C02E (NTSC):
Ее нет на оригинальной 2C02G (NTSC):
Ее нет на клоне UM6528 (NTSC):
Она еле заметна на клоне UM6538 (PAL):
Она еле заметна на клоне HA6538 (PAL):
Вот такой не однозначный результат тестов. Так что нет: убрать полосу не есть отклонение от тактовой точности.
Последний раз редактировалось HardWareMan; 20.10.2017 в 17:30.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)