Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Проброс линии
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
egorman44
Здравствуйте sm.gif

Буквально вчера делал проброс JTAG'a, и задумался как сделать сие правильно.

1. Бросить линию проводом, но тогда фазы сигналов возможно разбегутся .
2. Пропустить через синхронизатор и выдать наружу, сигнал малость сдвинется, но фронты из ПЛИС уйдут в одно и тоже время.

JTAG, которой я использовал, достаточно медленный 6МГц, я попробовал и так и сяк, оба раза успешно. Хотелось бы узнать как правильно и есть ли какой критерий для определения границы. Например если надо пробросить сигнал в 100 МГц, как быть ?

iosifk
Цитата(egorman44 @ Mar 27 2015, 19:01) *
JTAG, которой я использовал, достаточно медленный 6МГц, я попробовал и так и сяк, оба раза успешно. Хотелось бы узнать как правильно и есть ли какой критерий для определения границы. Например если надо пробросить сигнал в 100 МГц, как быть ?

По плате и через кабель "100 МГц" на LVCMOS или LVTTL?
egorman44
Цитата(iosifk @ Mar 27 2015, 19:04) *
По плате и через кабель "100 МГц" на LVCMOS или LVTTL?


Это я же ш для примера про 100 МГц biggrin.gif
Какие различия при пробросе линии для LVCOS и LVTTL , поведайте ? Надо их к соответствующим банкам подключить ?
Maverick
Цитата(egorman44 @ Mar 27 2015, 19:32) *
Какие различия при пробросе линии для LVCOS и LVTTL , поведайте ? Надо их к соответствующим банкам подключить ?

логика уровня 3,3В
LVCМOS - КМОП
LVTTL - ТТЛ
логика

Объяснять что такое КМОП и ТТЛ логика? короткий ответ здесь

тип логики прописывается в ucf/sdc файле для каждого пина ПЛИС
egorman44
Цитата(Maverick @ Mar 27 2015, 22:31) *
логика уровня 3,3В
LVCМOS - КМОП
LVTTL - ТТЛ
логика

Объяснять что такое КМОП и ТТЛ логика? короткий ответ здесь

тип логики прописывается в ucf/sdc файле для каждого пина ПЛИС


нет, спасибо, это я где-то слышал уже wink.gif

меня интересует вопрос чисто описательный , как описывать правильнее, когда пробрасываешь какой-то инерфейс через ПЛИС
Код
// вот имеем допустим

module(
input    DATA_in,
input    CLK_in,
output  DATA_out,
output  CLK_in
);
assign DATA_out = DATA_in;  // пробрасываем все проводом
assign CLK_out   = CLK_in;  // и это тоже
endmodule


Код
// или это дело пропустить через синхронизатор и выдать на выход ?

module(
input    DATA_in,
input    CLK_in,
output  DATA_out,
output  CLK_in
);
wire    sys_clk; // допустим клок с ПЛЛ
reg     [1:0] CLK_pipe, DATA_pipe;

always@(posedge sys_clk) begin
  CLK_pipe <= {CLK_pipe[0],CLK_in};
  DATA_pipe <= {DATA_pipe[0], DATA_in};
end

assign DATA_out = DATA_pipep[1];
assign CLK_out = CLK_pipe[1];

endmodule


Или второй случай ересь ? Вот Вы как делаете ?
Maverick
Цитата(egorman44 @ Mar 27 2015, 22:48) *
нет, спасибо, это я где-то слышал уже wink.gif

меня интересует вопрос чисто описательный , как описывать правильнее, когда пробрасываешь какой-то инерфейс через ПЛИС
Код
// вот имеем допустим

module(
input    DATA_in,
input    CLK_in,
output  DATA_out,
output  CLK_in
);
assign DATA_out = DATA_in;  // пробрасываем все проводом
assign CLK_out   = CLK_in;  // и это тоже
endmodule


Код
// или это дело пропустить через синхронизатор и выдать на выход ?

module(
input    DATA_in,
input    CLK_in,
output  DATA_out,
output  CLK_in
);
wire    sys_clk; // допустим клок с ПЛЛ
reg     [1:0] CLK_pipe, DATA_pipe;

always@(posedge sys_clk) begin
  CLK_pipe <= {CLK_pipe[0],CLK_in};
  DATA_pipe <= {DATA_pipe[0], DATA_in};
end

assign DATA_out = DATA_pipep[1];
assign CLK_out = CLK_pipe[1];

endmodule


Или второй случай ересь ? Вот Вы как делаете ?

изначально цифровой сигнал DATA однонаправленный? какая тактовая частота CLK для DATA?

Если тактовая в плис раза в 4 и более выше поступления данных (Ваш случай), тогда я брал и "переносил входной сигнал" на свою тактовую частоту плис, т.е. детектировал передний и задний фронт сигнала данных и формировал импульс данных. Уже сформированный на частоте плис сигнал данных - выдавал наружу.

PS делал не для JTAG
egorman44
Цитата(Maverick @ Mar 27 2015, 23:53) *
изначально цифровой сигнал DATA однонаправленный? какая тактовая частота CLK для DATA?

Да однонаправленный, двунаправленный я уже как то пробрасывал biggrin.gif
JTAG вообще не быстрый у меня - 6 МГц.
Цитата
Если тактовая в плис раза в 4 и более выше поступления данных (Ваш случай), тогда я брал и "переносил входной сигнал" на свою тактовую частоту плис, т.е. детектировал передний и задний фронт сигнала данных и формировал импульс данных. Уже сформированный на частоте плис сигнал данных - выдавал наружу.

Вот я и подумал, что может есть какое-то правило. Думается чем быстрее сигнал, тем быстрее разбегаются фронты, соответственно ПЛИСиной можно их маленько выровнять. Но с другой стороны если сигнал слишком уж шустрый, то с какой его частотой надо молотить, чтобы впихнуть в синхронизатор.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.