IP Library Granted Patent US 10,848,249
Granted Patent B2
US 10,848,249 · App. 16/797,704 · Granted Nov 24, 2020

Probabilistic shaping techniques for high performance coherent optical transceivers

Inventors: Damian Alfonso Morero (Santa Clara, CA); Mario Alejandro Castrillon (Santa Clara, CA); Ramiro Rogelio Lopez (Santa Clara, CA); Cristian Cavenio (Santa Clara, CA); Gabriel Infante (Santa Clara, CA); Mario Rafael Hueda (Santa Clara, CA)
Assignee: INPHI CORPORATION
H04B10/616H04B10/40H04B10/6161H04B10/6162H04L27/2275H04L27/3836H04J14/0298
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,848,249
App. No.
16/797,704
Granted
Nov 24, 2020
Kind
B2
Abstract

A method and structure for probabilistic shaping and compensation techniques in coherent optical receivers. According to an example, the present invention provides a method and structure for an implementation of distribution matcher encoders and decoders for probabilistic shaping applications. The techniques involved avoid the traditional implementations based on arithmetic coding, which requires intensive multiplication functions. Furthermore, these probabilistic shaping techniques can be used in combination with LDPC codes through reverse concatenation techniques.

Claims (199)

1. A method of operating a communication device having a distribution matcher encoder module and a distribution matcher decoder module electrically coupled by a channel module, the method comprising:

receiving, by n encoder function blocks of the distribution matcher encoder module coupled in series and configured to convert data from a first form (x) to a second form (b), the following inputs: data x, a code length n, and a bits per codeword n′;

storing, by a plurality of encoder storage units of the series of encoder function blocks, the following initial values: a n =x and n n ′=n′;

performing, by the series of encoder function blocks, the following actions for i=n−1 to 0:

when a first condition characterized by

a

i

+

1

(

i

n

i

+

1

-

1

)

or a second condition characterized by n i+1 ′≤0 is satisfied, computing, by encoder comparison and adder circuits of the series of encoder function blocks, and storing, by the plurality of encoder storage units, the following intermediate values:

a

i

=

a

i

+

1

-

(

i

n

i

+

1

-

1

)

,

b i =0, and n i ′=n i+1 ′; and

when neither the first condition nor the second condition is satisfied, computing, by the encoder comparison and adder circuits, and storing, by the plurality of encoder storage units, the following intermediate values: a i =a i+1 , b i =1, and n i ′=n i+1 ′−1;

outputting, by the series of encoder function blocks, converted data b;

receiving, by n decoder function blocks of the distribution matcher decoder module coupled in series and configured to convert data from the second form to the first form, the converted data b, the code length n, and the bits per codeword n′ as inputs;

storing, by a plurality of decoder storage units of the series of decoder function blocks, the following initial values: a n =0 and n n ′=n′;

performing, by the series of decoder function blocks, the following actions for i=n−1 to 0:

when a first condition characterized by b 1 ==1 or a second condition characterized by n i+1 ′==0 is satisfied, computing, by decoder comparison and adder circuits of the series of decoder function blocks, and storing, by the plurality of decoder storage units, the following intermediate value: a i =a i+1 ;

when neither the first condition nor the second condition is satisfied, computing, by the decoder comparison and adder circuits, and storing, by the plurality of decoder storage units, the following intermediate value:

a

i

=

a

i

+

1

+

(

i

n

i

+

1

-

1

)

;

when the first condition is satisfied, computing, by the decoder comparison and adder circuits, and storing, by the plurality of decoder storage units, the following intermediate value: n i ′=n i+1 ′−1; and

when the first condition is not satisfied, computing, by the decoder comparison and adder circuits, and storing, by the plurality of decoder storage units, the following intermediate value: n i ′=n i+1 ′;

storing, by the plurality of decoder storage units, the following final value: x=a 0 ; and

outputting, by the series of decoder function blocks, restored data x.

2. The method of claim 1 wherein computing, by the encoder comparison and adder circuits, the intermediate values includes computing, by one or more carry save adders of each of the encoder function blocks, the intermediate values.

3. The method of claim 1 further comprising

