|
|
  |
Проброс линии, как правильно сделать |
|
|
|
Mar 27 2015, 16:01
|
Частый гость
 
Группа: Свой
Сообщений: 141
Регистрация: 22-11-12
Из: Нижний Новгород
Пользователь №: 74 507

|
Здравствуйте  Буквально вчера делал проброс JTAG'a, и задумался как сделать сие правильно. 1. Бросить линию проводом, но тогда фазы сигналов возможно разбегутся . 2. Пропустить через синхронизатор и выдать наружу, сигнал малость сдвинется, но фронты из ПЛИС уйдут в одно и тоже время. JTAG, которой я использовал, достаточно медленный 6МГц, я попробовал и так и сяк, оба раза успешно. Хотелось бы узнать как правильно и есть ли какой критерий для определения границы. Например если надо пробросить сигнал в 100 МГц, как быть ?
|
|
|
|
|
Mar 27 2015, 17:32
|
Частый гость
 
Группа: Свой
Сообщений: 141
Регистрация: 22-11-12
Из: Нижний Новгород
Пользователь №: 74 507

|
Цитата(iosifk @ Mar 27 2015, 19:04)  По плате и через кабель "100 МГц" на LVCMOS или LVTTL? Это я же ш для примера про 100 МГц Какие различия при пробросе линии для LVCOS и LVTTL , поведайте ? Надо их к соответствующим банкам подключить ?
|
|
|
|
|
Mar 27 2015, 19:31
|

я только учусь...
     
Группа: Модераторы
Сообщений: 3 447
Регистрация: 29-01-07
Из: Украина
Пользователь №: 24 839

|
Цитата(egorman44 @ Mar 27 2015, 19:32)  Какие различия при пробросе линии для LVCOS и LVTTL , поведайте ? Надо их к соответствующим банкам подключить ? логика уровня 3,3В LVCМOS - КМОП LVTTL - ТТЛ логика Объяснять что такое КМОП и ТТЛ логика? короткий ответ здесь
тип логики прописывается в ucf/sdc файле для каждого пина ПЛИС
--------------------
If it doesn't work in simulation, it won't work on the board.
"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
|
|
|
|
|
Mar 27 2015, 20:48
|
Частый гость
 
Группа: Свой
Сообщений: 141
Регистрация: 22-11-12
Из: Нижний Новгород
Пользователь №: 74 507

|
Цитата(Maverick @ Mar 27 2015, 22:31)  логика уровня 3,3В LVCМOS - КМОП LVTTL - ТТЛ логика Объяснять что такое КМОП и ТТЛ логика? короткий ответ здесь
тип логики прописывается в ucf/sdc файле для каждого пина ПЛИС нет, спасибо, это я где-то слышал уже меня интересует вопрос чисто описательный , как описывать правильнее, когда пробрасываешь какой-то инерфейс через ПЛИС Код // вот имеем допустим
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 Или второй случай ересь ? Вот Вы как делаете ?
|
|
|
|
|
Mar 27 2015, 20:53
|

я только учусь...
     
Группа: Модераторы
Сообщений: 3 447
Регистрация: 29-01-07
Из: Украина
Пользователь №: 24 839

|
Цитата(egorman44 @ Mar 27 2015, 22:48)  нет, спасибо, это я где-то слышал уже меня интересует вопрос чисто описательный , как описывать правильнее, когда пробрасываешь какой-то инерфейс через ПЛИС Код // вот имеем допустим
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
--------------------
If it doesn't work in simulation, it won't work on the board.
"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
|
|
|
|
|
Mar 27 2015, 21:45
|
Частый гость
 
Группа: Свой
Сообщений: 141
Регистрация: 22-11-12
Из: Нижний Новгород
Пользователь №: 74 507

|
Цитата(Maverick @ Mar 27 2015, 23:53)  изначально цифровой сигнал DATA однонаправленный? какая тактовая частота CLK для DATA? Да однонаправленный, двунаправленный я уже как то пробрасывал JTAG вообще не быстрый у меня - 6 МГц. Цитата Если тактовая в плис раза в 4 и более выше поступления данных (Ваш случай), тогда я брал и "переносил входной сигнал" на свою тактовую частоту плис, т.е. детектировал передний и задний фронт сигнала данных и формировал импульс данных. Уже сформированный на частоте плис сигнал данных - выдавал наружу. Вот я и подумал, что может есть какое-то правило. Думается чем быстрее сигнал, тем быстрее разбегаются фронты, соответственно ПЛИСиной можно их маленько выровнять. Но с другой стороны если сигнал слишком уж шустрый, то с какой его частотой надо молотить, чтобы впихнуть в синхронизатор.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|