Радиотехнический сайт RADIOTRACT

Радиотехника и электроника для разработчиков и радиолюбителей

Информация

 

 

Справочные данные на радиоэлектронные компоненты, приборы, средства связи и измерений. Радиотехническая литература.

Общая

Микроконтроллеры

ПЛИС

Измерения

Радиостанции

Библиотека

Справочники

Доска объявлений

Объявления о покупке и продаже радиокомпонентов. Спрос и предложение на различные радиодетали и приборы.

Куплю

Продам

Магазин

Программы

Полезные программы для радиолюбителей и разработчиков радиоэлектроники.

Радиотехника

Интернет

Калькуляторы

Другие

Мы в соцсетях

  

Мегафункции ПЛИС

Модуль гамма-коррекции телевизионного сигнала, выводимого на монитор

Описание:
Файл инициализации памяти tvgamma.mif сгенерирован для случая вывода сигнала на монитор с электронно-лучевой трубкой (ЭЛТ).
Для LCD-мониторов коэффициенты будут другими.
Временная диаграмма входных и выходных сигналов прилагается (в формате симулятора пакета Quartus II).
Задержка потока данных 2 такта clk_tv.
Для генерации файла инициализации памяти tvgamma.mif написал программу GammaCorrector.exe (184 Кб). Имеется возможность выбрать требуемую разрядность коэффициентов коррекции. Исходный текст программы на Borland C++ можно скачать здесь (1 Кб).

Параметры:
DATA_WIDTH - разрядность шины данных (бит)
Входные порты:
clk_tv - вход тактовых импульсов
enable_correct - вход включения коррекции ("1" - включено, "0" - выключено)
in_data_valid - строб входной шины данных
in_data - входная шина данных
Выходные порты:
out_data_valid - строб выходной шины данных
out_data - выходная шина данных

Исходный текст

TITLE "TV GAMMA CORRECTION";

INCLUDE "altsyncram";

PARAMETERS
(
DATA_WIDTH = 10 --Data Bus Width
);

CONSTANT NUM_WORDS = 2^DATA_WIDTH;

SUBDESIGN tv_gamma
(
clk_tv : INPUT; --TV Pixel Clock
enable_correct : INPUT; --Enable Gamma-Correction
in_data_valid : INPUT; --Valid Input Data Bus
in_data[DATA_WIDTH-1..0] : INPUT; --Input Data Bus
out_data_valid : OUTPUT; --Valid Output Data Bus
out_data[DATA_WIDTH-1..0] : OUTPUT; --Output Data Bus
)

VARIABLE

tvcorrect : altsyncram WITH (
INTENDED_DEVICE_FAMILY = "Stratix",
WIDTH_A = DATA_WIDTH,
WIDTHAD_A = DATA_WIDTH,
NUMWORDS_A = NUM_WORDS,
OPERATION_MODE = "ROM",
OUTDATA_REG_A = "CLOCK0",
ADDRESS_ACLR_A = "NONE",
OUTDATA_ACLR_A = "NONE",
WIDTH_BYTEENA_A = 1,
INIT_FILE = "tvgamma.mif",
LPM_HINT = "ENABLE_RUNTIME_MOD=NO",
LPM_TYPE = "altsyncram"
);

tvdata1_rg[DATA_WIDTH-1..0] : DFF;
tvdata2_rg[DATA_WIDTH-1..0] : DFF;
valid_tv1_ff : DFF;
valid_tv2_ff : DFF;

BEGIN

tvcorrect.clock0 = clk_tv;
tvcorrect.address_a[] = in_data[];

tvdata1_rg[].clk = clk_tv;
tvdata1_rg[].d = in_data[];

tvdata2_rg[].clk = clk_tv;
tvdata2_rg[].d = tvdata1_rg[].q;

if enable_correct then
out_data[] = tvcorrect.q_a[];
else
out_data[] = tvdata2_rg[].q;
end if;

valid_tv1_ff.clk = clk_tv;
valid_tv1_ff.d = in_data_valid;

valid_tv2_ff.clk = clk_tv;
valid_tv2_ff.d = valid_tv1_ff.q;
out_data_valid = valid_tv2_ff.q;

END;

 

Скачать исходники можно здесь (архив RAR, 4Кб).

При любом полном или частичном воспроизведении, копировании и распространении материалов сайта - активная ссылка на ресурс www.radiotract.ru обязательна.


Комментарии

comments powered by Disqus