[ibis-macro] A Redriver BCI Protocol

  • From: Walter Katz <wkatz@xxxxxxxxxx>
  • To: "IBIS-ATM" <ibis-macro@xxxxxxxxxxxxx>
  • Date: Tue, 23 Aug 2016 16:34:25 -0400 (EDT)

All,

 

The following is a simple exemplar of a BCI protocol that supports a
channel with one redriver, and the downstream Rx controls the upstream Tx
and the redriver models.

 

In the following discussion, the BCI_ID for the primary (upstream) Tx,
redriver Rx, redriver Tx and primary (downstream Rx) is "Bci". There will
be two files that each DLL will either read and/or write and/or append to:
bci_down.txt and bci_up.txt.

 

The Primary (upstream) Tx AMI_Init writes the bci_down.txt . The Redriver
Rx AMI_Init appends information about itself to the bci_down.txt , as does
the Redriver Tx AMI_Init. The Primary (downstream) Rx AMI_Init reads the
bci_down.txt  and learns about all of the upstream AMI_Init's. The Primary
Rx writes bci_up.txt  with instructions for the Primary Tx, Redriver Rx,
Redriver Tx. 

 

The bci_down.txt  might look like the following when the Primary
(downstream) Rx AMI_Init reads it:

 

(1 (Tap (-1 0.) (0 1.)(1 0.)))            | written by primary Tx (who
know it is 1 because bci_down.txt did not exist)

(2 (CTLE 3))                                         |written by redriver
Rx (who know it is 2 because is read the bci_down.txt and found the
previous tree) 

(3 (Tap (-1 0.) (0 1.)(1 0.)))            | written by redriver Tx (who
know it is 3 because is read the bci_down.txt and found the previous two
trees))

 

Primary (downstream) Rx AMI_Init writes bci_up.txt  

 

(1 (Tap (-1 -.1) (0 .8)(1 -.1)))         | instructions to primary Tx
GetWave

(2 (CTLE 6))                                         | instructions to
redriver Rx GetWave

(3 (Tap (-1 -.15) (0 .8)(1 0.05)))   | instructions to redriver Tx GetWave

 

Then the GetWave functions are called:

 

The Primary (upstream) Tx AMI_GetWave over-writes the bci_down.txt . The
Redriver Rx AMI_GetWave appends information about itself to the
bci_down.txt , as does the Redriver Tx AMI_GetWave. The Primary
(downstream) Rx AMI_GetWave reads the bci_down.txt  and learns about all
of the upstream AMI_GetWave's. The Primary Rx over-writes bci_up.txt  with
instructions for the Primary Tx, Redriver Rx, Redriver Tx. 

 

Repeat these GetWave sequences until simulation completes. The Primary Rx
deletes the bci_down.txt file on each call after reading it. When training
is finished, the Primary (downstream) Rx AMI_GetWave will make sure that
the bci_up.txt  is deleted as a sign to the other models that training is
done.

 

If there are two redrivers, then the bci_down.txt  might look like the
following when the Primary (downstream) Rx AMI_Init reads it:

 

(1 (Tap (-1 0.) (0 1.)(1 0.)))            | written by primary Tx (who
know it is 1 because bci_down.txt did not exist)

(2 (CTLE 3))                                         |written by redriver
one Rx (who know it is 2 because is read the bci_down.txt and found the
previous tree) 

(3 (Tap (-1 0.) (0 1.)(1 0.)))            | written by redriver one Tx
(who know it is 3 because is read the bci_down.txt and found the previous
two trees))

(4 (CTLE 3))                                         |written by redriver
two Rx (who know it is 4 because is read the bci_down.txt and found the
previous three trees) 

(5 (Tap (-1 0.) (0 1.)(1 0.)))            | written by redriver two Tx
(who know it is 5 because is read the bci_down.txt and found the previous
four trees))

 

 

 

Walter

 

 

Walter Katz

 <mailto:wkatz@xxxxxxxxxx> wkatz@xxxxxxxxxx

Phone 303.449-2308

Mobile 303.335-6156

Other related posts:

  • » [ibis-macro] A Redriver BCI Protocol - Walter Katz