|
Реализация LookUp Table для видеовывода, нечёткое изображеине |
|
|
|
Dec 14 2009, 06:34
|
Частый гость
 
Группа: Участник
Сообщений: 118
Регистрация: 13-09-09
Пользователь №: 52 331

|
при передачи цвета напрямую в порт RGB, затем цап на резисторах - потом на кодер AD724 - на телевизоре изображение чёткое: Код if rising_edge(pixel_clock) then if Blank='1' then R<=SRAM_Data(14..10); G<=SRAM_Data(9 ...5); B<=SRAM_Dta(4..0); end if; end if; при выводе из Look-Up таблицы в порт RGB чёткость изображения понижается - оно как бы размыто - с небольшим трудом читаются символы матрицы 8x8: Код if rising_edge(pixel_clock) then if Blank='1' then R<=LookUpRED(conv_integer(SRAM_Data(14..10))); G<=LookUpGreen(conv_integer(SRAM_Data(9..5))); B<=LookUpBlue(conv_integer(SRAM_Data(4..0))); end if; end if; есть ли способ избавиться от размытости?
Сообщение отредактировал %-) - Dec 14 2009, 06:35
|
|
|
|
|
 |
Ответов
|
Dec 14 2009, 06:49
|
Частый гость
 
Группа: Участник
Сообщений: 118
Регистрация: 13-09-09
Пользователь №: 52 331

|
Цитата(SM @ Dec 14 2009, 09:41)  хрень какая-то. Констрейны выполняются? Слаков нет? Других причин не вижу. вот слаков навалом к сожалению  как только врубаем палитру - их сыпется куча! подскажите верный способ сделать реализацию ЛУКапа внутри ПЛИС. внешний рам-дак не предалагать  P.S. на VGA мониторе лукап работает без проблем - а в телевизоре ж@па
Сообщение отредактировал %-) - Dec 14 2009, 06:50
|
|
|
|
|
Dec 14 2009, 06:56
|
Частый гость
 
Группа: Участник
Сообщений: 118
Регистрация: 13-09-09
Пользователь №: 52 331

|
Цитата(SM @ Dec 14 2009, 09:51)  Хотя разное поведение на мониторе и на TV - странно это... Сигнал-то один. развёртка разная - для VGA и NTSC все счётчики и поля и синхросгналы пересчитываются зависимо от выбранного режима тактовый генератор - один. вот исходные данные: мастерклок 50 мгц разрешение ВГА 640x480 (из него 320x240) разрешение NTSC => 320x240 P.S. кстати заметил, что нужно вывод пикселей синхронизировать по фронту, в то время когда остальные счётчики для синхросигналов и бланков должны работать по спаду. Или наоборот. Потому что выводить точки нужно когда память уже выдаёт на шине - данные (строб OE в SRAM заведён на частоту pixelclock/2=14.5 Мгц) Иначе - изображение будет дрожжать (особенно при смене видеостраниц)
Сообщение отредактировал %-) - Dec 14 2009, 07:01
|
|
|
|
|
Dec 14 2009, 07:49
|
iBuilder©
   
Группа: Свой
Сообщений: 519
Регистрация: 14-07-04
Из: Минск
Пользователь №: 322

|
Цитата(%-) @ Dec 14 2009, 09:56)  P.S. кстати заметил, что нужно вывод пикселей синхронизировать по фронту, в то время когда остальные счётчики для синхросигналов и бланков должны работать по спаду. Или наоборот. Потому что выводить точки нужно когда память уже выдаёт на шине - данные (строб OE в SRAM заведён на частоту pixelclock/2=14.5 Мгц) Иначе - изображение будет дрожжать (особенно при смене видеостраниц) Учитывая историю вопроса (в других темах) и то что Вы тут написали, проблема во времянке, и том, что Вы так до конца с ней не разобрались... Начинайте с проверки и описании времянки. Что-б могли с полной уверенностью знать что все времянки выполняются. В противном случае будете иметь что имеете - непонятные эффекты и странные зависимости. А если и получттся что, измените потом проект и появится новая тема, типа "работал прект, добавил модуль - переслал работать, где искать проблему!".
|
|
|
|
|
Dec 14 2009, 22:58
|
Частый гость
 
Группа: Участник
Сообщений: 118
Регистрация: 13-09-09
Пользователь №: 52 331

|
Цитата(Builder @ Dec 14 2009, 10:49)  Учитывая историю вопроса (в других темах) и то что Вы тут написали, проблема во времянке, и том, что Вы так до конца с ней не разобрались... тут уже другая времянка  Цитата(Builder @ Dec 14 2009, 10:49)  А если и получттся что, измените потом проект и появится новая тема, типа "работал прект, добавил модуль - переслал работать, где искать проблему!". Да-да! Известное дело. Было такое...  Если вы про это говорите, значит в прошлом у вас такое же было :P
|
|
|
|
|
Dec 15 2009, 05:47
|
iBuilder©
   
Группа: Свой
Сообщений: 519
Регистрация: 14-07-04
Из: Минск
Пользователь №: 322

