DE4316813A1 - Reed-Solomon-Decoder - Google Patents

Reed-Solomon-Decoder

Info

Publication number
DE4316813A1
DE4316813A1 DE19934316813 DE4316813A DE4316813A1 DE 4316813 A1 DE4316813 A1 DE 4316813A1 DE 19934316813 DE19934316813 DE 19934316813 DE 4316813 A DE4316813 A DE 4316813A DE 4316813 A1 DE4316813 A1 DE 4316813A1
Authority
DE
Germany
Prior art keywords
output
data
input
register
register stack
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE19934316813
Other languages
English (en)
Inventor
Roland Mester
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Philips Intellectual Property and Standards GmbH
Original Assignee
Philips Patentverwaltung GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Philips Patentverwaltung GmbH filed Critical Philips Patentverwaltung GmbH
Priority to DE19934316813 priority Critical patent/DE4316813A1/de
Publication of DE4316813A1 publication Critical patent/DE4316813A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials

Landscapes

  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)

Description

Die Erfindung geht aus von einem Reed-Solomon-(RS)-Decoder nach dem Oberbegriff des Patentanspruchs 1.
Ein RS-Code ist ein systematischer Blockcode der Länge n, bei welchem k Informationssymbolen (n - k) = p Checkworte zugesetzt werden. Durch den Codiervorgang werden Nachrichtensymbole nicht verändert. Der RS-Code hat eine minimale Hamming-Distanz d = p + 1, die bei einer Decodierung frei wählbar zur Fehlererkennung oder Fehler­ korrektur eingesetzt werden kann.
Bei einer Decodierung wird nicht zwischen Daten- und Checkworten unterschieden. Ein RS-Code-Block besteht aus n Symbolen, wobei für ein Symbol jede Bit-Anzahl < 1 möglich ist. Üblicherweise wird mit einer Symbolbreite von 8 Bit gearbeitet. Für jeden Symbolfehler t werden bei einer Korrektur 2t Checkworte benötigt, um einen Fehlerort Xk und einen Fehlerwert Yk zu berechnen. Ist das fehlerhafte Symbol als Auslöschung markiert, ist der Fehlerort Xk bekannt. In diesem Fall wird zur Berechnung des Fehler­ wertes Yk nur ein einziges Checkwort benötigt. Für RS-Codes gilt die Beziehung 2t + e p = n - k = d - 1, wobei mit e die Anzahl der Auslöschungen bezeichnet ist. In Zusammen­ hang mit der Aufzeichnung und Wiedergabe von Datensignalen auf/von Magnetband sind unter dem Begriff Auslöschungen Drop-Out-Störungen im wiedergegebenen Datensignal oder auch der kurzzeitige Ausfall eines Übertragungskanals und ein damit begründeter Datenausfall bei der digitalen Übertragung zu verstehen.
Definitionsgemäß ist bei RS-Codes jedes Symbol mit m-Bits das Element eines Galois-Feldes GF (2m). Die Sequenz der 2m-1 Symbole ungleich Null als Basis der finiten Feld- Arithmetik wird durch das Feldgeneratorpolynom p(X) definiert. Die Anzahl der Symbole beschränkt auch die maximale Blocklänge eines RS-Codes auf 2m-1, da die Elemente des Feldes als eindeutige Positionszahl im Block benötigt werden.
Ein Feld wird über ein irreduzibles Feldgeneratorpolynom definiert. Wird ein Symbol als primitives Element α der Ordnung 2m-1 definiert, lassen sich alle anderen Elemente als Potenz von α ausdrücken. Das Galois-Feld läßt sich somit als endliche Folge von 2m-1 Elementen definieren. Dabei ermöglicht die binäre Komponenten-Darstellung eine einfache Addition über eine bitweise EXOR-Verknüpfung und eine Exponentendarstellung eine einfache Multiplikation über eine Addition der Exponenten modulo q = 2m-1. Dies entspricht in einer Schaltungsumsetzung einem binären Addierer, dessen Übertragsausgang mit dem Übertragseingang verbunden ist.
Prinzipiell ist ein RS-Code der Distanz d über das Code- Generator-Polynom
definiert. Wesentlich ist, daß G(X) p aufeinanderfolgende Nullstellen enthält.
Ein legaler Codevektor c(X) entsteht durch Division eines um p Stellen verschobenen Informations-Vektors i(X)*xp durch G(X) und Anhängen des dabei entstehenden Paritäts- Vektors p(X) in den freigewordenen Stellen des Informations-Vektors i(X). Der resultierende Code-Vektor c(X) ist dabei durch alle Wurzeln von G(X) ohne Rest teilbar. Die einzelnen Polynome und Vektoren lassen sich wie folgt darstellen:
i(x) = ik-1xk-1+ik-2xk-2+ . . . +i₁x¹+i₀
Informations-Polynom
p(x) = (i(x) · xp) mod G(x) Paritäts-Polynom
c(x) = (i(x) · xp)+p(x) Code-Polynom
ci = (ik-1, ik-2, . . ., i₁, i₀, Pp-1, Pp-2, . . ., P₁, P₀) = (cn-1, cn-2, . . ., c₁, c₀) Code-Vektor=gesendeter Vektor
ei = (en-1, en-2, . . ., e₁, e₀) Fehler-Vektor
ui = (un-1, un-2, . . ., u₁, u₀) Auslöschungs-Vektor
r₁ = ci+ei+ui empfangener Vektor
Der Fehler-Vektor ei ist an maximal t Stellen ungleich Null, ansonsten gleich Null. Entsprechendes gilt für den Auslöschungs-Vektor ui, der an maximal e Stellen ungleich Null ist. Bei Überschneidungen von ei und ui an gleichen Positionen werden Fehler zu Auslöschungen, da die Fehler dann markiert sind.
Ein übertragener RS-codierter Codeblock c(X) besteht aus k Informationsstellen, denen p Checkworte folgen. Durch die Codekonstruktion ist gewährleistet, daß c(X) durch alle Wurzeln durch G(X) ohne Rest teilbar ist, solange keine Fehler e(X) oder Auslöschungen u(X) auftreten. Die Entwicklung eines Empfangsvektors r(X) an den Wurzeln des Code-Generator-Polynoms G(X) erzeugt Werte, die von empfangenen Fehlern abhängig sind, jedoch unabhängig von der übertragenen Information i(X). Diese Werte werden als Syndrome bezeichnet. Die m Syndrome Sj (j=O . . . d-2) werden nach der Gleichung
berechnet.
Der empfangene Vektor (x) läßt sich in einer Polynom-Darstellung wie folgt beschreiben:
r(x) = rn-1xn-1 + rn-2xn-2 + . . . + r₁x¹ + r₀
Dabei bezeichnet xi eine Position im Polynom für jedes empfangene Symbol ri. Das erste empfangene (Daten-) Symbol ist das letzte (Paritäts-) Symbol r₀. Zur Speicherung des Polynoms müssen nur die Koeffizienten ri abgelegt werden.
Da die Entwicklung eines fehlerfreien Empfangsvektors r(X) an einer Nullstelle des Codegenerator-Polynoms den Wert Null liefert, sind die Werte der Syndrome als Summen der positionsgewichteten Fehler Yk an den Stellen Xk zu betrachten. Die Syndrome stellen dabei Reste einer Division des Empfangsvektors r(X) durch alle Faktoren (x+α¹) des Codegeneratorpolynoms dar, wobei
ist.
Wird bei einer Auslöschung die Position eines Fehlers Xk festgehalten, so läßt sich mit p Syndromen und p Fehler­ orten Xk bis zu e = p Auslöschungen berechnen, so lange 2t + e p ist, wobei t die Anzahl nicht markierten Fehler ist.
Die Syndrome bilden nach der zuvor genannten Gleichung einen Satz von p nichtlinearen Gleichungen, so daß p Lösungen ermittelt werden können. Gesucht werden mit Hilfe der Syndrome die Koeffizienten eines Fehlerortpolynoms, welches an den Fehlerorten den Wert Null aufweist.
Eine Decodierung von RS-codierten Datenblöcken nach dem sogenannten Euclid-Algorithmus ist von Truong, Eastman, Reed und Hsu in der Zeitschrift IEE Proceedings, "Simplified procedure for correcting both errors and erasures of RS code using Euclid algorithm", Vol. 135, Pt.E, No. 6, Nov. 1988 angegeben. Der Euclid-Algorithmus läßt sich in folgende Schritte gliedern:
  • 1. Berechnung der Syndrome Sj sowie des Polynoms von Auslöschungsorten L(X) und dem Setzen von e=deg(L(X)) (=Anzahl der Auslöschungen).
  • 2. Berechnung eines sogenannten Forney-Syndroms τ(X) = S(X)L(X) mod xd-1.
  • 3. Für e = d-1 = p wird T(X) = L(X) und R(X) = τ(X) gesetzt. Anderenfalls wird T(X) und R(X) durch Anwendung eines Euclid-Algorithmus bestimmt. Der Euclid-Algorithmus besteht aus folgenden rekursiven Formeln: Qs-1(X) = Rs-2(X)/Rs-1(X),
    Ts(X) = (Qs-1(X))Ts-1(X)+Ts-2(X)
    Rs(X) = (Qs-1(X)Rs-1(X)+Rs-2(X)mit den Anfangswerten:
    To(X) = L(X), T-1(X) = 0, R-1(X) = xd-1, Ro(X) = τ(X). Darin ist Ts(X) ein Fehlerortpolynom, Rs(X) ein Fehlerwertpolynom und Qs-1(X) ein Zwischenwertpolynom. Danach kann Rs(X) und Ts(X) mit dem niedrigsten Koeffizienten Ts(0) = σ normiert werden, wobei R(X) = Rs(X)/σ ist. R(X) und T(X) sind die Ergebnisse des Euclid-Algorithmus, wenn der Grad Rs (d + e -3)/2 ist, wobei einen ganzzahligen Anteil bezeichnen.
Aus dem Tagungsband IEEE 1990 Custom Integrated Circuits Conference, "A 40 Mhz Encoder/Decoder Chip generated by a Reed-Solomon Code Compiler", Seiten 13.5.1 bis 13.5.4, CH2860-5/90/0000-0065, ist bereits eine Schaltungs­ anordnung zum Decodieren von RS-codierten Daten bekannt.
Bei dieser bekannten Schaltungsanordnung werden zunächst in einer ersten Stufe von den empfangenen Datenworten einer Übertragungsstrecke Syndrome berechnet. In einer nachgeschalteten zweiten Stufe werden von den berechneten Syndromen nach dem Euclid-Algorithmus Fehlerort- und Fehlerwert-Polynome berechnet. Die bekannte Schaltungsanordnung weist jedoch den Nachteil auf, daß Auslöschungen weder berücksichtigt und noch korrigiert werden können.
Weiterhin ist aus der DE-Zeitschrift Elektronik, 25/1992, Seiten 46 bis 52, sowie 26/1992, Seiten 40 bis 44, insbesondere Bild 6, eine Anordnung zur Berechnung von Ts(X) und Rs(X) nach dem Euclid-Algorithmus bekannt, welche vier Registerbänke (R, RO, T und TO) mit 16 und 17 Byte Breite umfaßt. Die Registerbänke können aus verschiedenen Funktionsblöcken geladen werden. In die Registerbänke R und RO werden die ermittelten Syndrome S und Auslöschorte L geladen, während die Registerbänke T und TO konstante Anfangswerte 0 bzw. 1 erhalten. Die Registerbänke R und T können untereinander vertauscht werden, so daß Werte auch zwischengespeichert werden können. Eine "Shift RO"- Funktion wird für die Berechnung des zuvor erwähnten Orney-Syndroms benötigt. Die Registerbänke RO und TO können mit neu berechneten Polynomen zur Ausführung des Euclid-Algorithmus geladen werden. Der Grad von T zeigt am Ende der Berechnung an, wieviel Fehler in einem Datenblock für eine nachfolgende Suche nach Chien erwartet werden. Eine zentrale Steuerung erkennt dabei das Terminieren des Algorithmus über den Grad von RO.
Der vorliegenden Erfindung liegt die Aufgabe zugrunde, einen RS-Decoder nach der eingangs genannten Art zu schaffen, welcher echtzeitfähig mit hoher Datenrate (100 Mbit/s) aus den vorliegenden Syndromen und Auslöschorten des zu decodierenden Datensignals gemäß einem Euclid-Algorithmus die Fehlerort- und Fehlerwert- Polynome ermittelt.
Diese Aufgabe wird durch die im kennzeichnenden Teil des Patentanspruchs 1 angegebenen Merkmale gelöst.
Die Erfindung weist den Vorteil auf, daß die Einrichtung zur Erzeugung der Fehlerort- und Fehlerwert-Polynome nicht nur in sehr wenigen Taktschritten die zur weiteren Decodierung erforderlichen Polynome zur Verfügung stellt, sondern daß die Einrichtung auch in Abhängigkeit berechneter Zwischenergebnisse in ihrer Funktion beeinflußt werden kann.
Durch die in den Unteransprüchen aufgeführten Maßnahmen sind vorteilhafte Weiterbildungen und Verbesserungen des im Patentanspruch 1 angegebenen RS-Decoders möglich.
Ein Ausführungsbeispiel der Erfindung ist in der Zeichnung dargestellt und in der nachfolgenden Beschreibung näher erläutert. Es zeigen:
Fig. 1 das grobe Blockschaltbild eines bekannten RS- Decoders,
Fig. 2 das Blockschaltbild einer bekannten Einrichtung zur Erzeugung von Fehlerwert- und Fehlerort- Polynomen,
Fig. 3 das Blockschaltbild einer Registertransfer­ einrichtung zur Erzeugung des Fehlerwertpolynoms Rs(X) gemäß der Erfindung,
Fig. 4 das Blockschaltbild einer Registertransfer­ einrichtung zur Erzeugung des Fehlerwert- Polynoms Rs(X) gemäß der Erfindung,
Fig. 5 das Blockschaltbild einer Steuereinrichtung für die in den Fig. 3, 4, 6 und 7 dargestellten Registertransfereinrichtungen,
Fig. 6 das Blockschaltbild einer Registertransfereinrichtung zur Erzeugung des Fehlerort-Polynoms Ts(X) gemäß der Erfindung,
Fig. 7 das Blockschaltbild einer Registertransfereinrichtung zur Erzeugung des Fehlerort-Polynoms Ts-1(X) gemäß der Erfindung und
Fig. 8 bis 11 Wahrheitstabellen für die Steuerung der in den Fig. 3, 4, 6 und 7 dargestellten Registertransfereinrichtungen.
Die Fig. 1 zeigt das grobe Blockschaltbild eines RS- Decoders. Darin ist mit 1 ein Datenbus bezeichnet, über welchem 8 Bit breite Datenworte Din der zu decodierenden Datenblöcke zu einer Verzögerungseinrichtung 3 sowie einen Funktionsblock 3 übertragen werden. Der Funktionsblock 3 dient zur Ermittlung von Syndromen S(X) und Auslöschorten L(X). Parallel zu den auf dem Datenbus 1 übertragenen Datenblöcken wird ein Fehlersignal EFin über eine Leitung 4 der Verzögerungsleitung 2 und dem Funktionsblock 3 zugeführt.
Der Funktionsblock 3 enthält 16 Syndromgeneratoren zur Berechnung der Syndrome S(X). Die Syndromgeneratoren bilden den Rest einer Division c(X)/(x+αi). Neben den Syndromen S(X) werden in dem Funktionsblock 3 die Auslöschorte L(X) ermittelt, indem ein Generator alle Positionen im Datenblock durchzählt. Bei dem Auftreten einer Auslöschung wird der Ort in einem Registerstapel gespeichert. Treten mehr Auslöschungen auf, als aufgrund einer Begrenzung der Korrektur möglich sind, wird L(X) Null gesetzt. In diesem Fall kann eine begrenzte Korrektur von Fehlern versucht werden. Weiterhin weist der Funktionsblock 3 einen Eingang 5 auf, über welchem die Anzahl von Parity-Worten P pro Datenblock angewählt werden kann. Ausgänge des Funktionsblockes 3 sind über Leitungen P, S00 . . . S15 und L00 . . . L15 mit Eingängen eines nachgeschalteten Funktionsblockes 6 verbunden. Die Leitung P dient zur Übertragung der Anzahl der verwendeten Parity- Worte P, die Datenbusleitung S00 . . . S15 zur Weiterleitung von 16 × 8 Bit breiten Syndromvektoren S(X) und die Datenbusleitung L00 . . . L15 zur Weiterleitung von 16 × 8 Bit breiten Auslöschungsvektoren L(X).
Der in der Fig. 2 ausführlicher dargestellte Block 6 umfaßt vier Registerblöcke 7, 8, 9 und 10 mit 16 und 17 Byte Breite. Ferner umfaßt der Funktionsblock 6 eine Steuereinrichtung 11, in welcher das Zwischenwert-Polynom Qs-1(X) sequentiell erzeugt wird und das Abbruch Kriterium des Algorithmus, der Grad von R0 ausgewertet wird. Ferner ist eine Einrichtung 12 vorhanden, die den Grad T des Fehlerort-Polynoms Ts(X) ermittelt für die nachfolgende Chien Suche.
Der Funktionsblock 6 ermittelt in Abhängigkeit von den anliegenden Syndromen S(X) und Auslöschorten L(X) zugehörige Fehlerort-Polynome Ts(X), Fehlerwert-Polynome Rs(X) sowie ein Steuersignal über den Grad von T des Fehlerort-Polynoms Ts(X). An Ausgängen des Funktionsblockes 6 sind somit abnehmbar: Signale des Fehlerort-Polynoms Ts(X), die über eine 17 × 8 Bit parallele Datenbusleitung Tout zu einem Funktionsblock 13 gelangen, Signale des Fehlerwert-Polynoms Rs(X), die über eine 16 × 8 Bit parallele Datenbusleitung Rout zu dem Funktionsblock 13 weitergereicht werden, und das Steuersignal über den Grad von T des Fehlerort-Polynoms Ts(X), das über eine 5 Bit Leitung deg{T} dem Funktionsblock 13 zugeführt wird. Einzelheiten zu dem Funktionsblock 6 werden nachfolgend in Zusammenhang mit den Fig. 6 bis 10 erläutert.
In dem Funktionsblock 13 werden die Null-Stellen der Polynome Ts(X) und Rs(X) bestimmt, so daß mit erhaltenen Fehlerwerten Yk und Fehlerorten Xk eine Korrektur fehlerhafter Datenworte in dem Funktionsblock 14 durch­ geführt werden kann. Der Block 13 wird auch von den von der Verzögerungseinrichtung 2 verzögerten Datenworten del. Din und dem verzögerten Fehlersignal del. EFin angesteuert.
Der Aufbau und die Wirkungsweise der Funktionsblöcke 13 und 14 ist aus der DE 41 05 860 A1 bekannt.
Die Steuerung der vier Funktionsblöcke 3, 6, 13 und 14 sowie der Verzögerungseinrichtung 2 erfolgt durch eine Steuereinrichtung 15. An einem Ausgang des Funktionsblocks 14 ist auf einem Datenbus 16 ein Datenstrom mit 8 Bit breiten Datenworten Dout abnehmbar von denen im Rahmen der Korrekturfähigkeit des RS-Decoders erkannte fehlerhafte Datenworte korrigiert sind. Andere Datenworte, die die Korrekturfähigkeit des RS-Decoders überschreiten, werden durch ein auf einer Leitung 17 parallel übertragenes Fehlermerkersignal EFout markiert.
Der in Verbindung mit der Fig. 2 als Registerbank 7 bezeichnete Block ist in der Fig. 3 ausführlicher dargestellt. Der Block umfaßt im wesentlichen eine 16 × 8- Bit-parallele Datentransfereinrichtung zur Erzeugung des Fehlerwertpolynoms Rs(X) = (Qs-i(X)Rs-1(X)+Rs-2(X).
Aus Gründen der Übersichtlichkeit ist nur eine einzige Ebene der 16×8-Bit-parallelen Ebenen der vorliegenden Datentransfereinrichtung dargestellt.
In der Fig. 3 ist mit 18 ein Galois-Feld-(GF)- Multiplizierer bezeichnet. Ein Eingang dieses GF- Multiplizierers ist mit dem Ausgang eines 2/1-Multiplexers 19 und anderer Eingang mit dem Ausgang eines weiteren 2/1- Multiplexers 20 verbunden. Der Ausgang des GF- Multiplizierers 18 liegt an dem Eingang eines UND-Gatters 21, welches Ausgangsdaten des GF-Multiplizierers 18 in Abhängigkeit eines Steuersignals EnFb [i] an seinem anderen Eingang zu einem Eingang eines EXOR-Gatters 22 weiterleitet. Der andere Eingang des EXOR-Gatters 22 ist über eine von einem Steuersignal EnIn[i] beaufschlagtes UND-Gatter 23 mit einem 2/1-Multiplexer 24 verbunden. An einem Ausgang des EXOR-Gatters 22 abnehmbare 8 Bit breite Datenworte gelangen zu dem Eingang eines Registerstapels 25, welches die Daten speichert und um eine Taktperiode verzögert wieder ausgibt.
Die perspektivisch angedeuteten 16 Ebenen des Registerstapels 25 sollen darauf hinweisen, daß die gesamte Registertransferstruktur inclusive der Multiplexer 19, 24 und 28, des Multiplizierers 18, der EXOR- sowie AND- Gatter (21, 22, 23) sechzehn mal parallel vorhanden ist. Daher sind an einem Ausgang der vorderen Ebene des Registerstapels 25 die Daten RO[15] abnehmbar, an einem Ausgang der zweiten Ebene des dazu parallelen Registerstapels 25 II die Daten R0[14] und an einem Ausgang der 16. Ebene beispielsweise die Daten RO[0]. In der in der Fig. 3 dargestellten Ebene der erfindungsgemäßen Registertransfereinrichtung sind die Ausgangsdaten Ro[i] des Registerstapels 25 auf den Eingang 0 des 2/1- Multiplexers 24 zurückgekoppelt. An dem anderen Eingang 1 des Multiplexers 24 sind die vom Funktionsblock 3 ausgegebenen Syndrome Si aufgeschaltet. Der 2/1-Multiplexer 24 wird durch ein Schaltsignal Insel gesteuert.
Der in eine Eingangsleitung des GF-Multiplizierers 18 eingefügte 2/1-Multiplexer 20 ist eingangsseitig mit dem Ausgang eines Konstantenspeichers 26 sowie mit dem Ausgang eines Registers 27 zur Speicherung eines Koeffizienten des Zwischenwertpolynoms Qs-i(X) verbunden. Das Register 27 ist Teil der in der Fig. 5 gezeigten Steuereinrichtung 11 der Registertransfers. Die Ableitung der in dem Register 27 gespeicherten Koeffizienten des Zwischenwertpolynoms Qs-1(X) wird in Zusammenhang mit der Beschreibung der Steuereinrichtung 11 in der Fig. 5 erläutert.
Der in die andere Eingangsleitung des GF-Multiplizierers 18 eingefügte 2/1-Multiplizierer 19 ist eingangsseitig mit dem Ausgang RO[i-1] der zweiten Ebene des Registerstapels 25 sowie mit dem Ausgang eines 9/1-Multiplizierers 28 verbunden. Der 2/1-Multiplizierer 19 ist durch ein Schaltsignal R-sel und der 2/1-Multiplizierer 20 durch ein Schaltsignal H-sel steuerbar. Beide Schaltsignale erzeugt die in der Fig. 5 dargestellte Steuereinrichtung 11.
Den neun Eingängen des 9/1-Multiplexers 28 in der Ebene i, der durch ein Schaltsignal d[3 . . . 0] der Steuereinrichtung 11 steuerbar ist, sind Daten von Ausgängen R[i] bis R[i-1] eines in der Fig. 4 gezeigten Registerstapels 29 aufgeschaltet.
Die Schaltsignale Insel, R-sel, H-sel und d[3 . . . 0] gelten für alle 16 Byte der Registertransfereinrichtung gemeinsam. Die Steuersignale EnIn[i] und EnFb[i] werden dagegen für jede Registerebene des Registerstapels 25 in der Steuereinrichtung getrennt erzeugt.
Die Fig. 8 zeigt eine Wahrheitstabelle über das Zusammen­ wirken der vorgenannten Schalt- und Steuersignale für den Betrieb des Registerstapels 25. In dieser und weiteren Wahrheitstabellen bedeutet X einen beliebigen logischen Pegel, L eine logische "0", H eine logische "1" und die Ziffern 1 bis 7 die Verbindung eines bestimmten Eingangs mit dem Ausgang eines zugehörigen Multiplexers.
Gemäß der in der ersten Zeile der Wahrheitstabelle angegebenen Verknüpfung können die Schaltsignale Insel, d[3 . . . 0], R-sel und H-sel einen beliebigen Pegel X und die Steuersignale Enln[i] und EnFb[i] einen L-Pegel aufweisen, um in einer Initialisierungsphase, d. h. zu Beginn einer Datenblockübertragung, den Registerstapel 25 mit dem Hex- Wert 00 zu laden. In der zweiten Zeile der in der Fig. 8 dargestellten Wahrheitstabelle sind die logischen Pegel der Schalt- und Steuersignale angegeben, um den Registerstapel 25 mit den in dem Funktionsblock 3 ermittelten Syndromen S[i] zu laden. In der Wahrheitstabelle folgen sodann Verknüpfungen, um die in dem Registerstapel 25 gespeicherten Daten zu halten, um die Daten in dem Registerstapel 29 zu vertauschen und um eine Erzeugung des Fehlerwertpolynoms Rs(X) zu veranlassen.
Soll bei dem Registerstapel 29 der Ausgangswert RO[i] (i = 0 . . . 15) mit dem Ausgangswert R(i-j) verknüpft werden und ist der Index negativ, so ist an den 2/1-Multiplexer 24 der Hex-Wert 00 anzulegen. Der Index "j" bezeichnet dabei eine Laufvariable (1 . . 8) für den 9/1-Multiplexer 28.
Der in der Fig. 4 dargestellte Registerstapel 29 besteht ebenso wie der Registerstapel 25 aus insgesamt 16 Ebenen zur Speicherung von 16×8 Bit breiten Datenworten für die Dauer einer Taktperiode. Der Registerstapel 29 wird über ein UND-Gatter 30 selektiv mit Daten angesteuert, die an vier Eingängen eines 4/1-Multiplexers 31 liegen. Bei der hintersten Ebene des Registerstapels 29 R[0] liegen am Eingang des Multiplexers beispielsweise die Ausgangsdaten R[1] des Registerstapels 29, die Auslöschortdaten L[0], die Ausgangsdaten R0[0] des Registerstapels 25 und die zurückgekoppelten Ausgangsdaten R[0] des Registerstapels 29. Die Steuerung des 4/1-Multiplexers 31 erfolgt durch ein in der Steuereinrichtung 11 abgeleitetes Schaltsignal Rinsel[1 . . 0]. Die an einem Ausgang des 4/1-Multiplexers 31 abnehmbaren Daten werden in Abhängigkeit eines dem UND- Gatter 30 zugeführten Steuersignals EnRin[i] zu dem Eingang des Registerstapels 29 weitergeleitet.
Das Registerstapel 29 wählt für alle Ebenen gemeinsam einen der vier Eingängen des 4/1-Multiplexers 31 an. Darüberhinaus besteht die Möglichkeit, jedes der 16 Bytes des Registerstapels 29 getrennt anzusprechen; dies geschieht durch eine entsprechende Steuerung des in die Eingangsleitung des Registerstapels 29 eingefügten UND- Gatters 30 durch ein Schaltsignal EnRin[i], damit das entsprechende Byte auf den Hex-Wert 00 gesetzt werden kann. Ferner kann das Registerstapel 29 mit Auslöschorten L[i] geladen werden; es kann weiterhin veranlaßt werden, einen gespeicherten Wert zu halten, seinen Speicherinhalt mit den des Registerstapels 25 zu tauschen und den Wert R[i] um eine Stelle zu schieben. Bei einem Schieben wird der Wert R(0] weggeworfen und der Datenwert R[15] von Registerstapel 29 zu "0" gesetzt.
Eine entsprechende Wahrheitstabelle zur Steuerung der obengenannten Registertransfers des Registerstapels 29 ist in der Fig. 9 dargestellt.
Der Funktionsablauf der in den Fig. 3 und 4 gezeigten Blöcke ist folgender:
Der an dem Ausgang des 2/1-Multiplexers 20 vorliegende Koeffizient des Zwischenwertpolynom Qs-i (X), dessen Ableitung in Verbindung mit der Fig. 5 noch näher erläutert wird, wird in dem GF-Multiplizierers 18 mit dem vom Ausgang des 2/1-Multiplexers 19 erhaltenen, Fehlerwertpolynom Rs-1(X) multipliziert. An dem Ausgang des GF-Multiplizierers 18 steht somit der Term (Qs-1(X))Rs-1(X) an. Zu diesem Term wird mit Hilfe des EXOR-Gatters 22 das Fehlerwertpolynom Rs-2(X) addiert, das von dem Ausgang des Registerstapels 25 über den 2/1-Multiplexer 24 und dem UND-Gatter 23 zu dem Eingang des EXOR-Gatters 22 gelangt. An dem Ausgang (Klemme 32) des EXOR-Gatters 22 steht das durch Anwendung eines Euclid-Algorithmus erzeugte Fehlerwert-Polynom Rs(X) = (Qs-i (X))Rs-1(X)+Rs-2(X) zur Weiterverarbeitung in dem Funktionsblock 13 des RS- Decoders bereit.
Das zur Erzeugung des Fehlerwertpolynoms Rs(X) benötigte Zwischenwertpolynom Qsi(X) = Rs-2(X)/Rs-1(X) wird in der Steuereinrichtung 11 (Fig. 5) durch eine Division ermittelt. Die zur Division erforderliche Anordnung besteht aus einem 3/1-Multiplexer 33, einem Galois-Feld- Inverter 34, einem Multiplizierer 35, einem 2/1- Multiplexer 36, einem 5/1-Multiplexer 37, einem Register 27, einem 17/1-Multiplexer 39, einem weiteren Multiplizierer 40, einem 3/1-Multiplexer 41 sowie einem Register 42.
Bei dieser Anordnung ist einem Eingang des 17/1-Multi­ plexers 39 das 16×8 Bit breite Signal RO des Fehlerwertpolynoms Rs-2(X), das am Ausgang des Registerstapels 25 (Fig. 3) abnehmbar ist, aufgeschaltet. Von dem Signal RO wird ein Teilsignal RO[1] zu einem Eingang des 3/1-Multiplexers 33 geleitet. Weitere Eingänge des 3/1-Multiplexers 33 sind mit einem Signal der Auslöschorte L[0] und dem Ausgang des Registers 42 beaufschlagt. Das Ausgangssignal des 3/1-Multiplexers 33 wird über den Galois-Feld-Inverter 34 zu dem Eingang des Multiziplierers 35 geleitet, so daß eine Division, entsprechend der Multiplikation mit der Inversen, berechnet werden kann. Ein anderer Eingang des Multiplexers 35 ist mit dem Ausgang des 2/1-Multiplexers 36 verbunden, dessen einer Eingang auf einem logischen H- Pegel liegt und dessen anderem Eingang ein Signal über die verwendete Codewortlänge CWlen zugeführt ist. Ein Ausgangssignal h-quot des Multiziplierers 35 gelangt zu Eingängen 0, 1 und 3 des 5/1-Multiplexers 37 sowie zu dem Eingang 0 des 3/1-Multiplexers 41. Der Ausgang des 5/1- Multiplexers 37 ist mit einem Eingang des Registers 27 verbunden, dessen Ausgangssignal Qs-i(X) auf der Leitung Q auf den Eingang 4 des 4/1-Multiplexers 37 zurückgekoppelt ist.
Dem anderen Eingang des 17/1-Multiplexers 39 ist ein Signal mit dem Hex-Wert 00 zugeführt. Das Ausgangssignal leading_term[RO] des 17/1-Multiplexers 39 wird zu einem Eingang des Multiplizierers 40 und zu dem Eingang 2 des 3/1-Multiplexers 41 weitergereicht. Daten am Ausgang des 3/1-Multiplexers 41 werden in das Register 42 geschrieben, dessen Ausgangssignal h0 zu einem anderen Eingang des Multiziplierers 40, zu einem Eingang 1 des 3/1-Multi­ plexers 41 und zu einem Eingang 2 des 3/1-Multiplexers 33 gelangt. Die Steuerung des 17/1-Multiplexers 39 erfolgt durch ein Schaltsignal, das in einer Stufe 43 zur Ablei­ tung des Grads von RO erzeugt wird.
Ferner enthält die Steuereinrichtung 11 eine Anordnung zur Beendigung der Rechenoperationen, d. h. zum Abbruch des Euclid-Algorithmus. Diese Anordnung ist mit einer Stufe 43 zur Ableitung des Grads von RO, einem Multiplexer 44, einem Binäraddierer 45, einem 4/1-Multiplexer 46, einem 5- Bit-Register 47, einem 3/1-Multiplexer 48, der Registereinrichtung 12, einer NICHT-Stufe 49 und einem UND-Gatter 50 ausgestattet. Dabei liegt ein Eingang 3 des Multiplexers 4 an einem Ausgang der Stufe 43 und ein Eingang 2 an einer Leitung P, auf welcher die Anzahl der verwendeten Parity-Worte übertragen wird. Das von dem Multiplexer 44 abgegebene Ausgangssignal gelangt zu einem Eingang des Binär-Addierers 45. An einem Eingang "Carry in" (Eingangsübertrag) des Binär-Addierers 45 liegt der logische Pegel "1". Der weiterer Eingang des Binär- Addierers 45 ist mit dem Ausgang der NICHT-Stufe 49 verbunden. Ein am Ausgang des Binär-Addierers 45 abnehmbares Signal wird zu dem Eingang 2, 3 des 4/1- Multiplexers 46 weitergeleitet, dessen Eingang 1 den logischen Pegel "1" führt und dessen Eingang 0 an dem Ausgang des 5-Bit-Registers 47 angeschlossen ist. Der Ausgang des 4/1-Multiplexers 46 liegt an dem Eingang des 5-Bit-Registers 47. Vom Ausgang des 5-Bit-Registers 47 gelangt das Signal sodann über das durch ein Steuersignal dmask beeinflußte UND-Gatter 50 zur Ausgangsleitung d[3 . . . 0], die die 9/1 Multiplexer (28,60) von TO und RO steuert.
Das Ausgangssignal der Stufe 43 wird auch dem Eingang 2 des 3/1-Multiplexers 48 zugeführt. Der Eingang 1 des 3/1- Multiplexers 48 erhält ein Signal von der 5-Bit- Registereinrichtung 12 und der Eingang 0 des 3/1- Multiplexers 48 ein Signal mit dem Hex-Wert 00. Der Ausgang des 3/1-Multiplexers 48 führt auf den Eingang der 5-Bit-Registereinrichtung 12, die ein Signal deg{RO} ausgibt und dieses Signal auf Eingänge der NICHT-Stufe 49 und des 3/1-Multiplexers 48 zurückführt. Somit wird die binäre Subtraktion des Grades von RO ermöglicht. Ist der Grad von RO kleiner als eine im Algorithmus vorgegebene Schwelle, so ist die Berechnung abzubrechen. Das Ergebnis steht in den Registerstapeln 29 (Fig. 4) und 61 (Fig. 7) für die weitere Verarbeitung in der Funktionseinrichtung 13 zur Verfügung.
Die Abkürzung deg(RO) bezeichnet den Grad des Polynoms RO des Registerstapels 25, also die Position des höchsten Koeffizienten ungleich Null. Der Grenzwert in dgr ist laut Algorithmus (P+E-2) DIV 2. Dann ist Euclid terminiert.
Das 5-Bit-Register 47 läßt sich mit Werten (P-dgr), (deg(R0)-dgr), 01 und d laden. Der Wert des Registers 12 ergibt sich aus dem Wert deg(RO), dgr oder 00. Das Register 42 kann geladen werden mit dem Hex-Wert 00, Werten h0 am Ausgang des Registers 42, einem Wert INV(h0) und dem höchstwertigen Koeffizienten von RO. Dabei ist INV = X-1= 1/x das reziproke Element für die Division im Galois Feld. Das Register 27 ist ladbar mit dem Wert (h0*führender_Term(RO)). Mit den vorgenannten Registern und einem weiteren (nicht dargestellten) Zustandszähler läßt sich ein Mikroprogramm-Steuerwerk aufbauen, welches die Multiplexer der Registerstapel in der Steuereinrichtung 11 steuert und den Euclid-Algorithmus entsprechend anwendet; es kann insbesondere festgestellt werden, ob der Wert "dgr" kleiner als ein Grenzwert ist und ob der Wert "d" negativ ist, wobei das höchstwertige Bit abgefragt wird.
Außerdem enthält die Steuereinrichtung 11 eine logische Verknüpfungseinrichtung 51, an welcher anhand der auf Ausgangsleitungen dgr, d[3 . . . 0] und Q zugeführten Signalen und des aktuellen Schritts im Euclid-Algorithmus die in den Fig. 3, 4, 6 und 7 benötigten Steuer- und Schaltsignale für die einzelnen Multiplexer und Addier- Gatter erzeugt und abnehmbar sind. Die von der Steuereinrichtung 11 gelieferten Signale sind: Insel, Rinsel[1 . . . 0], R_sel, H_sel, Set1, T_sel, EnT, EnIn[16 . . 0], EnFb[16 . . 0] und EnRin[15 . . 0].
Die Fig. 6 zeigt ein Blockschaltbild einer Registertrans­ fereinrichtung zur Erzeugung des Fehlerortpolynoms Ts(X). Die Struktur des Blockschaltbildes ähnelt der zur Erzeugung des Fehlerwertpolynoms R₃(X) gemäß der Fig. 3. Gleiche Elemente sind auch hier mit gleichen Bezugszeichen versehen. In der Fig. 6 bezeichnet 52 einen GF- Multiplizierer, dessen einer Eingang mit dem Ausgang eines 2/1-Multiplexers 53 und dessen anderer Eingang mit dem Ausgang eines weiteren 2/1-Multiplexers 54 verbunden ist. Der Ausgang des GF-Multiplizierers 53 liegt an dem Eingang eines UND-Gatters 55, welches Ausgangsdaten des GF- Multiplizierers 52 in Abhängigkeit eines das UND-Gatter 55 steuernden Steuersignals EnFb[i] einem Eingang eines EXOR- Gatters 56 zuleitet. Der andere Eingang des EXOR-Gatters 56 ist über ein von dem Steuersignal Enln[i] beaufschlagtes UND-Gatter 57 verbunden, dem Ausgangsdaten T0[i] eines Registerstapels 58 zugeführt sind. Dieser Registerstapel 58 weist 17 Ebenen für jeweils 8 Bit breite Datenworte auf. Auch hier ist aus Gründen der Übersichtlichkeit nur eine Ebene dargestellt. In der ersten Ebene bzw. Stufe TO[0] des Registerstapels 58 ist in die Verbindungsleitung zwischen dem Ausgang des UND- Gatters 57 und einem Eingang des EXOR-Gatters 56 ein ODER- Gatter 59 eingefügt, das den Signalstrom durch ein Steuersignal Set1 beeinflussen kann.
Der in eine Eingangsleitung des GF-Multiplizierers 52 eingefügte 2/1-Multiplexer 54 ist eingangsseitig mit dem Ausgang des Konstantenspeichers 26 sowie mit dem Ausgang des bereits erwähnten Registers 27 verbunden, das einen Koeffizienten des Zwischenwertpolynoms Qs-1(X) enthält. Der in der anderen Eingangsleitung des GF-Multip1izierers 52 eingefügte 2/1-Multiplexer 53 ist eingangsseitig mit dem am Ausgang T0[i-1] der zweiten Ebene des Registerstapels 58 sowie dem am Ausgang eines 9/1-Multiplexers 60 verbunden. Der 2/1-Multiplexer 53 ist durch ein Schaltsignal T_sel und der 2/1-Multiplexer 54 durch das Schaltsignal H_sel steuerbar. Beide Schaltsignale werden In der Steuereinrichtung 11 (Fig. 5) erzeugt.
Den neun Eingängen des 9/1-Multiplexers 60, der durch das Schaltsignal d3 . . 0 der Steuereinrichtung 11 steuerbar ist, sind Daten zugeführt, die an Ausgängen T[i] bis T[i-8] eines in der Fig. 7 dargestellten Registerstapels 61 abgreifbar sind. Die Steuersignale EnIn[i] und EnFb[i] ermöglichen eine separate Ansteuerung der einzelnen Registerebenen des Registerstapels 58. Die Schaltsignale Set1, T_sel, H_sel und d gelten für alle 17 Bytes des Registerstapels 58 gemeinsam. Ebenso gilt Tinsel und EnT für alle 17 Ebenen des Registerstapels 61.
Die Fig. 9 zeigt eine Wahrheitstabelle über das Zusammen­ wirken dieser einzelnen Schalt- und Steuersignale zum Betrieb des Registerstapels 58. Zum Verständnis dieser Wahrheitstabelle seien nachfolgend die ersten beiden Zeilen betrachtet. In der ersten Zeile der Wahrheitstabelle findet zunächst eine Initialisierung des Registerstapels 58 statt, bei welcher in die 17 Ebenen des Registerstapels 58 der Hex_Wert 00 geschrieben wird. Zur Einleitung des Initialisierungsvorgang müssen die Steuersignale Set1, EnIn[i] und EnFb[i] einen logischen L- Pegel aufweisen, während die Schaltsignale d, T_sel und H_sel einen beliebigen Pegel X annehmen dürfen. Die zweite Zeile der Wahrheitstabelle nimmt bezug auf die Besonderheit der Initialisierung der ersten Ebene des Registerstapels 58. Dabei wird der Hex-Wert 01 in die erste Ebene des Registerstapels 58 geschrieben, während die übrigen Ebenen den Hex-Wert 00 annehmen. Die folgenden Zeilen der Wahrheitstabelle enthalten Kombinationen, die das Halten und Vertauschen von Registerinhalten und die steuernden Maßnahmen zum Erhalt des Fehlerortpolynoms Ts(X) betreffen.
Der in der Fig. 7 dargestellte Registerstapel 61 besteht ebenso wie der Registerstapel 58 aus 17 parallelgeschalteten Speicherebenen in einer Wortbreite von jeweils 8 Bit. Auch der Registerstapel 61 speichert die zugeführten Datenworte für die Dauer einer Taktperiode. Das Registerstapel 61 wird über ein UND- Gatter 62 selektiv von Daten angesteuert, die an zwei Eingängen eines 2/1-Multiplexers 63 liegen. Von den Eingängen der 2/1-Multiplexer 63 ist der Eingang 1 mit einem Signal T0[i] am Ausgang des Registerstapels 58 und der Eingang Null mit dem Signal T[i] am Ausgang des Registerstapels 61 beaufschlagt. Die Steuerung des 2/1- Multiplexers 63 erfolgt durch ein in der Steuereinrichtung 11 abgeleitetes Schaltsignal Tinsel. Von dem 2/1- Multiplexer 63 ausgegebenen Daten gelangen über das UND- Gatter 62, das durch ein Steuersignal EnT freigegeben wird, zu dem Eingang des Registerstapels 61.
Eine zur Steuerung des Registertransfers von Registerstapel 61 zugeordnete Wahrheitstabelle zeigt die Fig. 11. Je nach logischem Pegel der Steuersignale Tinsel und EnT wird der Inhalt des Registerstapels 61 beeinflußt, d. h. in einer Initialisierungsphase wird der Registerstapel 61 mit dem Hex-Wert 00 geladen, die in dem Registerstapel gespeicherte Dateninformation wird gehalten bzw. mit der im Register 58 gespeicherten Dateninformation getauscht.
Die in den Fig. 6 und 7 dargestellten Registertransfer­ einrichtungen weisen folgende Funktion auf:
Das an dem Ausgang des 2/1-Multiplexers 54 abnehmbare Zwischenwertpolynom Qs-1(X) wird in dem GF-Multiplizierer 52 mit dem vom Ausgang des 2/1-Multiplexers 53 abnehmbaren Fehlerortpolynom Ts-(X) multipliziert. Das Ausgangssignal des GF-Multiplizierers 52 genügt dem Term (Qs-1 (X)) Ts-1 (X). Diesem Term wird in dem EXOR-Gatter 56 das Fehlerortpolynom Ts-2(X) zuaddiert, so daß am Ausgang (Klemme 64) des EXOR-Gatters 56 das durch Anwendung eines Euclid-Algorithmus erzeugte Fehlerortpolynom Ts(X) = Qs-1(X) Ts-1(X) + Ts-2(X) zur Weiterverarbeitung in den Funktionsblock 13 des RS-Decoders zur Verfügung steht.

Claims (15)

1. Reed-Solomon-Decoder mit
  • - einer Einrichtung (3) zur Ermittlung von Syndromen (S(X)) und Auslöschorten (L(X)) in einem zu decodierenden Datensignal,
  • - einer Einrichtung (6) zur Erzeugung von Fehlerort- und Fehlerwert-Polynomen anhand ermittelter Syndrome (S(X)) und Auslöschorte (L(X)) nach einem Euclid- Algorithmus, bei welchem Ts(X) = (Qs-1(X))Ts-1(X)+Ts-2(X)
    Rs(X) = (Qs-1(X)Rs-1(X)+Rs-2(X) und
    Qs-1(X) = Rs-2(X)/Rs-1(X) ist,wobei Ts(X) ein Fehlerortpolynom, Rs(X) ein Fehlerwertpolynom und Qs-i(X) ein Zwischenwertpolynom ist, und welche Einrichtung (6) einen ersten und zweiten Registerstapel (25, 29) zur Speicherung von zwei zuvor erzeugten Fehlerwertpolynomen (Rs-1(X), Rs-2(X)) sowie einen dritten und vierten Registerstapel (58, 61) zur Speicherung von zwei zuvor erzeugten Fehlerortpolynomen (Ts-1(X), Ts-2(X)) aufweist,
  • - einer Einrichtung (13) zur Ermittlung von Fehlerorten Xk und Fehlerwerten Yk durch eine Nullstellensuche nach Chien in den erzeugten Fehlerort- und Fehlerwertpolynomen Ts(X) und Rs(X) und
  • - einer Einrichtung (14) zur Korrektur von Datenworten in dem zu decodierenden Datensignal anhand der ermittelten Fehlerorte Xk und Fehlerwerte Yk,
dadurch gekennzeichnet, daß zur Erzeugung des Fehlerwertpolynoms Rs(X) vorgesehen sind:
ein erster Galois-Feld-Multiplizierer (18), dessen einem Eingang Daten vom Ausgang eines ersten Registers (27) mit Koeffizienten eines Zwischenwertpolynoms Qs-1(X) und dessen anderem Eingang Daten (R[i]) vom Ausgang des zweiten Registerstapels (29) abgreifbaren Fehlerwertpolynoms Rs-1(X) aufgeschaltet ist, wobei einem Eingang des zweiten Registerstapels (29) Ausgangsdaten des ersten Registerstapels (25) zugeleitet sind, und
eine erste Einrichtung (22) zur Addition der an einem Ausgang des ersten Galois-Feld-Multiplizierers (18) vorliegenden Daten zu Daten an einem Ausgang des ersten Registerstapels (25),
daß zur Erzeugung des Fehlerortpolynoms Ts(X) vorgesehen sind:
ein zweiter Galois-Feld-Multiplizierer (52), dessen einem Eingang Daten das an dem Ausgang des ersten Registers (27) abnehmbaren Koeffizienten des Zwischenwertpolynoms Qs-1(X) und dessen anderem Eingang Daten T[i] des an einem Ausgang des vierten Registerstapels (61) abgreifbare Fehlerortpolynom Ts (X) aufgeschaltet ist, wobei einem Eingang des vierten Registerstapels (61) Ausgangsdaten des dritten Registerstapels (58) zugeleitet sind, und
eine zweite Einrichtung (56) zur Addition der an einem Ausgang des zweiten Galois-Feld-Multiplizierers (52) vorliegenden Daten zu Daten an einem Ausgang des dritten Registerstapels (58), und
daß zur Erzeugung des Zwischenwertpolynoms Qs-1(X) vorgesehen ist:
eine Einrichtung (33 bis 40) zur Division der Ausgangsdaten des zweiten Registerstapels (29) durch die Ausgangsdaten des ersten Registerstapels (25), welche einen durch Division erhaltenen Quotienten als Zwischenwertpolynom (Qs-1(X)) dem ersten Register (27) zur Speicherung zuführt.
2. Reed-Solomon-Decoder nach Anspruch 1, dadurch gekennzeichnet, daß die erste Einrichtung (22) zur Addition ein achtfaches EXOR-Gatter (22) mit jeweils zwei Eingängen ist, bei welchem ein Eingang mit dem Ausgang des ersten Galois-Feld-Multiplizierers (18) und ein anderer Eingang mit dem Ausgang des ersten Registerstapels (25) verbunden ist und bei welchem der Ausgang an einem Eingang des ersten Registerstapels (25) liegt.
3. Reed-Solomon-Decoder nach Anspruch 1 und 2, gekennzeichnet durch eine erste und zweite Einrichtung (21, 23) zur UND-Verknüpfung von den den Eingängen des ersten EXOR-Gatters (22) zugeführten Daten mit jeweils einem ersten und zweiten Steuersignal (EnIn[i], nFb[i]), welche einem Eingang der ersten und zweiten Einrichtung (21, 23) zur UND-Verknüpfung zugeführt sind, um den Datenfluß im Sinn einer Unterbrechung zu steuern.
4. Reed-Solomon-Decoder nach Anspruch 1 bis 3, gekennzeichnet durch einen ersten Multiplexer (24) mit zwei Eingängen und einem Ausgang, bei welchem gesteuert durch ein erstes Schaltsignal (Insel) entweder die am Ausgang des ersten Registerstapels (25) abnehmbaren Daten oder die ermittelten Syndrome (Si) zu dem einen Eingang des ersten EXOR-Gatters (22) leitbar sind.
5. Reed-Solomon-Decoder nach Anspruch 1, gekennzeichnet durch
einen zweiten Multiplexer (20) mit zwei Eingängen und einem Ausgang, über welchen gesteuert durch ein zweites Schaltsignal (H_sel) entweder die am Ausgang des ersten Registers (27) abnehmbaren Daten des Zwischenwertpolynoms Qs-1(X) oder der Wert einer Konstanten (α°=1) zu dem einen Eingang des ersten Galois-Feld-Multiplizieres (18) leitbar ist,
einen dritten Multiplexer (19) mit zwei Eingängen und einem Ausgang, über welchem gesteuert durch ein drittes Schaltsignal (R_sel), entweder die am Ausgang des ersten Registerstapels (25) abnehmbaren Daten (R0[i-1]) oder bestimmte Daten (R [i], R [i-1], . . . R [i-8]) des Fehlerwertpolynoms Rs(X) vom Ausgang des zweiten Registerstapels (R) zu dem anderen Eingang des ersten Galois-Feld Multiplizierers (18) leitbar sind, und
einen durch ein fünftes Schaltsignal (d[3 . . 0]) gesteuerten vierten Multiplexer (28) mit neun Eingängen und einem Ausgang, dessen Eingänge verschiedene an Ausgängen des zweiten Registerstapels (29) liegenden Datenworte (R[i], R[i-1] , R[i-8]) des Fehlerwertpolynoms Rs(X) zugeführt sind und dessen Ausgang mit einem der beiden Eingänge des dritten Multiplexers (19) verbunden ist.
6. Reed-Solomon-Decoder nach Anspruch 1, gekennzeichnet durch
einen durch ein sechstes Schaltsignal (Rinsel[1 . . 0]) gesteuerten fünften Multiplexer (31) mit vier Eingängen und einem Ausgang, bei welchem einem Eingang ein erstes bestimmtes Datenwort (Ri+1) des am Ausgang des zweiten Registerstapels (29) abnehmbaren Fehlerwertpolynoms Rs(X) zugeführt ist, bei welchem einem zweiten Eingang ein bestimmtes Datenwort (L[i]) der Auslöschungsorte) zugeführt ist, bei welchem einem dritten Eingang ein bestimmtes an dem Ausgang des ersten Registerstapels (25) liegendes Datenwort (RO[i]) zugeführt ist und bei welchem einem vierten Eingang ein zweites bestimmtes Datenwort (R[i]) des zweiten Registerstapels (29) abnehmbaren Fehlerwertpolynoms Rs(X) zugeführt ist, und eine dritte Einrichtung (30) zur UND-Verknüpfung von am Ausgang des fünften Multiplexers (31) abnehmbaren Daten mit einem dritten Steuersignal (EnRin[i]) und Weiterleitung der durch die UND-Verknüpfung gewonnenen Daten zu einem Eingang des zweiten Registerstapels (29).
7. Reed-Solomon-Decoder nach Anspruch 1, dadurch gekennzeichnet, daß die zweite Einrichtung (56) zur Addition ein zweites achtfaches EXOR-Gatter (56) mit jeweils zwei Eingängen (56) ist, bei welchem ein Eingang mit dem Ausgang des zweiten Galois-Feld-Multiplizierers (52) und ein anderer Eingang mit dem Ausgang des dritten Registerstapels (58) verbunden ist und bei welchem der Ausgang an einem Eingang des dritten Registerstapels (61) angeschlossen ist.
8. Reed-Solomon-Decoder nach Anspruch 1 und 7, gekennzeichnet durch eine vierte und fünfte Einrichtung (55, 57) zur UND-Verknüpfung von den den Eingängen den zweiten EXOR-Gatters (56) zugeführten Daten mit jeweils dem ersten und zweiten Steuersignal (EnIn[i], EnFb[i]), welche einem Eingang der vierten und fünften Einrichtung (55, 57) zur UND-Verknüpfung aufgeschaltet sind, um den Datenfluß im Sinn einer Unterbrechung zu steuern.
9. Reed-Solomon-Decoder nach Anspruch 7 und 8, dadurch gekennzeichnet, daß zwischen dem Ausgang der vierten Einrichtung (57) zur UND-Verknüpfung und dem einen Eingang des zweiten EXOR-Gatters (56) eine Einrichtung zur ODER- Verknüpfung (59) eingefügt ist, um in einer Stufe TO(0) des dritten Registerstapels (58) eine logische "1" in den Datenstrom einzufügen.
10. Reed-Solomon-Decoder nach Anspruch 7 bis 9, gekennzeichnet durch
einen sechsten Multiplexer (54) mit zwei Eingängen und einem Ausgang, über welchem gesteuert durch das zweite Schaltsignal (H_sel) entweder die am Ausgang des ersten Registers (27) abnehmbaren Koeffizienten des Zwischenwertpolynoms Qs-i (X) oder der Wert einer Konstanten (α°=1) zu dem einem Eingang des zweiten Galois- Feld-Multiplizierers (52) leitbar ist,
einen siebten Multiplexer (53) mit zwei Eingängen und einem Ausgang, über welchem gesteuert durch ein viertes Schaltsignal (T_sel) entweder die am Ausgang des dritten Registerstapels (58) abnehmbaren Daten (T0[i-1]) oder bestimmte Daten (T[i], T[i-1] T[i-8]) des Fehlerortpolynoms Ts(X) vom Ausgang des vierten Registerstapels (61) zu dem anderen Eingang des zweiten Galois-Feld Multiplizierers (52) leitbar sind, und
einen durch das fünfte Schaltsignal (d]3 . . 0]) gesteuerten achten Multiplexer (60) mit neun Eingängen und einem Ausgang, dessen Eingänge verschiedene, an Ausgängen des vierten Registerstapels (61) liegende Datenworte (T[i], T[i-1], . . . ,T[i-8]) des Fehlerortpolynoms Ts(x) zugeführt sind und an dessen Ausgang mit einem der beiden Eingänge des siebenten Multiplexers (53) verbunden ist.
11. Reed-Solomon-Decoder nach Anspruch 1, gekennzeichnet durch
einen durch ein siebentes Schaltsignal (Tinsel) gesteuerten neunten Multiplexer (63) mit zwei Eingängen und einem Ausgang, bei welchem einem ersten Eingang ein bestimmtes, an dem Ausgang des dritten Registerstapels (58) liegende Datenwort (TO[i]) zugeführt ist, und bei welchem einem zweiten Eingang ein bestimmtes, an dem Ausgang des vierten Registerstapels (61) liegendes Datenwort (T[i]) zugeführt ist, und
eine sechste Einrichtung (62) zur UND-Verknüpfung von am Ausgang des neunten Multiplexers (63) abnehmbaren Daten mit einem vierten Steuersignal (EnT) und zur Weiterleitung der UND-verknüpften Daten zu einem Eingang des vierten Registerstapels (61).
12. Reed-Solomon-Decoder nach Anspruch 1, gekennzeichnet durch eine Steuereinrichtung (11) zur Ableitung der Schalt- und Steuersignale in Abhängigkeit des Grades einer Division, die aus dem Divisor Rs-2(X) und dem Divident Rs-1(X) des Zwischenwertpolynoms Qs-1(X) gebildet ist.
13. Reed-Solomon-Decoder nach Anspruch 1 und 12, dadurch gekennzeichnet, daß die Einrichtung (33 bis 40) zur Division einen ersten Multiplizierer (35) aufweist, dessen einem Eingang über einen Galois-Feld-Inverter (34) Auslöschorte (L(X)) und dessen anderen Eingang ein Wert über die Codewortlänge (CWlen) des zu decodierenden Datensignals zugeführt sind und an dessen Ausgang als Quotient das Zwischenwert-polynom Qs-i(X) abnehmbar ist.
14. Reed-Solomon-Decoder nach Anspruch 1, dadurch gekennzeichnet, daß zur Erzeugung des fünften Schaltsignals (d[3 . . 0]) vorgesehen sind:
ein zweites Register (12) zur Speicherung von Daten über den Grad des in dem ersten Registerstapel (25) gespeicherten Fehlerwertpolynoms Rs-2(X),
ein Subtrahierer (49, 52), welchem alternativ ein Wert (P) über die Anzahl von verwendeten Parities in Datenworten des zu decodierenden Datensignals oder Daten über den Grad des in dem ersten Registerstapel (25) gespeicherten Fehlerwertpolynoms Rs-2(X) sowie Daten an einem Ausgang des zweiten Registers (12) zugeführt sind, und
einem dritten Register (47) zur Speicherung des von dem Subtrahierer (49, 52) abgegebenen Schaltsignals (d[3 . . 0]).
DE19934316813 1993-05-19 1993-05-19 Reed-Solomon-Decoder Withdrawn DE4316813A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE19934316813 DE4316813A1 (de) 1993-05-19 1993-05-19 Reed-Solomon-Decoder

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE19934316813 DE4316813A1 (de) 1993-05-19 1993-05-19 Reed-Solomon-Decoder

