Hallo zusammen, ich habe ein Verständnisproblem bzgl. eines asynchronen/synchronen Designs in VHDL. Die Schaltung besteht aus einer Komponente, die ein Takt-Eingangssignal und einen Dateneingang besitzt. Die Daten sollen aus der Komponente mit einem langsameren Takt seriell hinaus getaktet werden. Jetzt habe ich mir überlegt, dass man die Daten vorher in einer FiFo zwischenspeichern sollte. Der serielle Takt wird durch einen Taktteiler aus dem höher frequenten Eingangstakt erzeugt. Ist das Design damit synchron oder asynchron? Mit welchem Takt muss nun die FiFo bestrieben werden? Beste Grüße Lukas
@ Lukas (Gast) >Takt-Eingangssignal und einen Dateneingang besitzt. Die Daten sollen aus >der Komponente mit einem langsameren Takt seriell hinaus getaktet >werden. Jetzt habe ich mir überlegt, dass man die Daten vorher in einer >FiFo zwischenspeichern sollte. Muss man wohl. > Der serielle Takt wird durch einen >Taktteiler aus dem höher frequenten Eingangstakt erzeugt. Also ein abgeleiteter Takt. > Ist das Design >damit synchron oder asynchron? Wenn man es richtig macht ist es synchron. Wenn nicht, asynchron. > Mit welchem Takt muss nun die FiFo > bestrieben werden? Mit dem schnellen Takt. Siehe Taktung FPGA/CPLD MFG Falk
Lukas schrieb: > Der serielle Takt wird durch einen Taktteiler aus dem höher frequenten > Eingangstakt erzeugt. Ist das Design damit synchron oder asynchron? Vermutlich bezeichnest du hier etwas als "Takt", was gar keiner ist. Du könntest einfach mal "Butter bei die Fische machen" und Zahlen und Fakten nennen: Woher kommt das Signal? Wie hoch ist der Eingangstakt? Wie und mit was wird das Signal verarbeitet? (CPLD, FPGA) Wohin geht das Signal danach mit welcher Geschwindigkeit? > Mit welchem Takt muss nun die FiFo bestrieben werden? Es ist DER Fifo-Speicher...
Lukas schrieb: > ich habe ein Verständnisproblem bzgl. eines asynchronen/synchronen > Designs in VHDL. Die Schaltung besteht aus einer Komponente, die ein > Takt-Eingangssignal und einen Dateneingang besitzt. Wo kommen die Daten her? Werden die mit dem Takt erzeugt? Dann sind sie synchron. Werden die ohne Takt oder mit einem anderen Takt erzeugt, sind sie asynchron. Die Aussage bezieht sich erstmal auf den Dateneingang Deiner Komponente. > Die Daten sollen aus > der Komponente mit einem langsameren Takt seriell hinaus getaktet > werden. Also so eine Art Parallel-Seriell-Wandler realisiert mit einem Schieberegister. > Jetzt habe ich mir überlegt, dass man die Daten vorher in einer > FiFo zwischenspeichern sollte. Warum? Wie schnell werden denn die Daten ausgegeben (Bit/s), wie schnell kommen sie in Deine Komponente hinein? Ein FIFO bringt nur etwas, wenn die Daten blockweise kommen. Wenn die durchschnittliche Eingangsdatenrate höher ist als die Ausgangsdatenrate kommt es irgendwann zum Datenverlust. > Der serielle Takt wird durch einen > Taktteiler aus dem höher frequenten Eingangstakt erzeugt. Ist das Design > damit synchron oder asynchron? Der Ausgang des Moduls ist synchron zum Takt. > Mit welchem Takt muss nun die FiFo > bestrieben werden? Überleg Dir das mit dem FIFO nochmal. Welche Aufgabe soll der FIFO wo erfüllen? Duke
Lothar, danke schonmal für die hilfreichen Antworten! :) Das ganze System läuft auf einem FPGA (Spartan 3E). Der Takt am Eingang kommt von einem externen Oszillator (25MHz). Das serielle Clock Signal soll 1/10 des Systemtaktes entsprechen, sprich 2,5 MHz. > Es ist DER Fifo-Speicher... Damit habe ich mich wohl die letzten Jahre lächerlich gemacht :-)
Duke, die Daten werden - soweit ich mir das vorstelle - mit dem Systemtakt erzeugt, sind also synchron zu meiner Komponente. Es handelt sich hierbei um Audio-Daten. Da ich bisher nur den I2S Controller baue, weiß ich momentan noch gar nicht, wie das ganze Design aussieht. Ich dachte mir, es wäre sinnvoll einen FIFO-Speicher einzubauen, für den Fall, dass der Datenstrom zwischenzeitlich kurz abreißt.
Lukas schrieb: > Da ich bisher nur den I2S Controller baue Jetzt kommt Licht ins Dunkel. Du hast also nur 1 richtigen Takt und ein simples Ausgangssignal, das den Namen Takt (Serial Clock) hat. Ein richtiger Takt ist das aber nicht. Es wird einfach wie jedes andere Ausgangssignal mit einem Zähler aus den 25 MHz erzeugt und ausgegeben. Es wird und darf aber nie als Takt in deiner VHDL-Beschreibung auftauchen. Und letztlich ist dein Fifo-Speicher natürlich synchron zu den 25MHz. >> Es ist DER Fifo-Speicher... > Damit habe ich mich wohl die letzten Jahre lächerlich gemacht :-) Man lernt nie aus... ;-)
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.