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

 
 
5 страниц V  < 1 2 3 4 > »   
Reply to this topicStart new topic
> Принять LVDS от HMCAD1511
ViKo
сообщение Aug 2 2016, 06:51
Сообщение #16


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



А SerDes не подойдет? На картинке из сообщения 7 показаны две тактовых частоты. Вот ту, что медленнее, нельзя ли приспособить? Все данные идут каждый по своему каналу. Не занимался serdes-ами.
Go to the top of the page
 
+Quote Post
Алга
сообщение Aug 2 2016, 09:06
Сообщение #17


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

Группа: Свой
Сообщений: 116
Регистрация: 29-12-04
Пользователь №: 1 739



Прием данных от АЦП HMCAD1511 выполняется на SERDES, которые в разных семействах имеют разное быстродействие.
Например Cyclone5 указано оно равно 875 Mbps и значит не подходит для приема данных этого АЦП. Однако есть более быстродействующие FPGA например Arria Stratix. Хороший application note XAPP585 на эту тему.

ArriaV SerDes приемник быстродействие 1050-1250 Mbps взависимости от скорости FPGA.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Aug 2 2016, 10:06
Сообщение #18


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(Алга @ Aug 2 2016, 12:06) *
Прием данных от АЦП HMCAD1511 выполняется на SERDES, которые в разных семействах имеют разное быстродействие.
Например Cyclone5 указано оно равно 875 Mbps и значит не подходит для приема данных этого АЦП. Однако есть более быстродействующие FPGA например Arria Stratix. Хороший application note XAPP585 на эту тему.

ArriaV SerDes приемник быстродействие 1050-1250 Mbps взависимости от скорости FPGA.

Для Cyclone V попробовал сделать мегафункцию ALT_LVDS_RX, задал частоту данных 1000 Mbps, частоту входного такта 500 MHz (LCLK из HMCAD1511), и замечаний от Визарда не получил. Посмотрю в ModelSim. Не понимаю, а FCLK никак не использовать? Жалко.

В той таблице, где написано 875 Mbps, указано, что это для коэффициента J = 4 to 10. А когда J = 1, 2 то используются DDR регистры и дается примечание 66:

The maximum ideal data rate is the SERDES factor (J) × PLL max output frequency (fout), provided you can close the design timing and the signal
integrity simulation is clean. You can estimate the achievable maximum data rate by performing link timing closure analysis. You must consider the
board skew margin, transmitter delay margin, and receiver sampling margin to determine the maximum data rate supported.

Go to the top of the page
 
+Quote Post
Алга
сообщение Aug 2 2016, 11:13
Сообщение #19


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

Группа: Свой
Сообщений: 116
Регистрация: 29-12-04
Пользователь №: 1 739



FCLK и надо использовать, подавая ее на PLL, где потом частота повышается до 125 Mhz (FCLK) x 8bit = 1000 Mbps.

Надежный прием данных от АЦП еще предполагает, что надо еще делать 2 калибровки по включению питания:
одна- подстройка битклока в центр битданных, меняя задержку. Другая выравнивание получениых данных по кадру (frame Clk).
Go to the top of the page
 
+Quote Post
Алга
сообщение Aug 2 2016, 13:25
Сообщение #20


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

Группа: Свой
Сообщений: 116
Регистрация: 29-12-04
Пользователь №: 1 739



Ясно, что у Алтеры имеется документация по этому вопросу.
Например AN236
AN236
Go to the top of the page
 
+Quote Post
ViKo
сообщение Aug 2 2016, 13:39
Сообщение #21


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



CODE

#*******************************************************************************
## SDC file "HighSpeed.sdc"
## author ViKo
# Формат времени #
set_time_format -unit ns -decimal_places 3
# Входные такты #
create_clock -name ClkIn -period 500MHz -waveform {0 1} {Clk}
# Сигнал дискретизации #
# Определить такты с ФАПЧ #
derive_pll_clocks -create_base_clocks
# Определить нестабильность тактов #
derive_clock_uncertainty
# Задержка входных данных #
set_input_delay -clock ClkIn 0.55 [get_ports {DP[*]A DP[*]B}]
# Задержка выходных данных #
# set_output_delay -clock ClkOut -2 [get_ports {D*}]
set_output_delay -clock ClkOut -min 0 [get_ports {D*}]
set_output_delay -clock ClkOut -max 0 [get_ports {D*}]
# Не проверять путь #
# set_false_path -from ClkOut -to [get_ports {D*}]
# set_multicycle_path -from ClkOut -to D* -start 2
# set_multicycle_path -from ClkOut -to D* -hold 0

