8Bit/10Bit Encoding Decoding

#962443
Lesenswert?

Hallo zusammen,

bin grad dabei in die Materie der Codierug bzw. Decodierung von Daten 
nach dem 8Bit/10Bit Verfahren einzusteigen.

Hierfür möchte ich FPGA's oder CPLD's von Xilinx verwenden.
Kann mir jemand sagen mit welchen Bausteinen und wie sich die Codierund 
/ Decodierung abbilden lässt? Und wie viele Ressourcen hierfür benötigt 
werden?

MFG
#962964
Lesenswert?

Danke für euere Antwort.

Ich werde jetzt versuchen ein Programming File mit Encoder und Decoder 
für den Spartan3 (50er) zu erzeugen.

Trotzdem bleibt die Frage: Wieso taucht die Encoding/Decoding Funktion 
bei Spartan3A nicht auf? Was ist der Grund hierfür?

Ich werde euch berichten ob es geklappt hat!


gruss
Stanko
Gast #962977
Lesenswert?

> Trotzdem bleibt die Frage: Wieso taucht die Encoding/Decoding Funktion
> bei Spartan3A nicht auf? Was ist der Grund hierfür?

weil die Jungs bei Xilinx, die für den CoreGen verantwortlich sind, mal 
wieder zu langsam sind...

Di A-Typen haben andere (bessere) BlockRams - Generierung
für 3E und mappen auf 3A sollte aber möglich sein...

Gruß
Jochen

P.S.
   CoreGen is eh' nen Sch... !!!
   Output von version N (z.b. ISE8.1) wird in N+1 (ISE9.1) unterstützt
   und ist in N+2 (ISE10.1) völlig unbekannt und muß neu generiert 
werden
   Wenn die Funktion nicht allzu schwierig ist (wie 8b/10b), dann
   mach's lieber selbst (hier: INIT-Werte for das BRAM bestimmen)
    - dauert anfangs länger
    - man muß 'denken'
    + man 'lernt was'
    + ist portabel (von ISE zu ISE  Spartan2 nach Spartan3 
       Xilinx nach Altera, Lattice, SiliconBlue etc.)
#962995
Lesenswert?

>Wenn die Funktion nicht allzu schwierig ist (wie 8b/10b), dann
>mach's lieber selbst (hier: INIT-Werte for das BRAM bestimmen)

Sehr gerne, aber wie?
Hab mir den Aufbau der 8Bit/10Bit Codierung angeschaut, aber ohne 
Weiteres steig ich da nicht durch.

Hast ein Beispiel-Code hierzu?
Gast #963060
Lesenswert?

> Hast ein Beispiel-Code hierzu?
nö - aber im Wesentlichen läuft es darauf hinaus, daß Du
das BlockRam als ROM verwendest:
Beispiel Encoder:
  Die 10 Adressleitungen ( D_IN + K_IN + DISP_IN)
     fürs 18 Bit breite ROM (16 Daten + 2 Patity)
  Zeigen den vorbestimmten Wert für D_OUT (10 Bit) + DISP_OUT (1 Bit)

  7 Bit werden weggeschmissen (-> hi 'Lothar Miller' :-))

  DISP_Out vom aktuellen Wert wird DISP_IN vom nächsten...

  Der Inhalt des ROMs ist Fleißarbeit (Excel ??)

Viel Erfolg
Jochen
Gast #964473
Lesenswert?

Hi,

habe 8b/10b Module von Xilinx vor einiger Zeit simuliert und 
festgestellt,
dass selbst die eigens mitgelieferte Testbench Fehler in den Modulen
detektiert. Aber kannst du ja gerne mal nachvollziehen, lad dir die 
HDL-Codes herunter und simuliere das mal.
Eine Nachfrage bei Xiilnx ergab, dass die entsprechende 
Core-verantwortliche Person nicht mehr verfügbar sei.

Gruß,
SuperWilly
#965519
Lesenswert?

Hallo,

simuliern lässt sich der Core Generator für die 8B/10B Codierung, aber 
beim erzeugen vom Prog-File kommt die Fehlermeldung " ERROR:NgdBuild:604 
- logical block 'XLXI_3' with type 'Encoder_v1' could not be found."

Ist dass Problem damit zu erklären, dass ich mit ISE 9.1 arbeite und der 
8B/10B Encoder im Core-Generator die Versions-Nr.: 5.0 trägt?

Eigentlich dürfe die Abwärtskompabilität kein Problem darstellen.
Wie kann mann dieses Problem beheben?
Gast #966582
Lesenswert?

@Stanko

>Ist dass Problem damit zu erklären, dass ich mit ISE 9.1 arbeite
>und der 8B/10B Encoder im Core-Generator die Versions-Nr.: 5.0 trägt?

nö - der actuelle Encoder (bei ISE10.1) trägt immer noch die Version 5.0

Ich vermute daher - ohne daß ich mich damit näher befaßt hätte - daß
ngdbuild die vom CorGen erzeugte Netzlist nicht findet.
Sieh 'mal im .bld-file nach, ob die ngdbuild mit der Option -sd
aufgerufen wird, und wenn ja: ob direkt hinter -sd auch der Pfad zu
der/den Netzliste(n) von CoreGen steht


Gruß
Jochen
#966644
Lesenswert?

Also ich habe die .bld Datei aufgemacht und sehe Folgendes:

C:\Xilinx91i\bin\nt\ngdbuild.exe -ise
C:/Alles_zum_8Bit_10Bit_code/Encoder/Encoder.ise -intstyle ise
-dd _ngo -nt timestamp -uc Schematic_of_Encoder.ucf -p xc3s1000-fg320-4
Schematic_of_Encoder.ngc Schematic_of_Encoder.ngd Reading NGO file


Die Option -nd zum Aufrufen der ngdbuild taucht nicht auf.
Gast #966737
Lesenswert?

Was "steht" bei
"Implement Design - Translate - Properties"
  unter
"Macro Search Path" ?

Hoffentlich der Pfad zu "Encoder_v1.edn"

Wenn nicht, muß "Encoder_v1.edn" in Deinem aktuellen
Arbeitsverzeichnis stehen
#967190
Lesenswert?

@ Joko

Es hat geklappt :) endlich, Danke!
Also für diesen Lösungsweg hätte ich ohne deine Hilfe ein paar Minuten 
länger gebraucht ;-)

@ Alle

Die Ursache für die Fehlermeldung war folgende:

Ich habe unter Accessories den CORE Generator gewählt und einen 
8B/10B-Core in das Verzeichnis X abgespeichert.
Danach habe ich ISE gestartet, ein neuse Projekt unter dem Verzeichnis Y 
angelegt und den erzeugten 8B/10B-Core aus dem Verzeichnis X als 
VDL-File-Kopie ins Projekt eingefügt.

Beim generieren des Codes kamm immer die Fehlermeldung 604 auf.

Und wie Joko schon richtig sagte, wies der Pfad unter (Implement Design 
- Translate - Properties) "Macro Search Path" auf das Verzeichnis Y.

Nun habe ich den Pfad auf das Verzeichnis X umgelenkt und es Funkt!
Kaum macht mann es richtig, schon funktoniert's!

Gruß
Stanko

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren