Difference: TrbNetMediaInterfaces (1 vs. 10)

Revision 10
23 Jul 2010 - Main.JanMichel
Line: 1 to 1
 
META TOPICPARENT name="TrbNetUsersGuide"

Media Interfaces

For every kind of network medium we need an dedicated media interface. For example there is an lvds interface (200MBit), an optical link interface for use with TLK2501 on the TRB and one for the internal serdeses of the lattice chips.
Line: 68 to 68
 
9 status_led LED output showing link status: flashing during start-up, on when link is established
10 rx_led LED output showing RX status: pulsing high during receiving
11 tx_led LED output showing TX status: pulsing high during sending
Changed:
<
<
12    
>
>
12 link error strobe signal, when code violation or similar errors happen
 
13 reset_sequence_received reset trbnet logic
14 no_signal reset internal logic
15 send_reset_sequence send reset over network
Revision 9
03 Sep 2009 - Main.MichaelBoehmer
Line: 1 to 1
 
META TOPICPARENT name="TrbNetUsersGuide"

Media Interfaces

For every kind of network medium we need an dedicated media interface. For example there is an lvds interface (200MBit), an optical link interface for use with TLK2501 on the TRB and one for the internal serdeses of the lattice chips.
Line: 60 to 60
 
Bit Name Meaning
2..0 MED_ERROR_OUT Error status of the interface
3    
Changed:
<
<
4    
5    
6    
7    
>
>
4 LSM[0] Link State Machine status bit 0
5 LSM[1] Link State Machine status bit 1
6 LSM[2] Link State Machine status bit 2
7 LSM[3] Link State Machine status bit 3
 
8    
9 status_led LED output showing link status: flashing during start-up, on when link is established
10 rx_led LED output showing RX status: pulsing high during receiving
Revision 8
17 Aug 2009 - Main.JanMichel
Line: 1 to 1
 
META TOPICPARENT name="TrbNetUsersGuide"

Media Interfaces

For every kind of network medium we need an dedicated media interface. For example there is an lvds interface (200MBit), an optical link interface for use with TLK2501 on the TRB and one for the internal serdeses of the lattice chips.
Line: 69 to 69
 
10 rx_led LED output showing RX status: pulsing high during receiving
11 tx_led LED output showing TX status: pulsing high during sending
12    
Changed:
<
<
13    
>
>
13 reset_sequence_received reset trbnet logic
 
14 no_signal reset internal logic
Changed:
<
<
15 reset_sequence send reset over network
>
>
15 send_reset_sequence send reset over network
 

CTRL_OP

Revision 7
03 Aug 2009 - Main.JanMichel
Line: 1 to 1
 
META TOPICPARENT name="TrbNetUsersGuide"

Media Interfaces

For every kind of network medium we need an dedicated media interface. For example there is an lvds interface (200MBit), an optical link interface for use with TLK2501 on the TRB and one for the internal serdeses of the lattice chips.
Line: 70 to 70
 
11 tx_led LED output showing TX status: pulsing high during sending
12    
13    
Changed:
<
<
14 no_signal high during no signal detected
15 reset_sequence network is resetted (e.g. misaligned data, code violations...)
>
>
14 no_signal reset internal logic
15 reset_sequence send reset over network
 

CTRL_OP

Bit Meaning
14 reset media interface. switches off link state machine and transmitter
Changed:
<
<
15 force resyncing of media link by e.g. sending idles in the wrong place or wrong data (switch off)
>
>
15 send reset over network
 

Revision 6
22 Jun 2009 - Main.JanMichel
Line: 1 to 1
 
META TOPICPARENT name="TrbNetUsersGuide"

Media Interfaces

For every kind of network medium we need an dedicated media interface. For example there is an lvds interface (200MBit), an optical link interface for use with TLK2501 on the TRB and one for the internal serdeses of the lattice chips.
Line: 76 to 76
 