splitting, by a splitter module electrically coupled to the distribution matcher encoder module, input data into random data and controlled data; and

sending, by the splitter module, the controlled data to the distribution matcher encoder module and the random data to a forward error correction (FEC) encoder module.

4. The method of claim 1 wherein computing, by the decoder comparison and adder circuits, the intermediate values includes computing, by one or more carry save adders of each of the decoder function blocks, the intermediate values.

5. The method of claim 1 further comprising

receiving, by a mapper module electrically coupled to the channel module and to a forward error correction (FEC) encoder module that is electrically coupled to the distribution matcher encoder module, encoded controlled data and encoded random data from the FEC encoder module;

outputting, by the mapper module, the encoded controlled data and the encoded random data as 2D symbols to the channel module;

receiving, by a demapper module electrically coupled to the channel module and to an FEC decoder module that is electrically coupled to the distribution matching decoder module, the encoded controlled data and the encoded random data as 2D symbols from the channel module; and

outputting, by the demapper module, the encoded controlled data and the encoded random data to the FEC decoder module.

6. The method of claim 1 further comprising

processing, by a forward error correction (FEC) encoder module electrically coupled to the distribution matcher encoder module and a splitter module, random data from the splitter module and controlled data from the distribution matcher encoder module including the converted data b; and

processing, by an FEC decoder module electrically coupled to the distribution matcher decoder module and to a demapper module electrically coupled to the channel module, encoded random data and encoded controlled data from the demapper module.

7. The method of claim 1 further comprising

merging, by a merger module electrically coupled to the distribution matcher decoder module, decoded controlled data from the distribution matcher decoder module and decoded random data from a forward error correction (FEC) decoder module; and

outputting, by the merger module, decoded and merged data.

8. A method of operating a communication device having a distribution matcher encoder module and a distribution matcher decoder module electrically coupled by a channel module, the method comprising:

receiving, by n encoder function blocks of the distribution matcher encoder module coupled in series and configured to convert data from a first form (x) to a second form (b) using an encoder lookup table (LUT), the following inputs: data x, a code length n, and a bits per codeword n′;

storing, by a plurality of encoder storage units of the series of encoder function blocks, the following initial values: a n =x and n n ′=n′;

performing, by the series of encoder function blocks, the following actions for i=n−1 to 0:

wherein t i [n] is the function to access the encoder LUT;

when a first condition characterized by a i+1 ≥t i [n i+1 ′−1] or a second condition characterized by n i+1 ′≤0 is satisfied, computing, by encoder comparison and adder circuits of the series of encoder function blocks, and storing, by the plurality of encoder storage units, the following intermediate values: a i =a i+1 −t i [n i+1 ′−1], b i =0, and n i ′=n i+1 ′; and

when neither the first condition nor the second condition is satisfied, computing, by the encoder comparison and adder circuits, and storing, by the plurality of encoder storage units, the following intermediate values: a i =a i+1 , b i =1, and n i ′=n i+1 ′−1;

outputting, by the series of encoder function blocks, converted data b;

receiving, by n decoder function blocks of the distribution matcher decoder module coupled in series and configured to convert data from the second form to the first form using a decoder LUT, the converted data b, the code length n, and the bits per codeword n′ as inputs;

storing, by a plurality of decoder storage units of the series of decoder function blocks, the following initial values: a n =0 and n n ′=n′;

performing, by the series of decoder function blocks, the following actions for i=n−1 to 0:

wherein t i [n] is the function to access the decoder LUT;

when a first condition characterized by b i ==1 or a second condition characterized by n i+1 ′==0 is satisfied, computing, by decoder comparison and adder circuits of the series of decoder function blocks, and storing, by the plurality of decoder storage units, the following intermediate value: a i =a i+1 ;

when neither the first condition nor the second condition is satisfied, computing, by the decoder comparison and adder circuits, and storing, by the plurality of decoder storage units, the following intermediate value: a i =a i+1 +t i [n i+1 ′−1];

when the first condition is satisfied, computing, by the decoder comparison and adder circuits, and storing, by the plurality of decoder storage units, the following intermediate value: n i ′=n i+1 ′−1; and

