Hallo eine CRC Berechnung(nach der Standardpolynomdivision) lässt sich ja in ein Schieberegister und XOR's an den entsprechenden Stellen nachstellen. Bin ich richtig in der Annahme(ich habs jetzt 3mal auf Papier durchgerechnet) das man die Zwischenwerte der Polynomdivision mit dieser Lösung NICHT rausbekommt(also z.B. den 2ten Berechnungsschritt)? mit Standardpolynomdivision meine ich den Weg, bei dem man ans Ende der Daten noch soviele 0en hängt wie der Grad des Generatorpolynoms siehe http://www.flechtmann.net/crc/index.php Danke für die Info
udir schrieb: > das man die Zwischenwerte der Polynomdivision mit dieser > Lösung NICHT rausbekommt Äh, was jetzt? Welche Zwischenwerte? Die Einzelüberträge? Willst Du sie herausbekommen (= entfernen) oder herausbekommen (= am Ende erhalten)? Was bezweckst Du mit dieser Frage?
Naja ich würde gerne die Zwischenwerte der Polynomdivision irgendwann im Register stehen haben. Z.B. Genpolynom : 1101 = x³ + x² + 1 Daten: 1010 Polynomdivision 1010 0000 : 1101 = 1101 1101 ---- 111 0 110 1 --- - 011 0 <- Diesen Wert würde ich gerne in meinem Register stehen haben .... ----- 001 <- Berechneter CRC Das Register ist ein ein normales Schieberegister mit XOR. In dem Register steht aber dieser Zwischenwert niemals drin(zumindest nicht eindeutig bestimmbar), wenn ich mich nicht täusche?!
udir schrieb: > In dem Register steht aber dieser Zwischenwert niemals drin(zumindest > nicht eindeutig bestimmbar) Sicher, wenn Du den Abbruch machst, nachdem im entsprechenden Schritt der Shift und das "herunterholen" schon durchgeführt wurde, der nächste XOR mit dem Generatorpolynom noch nicht. Eine Möglichkeit, Deinen CRC an der passenden Stelle abzubrechen mußt Du so oder so selbst implementieren - normalerweise interessieren die Zwischenergebnisse niemand, weswegen sie aus Effizienzgründen ständig überschrieben werden. Was ist der Zweck der ganzen Übung? Edit: Es dämmert.... Du willst Die Zwischenergebnisse aus einer Hardwareschaltung herausbekommen?
:
Bearbeitet durch User
udir schrieb: > Das Register ist ein ein normales Schieberegister mit XOR. > In dem Register steht aber dieser Zwischenwert niemals drin(zumindest > nicht eindeutig bestimmbar), wenn ich mich nicht täusche?! ??? Warum sollte das nicht so sein? Anders wäre doch das Endergebnis gar nicht zu berechnen. Wenn du dich für den Registerinhalt während eines Zwischenschrittes der Berechnung interessierst, musst du den Registerinhalt eben zum richtigen Zeitpunkt in ein 2. Register kopieren. Da bleibt der Wert dann bis zum Ende der Berechnung erhalten.
Walter T. schrieb: > udir schrieb: >> In dem Register steht aber dieser Zwischenwert niemals drin(zumindest >> nicht eindeutig bestimmbar) > > Sicher, wenn Du den Abbruch machst, nachdem im entsprechenden Schritt > der Shift und das "herunterholen" schon durchgeführt wurde, der nächste > XOR mit dem Generatorpolynom noch nicht. Eine Möglichkeit, Deinen CRC an > der passenden Stelle abzubrechen mußt Du so oder so selbst > implementieren - normalerweise interessieren die Zwischenergebnisse > niemand, weswegen sie aus Effizienzgründen ständig überschrieben werden. > > Was ist der Zweck der ganzen Übung? > > Edit: Es dämmert.... Du willst Die Zwischenergebnisse aus einer > Hardwareschaltung herausbekommen? Ja, ich dachte ich habs irgendwie verständlich erklärt...
Edit: Es dämmert.... Du willst Die Zwischenergebnisse aus einer Hardwareschaltung herausbekommen? Dein "Register" ist das Schieberegister, aus denen die Daten herausgetaktet werden? Da in der Hardwareschaltung ohnehin immer nur 1 Bit pro Schritt ist, mußt Du, um die bitseriellen Daten wieder parallel herzustellen, einen parallelen Zwischenspeicher hinzufügen. Und Deine Schaltung entspricht eben auch nicht der "komplett"-Division, sonderm dem Aufteilen Deiner Division in Einzelstellendivisionen.
Hmmm... genau da hackts. Ich komm einfach nicht drauf, wie ich das umsetzen kann...
udir schrieb: > Hmmm... genau da hackts. Ich komm einfach nicht drauf, wie ich das > umsetzen kann... Ich glaub es hackt... ...damit bleibt die ursprüngliche Frage: Walter T. schrieb: > Was ist der Zweck der ganzen Übung?
Walter T. schrieb: > udir schrieb: >> Hmmm... genau da hackts. Ich komm einfach nicht drauf, wie ich das >> umsetzen kann... > > Ich glaub es hackt... > > ...damit bleibt die ursprüngliche Frage: > > Walter T. schrieb: >> Was ist der Zweck der ganzen Übung? Ich hab ja nicht gefordert das mir bei der Umsetzung jemand hilft... Sinn der Übung: Ich will die Zwischenschritte der Polynomdivision haben. Ob und inwieweit das Sinn macht bleibt meine Sache
udir schrieb: > Ich komm einfach nicht drauf, wie ich das > umsetzen kann... In was denn? Auf dem Papier? In C? In Verilog/VHDL? In CMOS?
:
Bearbeitet durch User
Joe F. schrieb: > udir schrieb: >> Ich komm einfach nicht drauf, wie ich das >> umsetzen kann... > > In was denn? > Auf dem Papier? > In C? > In Verilog/VHDL? > In CMOS? Papier zuerst, aber es soll in VHDL umgesetzt werden(sprich auf Papier nach den Regeln, wie es effizient(d.h. mit Shiftregistern und XORs) umgesetzt werden kann)
Vielleicht liefert dieses Tool dir ja die passende Anregung: http://www.easics.com/webtools/crctool Kann fast beliebig konfiguriert werden, und liefert direkt Verilog oder VHDL Code.
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.