CTRL_OP

Bit Meaning
Added:
>
>
14 reset media interface. switches off link state machine and transmitter
 
15 force resyncing of media link by e.g. sending idles in the wrong place or wrong data (switch off)
Revision 5
09 Mar 2009 - Main.JanMichel
Line: 1 to 1
 
META TOPICPARENT name="TrbNetUsersGuide"

Media Interfaces

For every kind of network medium we need an dedicated media interface. For example there is an lvds interface (200MBit), an optical link interface for use with TLK2501 on the TRB and one for the internal serdeses of the lattice chips.
Line: 7 to 7
 

Although the media interfaces reside on the lowest level of the network structure, they have to provide some additional functionality. The implementation of these mechanisms is up to the programmer of the media interfaces.
Changed:
<
<

Synchronization to 64Bit boundary

The interface must provide thr correct packet number to the multiplexer. The network protocol relies on an accurate counting of the 16Bit packets to ensure that the packet type of each packet can be retrieved. Therefore they have to provide a way to enable the receiver to resynchronizw if one packet got lost by accident.
>
>

Synchronization to packet boundary

The interface must provide the correct packet number to the multiplexer. The network protocol relies on an accurate counting of the 16Bit packets to ensure that the packet type of each packet can be retrieved. Starting value of the counter is 4, counting for each packet 4-0-1-2-3.
 
Changed:
<
<
This can be done in two ways: On LVDS interfaces with some free lines, one control line can be used to mark the first word of each packet. The reset described below must also be implemented in this kind of interfaces.
>
>
The media interface has to provide a detection for the start of each packet to assure that the counter is aligned properly. This can be done in two ways: On LVDS interfaces with some free lines, one control line can be used to mark the first word of each packet.
 
Changed:
<
<
For example with the optical link we don't have this opportunity with extra lines. Here a sequence of five 16bit words is needed: (5x 7F7F) The last word marks the position of word F3, forcing the next received data word to be a valid start of a packet. This sequence can not occur during normal operation, so it can be detected without any doubt.
>
>
For example with the optical link we don't have this opportunity with extra lines. To detect when a word of a packet has been lost, idles may only be sent between two packets, but not between the words of one packet.
 
Changed:
<
<
If this sequence is received, the media interface sets STAT_OP(15) for one clock cycle. This signal is then connected to CTRL_OP(15) of all media interfaces inside the fpga and forces them to send this sequence as well. CTRL_OP(15) goes down after 2.5us (256 clock cycles). This is done to avoid an inifite loop of resets. CTRL_OP(15) also causes a reset to the higher level network logic to bring it back to a defined state.
>
>
If such a wrongly placed idle (or any other code violation, or a not-yet-defined komma character) is detected, the start-up sequence described below is started again, the bits in stat_op are set accordingly and the own transmitter has to send some kind of errors (misplaced idles, a (not yet defined) komma character...) as well.

FIFO sizes

The FiFos inside the media interfaces should be kept to an absolute minimum, especially on interfaces running slower than the internal logic. The reason is, that a big fifo that might run full prohibits us from effectively switching between channels. (A 16 word deep fifo on a POF-interface might introduce up to 1.2us additional latency!)
 

Encoding for secure transmission

The media interfaces also have to provide a mechanism to secure the network from bit errors. On the optical link, 8/10bit encoding is used, which is sufficient due the very low bit error rate. On electrical connections this might be too weak. In these cases for example a 8/12 bit encoding might be used to be able to correct single bit errors.
Added:
>
>

Serdes settings

Please check whether the Elastic Buffers of ECP2M can be kept switched off since they produce a massive amount of latency.
 

Interface to internal logic

The interface to the medium can not be standardized, but there is a fixed interface layout on the internal connections:
Line: 37 to 42
 