when the first condition is not satisfied, computing, by the decoder comparison and adder circuits, and storing, by the plurality of decoder storage units, the following intermediate value: n i ′=n i+1 ′;

storing, by the plurality of decoder storage units, the following final value: x=a 0 ; and

outputting, by the series of decoder function blocks, restored data x.

9. The method of claim 8 wherein computing, by the encoder comparison and adder circuits, the intermediate values includes computing, by one or more carry save adders of each of the encoder function blocks, the intermediate values.

10. The method of claim 8 further comprising

splitting, by a splitter module electrically coupled to the distribution matcher encoder module, input data into random data and controlled data; and

sending, by the splitter module, the controlled data to the distribution matcher encoder module and the random data to a forward error correction (FEC) encoder module.

11. The method of claim 8 wherein computing, by the decoder comparison and adder circuits, the intermediate values includes computing, by one or more carry save adders of each of the decoder function blocks, the intermediate values.

12. The method of claim 8 further comprising

receiving, by a mapper module electrically coupled to the channel module and to a forward error correction (FEC) encoder module that is electrically coupled to the distribution matcher encoder module, encoded controlled data and encoded random data from the FEC encoder module;

outputting, by the mapper module, the encoded controlled data and the encoded random data as 2D symbols to the channel module;

receiving, by a demapper module electrically coupled to the channel module and to an FEC decoder module that is electrically coupled to the distribution matching decoder module, the encoded controlled data and the encoded random data as 2D symbols from the channel module; and

outputting, by the demapper module, the encoded controlled data and the encoded random data to the FEC decoder module.

13. The method of claim 8 further comprising

processing, by a forward error correction (FEC) encoder module electrically coupled to the distribution matcher encoder module and a splitter module, random data from the splitter module and controlled data from the distribution matcher encoder module including the converted data b; and

processing, by an FEC decoder module electrically coupled to the distribution matcher decoder module and to a demapper module electrically coupled to the channel module, encoded random data and encoded controlled data from the demapper module.

14. The method of claim 8 further comprising

merging, by a merger module electrically coupled to the distribution matcher decoder module, decoded controlled data from the distribution matcher decoder module and decoded random data from a forward error correction (FEC) decoder module; and

outputting, by the merger module, decoded and merged data.

15. A method of operating a communication device having a distribution matcher encoder module and a distribution matcher decoder module electrically coupled by a channel module, the method comprising:

receiving, by n encoder function blocks of the distribution matcher encoder module coupled in series and configured to convert data from a first form (x) to a second form (b) using an encoder lookup table (LUT), the following inputs: data x and a code length n;

storing, by a plurality of encoder storage units of the series of encoder function blocks, the following initial value: n′=0;

performing, by the series of encoder function blocks, the following actions while

(

x

(

n

n

)

)

:

computing, by encoder comparison and adder circuits of the series of encoder function blocks, and storing, by the plurality of encoder storage units, the following intermediate value:

x

=

x

-

(

n

n

)

;

and

computing, by the encoder comparison and adder circuits, and storing, by the plurality of encoder storage units, the following intermediate value: n′=n′+1;

computing, by the encoder comparison and adder circuits, and storing, by the plurality of encoder storage units, the following intermediate value: a n =x;

performing, by the series of encoder function blocks, the following actions for i=n−1 to 0:

wherein t i [n] is the function to access the encoder LUT;

when a first condition characterized by a i+1 ≥t i [n′−1] or a second condition characterized by n′≤0 is satisfied, computing, by the encoder comparison and adder circuits, and storing, by the plurality of encoder storage units, the following intermediate values: a i =a i+1 −t i [n′−1] and b i =0; and

when neither the first condition nor the second condition is satisfied, computing, by the encoder comparison and adder circuits, and storing, by the plurality of encoder storage units, the following intermediate values: a i =a i+1 , b i =1, and n′=n′−1;

outputting, by the series of encoder function blocks, converted data b;

receiving, by n decoder function blocks of the distribution matcher decoder module coupled in series and configured to convert data from the second form to the first form using a decoder LUT, the converted data b and the code length n as inputs;

