04.01.2015 Views

I.6 LDPC coder/decoder FPGA IP Core - IPrium

I.6 LDPC coder/decoder FPGA IP Core - IPrium

I.6 LDPC coder/decoder FPGA IP Core - IPrium

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>I.6</strong> <strong>LDPC</strong> En<strong>coder</strong>/De<strong>coder</strong> <strong>IP</strong> <strong>Core</strong><br />

Short Description


<strong>I.6</strong> <strong>LDPC</strong> En<strong>coder</strong>/De<strong>coder</strong> <strong>IP</strong> <strong>Core</strong><br />

Release<br />

Information<br />

Name<br />

Version 1.0<br />

I6-<strong>LDPC</strong>-CODEC<br />

Build date 2013.04<br />

Ordering code<br />

ip-i6-ldpc-codec<br />

Features<br />

The <strong>IP</strong> core implements the <strong>LDPC</strong> (32640, 30592) forward error<br />

correction algorithm for optical lines and is fully compatible with<br />

the recommendation:<br />

1. ITU-T G.975.1 (super-FEC for 2.5G, 10G and 40G optical<br />

networks).<br />

Deliverables<br />

<strong>IP</strong> <strong>Core</strong> Structure<br />

<strong>I.6</strong> <strong>LDPC</strong> En<strong>coder</strong>/De<strong>coder</strong> <strong>IP</strong> <strong>Core</strong> includes:<br />

• VQM/NGC/EDIF netlists for Altera Quartus II, Xilinx ISE, Lattice<br />

Diamond or Microsemi (Actel) Libero SoC;<br />

• <strong>IP</strong> <strong>Core</strong> testbench scripts;<br />

• Design examples for Altera, Xilinx, Lattice, and Microsemi<br />

(Actel) evaluation boards.<br />

Figure 1 shows <strong>I.6</strong> <strong>LDPC</strong> En<strong>coder</strong> <strong>IP</strong> <strong>Core</strong> block diagram.<br />

Pre-slope<br />

En<strong>coder</strong><br />

Slope En<strong>coder</strong><br />

Bit Mapping<br />

Figure 1. <strong>I.6</strong> <strong>LDPC</strong> En<strong>coder</strong> <strong>IP</strong> <strong>Core</strong> block diagram<br />

<strong>I.6</strong> <strong>LDPC</strong> En<strong>coder</strong> consists of a Pre-slope En<strong>coder</strong> module (Pre-slope<br />

En<strong>coder</strong>), Slope En<strong>coder</strong> module (Slope En<strong>coder</strong>) and Bit Mapping<br />

module (Bit Mapping).<br />

Figure 2 shows a block diagram of one <strong>I.6</strong> <strong>LDPC</strong> De<strong>coder</strong> <strong>IP</strong> <strong>Core</strong><br />

decoding iteration.<br />

Bit Demapping <strong>LDPC</strong> De<strong>coder</strong> Bit Mapping<br />

Figure 2. Block diagram of one <strong>I.6</strong> <strong>LDPC</strong> De<strong>coder</strong> iteration<br />

2


<strong>I.6</strong> <strong>LDPC</strong> En<strong>coder</strong>/De<strong>coder</strong> <strong>IP</strong> <strong>Core</strong><br />

The <strong>I.6</strong> <strong>LDPC</strong> De<strong>coder</strong> architecture makes it possible to specify a<br />

random number of decoding iterations. A decoding iteration consists<br />

of a Bit Demapping module (Bit Demapping), <strong>LDPC</strong> De<strong>coder</strong> module<br />

(<strong>LDPC</strong> De<strong>coder</strong>) and Bit Mapping module (Bit Mapping).<br />

Port Map<br />

Figure 3 shows a graphic symbol and Table 1 describes the ports of<br />

the <strong>I.6</strong> <strong>LDPC</strong> En<strong>coder</strong> <strong>IP</strong> <strong>Core</strong>.<br />

I6<strong>LDPC</strong>ENC<br />

iclk<br />

idat<br />

irst<br />

odat<br />

osop<br />

oval<br />

isop<br />

ival<br />

Figure 3. <strong>I.6</strong> <strong>LDPC</strong> En<strong>coder</strong> port map<br />

Table 1. <strong>I.6</strong> <strong>LDPC</strong> En<strong>coder</strong> port map description<br />

Port Direction Description<br />

iclk input system clock<br />

idat input input (information) data<br />

irst input synchronous reset<br />

isop input start of information packet marker<br />

ival input input data valid<br />

odat output output (encoded) data<br />

osop output start of encoded packet marker<br />

oval output output data valid<br />

Figure 4 shows a graphic symbol and Table 2 gives a description of<br />