MED_READ_IN 1 internal side is reading offered data (should always be 1)
MED_DATA_OUT 16 data output
MED_PACKET_NUM_OUT 2 packet number output
Deleted:
<
<
MED_ERROR_OUT 3 as defined below
 
STAT_OP 16 operational status of the interface (see below)
CTRL_OP 16 ctrl input for the media interface
Line: 67 to 71
 
12    
13    
14 no_signal high during no signal detected
Changed:
<
<
15 reset_sequence received resync / network reset
>
>
15 reset_sequence network is resetted (e.g. misaligned data, code violations...)
 

CTRL_OP

Bit Meaning
Changed:
<
<
15 on rising edge: send resync
>
>
15 force resyncing of media link by e.g. sending idles in the wrong place or wrong data (switch off)
 

Startup of the optical links

Marek and I (Jan) agreed on the following mechanism to start up an optical link:
  • Start sending idle - words acording to data sheet of TLK2501 that is used on the trb
Changed:
<
<
  • After I have received idles for more than 1300ms (28 bit counter overflow) I enable receiving of data
  • After another 1300ms / 2^27 clock cycles I enable my transmitter.
This sequence gives enough time to properly connect a cable and allow the transmitters to synchronize, even when the lattice serdes fail to synchronize in the first attempts.
>
>
  • After receving idles for 650ms, 16bit word alignment is made
  • After 1300ms (27 bit counter overflow) receiving of data is enabled
  • After 2600ms sending data is enabled
This sequence gives enough time to properly connect a cable and allow the transmitters to synchronize on the probably shaky signal while connecting the cable.
 
Changed:
<
<
-- JanMichel - 26 Mar 2008
>
>
-- JanMichel - 09 Mar 2009
 
Revision 4
09 Dec 2008 - Main.JanMichel
Line: 1 to 1
 
META TOPICPARENT name="TrbNetUsersGuide"

Media Interfaces

For every kind of network medium we need an dedicated media interface. For example there is an lvds interface (200MBit), an optical link interface for use with TLK2501 on the TRB and one for the internal serdeses of the lattice chips.
Line: 12 to 12
 

This can be done in two ways: On LVDS interfaces with some free lines, one control line can be used to mark the first word of each packet. The reset described below must also be implemented in this kind of interfaces.
Changed:
<
<
For example with the optical link we don't have this opportunity with extra lines. Here a sequence of five 16bit words is needed: (--7F --7F --7F --7F --7F) The last word marks the position of word F3, forcing the next received data word to be a valid start of a packet. This sequence can not occur during normal operation, so it can be detected without any doubt.
>
>
For example with the optical link we don't have this opportunity with extra lines. Here a sequence of five 16bit words is needed: (5x 7F7F) The last word marks the position of word F3, forcing the next received data word to be a valid start of a packet. This sequence can not occur during normal operation, so it can be detected without any doubt.
 

If this sequence is received, the media interface sets STAT_OP(15) for one clock cycle. This signal is then connected to CTRL_OP(15) of all media interfaces inside the fpga and forces them to send this sequence as well. CTRL_OP(15) goes down after 2.5us (256 clock cycles). This is done to avoid an inifite loop of resets. CTRL_OP(15) also causes a reset to the higher level network logic to bring it back to a defined state.
Revision 3
31 Oct 2008 - Main.JanMichel
Line: 1 to 1
 
META TOPICPARENT name="TrbNetUsersGuide"

Media Interfaces

For every kind of network medium we need an dedicated media interface. For example there is an lvds interface (200MBit), an optical link interface for use with TLK2501 on the TRB and one for the internal serdeses of the lattice chips.
Line: 10 to 10
 

Synchronization to 64Bit boundary

