реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Проброс линии, как правильно сделать
egorman44
сообщение Mar 27 2015, 16:01
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 141
Регистрация: 22-11-12
Из: Нижний Новгород
Пользователь №: 74 507



Здравствуйте sm.gif

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

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

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

Go to the top of the page
 
+Quote Post
iosifk
сообщение Mar 27 2015, 16:04
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



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

По плате и через кабель "100 МГц" на LVCMOS или LVTTL?


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
egorman44
сообщение Mar 27 2015, 17:32
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 141
Регистрация: 22-11-12
Из: Нижний Новгород
Пользователь №: 74 507



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


Это я же ш для примера про 100 МГц biggrin.gif
Какие различия при пробросе линии для LVCOS и LVTTL , поведайте ? Надо их к соответствующим банкам подключить ?
Go to the top of the page
 
+Quote Post
Maverick
сообщение Mar 27 2015, 19:31
Сообщение #4


я только учусь...
******

Группа: Модераторы
Сообщений: 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.

"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
Go to the top of the page
 
+Quote Post
egorman44
сообщение Mar 27 2015, 20:48
Сообщение #5


Частый гость
**

Группа: Свой
Сообщений: 141
Регистрация: 22-11-12
Из: Нижний Новгород
Пользователь №: 74 507



Цитата(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


Или второй случай ересь ? Вот Вы как делаете ?
Go to the top of the page
 
+Quote Post
Maverick
сообщение Mar 27 2015, 20:53
Сообщение #6


я только учусь...
******

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



Цитата(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


--------------------
If it doesn't work in simulation, it won't work on the board.

"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
Go to the top of the page
 
+Quote Post
egorman44
сообщение Mar 27 2015, 21:45
Сообщение #7


Частый гость
**

Группа: Свой
Сообщений: 141
Регистрация: 22-11-12
Из: Нижний Новгород
Пользователь №: 74 507



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

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

Вот я и подумал, что может есть какое-то правило. Думается чем быстрее сигнал, тем быстрее разбегаются фронты, соответственно ПЛИСиной можно их маленько выровнять. Но с другой стороны если сигнал слишком уж шустрый, то с какой его частотой надо молотить, чтобы впихнуть в синхронизатор.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 03:03
Рейтинг@Mail.ru


Страница сгенерированна за 0.02096 секунд с 7
ELECTRONIX ©2004-2016