Перейти к содержанию
    

Реализация LookUp Table для видеовывода

 

засуньте себе в одно место

 

 

в N-ый раз повторяю читайте хендбуки с www.altera.com, там все написано. Ответ на большинство ваших вопросов ищется в хендбуке за 10-15 минут + немного логики здравого смысла

 

номер хендбука от Алтеры пожалуйста...

где написано как сделать перегружаемую палитру на 256 цветов

 

отсутствие ссылки - факт подтверждения вашего мнимого профессионализма.

 

P.S. говорить и посылать мы все можем.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

двухпортовое озу просто необходимо - нужно одновременно и оперативно писать и вычитывать.

В надежде закончить этот холивар я вам скажу: когда вы одновременно пишете значение палитры и читаете его же, вы в зависимости от настроек памяти можете получить три разных вида значений, в том числе и неопределенное (что IMHO по умолчанию или даже без вариантов у Альтеры). Двухпортовая память может применяться, когда запись и чтение разделены по адресам. Так как чтение палитры использует случайные адреса - реализовать это, на мой взгляд можно только сделам палитру двустраничной, в неактивную страницу пишите - из активной читаете, потом меняете местами. Или все-таки писать палитру во время бланкинга - тогда хватит одной страницы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

когда вы одновременно пишете значение палитры и читаете его же, вы в зависимости от настроек памяти можете получить три разных вида значений, в том числе и неопределенное (что IMHO по умолчанию или даже без вариантов у Альтеры). Двухпортовая память может применяться, когда запись и чтение разделены по адресам. Так как чтение палитры использует случайные адреса - реализовать это, на мой взгляд можно только сделам палитру двустраничной, в неактивную страницу пишите - из активной читаете, потом меняете местами. Или все-таки писать палитру во время бланкинга - тогда хватит одной страницы.

 

лажу несёте, сударь, однако :)

 

эксперименты с палитрой показали, что если индекс палитры - всегда определённые биты (например биты 0 - 7 памяти), то палитра успешно отображается и на VGA и на ТВ:

здесь адрес меняется по фронту clk:

 

if rising_edge(clk) then
   R<rgb(conv_integer(sram(7..0)))(14..10);
   G<rgb(conv_integer(sram(7..0)))(9..5);
   B<rgb(conv_integer(sram(7..0)))(4..0);
end if;

 

если же на первом такте вычитывать биты 0-7 памяти, а на втором такте - биты 8-15 (ещё раз: биты 0-7 - это одна точка, биты 8-15 - вторая точка), то размытость на ТВ ожидаема. На VGA всё ОК

здесь адрес меняется по фронту clk/2:

 

if rising_edge(clk) then
if shift='0' then
   R<rgb(conv_integer(sram(7..0)))(14..10);
   G<rgb(conv_integer(sram(7..0)))(9..5);
   B<rgb(conv_integer(sram(7..0)))(4..0);
else
   R<rgb(conv_integer(sram(15..8)))(14..10);
   G<rgb(conv_integer(sram(15..8)))(9..5);
   B<rgb(conv_integer(sram(15..8)))(4..0);
end if;
shift<=not shift;
end if;

Изменено пользователем %-)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...