Publications (1)

Publication Number Publication Date
DE4316813A1 true DE4316813A1 (de) 1994-11-24

Family

ID=6488506

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19934316813 Withdrawn DE4316813A1 (de) 1993-05-19 1993-05-19 Reed-Solomon-Decoder

Country Status (1)

Country Link
DE (1) DE4316813A1 (de)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6131178A (en) * 1997-04-15 2000-10-10 Mitsubishi Denki Kabushiki Kaisha Error correcting decoding apparatus of extended Reed-Solomon code, and error correcting apparatus of singly or doubly extended Reed-Solomon codes
WO2002043250A2 (fr) * 2000-11-27 2002-05-30 Nortel Networks France Procede de decodage d'un bloc de symboles et dispositif mettant en oeuvre un tel procede
EP1388947A1 (de) * 2002-08-05 2004-02-11 Alcatel System mit Verschachteler und Entschachteler

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6131178A (en) * 1997-04-15 2000-10-10 Mitsubishi Denki Kabushiki Kaisha Error correcting decoding apparatus of extended Reed-Solomon code, and error correcting apparatus of singly or doubly extended Reed-Solomon codes
DE19816347C2 (de) * 1997-04-15 2001-01-25 Mitsubishi Electric Corp Fehlerkorrekturvorrichtung für einen erweiterten Reed-Solomon-Code, einen einfach erweiterten Reed-Solomon-Code und einen doppelt erweiterten Reed-Solomon-Code
WO2002043250A2 (fr) * 2000-11-27 2002-05-30 Nortel Networks France Procede de decodage d'un bloc de symboles et dispositif mettant en oeuvre un tel procede
FR2817418A1 (fr) * 2000-11-27 2002-05-31 Matra Nortel Communications Procede de decodage d'un bloc de symboles et dispositif mettant en oeuvre un tel procede
WO2002043250A3 (fr) * 2000-11-27 2002-07-25 Matra Nortel Communications Procede de decodage d'un bloc de symboles et dispositif mettant en oeuvre un tel procede
EP1388947A1 (de) * 2002-08-05 2004-02-11 Alcatel System mit Verschachteler und Entschachteler
US7139958B2 (en) 2002-08-05 2006-11-21 Alcatel System with interleaver and de-interleaver

