Galois Field Multiplikator for Reed Solomon Code

L

leongch

Guest
Hei fyrene,

Jeg gjennomføre ReedSolomon Code (256.191) med 8bits per symbol

Jeg fant noen av de elektroniske koden for Galois Field Multiplikator 256 som fulgte.Hvem kan fortelle meg hvor å komme ut med denne typen XOR?

modul gf256mult (a, b, z);
input [7:0] a;
input [7:0] b;
output [7:0] z;
tildele Z [0] = b [0] og a [0] ^ b [1] og a [7] ^ b [2] og a [6] ^ b [3] og en [5] ^ b [4] og a [4] ^ b [5] og a [3] ^ b [5] og a [7] ^ b [6] og a [2] ^ b [6] og a [6] ^ b [6] og a [7] ^ b [7] & a [1] ^ b [7] og a [5] ^ b [7] og a [6] ^ b [7] og a [7];
tildele z [1] = b [0] og a [1] ^ b [1] og a [0] ^ b [2] og a [7] ^ b [3] og a [6] ^ b [4] og en [5] ^ b [5] og a [4] ^ b [6] og a [3] ^ b [6] og a [7] ^ b [7] & a [2] ^ b [7] og a [6] ^ b [7] & a [7];
tildele z [2] = b [0] og a [2] ^ b [1] og a [1] ^ b [1] og a [7] ^ b [2] og a [0] ^ b [2] og a [6] ^ b [3] og en [5] ^ b [3] og a [7] ^ b [4] og a [4] ^ b [4] og a [6] ^ b [5] og a [3] ^ b [5] & a [5] ^ b [5] og a [7] ^ b [6] og a [2] ^ b [6] og a [4] ^ b [6] og a [6] ^ b [6] og a [7] ^ b [7] og a [1] ^ b [7] og a [3] ^ b [7] og a [5] ^ b [7] og a [6];
tildele Z [3] = b [0] og a [3] ^ b [1] og a [2] ^ b [1] og a [7] ^ b [2] og a [1] ^ b [2] og a [6] ^ b [2] og a [7] ^ b [3] og a [0] ^ b [3] og en [5] ^ b [3] og a [6] ^ b [4] og a [4] ^ b [4] & a [5] ^ b [4] og a [7] ^ b [5] og a [3] b ^ [5] og a [4] ^ b [5] og a [6] ^ b [5] og a [7] ^ b [6] og a [2] ^ b [6] og a [3] ^ b [6] og a [5] ^ b [6] og a [6] ^ b [7] og a [1] ^ b [7] & a [2] ^ b [7] og a [4] ^ b [7] og a [5];
tildele Z [4] = b [0] og a [4] ^ b [1] og a [3] ^ b [1] og a [7] ^ b [2] og a [2] ^ b [2] og a [6] ^ b [2] og a [7] ^ b [3] og a [1] ^ b [3] og en [5] ^ b [3] og a [6] ^ b [3] og a [7] ^ b [4] & a [0] ^ b [4] og a [4] ^ b [4] og en [5] ^ b [4] og a [6] ^ b [5] og a [3] ^ b [5] og a [4] ^ b [5] og a [5] ^ b [6] og a [2] ^ b [6] og a [3] ^ b [6] og a [4] ^ b [7] og a [1] ^ b [7] & a [2] ^ b [7] og a [3] ^ b [7] og a [7];
tildele z [5] = b [0] og a [5] ^ B [1] og a [4] ^ b [2] og a [3] ^ b [2] og a [7] ^ b [3] & a [2] ^ b [3] og a [6] ^ b [3] og a [7] ^ b [4] og a [1] ^ b [4] og en [5] ^ b [4] og a [6] ^ b [4] & a [7] ^ b [5] og a [0] ^ b [5] og a [4] ^ b [5] og a [5] ^ b [5] og a [6] ^ b [6] og a [3] ^ b [6] og a [4] ^ b [6] og a [5] ^ b [7] & a [2] ^ b [7] og a [3] ^ b [7] og a [4];
tildele Z [6] = b [0] og a [6] ^ b [1] & a [5.] ^ b [2] og a [4] ^ b [3] og a [3] ^ b [3] og a [7] ^ b [4] og a [2] ^ b [4] og a [6] ^ b [4] og a [7] ^ b [5] og a [1] ^ b [5] og a [5] ^ b [5] & a [6] ^ b [5] og a [7] ^ b [6] og a [0] ^ b [6] og a [4] ^ b [6] og a [5] ^ b [6] og a [6] ^ b [7] og a [3] ^ b [7] og a [4] ^ b [7] og a [5];
tildele z [7] = b [0] og a [7] ^ b [1] og a [6] ^ b [2] og a [5] ^ b [3] og a [4] ^ b [4] og a [3] ^ b [4] og a [7] ^ b [5] & a [2] ^ b [5] og a [6] b ^ [5] og a [7] ^ b [6] og a [1] ^ b [6] & a [5] ^ b [6] og a [6] ^ b [6] og a [7] ^ b [7] og a [0] ^ b [7] og a [4] ^ b [7] og a [5] ^ b [7] og a [6];
endmodule

