Forum: FPGA, VHDL & Co. Taktsynchroner Umschalter mit Verilog. PRP-Protokol.


von Alex B. (Firma: Hochschule) (reset)


Angehängte Dateien:

Lesenswert?

Hallo.

PRP-Protokol.

Ich habe folgendes Problem. Mit meinem FPGA empfange ich zwei identische 
Frames mit PHY1 und PHY2. Diese werden entcodiert und an FPGA durch MII 
weitergeschickt. Im Fpga befindet sich  ein IP-Core (siehe Bild.), der 
aus zwei rx-Modulen, einem switch, einem FIFO und einem tx-Modul 
besteht. Die rx-Module empfangen die beiden identischen Frames und 
stellen diese dem switch-Modul zu Verfügung. Der switch- Modul erkennt, 
welcher der beiden Frames als erster angetroffen ist und leitet diesen 
in Richtung FIFO weiter. Falls es zu einer Unterbrechung der 
Datenempfang kommt(zB. durch Unterbrechung der Leitung am phy1), 
schaltet der switch-Modul taktsynchron auf rx2-Modul und leitet die 
Daten, die am PHY2 antreffen(die durch zweite Leitung beim FPGA-Board 
ankommen) zum FIFO weiter. Ich würde das "Taktsynchrone Umschaltung" 
nennen.

Weiß jemand, wie so ein Umschalter in Verilog oder zumindest als 
digitale Schaltung zu Realisieren ist? (mit D-Flip Flops, Mux, FSM usw.)

Oder gibt es einen guten Link mit digitalen Schaltungen für Probleme 
jeglicher Art? Dann könnte ich diesen switch-Modul einfach mit Verilog 
beschreiben.

Danke schon mal im Voraus.

von Harald F. (hfl)


Lesenswert?

Hallo Alex,

die Aufgabenstellung wird aus der Beschreibung nicht ganz klar. Der 
Switch an sich is zwar eher trivial, aber es gibt ein paar 
Randbedingungen, die zu überlegen sind.

Relevant für die Erkennung, ob Daten von PHY1 oder PHY2 vorliegen, sind 
vermutlich die Signale fifo_we von den beiden RX-FSMs. Da stellt sich 
gleich die Frage was geschehen soll, wenn beide FSMs gleichzeitig 
fifo_we aktivieren. Und falls nicht, und falls daher der Switch die 
Daten eines PHYs weitergibt, wann soll er dann wieder zurück in den 
Überwachungszustand gehen? Gleich, wenn fifo_we von dem aktuellen Kanal 
nicht mehr aktiv ist? Dann besteht die Gefahr, dass man mitten in einem 
Frame des zweiten PHYs landet und somit einen halben Frame weitergibt. 
Es sei denn, die FSMs haben selbst ein FIFO welches man mit fifo_full 
daran hindern kann, Daten auszugeben.

Du sieht, Fragen über Fragen. Klär erst mal die Aufgabenstellung, alles 
andere sind dann Peanuts. Das wird ja nur eine FSM mit vier, maximal 
fünf Zuständen.

Grüße,
Harald

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
Noch kein Account? Hier anmelden.