Lutovid 0 12 января, 2017 Опубликовано 12 января, 2017 · Жалоба Всем привет! Появилась задача сделать модуль поддерживающий оба режима работы на 1 и 10G. По отдельности-то я с этими модулями работал, но вместе нет. Схема такая с sfp на плисину приходит дифпара данных(две TX/RX) и I2C шина. задача - прочитать по I2C что за sfp вставлена и подстроить трансиверы. Проблема заключается в том, что каждое ядро ксайлинкса pcs/pma 10 и 1 уже содержит внутри себя трансиверы, drp-то у них есть, но данные я все равно получается с них(трансиверов) не получу если перенастрою не в тот режим, в котором данные pcs/pma должен работать. Вынести трансиверы наружу и сделать переключение потоков то на одно ядро то на другое так же, как я понимаю, не получится, так как это блэк боксы. Подскажите с какой стороны подступиться к данной задаче? Заранее спасибо! http://www.xilinx.com/support/documentatio...g-switching.pdf нашел кое какую инфу, поспешил с вопросом Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 27 12 января, 2017 Опубликовано 12 января, 2017 · Жалоба Приветствую! ... равно получается с них(трансиверов) не получу если перенастрою не в тот режим, в котором данные pcs/pma должен работать. Вынести трансиверы наружу и сделать переключение потоков то на одно ядро то на другое так же, как я понимаю, не получится, так как это блэк боксы. ... Вынести наружу трансиверы несложно - как для 1G так и для 10G. Блэк боксами там только сами pcs/pma корки, а все остальное прекрасно правится ручками если надо. Успехов! Rob Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Lutovid 0 13 января, 2017 Опубликовано 13 января, 2017 · Жалоба Раз уж написал сюда вопрос< хотел бы за одно спросить про использование блэк-боксов. Убираю я значит xci файлы из проекта(например тот на который ссылку я написал в начале) и добавляю только верилоговские файлы. В этих файлах фигурируют строчки: (* CORE_GENERATION_INFO = "gig_ethernet_pcs_pma_0,gig_ethernet_pcs_pma_v14_3,{x_ipProduct=Vivado 2014.4,x_ipVendor=xilinx.com,x_ipLibrary=ip,x_ipName=gig_ethernet_pcs_pma,x_ipVe rsion=14.3,x_ipCoreRevision=1,x_ipLanguage=VERILOG,x_ipSimLanguage=MIXED,c_elabor ation_transient_dir=.,c_component_name=gig_ethernet_pcs_pma_0,c_family=kintex7,c_ is_sgmii=true,c_use_transceiver=true,c_use_tbi=false,c_use_lvds=false,c_has_an=fa lse,c_has_mdio=false,c_has_ext_mdio=false,c_sgmii_phy_mode=false,c_dynamic_switch ing=true,c_transceiver_mode=A,c_sgmii_fabric_buffer=true,c_1588=0,gt_rx_byte_widt h=1,C_EMAC_IF_TEMAC=true,C_PHYADDR=1,EXAMPLE_SIMULATION=0,c_support_level=false,c _sub_core_name=gig_ethernet_pcs_pma_0_gt,c_transceivercontrol=false,c_xdevicefami ly=xc7k325t,c_gt_dmonitorout_width=8}" *) (* X_CORE_INFO = "gig_ethernet_pcs_pma_v14_3,Vivado 2014.4" *) Это что получается, если я работаю в 16.3 я не смогу подключить этот зашифрованный файл? Или для чего тут вообще эта версия? Я-то просто хотел вырвать этот блэк бокс и вставить в свой проект, но вивадо ругается, что не может с этим файлом работать. Выход-то я нашел - сгенерить блэк-бокс новой версии и подсунуть в проект меняя описанные строчки на (* CORE_GENERATION_INFO = "one_gig_eth_pcs_pma,gig_ethernet_pcs_pma_v16_0_0,{x_ipProduct=Vivado 2016.3,x_ipVendor=xilinx.com,x_ipLibrary=ip,x_ipName=gig_ethernet_pcs_pma,x_ipVe rsion=16.0,x_ipCoreRevision=0,x_ipLanguage=VERILOG,x_ipSimLanguage=MIXED,c_elabor ation_transient_dir=.,c_component_name=one_gig_eth_pcs_pma,c_family=kintex7,c_arc hitecture=kintex7,c_is_sgmii=true,c_enable_async_sgmii=false,c_enable_async_lvds= false,c_enable_async_lvds_rx_only=false,c_use_transceiver=true,c_use_tbi=false,c_ is_2_5g=false,c_use_lvds=false,c_has_an=false,characterization=false,c_has_mdio=f alse,c_has_ext_mdio=false,c_sgmii_phy_mode=false,c_dynamic_switching=true,c_sgmii _fabric_buffer=true,c_1588=0,gt_rx_byte_width=1,C_EMAC_IF_TEMAC=true,EXAMPLE_SIMU LATION=0,c_support_level=false,c_RxNibbleBitslice0Used=false,c_tx_in_upper_nibble =1,c_TxLane0_Placement=DIFF_PAIR_0,c_TxLane1_Placement=DIFF_PAIR_1,c_RxLane0_Plac ement=DIFF_PAIR_0,c_RxLane1_Placement=DIFF_PAIR_1,c_sub_core_name=one_gig_eth_pcs _pma_gt,c_transceiver_type=GTXE2,c_gt_type=GTH,c_rx_gmii_clk_src=TXOUTCLK,c_trans ceivercontrol=false,c_gtinex=false,c_xdevicefamily=xc7k325t,c_gt_dmonitorout_widt h=8,c_gt_drpaddr_width=9,c_gt_txdiffctrl_width=4,c_gt_rxmonitorout_width=7,c_num_ of_lanes=1,c_refclkrate=125,c_drpclkrate=50,c_gt_loc=X0Y0,c_refclk_src=clk0,c_ena ble_tx_userclk_reset_port=false}" *) (* X_CORE_INFO = "gig_ethernet_pcs_pma_v16_0_0,Vivado 2016.3" *) НО если мне нужно будет перейти на следующую версию Vivado мне надо будет это руками все переделывать что ли? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 27 13 января, 2017 Опубликовано 13 января, 2017 · Жалоба Приветствую! Эти строчки на синтез не влияют, их можно и удалить. А вот что касается использования сорцов старых версий корок то тут просто надо правильно добавить все требуемые файлы. В Vivado сейчас обычно все модули корки пакую в один файл */hdl/*_rfs.v/sv.vhd (_rfs - Ready For Synthesis) и если там все требуемые файлы то компилируется все без проблем. Но бывает так что внутри корки используется библиотеки типа proc_common_v* (в частности для VHDL), или другие корки старых версий, а в новой Vivado либы с требуемой версией уже нет. Поэтому тут либо обновлятся на все новое либо использовать старые корки как BB нетлисты. Удачи! Rob. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться