User Tag List

Показано с 1 по 10 из 585

Тема: Компьютер "Aleste 520EX"

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    03.10.2017
    Сообщений
    242
    Спасибо Благодарностей отдано 
    31
    Спасибо Благодарностей получено 
    49
    Поблагодарили
    24 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Рекомендую попробовать 60 герц.
    Коллега, а какая у вас частота CLK на шине HDMI?

    - - - Добавлено - - -

    В исходном коде частота 27МГц. Но в реальности она точно такая?

    - - - Добавлено - - -

    Изучив бегло ваш код верхнего уровня. У меня возник вопрос к блоку кода always FF который генерирует FF видео reset. Трудно продидактить конечную форму сигнала. Но одно важнейшее условие он должен быть длиной один пиксель клок.
    Я думаю что вы долго с этим разбирались тестировали изменяли эта работа сложная. Но тут очень важно каждая длина этого сигнала может поломать работу HDMI модуля.

    - - - Добавлено - - -

    я завел 32кб двупортовой памяти, пишу параллельно в неё и в ОЗУ алесты, затем распаковываю байт видеопамяти в пиксели через палитру и тд.
    но и тут есть нюанс. можно быстро подменить С000 ОЗУ через маппер страницу. например с 3 на 7. CRT будет показывать корректно, я - нет.
    это мне нужно 128кб чтобы всё параллельно ОЗУ отслеживать.
    На мой взгляд лучше этого не делать. Необходимо в памяти держать лишь одну строку. И отображать ее два раза.
    Если вы успешно используете асинхронное FIFO то это правильное решение. (если нет то можно два буфера на дну строку. В один кладем из другого читаем)
    При это крайне важно чтобы этот промежуточный узел согласования разверток выдавал идеально точно в количестве pixel_clock как одну строку так и весь кадр.

    - - - Добавлено - - -

    P.S. Возможно стоит не использовать HDMI, а вместо этого использовать DVI. Это проще.
    Кстати то ядро которое вы используете работает на двух clk. Один clk_pixel_x5, а другой его деление на 5 clk_pixel. Второй не clke так было бы правильно а именно clk.
    Работать должно, но на мой взгляд это спорное решение.
    Последний раз редактировалось Sherlock; 16.09.2025 в 09:41.

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2

    Регистрация
    02.01.2007
    Адрес
    Волгоград, Россия
    Сообщений
    1,454
    Спасибо Благодарностей отдано 
    195
    Спасибо Благодарностей получено 
    161
    Поблагодарили
    99 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Sherlock Посмотреть сообщение
    P.S. Возможно стоит не использовать HDMI, а вместо этого использовать DVI. Это проще.
    А разве они, кроме звука, чем-то отличаются?

  4. #3

    Регистрация
    03.10.2017
    Сообщений
    242
    Спасибо Благодарностей отдано 
    31
    Спасибо Благодарностей получено 
    49
    Поблагодарили
    24 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от AlexBel Посмотреть сообщение
    А разве они, кроме звука, чем-то отличаются?
    Ключевое отличие заключается в сложности реализации. HDMI требует использования готовых сторонних ядер, которые поддерживают множество режимов и функций (аудио, CEC, инфофреймы), но при этом:

    * Создают зависимости от чужого кода
    * Усложняют отладку из-за своей универсальности
    * Вводят избыточность для задач, где нужно только видео

    Проблема тактирования в рассмотренном модуле - использование двух раздельных тактовых сигналов (clk_pixel и clk_pixel_x5), когда правильнее было бы использовать:

    * Один основной тактовый сигнал (clk_pixel_x5)
    * Строб-сигнал разрешения (pixel_enable) для домена с меньшей частотой

    Такое решение было бы более надежным и соответствовало бы лучшим практикам проектирования цифровых систем.

    Создание собственного DVI-модуля позволяет:

    * Полный контроль над всей логикой работы
    * Упрощенная архитектура без избыточных функций
    * Прозрачная отладка - все сигналы понятны и предсказуемы
    * Оптимизация под конкретную задачу вывода ретро-видео

  5. #4

    Регистрация
    20.12.2006
    Адрес
    Minsk
    Сообщений
    375
    Спасибо Благодарностей отдано 
    24
    Спасибо Благодарностей получено 
    28
    Поблагодарили
    22 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Sherlock Посмотреть сообщение
    HDMI требует использования готовых сторонних ядер
    можно и без "ядер" обойтись))) вот тут все изящно и красиво и самое главное - портируемо на любой FPGA!!
    без привязки к несовместимым библиотечным элементам от производителя кристалла FPGA

  6. #5

    Регистрация
    19.07.2017
    Адрес
    г. Кемерово
    Сообщений
    47
    Записей в дневнике
    2
    Спасибо Благодарностей отдано 
    30
    Спасибо Благодарностей получено 
    26
    Поблагодарили
    12 сообщений
    Mentioned
    9 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    звук. хдми делается просто. а вот звук.

  7. #6

    Регистрация
    03.10.2017
    Сообщений
    242
    Спасибо Благодарностей отдано 
    31
    Спасибо Благодарностей получено 
    49
    Поблагодарили
    24 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от backa Посмотреть сообщение
    можно и без "ядер" обойтись))) вот тут все изящно и красиво и самое главное - портируемо на любой FPGA!!
    без привязки к несовместимым библиотечным элементам от производителя кристалла FPGA
    Все не так просто. Одно дело генерировать видео а другое дело адаптировать существующий видеовыход.

    Проблема интеграции контроллера 6845 (Amstrad CPC) с HDMI:

    Для стандарта HDMI 720p (PAL) требуется 625 строк. Контроллер 6845 по умолчанию генерирует 312 строк. Даже с учетом теоретической возможности получить 312.5, на практике используется 312.

    Это делает метод удвоения строк неприменимым. Наиболее простым и гарантированным решением видится полный захват кадра в буфер.

    Рекомендация: Продолжить разработку с использованием полнокадрового буфера.
    Моя цель: Параллельно я буду искать решение, позволяющее избежать захвата всего кадра.

  8. #7

    Регистрация
    26.04.2009
    Адрес
    г. Воронеж
    Сообщений
    6,480
    Спасибо Благодарностей отдано 
    310
    Спасибо Благодарностей получено 
    249
    Поблагодарили
    217 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Sherlock Посмотреть сообщение
    Это делает метод удвоения строк неприменимым.
    А если все строки удваивать, а первую или последнюю утраивать?
    "Во времена всеобщей лжи говорить правду - это экстремизм" - афоризм.

  9. #8

    Регистрация
    03.10.2017
    Сообщений
    242
    Спасибо Благодарностей отдано 
    31
    Спасибо Благодарностей получено 
    49
    Поблагодарили
    24 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от CodeMaster Посмотреть сообщение
    А если все строки удваивать, а первую или последнюю утраивать?
    Преобразование временных параметров видеопотока

    Имеется два видеопотока с разным строчным разложением.

    Исходный кадр:

    Строки: 1, 2, 3, 4

    Время строки: l1

    Время кадра: f1 = l1 * 4

    Выходной кадр:

    Строки: A, B, C, D, E, F, G, H, J

    Время строки: l2

    Время кадра: f2 = l2 * 9

    Алгоритм преобразования строк

    Для преобразования 4 строк в 9 используется метод дублирования:

    Каждая исходная строка дублируется дважды.

    Поскольку 4 * 2 = 8, а требуется 9 строк, последняя (четвертая) строка дублируется трижды.

    Результат преобразования:

    1, 1, 2, 2, 3, 3, 4, 4, 4

    Синхронизация временных параметров

    Требуется выполнить два условия синхронизации:

    ✅ Условие 1: l1 == l2 / 2

    Это условие выполняется за счет настройки длительности строки.

    Пример: Если l1 = 64 мкс, то l2 = 32 мкс.

    ❌ Проблема с Условием 2: f1 == f2

    При попытке выполнить это условие возникает несоответствие:

    f1 = l1 * 4

    f2 = l2 * 9

    Подставляя условие l2 = l1 / 2, получаем:

    f2 = (l1/2) * 9 = l1 * 4.5

    Вывод:

    f1 = l1 * 4
    f2 = l1 * 4.5

    Для исходного потока из 4 строк и выходного из 9 строк, где каждая входная строка дублируется, невозможно одновременно соблюсти оба условия:

    Время новой строки равно половине времени исходной (l2 = l1 / 2).

    Времена кадров обоих потоков равны (f1 = f2).

    Это противоречие возникает из-за того, что отношение количества строк (9/4 = 2.25) не равно отношению длительностей строк (2/1 = 2).

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ответов: 1076
    Последнее: 11.05.2022, 06:59
  2. Ответов: 0
    Последнее: 15.08.2010, 14:38
  3. Ответов: 27
    Последнее: 19.12.2009, 18:49
  4. Куплю компьютер Aleste 520EX (Алеста)
    от Nickolas в разделе Барахолка (архив)
    Ответов: 9
    Последнее: 23.10.2009, 05:06
  5. Ответов: 0
    Последнее: 26.06.2005, 11:52

Ваши права

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