|
Цитата(%-) @ Dec 15 2009, 00:58)  Да-да! Известное дело. Было такое...  Если вы про это говорите, значит в прошлом у вас такое же было :P Не помню, может и было. А вообще, это как с вождением автомобиля, если что и нарушаешь, то должен знать что, почему и чем это грозит. Цитата(%-) @ Dec 15 2009, 02:31)  кстати, как правильно(синхронно) вычитывать данные из внешней SRAM на дисплей? А бог его знает как правильно, как кому нравится, главное что-б было корректно и работало. С ходу, вроде длжно работать, при условии выполнения всех времянок. Настораживает только: 1) генерация производного клока. Само по себе - ничего плохого. Но при условии что опять-же, описана времянка и нет завязки на другие клоковые домены. Если есть - нада что-б были корректно сделаны связи между доменами. Как-я бросал ссылки на документы. 2) для улучшения времянки, можно поставить тригеры на выходе. Но в принципе - не абязательно, если запас по времянке и так большой. Кстати, как вариант, сделать выход генератора производной частоты как сейчас, а для остальной части кода использовать его не как клок, а как разрешение. Но это желательно, если есть, как я уже написал, завязки на другой код с исходной частотой. PS. а вообще, я на VHDL не пишу, так, чуть читаю.
|
|
|
|
|
Dec 15 2009, 06:33
|
Частый гость
 
Группа: Участник
Сообщений: 118
Регистрация: 13-09-09
Пользователь №: 52 331

|
Цитата(Builder @ Dec 15 2009, 08:47)  А вообще, это как с вождением автомобиля, если что и нарушаешь, то должен знать что, почему и чем это грозит. Дело в том, что при раздутии проекта (допустим захотели что-то добавить) неизбежно усложняется алгоритм - становится очень много ветвей, что вносит запаздывание в логику. тут и VGA режим нужен и NTSC и каждый из них ещё должен быть в директколоре и в палитровом режиме. Всё зависит от управляющих регистров. вот и поэтому собираюсь конвееризировать и синхронизировать. P.S. особенно бесит то , что симулятор насимулил иголки вот в таком на первый взгляд "простом" месте: Код HBlank<='1' when (HCounter>=(Sync+BackPorch) and HCounter<(Sync+BackPorch+Visible)) else '0'; а вот при об-клочивании пиксельклоком - горизонтальный синхроимпульс стал выглядеть как надо  логика (особенно программируемая) - это просто КАПЕЦ
|
|
|
|
|
Dec 15 2009, 11:18
|
iBuilder©
   
Группа: Свой
Сообщений: 519
Регистрация: 14-07-04
Из: Минск
Пользователь №: 322

|
Цитата(%-) @ Dec 15 2009, 08:33)  P.S. особенно бесит то , что симулятор насимулил иголки вот в таком на первый взгляд "простом" месте: Код HBlank<='1' when (HCounter>=(Sync+BackPorch) and HCounter<(Sync+BackPorch+Visible)) else '0'; а вот при об-клочивании пиксельклоком - горизонтальный синхроимпульс стал выглядеть как надо  логика (особенно программируемая) - это просто КАПЕЦ  Все это проходили, кто-то быстрее, кто-то не сразу. разбирайтесь, без понимания того, почему такое происходит будет трудно. Будете постоянно не понимать что происходит. Я только не понял, если нет опыта или наставника под боком, зачем брались за такой сложный для Вас проект?
|
|
|
|
Сообщений в этой теме
%-) Реализация LookUp Table для видеовывода Dec 14 2009, 06:34     SM Цитата(Builder @ Dec 14 2009, 10:49) появ... Dec 14 2009, 08:01        des00 Цитата(%-) @ Dec 15 2009, 00:33)... Dec 15 2009, 06:52 SM Короче - пока есть слаки, нет никакого смысла зали... Dec 14 2009, 06:57 %-) кстати, как правильно(синхронно) вычитывать данные... Dec 15 2009, 00:31 VasiaMVR Цитата(%-) @ Dec 15 2009, 03:31)... Dec 15 2009, 19:15  %-) Цитата(VasiaMVR @ Dec 15 2009, 22:15) Не ... Dec 15 2009, 22:57   des00 Цитата(%-) @ Dec 15 2009, 16:57)... Dec 16 2009, 04:17    %-) Цитата(des00 @ Dec 16 2009, 07:17) какая ... Dec 16 2009, 04:25 %-) ещё вопрос по генерации адреса.
нужно удваивать ст... Dec 16 2009, 02:53 %-) люди!
памагите!
сроки поджимают, а мы(кон... Dec 16 2009, 06:23 torik Палитра как рассчитывается? Если значений палитры ... Dec 16 2009, 12:21 %-) палитра не считается по формуле.
всего 256 цветов... Dec 17 2009, 02:07 des00 Цитата(%-) @ Dec 16 2009, 20:07)... Dec 17 2009, 04:07  %-) Цитата(des00 @ Dec 17 2009, 07:07) в чем ... Dec 17 2009, 05:39   des00 Цитата(%-) @ Dec 16 2009, 23:39)... Dec 17 2009, 06:18    %-) Цитата(des00 @ Dec 17 2009, 09:18) ... Dec 17 2009, 07:19     Builder Цитата(%-) @ Dec 17 2009, 09:19)... Dec 17 2009, 08:14     DmitryR Цитата(%-) @ Dec 17 2009, 10:19)... Dec 18 2009, 08:54      %-) Цитата(DmitryR @ Dec 18 2009, 11:54) когд... Dec 19 2009, 05:44   Maverick Цитата(%-) @ Dec 17 2009, 08:39)... Dec 17 2009, 16:07    Builder Цитата(Maverick @ Dec 17 2009, 18:07) ... Dec 17 2009, 16:17    %-) Цитата(Maverick @ Dec 17 2009, 19:07) ... Dec 17 2009, 23:02 torik Цитатаво-вторых: что-то мы сомневаемся, что алтера... Dec 17 2009, 06:15 torik Цитатанеправда.
двухпортовое озу просто необходим... Dec 17 2009, 07:29 torik Многие ли захотят Вам помогать
Да и нечем, похож... Dec 18 2009, 05:57
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|