<strong>I.6</strong> <strong>LDPC</strong> De<strong>coder</strong> <strong>IP</strong> <strong>Core</strong> ports.<br />

3


<strong>I.6</strong> <strong>LDPC</strong> En<strong>coder</strong>/De<strong>coder</strong> <strong>IP</strong> <strong>Core</strong><br />

I6<strong>LDPC</strong>DEC<br />

iclk<br />

idat<br />

imode<br />

irst<br />

isop<br />

ival<br />

odat<br />

onumerr0<br />

onumerr_val0<br />

onumerr1<br />

onumerr_val1<br />

osop<br />

osync<br />

oval<br />

Figure 4. <strong>I.6</strong> <strong>LDPC</strong> De<strong>coder</strong> port map<br />

Table 2. <strong>I.6</strong> <strong>LDPC</strong> De<strong>coder</strong> port map description<br />

Port Direction Description<br />

iclk input system clock<br />

idat input input (encoded) data<br />

imode input decoded data output mode:<br />

0 - without correction (bypass)<br />

1 - with error correction<br />

irst input synchronous reset<br />

isop input start of coded packet marker<br />

ival input input data valid<br />

odat output output (decoded) data<br />

onumerr0 output number of input blocks with errors<br />

onumerr_val0 output onumerr0 valid<br />

onumerr1 output number of output blocks with errors<br />

onumerr_val1 output onumerr1 valid<br />

osop output start of decoded packet marker<br />

osync output correct isop with FAS input<br />

oval output output data valid<br />

4


<strong>IP</strong> <strong>Core</strong> Description<br />

<strong>IP</strong> <strong>Core</strong> Operation<br />

Description<br />

The <strong>I.6</strong> <strong>LDPC</strong> En<strong>coder</strong>/De<strong>coder</strong> <strong>IP</strong> <strong>Core</strong> is in full accordance with<br />

Recommendation ITU-T G.975.1 (02/2004) "Appendix I. Super FEC<br />

schemes. <strong>I.6</strong> <strong>LDPC</strong> super FEC code". The <strong>IP</strong> <strong>Core</strong> is designed for<br />

operation with the OTN OTU2 linear stream at 10.7 Gbps in fiber<br />

optic communication systems. The <strong>I.6</strong> <strong>LDPC</strong> En<strong>coder</strong>/De<strong>coder</strong> <strong>IP</strong><br />

<strong>Core</strong> can be used in both continuous and burst modes.<br />

Key features of the <strong>IP</strong> <strong>Core</strong>:<br />

1. exact accordance with Recommendation ITU-T G.975.1 <strong>I.6</strong>;<br />

2. synchronous, high-speed decoding algorithm;<br />

3. output ports of error statistics (input and output errors);<br />

4. encoding delay is 1,020 cycles (6.08 us);<br />

5. decoding delay of 12 iterations (12 slope decoding) is 2,009<br />

cycles (12.028 us).<br />

5


<strong>IP</strong> <strong>Core</strong> Parameters<br />

<strong>IP</strong> <strong>Core</strong><br />

Parameters<br />

Table 3 describes <strong>I.6</strong> <strong>LDPC</strong> En<strong>coder</strong>/De<strong>coder</strong> <strong>IP</strong> <strong>Core</strong> parameters,<br />

which must be set before synthesis.<br />

Table 3. <strong>I.6</strong> <strong>LDPC</strong> En<strong>coder</strong>/De<strong>coder</strong> <strong>IP</strong> <strong>Core</strong> parameters description<br />

Parameter<br />

ITER<br />

Description<br />

number of decoding iterations<br />

s1, ..., s7 slope coefficients<br />

Example:<br />

• ITER = 5 means five iterative decoding iterations:<br />

idat - dec1 - dec2 - dec3 - dec4 - dec5 - odat;<br />

Performance and<br />

Resource<br />

Utilization<br />

Table 4 summarizes the <strong>I.6</strong> <strong>LDPC</strong> En<strong>coder</strong> <strong>IP</strong> <strong>Core</strong> measurement<br />

results.<br />

Table 4. <strong>I.6</strong> <strong>LDPC</strong> En<strong>coder</strong> performance<br />

En<strong>coder</strong><br />

parameters<br />

<strong>FPGA</strong> type<br />

Resource<br />

Speed grade, maximal system frequency<br />

10G mode<br />

Altera Cyclone IV EP4CE115<br />

-- LEs<br />

-- M9K<br />

-9L, Fmax -8, Fmax -7, Fmax<br />

-- -- --<br />

10G mode<br />

Xilinx Virtex-6 XC6VLX240T<br />

-- Slices<br />

-- 18K RAM blocks<br />

