www.mikrocontroller.net

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


Autor: Alex Bosch (Firma: Hochschule) (reset)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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.

Autor: Harald Flügel (hfl)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.