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

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

Информация

 

 

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

Общая

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

ПЛИС

Измерения

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

Библиотека

Справочники

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

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

Куплю

Продам

Магазин

Программы

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

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

Интернет

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

Другие

Мы в соцсетях

  

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

Параметризуемая синхронная линия задержки (сдвиговый регистр). Версия 2

Параметры:
DWIDTH - разрядность сдвигового регистра (бит)
NUM_HALF_CLK - число 1/2 тактов задержки
Входные порты:
clk - вход тактовых импульсов
in_data - входная шина данных разрядностью DWIDTH бит
Выходные порты:
out_data - выходная шина данных разрядностью DWIDTH бит

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

TITLE "DELAY LINE";

PARAMETERS
(
DWIDTH = 10, --Разрядность шины данных
NUM_HALF_CLK= 3 --Задержка в половинах тактов clk
);

CONSTANT NUMWORDS = FLOOR(NUM_HALF_CLK DIV 2);
CONSTANT DEL_HALF = NUM_HALF_CLK MOD 2;

SUBDESIGN dline_v2
(
clk : INPUT;
in_data[DWIDTH-1..0] : INPUT;

out_data[DWIDTH-1..0] : OUTPUT;
)

VARIABLE

IF NUMWORDS > 0 GENERATE
dw[NUMWORDS-1..0][DWIDTH-1..0] : DFF;
END GENERATE;

IF DEL_HALF > 0 GENERATE
del_hw[DWIDTH-1..0] : DFF;
END GENERATE;

out_data_int[DWIDTH-1..0] : NODE;

BEGIN

IF NUMWORDS > 0 GENERATE

dw[][].clk = clk;
dw[0][].d = in_data[];

IF NUMWORDS > 1 GENERATE
dw[NUMWORDS-1..1][].d = dw[NUMWORDS-2..0][].q;
END GENERATE;

out_data_int[] = dw[NUMWORDS-1][].q;

ELSE GENERATE

out_data_int[] = in_data[];

END GENERATE;

IF DEL_HALF > 0 GENERATE

del_hw[].clk = !clk;
del_hw[].d = out_data_int[];
out_data[] = del_hw[].q;

ELSE GENERATE

out_data[] = out_data_int[];

END GENERATE;

END;

 

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

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


Комментарии

comments powered by Disqus