Цитата
Здравствуйте! Прошу совета. Задача следующая. Требуется вывести видеоизображение с КМОП матрицы на стандартный монитор. Проект реализую на Cyclone IV. На плате также имеется SRAM 2 MB и SDRAM 64 MB. Пиксельная частота камеры 2 МГц, пиксельная частота монитора 40 МГц. Разрешение кадра 800х600. Матрица выдает кадры друг за другом без остановки. Поскольку частоты не совпадают необходимо использовать кадровый буфер.
Я бы кадровый буфер организовал в SDRAM в разных банках. В один банк пишите. Из другого читаете, и их чередуете. Хотя можно и в одном банке. По одним адресам пишите, по другим читаете, и так-же чередовать их.
Читал и записывал в SDRAM через FIFO, чтобы можно было "отвлекаться" на чтение из памяти для записи новых данных. Т.е в одно FIFO пишу данные с камеры, потом из этого FIFO пишу в SDRAM. А в другое FIFO читаю данные из SDRAM и из него вывожу данные на монитор. Всем этим делом бы управлял простенький автомат, который следил за наполнением\опустошением FIFO буферов и переключался на чтение или запись, в зависимости о того в каком состоянии находиться тот или иной буфер. Тут главный критерий, организовать чтение запись так, чтобы данные не успели деградировать. Иначе придётся вводить регенерацию памяти.
Кадр менял бы тогда, когда идет обратный ход луча (если в старой терминологии), т.е когда мы полностью отрисовали предыдущий кадр.
Посмотрите ещё размер ячейки памяти, влезут ли в неё все биты цвета.
Как мне кажется самая сложная задача здесь - написать SDRAM контроллер. Ну или взять готовый...
Сообщение отредактировал Flip-fl0p - Aug 15 2017, 08:52