TimeQuest выдает Unconstrained Output Ports: 33
Надо как-то ClkOut вывести из PLL.
Для GX по временам у TimeQuest претензий нет.

CODE

`define VERSION1
// `define WID 8

module HighSpeed (
(* altera_attribute = "-name io_standard lvds; -name pad_to_input_register_delay 0", useioff = 1 *)
input bit Clk,
(* altera_attribute = "-name io_standard lvds; -name pad_to_input_register_delay 0", useioff = 1 *)
input bit ClkIn,
(* altera_attribute = "-name io_standard lvds; -name pad_to_input_register_delay 0", useioff = 1 *)
input bit DP1A, DP1B, DP2A, DP2B, DP3A, DP3B, DP4A, DP4B,
(* altera_attribute = "-name io_standard \"2.5 V\"" *)
output bit [31 : 0] D,
(* altera_attribute = "-name io_standard \"2.5 V\"" *)
output bit ClkOut
);

`ifdef VERSION1

AltLvdsRx_mf AltLvdsRx (
.rx_in ({ DP4B, DP4A, DP3B, DP3A, DP2B, DP2A, DP1B, DP1A }),
.rx_inclock (ClkIn),
.rx_out (D),
.rx_outclock (ClkOut)
);

`endif

`ifdef VERSION2

AltLvdsRx1_mf Rx (
.rx_in (DP1A),
.rx_inclock (ClkIn),
.rx_out (D),
.rx_outclock (ClkOut)
);

`endif

endmodule : HighSpeed
Go to the top of the page
 
+Quote Post
ViKo
сообщение Aug 3 2016, 10:53
Сообщение #22


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(Алга @ Aug 2 2016, 14:13) *
FCLK и надо использовать, подавая ее на PLL, где потом частота повышается до 125 Mhz (FCLK) x 8bit = 1000 Mbps.

Надежный прием данных от АЦП еще предполагает, что надо еще делать 2 калибровки по включению питания:
одна- подстройка битклока в центр битданных, меняя задержку. Другая выравнивание полученных данных по кадру (frame Clk).

А вот эти выравнивания, делаются ли в рабочем режиме, или уже как повезет? Что-то не видно возможностей в Cyclone V.
Задействовал FCLK. В ModelSim принимаю данные с пока не определенным сдвигом. Посланное не соответствует принятому. Буду двигать фазу в мегафункции. Надо еще удостовериться, что имитируемые от АЦП такты и данные соответствуют временным характеристикам.
А еще данные складируются задом наперед. Первый принятый бит идет в старший. А у АЦП наоборот, первым выдается младший. Надо биты реверсировать.
Go to the top of the page
 
+Quote Post
Алга
сообщение Aug 3 2016, 11:53
Сообщение #23


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

Группа: Свой
Сообщений: 116
Регистрация: 29-12-04
Пользователь №: 1 739



Есть еще связанная тема-трассировка линий данных и клока АЦП. Как она сделана на ППМ?
Рекомендуется- LVDS линии данных и клоков идущих к FPGA выравнять по длине.
Тогда FCLK и линии данных имеют одинаковые задержки и линия FCLK также служит
как эталонная при выравнивании границ кадра и для калибровок. В этом случае эти
операции можно делать и в рабочем режиме.
Если линии не выравнены, то АЦП надо переводить в тестовый режим (режим калибровки) для
генерации тестового паттерна. И по принимаемому FPGA паттерну для каждой линии данных делать подстройку.
Cyclone5 не сможет принять 1 GSPS данные от HMCAD1511 .
У Алтеры есть документация, обьясняющая принцип построения SERDES мегафункций ALTLVDS_RX AN202, AN236.
Здесь надо разобраться как битклок ставится в центр битовых данных и потом- операция битслип. Serdes принимает
данные в SDR или DDR режиме и тд.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Aug 3 2016, 11:56
Сообщение #24


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(Алга @ Aug 3 2016, 14:53) *
Cyclone5 не сможет принять 1 GSPS данные от HMCAD1511 .