computing, by decoder comparison and adder circuits of the series of decoder function blocks, and storing, by a plurality of decoder storage units of the series of decoder function blocks, the following initial values: n n ′=ω H (b), where ω H (b) is the Hamming weight of b; and

a

n

=

k

=

1

ω

H

(

b

)

(

n

k

)

;

performing, by the series of decoder function blocks, the following actions for i=n−1 to 0:

wherein t i [n] is the function to access the decoder LUT;

when a first condition characterized by b i ==1 or a second condition characterized by n i+1 ′==0 is satisfied, computing, by the decoder comparison and adder circuits, and storing, by the plurality of decoder storage units, the following intermediate value: a 1 =a i+1 ;

when neither the first condition nor the second condition is satisfied, computing, by the decoder comparison and adder circuits, and storing, by the plurality of decoder storage units, the following intermediate value: a i =a i+1 +t i [n i+1 ′−1];

when the first condition is satisfied, computing, by the decoder comparison and adder circuits, and storing, by the plurality of decoder storage units, the following intermediate value: n i ′=n i+1 ′−1; and

when the first condition is not satisfied, computing, by the decoder comparison and adder circuits, and storing, by the plurality of decoder storage units, the following intermediate value: n i ′=n i+1 ′; and

outputting, by the series of decoder function blocks, restored data x.

16. The method of claim 15 wherein computing, by the encoder comparison and adder circuits, the intermediate values includes computing, by one or more carry save adders of each of the encoder function blocks, the intermediate values.

17. The method of claim 15 further comprising

splitting, by a splitter module electrically coupled to the distribution matcher encoder module, input data into random data and controlled data; and

sending, by the splitter module, the controlled data to the distribution matcher encoder module and the random data to a forward error correction (FEC) encoder module.

18. The method of claim 15 wherein computing, by the decoder comparison and adder circuits, the intermediate values includes computing, by one or more carry save adders of each of the decoder function blocks, the intermediate values.

19. The method of claim 15 further comprising

receiving, by a mapper module electrically coupled to the channel module and to a forward error correction (FEC) encoder module that is electrically coupled to the distribution matcher encoder module, encoded controlled data and encoded random data from the FEC encoder module;

outputting, by the mapper module, the encoded controlled data and the encoded random data as 2D symbols to the channel module;

receiving, by a demapper module electrically coupled to the channel module and to an FEC decoder module that is electrically coupled to the distribution matching decoder module, the encoded controlled data and the encoded random data as 2D symbols from the channel module; and

outputting, by the demapper module, the encoded controlled data and the encoded random data to the FEC decoder module.

20. The method of claim 15 further comprising

processing, by a forward error correction (FEC) encoder module electrically coupled to the distribution matcher encoder module and a splitter module, random data from the splitter module and controlled data from the distribution matcher encoder module including the converted data b; and

processing, by an FEC decoder module electrically coupled to the distribution matcher decoder module and to a demapper module electrically coupled to the channel module, encoded random data and encoded controlled data from the demapper module.

21. The method of claim 15 further comprising

merging, by a merger module electrically coupled to the distribution matcher decoder module, decoded controlled data from the distribution matcher decoder module and decoded random data from a forward error correction (FEC) decoder module; and

outputting, by the merger module, decoded and merged data.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 27, 2021
From: CAVIUM INTERNATIONAL
To: MARVELL ASIA PTE LTD.
Reel/Frame 057336/0873 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 25, 2021
From: MARVELL TECHNOLOGY CAYMAN I
To: CAVIUM INTERNATIONAL
Reel/Frame 057279/0519 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 23, 2021
From: INPHI CORPORATION
To: MARVELL TECHNOLOGY CAYMAN I
Reel/Frame 056649/0823 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 24, 2020
From: MORERO, DAMIAN ALFONSO; CASTRILLON, MARIO ALEJANDRO; LOPEZ, RAMIRO ROGELIO; CAVENIO, CRISTIAN; INFANTE, GABRIEL; HUEDA, MARIO RAFAEL
To: INPHI CORPORATION
Reel/Frame 051903/0896 →