Größe eines Fifos zur Laufzeit ändern

Gast #895073
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
Gast #895075
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
Gast #895370
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
Gast #896557
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.
Gast #896945
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?
Gast #897099
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.
#901259
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

Eine eigene Frage? Dieser Thread ist über 18 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.