Takk

 
Hvis du spør hvorfor dette XOR oppnår GF multiplikasjon:

Det følger av det faktum at multiplikasjon av GF primitivt element er en enkel operasjon, og du kan enkelt legge opp flere slike produkter for å oppnå multiplikasjon av noen GF element.

-b

 
Hei Takk for svar, jeg spør, hvordan man skal oppnå det.

Like funksjonen
tildele Z [0] = b [0] og a [0] b ^ [1] og a [7] ^ b [2] og a [6] ^ b [3] og en [5] ^ b [4] og a [4] ^ b [5] og a [3] ^ b [5] og a [7] ^ b [6] og a [2] ^ b [6] og a [6] ^ b [6] og a [7] ^ b [7] & a [1] ^ b [7] og a [5] ^ b [7] og a [6] ^ b [7] og a [7];
Hvorfor er denne funksjonen?Hvordan komme inn i denne funksjonen?

 
håper du allerede er kjent med GF grunnleggende ..

en primitve poly for GF (2 ^

<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Kjølig" border="0" />

er
α ^ 8 α ^ 4 α ^ 3 α ^ 2 1 = 0

noen en GF (256) ele kan skrives som en strøm av primitive element α.ta element α ^ i.Det kan skrives som
α ^ i = A7 * α ^ 7 a6 * α ^ 6 a5 * α ^ 5 a4 * α ^ 4 a3 * α ^ 3 A2 * α ^ 2 a1 * α ^ 1 a0

kan multiplisere over grunnstoff med primitve element α
α * α ^ i = A7 * α ^ 8 a6 * α ^ 7 a5 * α ^ 6 a4 * α ^ 5 a3 * α ^ 4 A2 * α ^ 3 a1 * α ^ 2 a0 * α ^ 1

hjelp av primitive poly, kan vi erstatte α ^ 8
α ^ (i 1) = A7 * (α ^ 4 α ^ 3 α ^ 2 1) a6 * α ^ 7 a5 * α ^ 6 a4 * α ^ 5 a3 * α ^ 4 a2 * α ^ 3 a1 * α ^ 2 a0 * α ^ 1

som kan skrives som
α ^ (i 1) = A6 * α ^ 7 a5 * α ^ 6 a4 * α ^ 5 (a3 xor a7) * α ^ 4 (A7 a2) xor * α ^ 3 (A7 XOR A1 ) * α ^ 2 (A7 XOR a0)
(håper jeg fikk det rett)

Nå kan du se at "multipliser med α 'kan oppnås ved å skifte og XOR operasjoner.Vi kan bare gjenta dette for å multiplisere α ^ i by α ^ 2, α ^ 3, α ^ 4, α ^ 5, α ^ 6 og α ^ 7.

Nå tenker multiplisere dem med andre GF ele.Enhver GF ele kan skrives som
α ^ j = B7 * α ^ 7 B6 * α ^ 6 B5 * α ^ 5 B4 * α ^ 4 b3 * α ^ 3 b2 * α ^ 2 b1 * α ^ 1 B0

du kan se at for å få produktet av α ^ i og α ^ j, hva vi trenger for å formere α ^ i by α ^ 1, α ^ 2, α ^ 3, α ^ 4, α ^ 5, α ^ 6 og α ^ 7 og legge opp.Men ikke alle trenger å bli lagt opp, bare de produktene som b's er ikke null trenger å være.Dette er akkurat hva expresion gjør.
-b

 

Welcome to EDABoard.com

Sponsor

Back
Top