Перейти к содержанию
    

А SerDes не подойдет? На картинке из сообщения 7 показаны две тактовых частоты. Вот ту, что медленнее, нельзя ли приспособить? Все данные идут каждый по своему каналу. Не занимался serdes-ами.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Прием данных от АЦП HMCAD1511 выполняется на SERDES, которые в разных семействах имеют разное быстродействие.

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Прием данных от АЦП 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.

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

Надежный прием данных от АЦП еще предполагает, что надо еще делать 2 калибровки по включению питания:

одна- подстройка битклока в центр битданных, меняя задержку. Другая выравнивание получениых данных по кадру (frame Clk).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

#*******************************************************************************
## 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 претензий нет.

 

`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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

Надежный прием данных от АЦП еще предполагает, что надо еще делать 2 калибровки по включению питания:

одна- подстройка битклока в центр битданных, меняя задержку. Другая выравнивание полученных данных по кадру (frame Clk).

А вот эти выравнивания, делаются ли в рабочем режиме, или уже как повезет? Что-то не видно возможностей в Cyclone V.

Задействовал FCLK. В ModelSim принимаю данные с пока не определенным сдвигом. Посланное не соответствует принятому. Буду двигать фазу в мегафункции. Надо еще удостовериться, что имитируемые от АЦП такты и данные соответствуют временным характеристикам.

А еще данные складируются задом наперед. Первый принятый бит идет в старший. А у АЦП наоборот, первым выдается младший. Надо биты реверсировать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Есть еще связанная тема-трассировка линий данных и клока АЦП. Как она сделана на ППМ?

Рекомендуется- LVDS линии данных и клоков идущих к FPGA выравнять по длине.

Тогда FCLK и линии данных имеют одинаковые задержки и линия FCLK также служит

как эталонная при выравнивании границ кадра и для калибровок. В этом случае эти

операции можно делать и в рабочем режиме.

Если линии не выравнены, то АЦП надо переводить в тестовый режим (режим калибровки) для

генерации тестового паттерна. И по принимаемому FPGA паттерну для каждой линии данных делать подстройку.

Cyclone5 не сможет принять 1 GSPS данные от HMCAD1511 .

У Алтеры есть документация, обьясняющая принцип построения SERDES мегафункций ALTLVDS_RX AN202, AN236.

Здесь надо разобраться как битклок ставится в центр битовых данных и потом- операция битслип. Serdes принимает

данные в SDR или DDR режиме и тд.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Cyclone5 не сможет принять 1 GSPS данные от HMCAD1511 .

В Моделсиме принимает. :rolleyes:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Есть еще связанная тема-трассировка линий данных и клока АЦП. Как она сделана на ППМ?

Рекомендуется- LVDS линии данных и клоков идущих к FPGA выравнять по длине.

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

 

SERDES в каком режиме принимает данные SDR или DDR?

Хороший вопрос. Задал в мегафункции ALTRVDS_RX битрейт 1000 МГц, коэффициент десериализации 8, частоту входную 125 МГц. Что там Квартус нашаманил, мне не ведомо.

С битслипом не разобрался. Откуда его взять?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Хороший вопрос. Задал в мегафункции ALTRVDS_RX битрейт 1000 МГц, коэффициент десериализации 8, частоту входную 125 МГц. Что там Квартус нашаманил, мне не ведомо.

А в чем проблема посмотреть? В том же timequest можно посмотреть путь от пина до конкретного регистра по задержкам с соответствующим названием (кстати, задержки можно и вручную забить на входе - iodelay, хотя не знаю - есть ли они на циклоне, на стратиксе3/4 были).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ППМ- плата печатного монтажа. Битслип- операция выравнивания принимаемых данных по границе фреймклока допустим.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А в чем проблема посмотреть? В том же timequest можно посмотреть путь от пина до конкретного регистра по задержкам с соответствующим названием.

В Pin Planner называется DIFFIO_RX

В Resource Property Editor в свойствах: DDIO Mode - none

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...