Новый год, 10 выходных. Не бухать же...
Надо чем то заняться...
Зажегся идеей сделать VGA адаптер с памятью изображения.
У меня целых два-три устройства хотели бы вывод на VGA.
В теории все просто: VGA это три аналоговых сигнала red green blue + два сигнала строчной и кадровой синхронизации.
Значит, надо слать 3 байта информации в ЦАП и на выходе снимать VGA.
Это называется ramdac.
Дальше я просидел всю ночь в подборе памяти. И не смог ничего найти подходящего.
А случилась вот такая штука:
Монитор 1280*1024*50Hz*1байт=65Mбайт в секунду. Стандарт vga требует чтобы 0,7 времени рисовалась строка, 0,3 времени луч шел обратно.
Он рекомендует умножать на 1,4. 65мбайт*1,4=91Мбайт в секунду - требуемая скорость чтения.
Размер ОЗУ = 1280*1024*3байта=3,9 мегабайт. Славно.
Еще есть такая штука как FullHd.
Требуется 145 Мбайт в секунду (для 50 кадров в секунду) и ОЗУ 6,2 мегабайта.
А еще есть 4k но это в будущем.
Прекрасно.
С DAC проблем нету. Хочешь - бери чудесный ADV7125 (330 мгц). Хочешь - бери три копеечных русских цап на 7 н.с. и будет все прекрасно. А хочешь - есть hdmi сериалайзер, будет hdmi картинка.
Проблема в том что вообще говоря, реально такой памяти не существует. Dram имеет время доступа порядка 70нс что ограничивает максимальную скорость 13мегабайт в секунду. SDRAM имеет негуманные задержки после сигнала CAS (выдачи строки) и вообще там сложный график выдачи данных. Непрерывная передача будет сорвана.
Можно сделать умнее - использовать самую быструю статическую память (которая типа кэш) для хранения строки пикселей. Пока строка пишется в буфер строки - на экран выводить содержимое второго буфера. Потом переключать. То есть двойная буферизация.
Тогда нужно 6 банков памяти 2кбайт*8 бит SRAM + 6 мегабайт дешевой SDRAM.
Вот тут получается затычка.
На рынке отсутствуют SRAM с временем доступа менее 10нс и объемом меньше 32-64 килобайта. Типовая емкость быстрых sram под мегабит. Цена жуть.
Мне таких чипов нужно 6, стоимость взлетает до 100 бакинских долларов. Задачка то ерундовая. Как такая задача решается на серийных видеокартах? Такие карты уже были в начале 2000х и себестоимость была не столь высока.
Или вот еще задача.
Универсальный радиопередатчик до 2ггц, где форма сигнала формируется программно и пишется в буфер. Выплевывается DAC в эфир.
Элементная база ограничит нас максимальной частотой всего лишь 50 мгц.
Что делать, куда бежать?
Черканите так же мне, если у Вас есть любой опыт с микросхемами знакогенератора типа motorola mc6845 да и вообще: tv-out или что похожее. Спасибо.