Author Topic: TEBF0808-firefly circuit clarification  (Read 1260 times)

aye

  • Active Member
  • *
  • Posts: 3
TEBF0808-firefly circuit clarification
« on: October 22, 2021, 10:13:12 AM »
Hi,

I am looking at the J6/J21 firefly circuit on TEBF0808 carrier board.
For J6, RX1P/N pin is connected to B128_RX3_P/N.  Why the pin is not connected to B128_RX0_P/N ?
I expect pin configuration to be RX1P/N => B128_RX0_P/N
                                              RX2P/N => B128_RX1_P/N
                                              RX3P/N => B128_RX2_P/N
                                              RX4P/N => B128_RX3_P/N

                                              TX1P/N => B128_TX0_P/N
                                              TX2P/N => B128_TX1_P/N
                                              TX3P/N => B128_TX2_P/N
                                              TX4P/N => B128_TX3_P/N

If using Samtec fiber cable to connect between two Micro firefly module, TX1P/N will connect to RX1P/N channels, TX2P/N will connect to RX2P/N channels, and so on.
If Xilinx Aurora 64/66b protocol 4 lane implementation is used on firefly interface, the 4 transceivers will be in order, from CH0 to CH3. So if the channels are NOT IN ORDER, the received data from Aurora may be wrong. Any reasons why the transceiver firefly pins are not connected in order? Thanks.

Regards
YE





                                           

Vadim Yunitski

  • Active Member
  • *
  • Posts: 6
Re: TEBF0808-firefly circuit clarification
« Reply #1 on: October 28, 2021, 04:17:35 PM »
Hello,

We agree that the lanes connectivity is not obvoius and seems like it will be not possible to use J6 for Aurora Protocol.
Unfortunately layout of the carrier card can not be changed due to support and maintainance of another users.
We will add warning to the schematic about pin configuration.

Keep in mind, TX polarity is inverted:
B128_TX1_P -> TX1_N,
B128_TX1_N -> TX1_P,

B128_TX0_P -> TX2_N,
B128_TX0_N -> TX2_P

And so on.

Best Regards,
Vadim

aye

  • Active Member
  • *
  • Posts: 3
Re: TEBF0808-firefly circuit clarification
« Reply #2 on: October 29, 2021, 03:26:10 AM »
Hi,

Ok noted. Thanks.


Regards
YE

Antti Lukats

  • Hero Member
  • *****
  • Posts: 542
Re: TEBF0808-firefly circuit clarification
« Reply #3 on: November 11, 2021, 03:00:29 PM »
Aurora IP core supports polarity inversion, the lane reversal should be taken care by constraints. so it should be possible to use Aurora over firefly.

JH

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1956
Re: TEBF0808-firefly circuit clarification
« Reply #4 on: November 12, 2021, 07:50:35 AM »
Hi,
yes P/N Inversion can be fixed simple via Xilinx IP.
 But I think you must connect opposite side on the same way like on tebf0808, to reassign the RX / TX lines to the correct transceivers of the opposite side.  TEBF0808 has following connection:
Firefly:TX1/RX1 <->ZynqMP:B128_TX1/B128_RX3
Firefly:TX2/RX2 <-> ZynqMP:B128_TX0/B128_RX1
Firefly:TX3/RX3 <-> ZynqMP:B128_TX2/B128_RX2 --> that's correct in my point of view:slightly_smiling_face:
Firefly:TX4/RX4 <-> ZynqMP:B128_TX3/B128_RX0

As far as I know, Firefly cable is also available in various combinations with the assignment(also RX/TX can be crossed or not), which does not make it any easier.
br
John

aye

  • Active Member
  • *
  • Posts: 3
Re: TEBF0808-firefly circuit clarification
« Reply #5 on: November 14, 2021, 05:34:37 AM »
Hi all,

I have connect another custom zynq ultrascale+ evaluation kit with firefly module with tebf0808 firefly module (4 x Tx/Rx transceivers).
I have implemented aurora 4 lane Tx/Rx on the firefly modules. I just need to swap the Rx data on the FPGA logic side. It is working correctly on 4x lane implementation.
Thanks all for your help and advice.

Regards
YE

JH

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1956
Re: TEBF0808-firefly circuit clarification
« Reply #6 on: November 15, 2021, 06:42:04 AM »
Hi,
yes this is also possible in case you use all 4 mgts and you has an FPGA on the opposite side. You get only problems when you use for example only one MGT or in case the opposite side can't swap data internally.
br
John