Цитата(zksystem @ Jul 13 2009, 00:38)

Доброго всем времени суток.
Подскажите пожалуйста как реализовать следующее:
Имеется микроконтроллер с внешней шиной памяти, CPLD Altera MAXII в которой реализован видеоконтроллер. Для реализации видеопамяти тут казалось бы проще поставить двухпортовую память, на один порт контроллер, а на второй CPLD и не париться, но цена на них уж очень кусается. Таким образом было решено использовать два банка памяти (в два чипа). Банки подключаются специальным сигналом, когда первый банк подключен к микроконтроллеру, то второй банк подключен к видеоконтроллеру для вывода информации, при переключении банки меняются наоборот.
В таком случае необходим двунаправленный мультиплексор, реализация которого у меня что-то не выходит... Смотрел в сторону двунаправленных шин, но там используются триггеры с тактированием загрузки...
По другому эту задачу никак не реализовать?
Озадачен очень похожей проблемой причем тоже на MAXII. То что Вы делаете называется RAMDAC. Оно состоит из DAC'a прикрученного к CPLD и памяти, прикрученной тоже к CPLD. Кстати, хотел посоветоваться пор двух портовую память (какие они бывают и сколько стоят?), можно в личку? Я так понял, что от железа здесь мало что зависит и все делать придется программно, точнее на Verilog'е/VHDL'е. На сайте Vesa.org есть список режимов и тайминги. Нужно всего лишь выделить память под буфер кадра и... А дальше начинаются траблы. Или менять эти буферы (
Double Buffering/
Triple Buffering) или двухпортовая память... Кстати, что очень любопытно, даже в современных видеокартах (встроенных) никаких VRAM'ов нет и мультиплексоров тоже нет, все делается при помощи драйвера/прошивки, поэтому картинка на экране вроде стабильная, а пропускная способность и без того, под завязку загруженной DDR2/DDR3, падает в разы.
Кстати, где вообще можно купить VRAM, которая будет работать с MAXII?