-1, Fmax -2, Fmax -3, Fmax<br />

-- -- --<br />

Table 5 summarizes the <strong>I.6</strong> <strong>LDPC</strong> De<strong>coder</strong> <strong>IP</strong> <strong>Core</strong> measurement<br />

results.<br />

6


<strong>IP</strong> <strong>Core</strong> Parameters<br />

Table 5. <strong>I.6</strong> <strong>LDPC</strong> De<strong>coder</strong> performance<br />

De<strong>coder</strong><br />

parameters<br />

<strong>FPGA</strong> type<br />

Resource<br />

Speed grade, maximal system frequency<br />

12 iterations Altera Cyclone IV EP4CE115<br />

39,995 LEs<br />

36 M9K<br />

-9L, Fmax -8, Fmax -7, Fmax<br />

82.65 MHz<br />

5.3 Gbps<br />

109.9 MHz<br />

7.0 Gbps<br />

125.71<br />

MHz<br />

8.0 Gbps<br />

10G mode<br />

12 iterations<br />

Xilinx Virtex-6 XC6VLX240T<br />

7,192 Slices<br />

36 18K RAM blocks<br />

-1, Fmax -2, Fmax -3, Fmax<br />

159.2 MHz<br />

10.2 Gbps<br />

186.0 MHz<br />

11.9 Gbps<br />

190.2 MHz<br />

12.2 Gbps<br />

<strong>IP</strong> <strong>Core</strong> Interface<br />

Description<br />

The en<strong>coder</strong> recognizes the first information symbol by the isop<br />

"start of information block" marker of that symbol (FAS OH =<br />

0xF6F6F6282828). The bit width of input data idat and output data<br />

odat is 64 bits. The codec throughput of 10.7 Gbps requires timing<br />

frequency of at least 170 MHz. The resulting encoded block at the<br />

en<strong>coder</strong> output can be recognized by the osop "start of encoded<br />

block" marker.<br />

iclk<br />

idat DAT0 DAT1 DAT2 DAT3 DAT4<br />

isop<br />

osop<br />

odat DAT0 DAT1 DAT2 DAT3 DAT4 COD0 COD1 COD2<br />

Figure 5. Timing diagrams of <strong>I.6</strong> <strong>LDPC</strong> En<strong>coder</strong> operation<br />

7


<strong>IP</strong> <strong>Core</strong> Parameters<br />

1e-2<br />

1e-3<br />

1e-4<br />

1e-5<br />

1e-6<br />

1e-7<br />

G.709 RS(255, 239)<br />

<strong>I.6</strong> <strong>LDPC</strong> Measured<br />

<strong>I.6</strong> <strong>LDPC</strong> Simulated<br />

G.975.1 <strong>I.6</strong> <strong>LDPC</strong> super FEC<br />

Output BER<br />

1e-8<br />

1e-9<br />

1e-10<br />

1e-11<br />

1e-12<br />

1e-13<br />

1e-14<br />

1e-15<br />

1e-16<br />

1e-4<br />

2e-4<br />

3e-4<br />

4e-4 5e-4<br />

1e-3<br />

Input BER<br />

2e-3<br />

3e-3<br />

4e-3 5e-3<br />

1e-2<br />

Figure 6. Error-correcting capability of <strong>I.6</strong> <strong>LDPC</strong> De<strong>coder</strong><br />

8


Contacts<br />

Upgrade and<br />

Technical Support<br />

For up-to-date information on <strong>I.6</strong> <strong>LDPC</strong> En<strong>coder</strong>/De<strong>coder</strong> <strong>IP</strong> <strong>Core</strong><br />

visit website http://www.iprium.com/ipcores/id/i6-ldpc-codec/.<br />

Registered customers can download vqm/ngc/edif netlists of the <strong>IP</strong><br />

<strong>Core</strong> from the personal account/area at <strong>IP</strong>rium's website page<br />

http://www.iprium.com/.<br />

For technical support, registered customers can use a ticket system<br />

in the personal account at http://www.iprium.com/. Technical<br />

support requests take no more than 2 working days to process.<br />

<strong>IP</strong> <strong>Core</strong> order<br />

information<br />

Feedback<br />

<strong>I.6</strong> <strong>LDPC</strong> En<strong>coder</strong>/De<strong>coder</strong> ordering code is ip-i6-ldpc-codec.<br />

<strong>IP</strong>rium Ltd.<br />

634029, Russia, Tomsk, Frunze ave, 20, office 427<br />

Tel.: +7(3822)226454<br />

E-mail: info@iprium.com<br />

website: http://www.iprium.com/contacts/<br />

Revision history Version Date Changes<br />

1.0 2013.04.23 Initial release<br />

9

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!