www.mikrocontroller.net

Forum: FPGA, VHDL & Co. Größe eines Fifos zur Laufzeit ändern


Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Ich bekomme Daten über die MII Schnittstelle. Diese möchte ich, z.B. mit 
einem FIFO verzögern. Das Funktioniert eigentlich auch, mein Problem ist 
nur, dass ich die Zeit, wie Lange verzögert wird, einstellen möchte. Das 
heist, die Größe das FIFO muss ich zur Laufzeit über irgendeine 
Steuerleitung ändern können. Gibt es soetwas ??

Gruß,
Sebastian

Autor: Ulrich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
für sowas nimmt man ein schieberegister. Oder wenn es ein fifo sein muss 
dann nimmt man nur ein element aus dem fifo wenn es eine bestimmt größe 
hat

Autor: Roger Steiner (edge)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das hatten wir schon mal:

Beitrag "Frame mit Fifo verzögern"

Cheers, Roger

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für denk Link.
Also ich hatte eigentlich gedacht, dass ich einen Fifo nehme, der Zwei 
Takte hat. Einen für einlaufende und einen für rauslaufende Daten. Wenn 
ich dann den Takt für rauslaufende Daten abschalte, habe ich ja so eine 
art verzögerung. Das Problem ist dann nur, das ja auch immer Daten vorne 
reinlaufen. Die Verzögerung wäre dann ja nicht veränderbar. Ich brauche 
Quasi einen Fifo, der sich fast beliebig vergrößert, wenn Daten 
einlaufen und keine rausgenommen werden. Wenn man dann wieder Daten 
rausnimmt und nichts reinkommt, muss der Fifo wieder schrumpfen.

Mh, gut beschrieben ?  :-)

Gruß,
Sebastian

Autor: Roger Steiner (edge)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du kannst das loesen wie du moechtest, scheint mir jedoch nicht der 
einfachste Weg zu sein.

Cheers, Roger

Autor: Chef (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du kannst das FIFO verkürzen, indem Du zusätzliche Takte beim 
einschieben benutzt. Du musst Dir aber überlegen, was mit den 
übersprungenen Daten passieren soll, denn eine FIFO-Verkürzung zur 
Laufzeit heisst immer Daten weg. Ansonsten macht die Geschichte keinen 
Sinn.

Beim FIFO ist es ja so, daß es auf das Einschreiben und das Auslesen 
ankommt, was die Lazenz angeht und eine Verkürzung alleine für die Daten 
garnichts bringt, es sei denn, es gäbe einen unverhinderten Überlauf 
oder Du müchtest die FIFO-Größe nutzen, um das Einschreiben i.A. des 
Ausleszustandes umgekehrt zu steuern. Beides kann man aber auch über die 
pointer-Signale machen und das Einschreiben oder VErwerfen manuel 
erreichen.

Ich fürchte, daß Du Dir aber nicht ganz klar biat, was Du willst und 
einfach den falschen Denkansatz hast.

Autor: Hans (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
mh, vielleicht schein das mit einem Fifo doch keine so gute idee. Wenn 
ich das so wie in dem anderen Beitrag beschrieben mit einem Speicher 
mache, dann brauche ich einen Speicher, der verschiedene eingangs und 
ausgangsclocks hat. Außerdem muss ich auch noch bestimmen können wohin 
ich schreibe und woher gelesen wird.

Wo finde ich soein baustein?

Autor: Roger Steiner (edge)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wozu brauchst du verschiedene clocks?
Es laesst sich elegant mit einem loesen.

Autor: Helgo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Im FPGA gibt es doch RAMs, die mit unterschiedlichen Clocks arbeiten 
können. Wenn nicht, einfaches PLD und eine asynchronen RAM-Zugriff 
bauen. Bis 2 Ports, je Seite geht es recht einfach.

Autor: Martin Kohler (mkohler)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Helgo wrote:
> Im FPGA gibt es doch RAMs, die mit unterschiedlichen Clocks arbeiten
> können.
Genau. Nimm ein DPRAM mit ein bisschen Steuerlogik drum herum und gut 
ist.

Über die Grösse des Adressbereichs kannst du dann auch die FIFO-Länge 
einstellen.

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.