|
|
  |
ArriaV, native transceiver, external pll, режим CDR |
|
|
|
Aug 8 2017, 07:59
|
Профессионал
    
Группа: Свой
Сообщений: 1 088
Регистрация: 20-10-09
Из: Химки
Пользователь №: 53 082

|
На нескольких платах потребовалось завести все имеющиеся трансиверы (независимы). Для этой цели выбрал режим native с external pll в базовой конфигурации. Написал простейшую обвязку из логики сброса, подстройки и начальной синхронизации ну и генератора ПСП. В качестве CDR клока подаю входной клок на специальную ногу. Т. к. разные концы трансивера находятся на разных платах, то при отсутствии на входе сигнала rx_is_lockedtodata запускается сброс и начинается начальная синхронизация. Ну и, соответственно, в случае, если трансиверы питаются от одного генератора опорной частоты, после начальной синхронизации все работает стабильно, ошибок нет. Но если соединяю две платы (генераторы опорной частоты разные), то через некоторое время падает rx_is_lockedtodata. Соответственно вопрос - я неправильно понимаю логику работы CDR (я считал, что этот блок из входного потока данных благодаря кодированию 8b/10b выделяет опорную частоту -всегда)? Получается, что для правильной работы требуется периодически заново синхронизироваться?
|
|
|
|
|
Aug 15 2017, 12:39
|
Профессионал
    
Группа: Свой
Сообщений: 1 088
Регистрация: 20-10-09
Из: Химки
Пользователь №: 53 082

|
Цитата(novartis @ Aug 15 2017, 15:13)  У вас выбран режим Standart PCS? И там установлены галки Enable TX 8/10 и Enable RX 8/10? Да, я к сожалению не могу прикрепить настройки трансивера, попробую так описать главное: Код .tx_enable (1), .rx_enable (1), .enable_std (1), .data_path_select ("standard"), .channels (6), .bonded_mode ("xN"), .data_rate ("1250 Mbps"), .pma_width (10), .tx_pma_clk_div (1), .pll_reconfig_enable (0), .pll_external_enable (1), .pll_data_rate ("1250 Mbps"), .pll_type ("CMU"), .pma_bonding_mode ("xN"), .plls (1), .pll_select (0), .pll_refclk_cnt (1), .pll_refclk_select ("0"), .pll_refclk_freq ("125.0 MHz"), .pll_feedback_path ("internal"), .cdr_reconfig_enable (0), .cdr_refclk_cnt (1), .cdr_refclk_select (0), .cdr_refclk_freq ("125.0 MHz"), .rx_ppm_detect_threshold ("1000"), .rx_clkslip_enable (0), .std_protocol_hint ("basic"), .std_pcs_pma_width (10), .std_low_latency_bypass_enable (0), .std_tx_pcfifo_mode ("register_fifo"), .std_rx_pcfifo_mode ("register_fifo"), .std_rx_byte_order_enable (0), .std_rx_byte_order_mode ("manual"), .std_rx_byte_order_width (9), .std_rx_byte_order_symbol_count (1), .std_rx_byte_order_pattern ("0"), .std_rx_byte_order_pad ("0"), .std_tx_byte_ser_enable (0), .std_rx_byte_deser_enable (0), .std_tx_8b10b_enable (1), .std_tx_8b10b_disp_ctrl_enable (0), .std_rx_8b10b_enable (1), .std_rx_rmfifo_enable (0), .std_rx_rmfifo_pattern_p ("00000"), .std_rx_rmfifo_pattern_n ("00000"), .std_tx_bitslip_enable (1), .std_rx_word_aligner_mode ("sync_sm"), .std_rx_word_aligner_pattern_len (10), .std_rx_word_aligner_pattern ("17c"), .std_rx_word_aligner_rknumber (3), .std_rx_word_aligner_renumber (1), .std_rx_word_aligner_rgnumber (3), .std_rx_run_length_val (31), .std_tx_bitrev_enable (0), .std_rx_bitrev_enable (0), .std_tx_byterev_enable (0), .std_rx_byterev_enable (0), .std_tx_polinv_enable (0), .std_rx_polinv_enable (0) Цитата Я с таким режимом не работал... А у Вас с какими настройками стабильно работало в режиме CDR?
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|