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
Die Bausteine sollte nichts anbieten, was hierfür spezifisch ist, damit sind alle gleich geeignet.
Schaust du bei OpenCores: http://www.opencores.org/projects.cgi/web/8b10b_encdec/overview da gibts das.
http://www.xilinx.com/support/documentation/ip_documentation/encode_8b10b.pdf http://www.xilinx.com/support/documentation/ip_documentation/decode_8b10b.pdf oder anders: im kleisten Spartan3 (50er) ist Platz für 4 Encoder + 4 Decoder + jede Menge zusätzlicher unbenutzter Logik Gruß Jochen
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
> 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.)
>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?
> 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
XAPP366 (v1.0) November 7, 2001 : Handheld Musical Instrument Tuner ??? xapp336: Design of a 16b/20b Encoder/Decoder Using a CoolRunner XPLA3 CPLD http://www.xilinx.com/support/documentation/application_notes/xapp336.pdf
AppNote 336 gefällt mir besser :-) Werde mich am WE hiermit beschäftigen!
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
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?
> XAPP366 (v1.0) November 7, 2001 : Handheld Musical Instrument Tuner
???
Sorry, wie konnte das nur passieren? Dabei kann ich gar kein Instrument
außer der Trillerpfeife spielen. :-(
Zum Opencores 8b10b-Encoder/Decoder-Projekt: Es gibt keine Codierungsüberprüfung im Decoder, also brotlose Kunst ... Gruß, SuperWilly
@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
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.
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
@ 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
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.