В Моделсиме принимает. rolleyes.gif
Go to the top of the page
 
+Quote Post
Алга
сообщение Aug 3 2016, 12:02
Сообщение #25


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

Группа: Свой
Сообщений: 116
Регистрация: 29-12-04
Пользователь №: 1 739



SERDES в каком режиме принимает данные SDR или DDR?
Go to the top of the page
 
+Quote Post
ViKo
сообщение Aug 3 2016, 12:05
Сообщение #26


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(Алга @ Aug 3 2016, 14:53) *
Есть еще связанная тема-трассировка линий данных и клока АЦП. Как она сделана на ППМ?
Рекомендуется- LVDS линии данных и клоков идущих к FPGA выравнять по длине.

ППМ - это печатная плата? Выровняю сам (всё сам...). Конечно.

Цитата(Алга @ Aug 3 2016, 15:02) *
SERDES в каком режиме принимает данные SDR или DDR?

Хороший вопрос. Задал в мегафункции ALTRVDS_RX битрейт 1000 МГц, коэффициент десериализации 8, частоту входную 125 МГц. Что там Квартус нашаманил, мне не ведомо.
С битслипом не разобрался. Откуда его взять?
Go to the top of the page
 
+Quote Post
bogaev_roman
сообщение Aug 3 2016, 12:10
Сообщение #27


Профессионал
*****

Группа: Свой
Сообщений: 1 088
Регистрация: 20-10-09
Из: Химки
Пользователь №: 53 082



Цитата(ViKo @ Aug 3 2016, 15:05) *
Хороший вопрос. Задал в мегафункции ALTRVDS_RX битрейт 1000 МГц, коэффициент десериализации 8, частоту входную 125 МГц. Что там Квартус нашаманил, мне не ведомо.

А в чем проблема посмотреть? В том же timequest можно посмотреть путь от пина до конкретного регистра по задержкам с соответствующим названием (кстати, задержки можно и вручную забить на входе - iodelay, хотя не знаю - есть ли они на циклоне, на стратиксе3/4 были).
Go to the top of the page
 
+Quote Post
Алга
сообщение Aug 3 2016, 12:17
Сообщение #28


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

Группа: Свой
Сообщений: 116
Регистрация: 29-12-04
Пользователь №: 1 739



ППМ- плата печатного монтажа. Битслип- операция выравнивания принимаемых данных по границе фреймклока допустим.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Aug 3 2016, 12:32
Сообщение #29


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(bogaev_roman @ Aug 3 2016, 15:10) *
А в чем проблема посмотреть? В том же timequest можно посмотреть путь от пина до конкретного регистра по задержкам с соответствующим названием.

В Pin Planner называется DIFFIO_RX
В Resource Property Editor в свойствах: DDIO Mode - none
Go to the top of the page
 
+Quote Post
bogaev_roman
сообщение Aug 3 2016, 12:37
Сообщение #30


Профессионал
*****

Группа: Свой
Сообщений: 1 088
Регистрация: 20-10-09
Из: Химки
Пользователь №: 53 082



Цитата(ViKo @ Aug 3 2016, 15:32) *
В Pin Planner называется DIFFIO_RX
В Resource Property Editor в свойствах: DDIO Mode - none

Значит, скорее всего используется как обычный регистр. А Так проще всего было залезть в chipplaner, найти пин и от него линию до реального регистра со всеми внутренностями. А вообще SERDES на самом быстром циклон5 гарантированно работает на скорости 875 (j=8), что ниже заявленной Вами - https://www.altera.com/content/dam/altera-w...-v/cv_51002.pdf с49
Go to the top of the page
 
+Quote Post

5 страниц V  < 1 2 3 4 > » 
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


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


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