The interface must provide thr correct packet number to the multiplexer. The network protocol relies on an accurate counting of the 16Bit packets to ensure that the packet type of each packet can be retrieved. Therefore they have to provide a way to enable the receiver to resynchronizw if one packet got lost by accident.
Changed:
<
<
This can be done in two ways: On LVDS interfaces with some free lines, one control line can be used to mark the packet with number 00 each time. The reset described below must also be implemented in this kind of interfaces.
>
>
This can be done in two ways: On LVDS interfaces with some free lines, one control line can be used to mark the first word of each packet. The reset described below must also be implemented in this kind of interfaces.
 
Changed:
<
<
For example with the optical link we don't have this opportunity with extra lines. Here a sequence of four 16bit words is needed: (--7F --7F --7F --7F) The last word marks the position of the packet number 3, forcing the next received data word to be a valid packet 0. This sequence can not occur during normal operation, so it can be detected without any doubt.
>
>
For example with the optical link we don't have this opportunity with extra lines. Here a sequence of five 16bit words is needed: (--7F --7F --7F --7F --7F) The last word marks the position of word F3, forcing the next received data word to be a valid start of a packet. This sequence can not occur during normal operation, so it can be detected without any doubt.
 

If this sequence is received, the media interface sets STAT_OP(15) for one clock cycle. This signal is then connected to CTRL_OP(15) of all media interfaces inside the fpga and forces them to send this sequence as well. CTRL_OP(15) goes down after 2.5us (256 clock cycles). This is done to avoid an inifite loop of resets. CTRL_OP(15) also causes a reset to the higher level network logic to bring it back to a defined state.
Line: 53 to 53
 

STAT_OP

Changed:
<
<
Bit Meaning
2..0 MED_ERROR_OUT
15 received resync / network reset
>
>
Bit Name Meaning
2..0 MED_ERROR_OUT Error status of the interface
3    
4    
5    
6    
7    
8    
9 status_led LED output showing link status: flashing during start-up, on when link is established
10 rx_led LED output showing RX status: pulsing high during receiving
11 tx_led LED output showing TX status: pulsing high during sending
12    
13    
14 no_signal high during no signal detected
15 reset_sequence received resync / network reset
 

CTRL_OP

Bit Meaning
Line: 66 to 80
  Marek and I (Jan) agreed on the following mechanism to start up an optical link:
  • Start sending idle - words acording to data sheet of TLK2501 that is used on the trb
  • After I have received idles for more than 1300ms (28 bit counter overflow) I enable receiving of data
Changed:
<
<
  • After another 650ms / 2^27 clock cycles I enable my transmitter.
>
>
  • After another 1300ms / 2^27 clock cycles I enable my transmitter.
  This sequence gives enough time to properly connect a cable and allow the transmitters to synchronize, even when the lattice serdes fail to synchronize in the first attempts.

-- JanMichel - 26 Mar 2008
Revision 2
18 Apr 2008 - Main.JanMichel
Line: 1 to 1
 
META TOPICPARENT name="TrbNetUsersGuide"

Media Interfaces

For every kind of network medium we need an dedicated media interface. For example there is an lvds interface (200MBit), an optical link interface for use with TLK2501 on the TRB and one for the internal serdeses of the lattice chips.
Line: 65 to 65
 

Startup of the optical links

Marek and I (Jan) agreed on the following mechanism to start up an optical link:
  • Start sending idle - words acording to data sheet of TLK2501 that is used on the trb
Changed:
<
<
  • After I have received idles for more than 650ms (16bit counter overflow) I enable receiving of data
  • After another 650ms / 2^16 clock cycles I enable my transmitter.
This sequence gives enough time to properly connect a cable and allow the transmitters to synchronize.
>
>
  • After I have received idles for more than 1300ms (28 bit counter overflow) I enable receiving of data
  • After another 650ms / 2^27 clock cycles I enable my transmitter.
This sequence gives enough time to properly connect a cable and allow the transmitters to synchronize, even when the lattice serdes fail to synchronize in the first attempts.
 

-- JanMichel - 26 Mar 2008
 
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Hades Wiki? Send feedback
Imprint (in German)
Privacy Policy (in German)