Similar Documents

Publication Publication Date Title
DE69424877T2 (de) Reed-solomon-dekoder
DE69414631T2 (de) Schaltung zur Durchführung des Euclidschen Algorithmus bei der Dekodierung Arithmetischer Kodes
EP0545498B1 (de) Verfahren und Schaltungsanordnung zum Decodieren von RS-codierten Datensignalen
DE3852474T2 (de) Nachschlagetabellen verwendende Fehlerkorrektur.
EP0426657B1 (de) Verfahren und Vorrichtung zur Dekodierung eines Fehler-Korrektur-Code
DE69834542T2 (de) Hardwareoptimierter reed-solomon-decoder zur decodierung grosser datenblöcke
DE69320321T2 (de) Verfahren und Gerät zum Nachprüfen von CRC-Koden, wobei CRC Teilkode kombiniert werden
JP4643957B2 (ja) メッセージのcrcを計算するための方法
DE4105860C2 (de) Schaltungsanordnung zum Erkennen und Korrigieren von Fehlern in Datenworten
DE69019777T2 (de) Datenstrom-Rahmensynchronisation.
DE69905987T2 (de) Verfahren und Gerät zur Kodierung und Signalübertragung unter Verwendung eines Sub-Codes von einem Produktcodes
DE60124851T2 (de) Vorrichtung und Verfahren zur Fehlererkennung in einem CRC Code mit invertierten Paritätsbits
KR20120062019A (ko) 통신 시스템에서 에러 검출 방법 및 장치
DE10133595A1 (de) Pufferschaltung, Speicherzugriffsverfahren, Speicherbauelement und Reed-Solomon-Decoder
DE3404417A1 (de) Codierer-pruefschaltungsanordnung
DE10105626B4 (de) Verfahren und System zur Berechnung von zyklischem Blockprüfungscode und Verfahren zum Erkennen eines Fehlers
DE60309857T2 (de) Methode zur dekodierung von reed-solomon kodes mittels feinentscheidung
DE69430519T2 (de) Verfahren und Gerät für einen Dekoder mit reduzierter Iteration
WO2004021630A1 (de) Parallelverarbeitung der decodierung und der zyklischen redundanzüberprüfung beim empfang von mobilfunksignalen
US5822337A (en) Programmable redundancy/syndrome generator
DE60311764T2 (de) Verfahren und Vorrichtung zur Dekodierung von Reed-Solomon Kodes
DE69837784T2 (de) Verbessertes fünf-fehler-korrektursystem
DE69130717T2 (de) Maximalwahrscheinlichkeitssequenzdetektor
DE4316813A1 (de) Reed-Solomon-Decoder
DE3856035T2 (de) Schaltung mit grosser bandbreite und verfahren zur reed-solomon-kodierung, dekodierung und fehlerkorrektur

Legal Events

Date Code Title Description
8139 Disposal/non-payment of the annual fee