Hallo zusammen, ich hab ein kleines Problem. Ich möchte ein Signal verzögert darstellen. Über mein Frequenzgenerator hole ich mir einen Takt. Diesen möchte ich mit Hilfe von VHDL(FPGA: Cyclone II, ALTERA) im 6ms verzögern. Hier mal kurz mein Code: LIBRARY ieee; LIBRARY STD; USE ieee.std_logic_1164.ALL; USE ieee.numeric_std.ALL; USE STD.STANDARD.ALL; ENTITY Test is port( Eingang : IN STD_LOGIC; Ausgang : OUT STD_LOGIC ); end Test; ARCHITECTURE Test_beh OF Test IS begin Ausgang <= Eingang AFTER 6ms; end Test_beh; Das Signal am Port Ausgang überprüfe ich am Oszi. Aber das Signal ist nicht verzögert. Woran könnte das liegen? Besten Dank. Gruß BK
Daran, dass du den Eingang direkt dem Ausgang zuweist? After-Statements sind nicht synthetisierbar.
Hallo, diese Idee hatte ich auch schon. Hab ich mal ausprobiert und es funktioniert immer noch nicht. Wie verzögere ich denn ein Signal? Gruß BK
Du musst einen getakteten Prozess erstellen und einen Counter laufen lassen um die 6 ms Verzögerung zu realisieren.
hallo Thomas, und wie realisiere ich die 6ms. Die Verzögerungszeit ist ja nicht immer gleich. Sie wird berechnet. Wie funktioniert das? Danke.
@ BK (Gast) >ich hab ein kleines Problem. Ich möchte ein Signal verzögert darstellen. Was meinst du mit darstellen? Auf einem Oszi? >Über mein Frequenzgenerator hole ich mir einen Takt. Diesen möchte ich >mit Hilfe von VHDL(FPGA: Cyclone II, ALTERA) im 6ms verzögern. "um 6ms" Wozu? Wie hoch ist die Frequenz? >Das Signal am Port Ausgang überprüfe ich am Oszi. Aber das Signal ist >nicht verzögert. Woran könnte das liegen? An deinem falschen Verständnis von VHDL und Digitaltechnik. Das "after" Statement ist nicht synhetisierbar, es wird nur für Simulationen verwendet. Eine Verzögerung von Signalen geht im Wesentlichen nur über Abtastung, Speicherung (Schieberegister) und Ausgabe. Mit Takten sollte man sowas aber besser nicht machen. Was soll denn das Ganze werden? MFG Falk
Hallo Falk, >> An deinem falschen Verständnis von VHDL und Digitaltechnik. Das glaube ich wohl kaum. Ich programmiere viel in VHDL aber dies habe ich noch nie gebraucht. >> Was soll denn das Ganze werden? Ich habe ein PWM Modul programmiert. Jetzt möchte ich eine 3phasige PWM und sie sollen jeweils um 120° gegeneinander verschoben sein. Verstehst du? Gruß BK
@ BK (Gast) >>> An deinem falschen Verständnis von VHDL und Digitaltechnik. >Das glaube ich wohl kaum. Ich programmiere viel in VHDL aber dies habe >ich noch nie gebraucht. Es gibt Leute die viel Auto fahren und die doch schlechte Autofahrer sind. >Ich habe ein PWM Modul programmiert. Jetzt möchte ich eine 3phasige PWM >und sie sollen jeweils um 120° gegeneinander verschoben sein. Verstehst >du? Ja. Sowas wie Kollege Tuan aus dem Thread? Beitrag "Logische Schaltung mit verzögertem Ausgang" Und du behautest allen Ernstes, fit in Digitaltechnik und VHDL zu sein? Der Herr belieben zu scherzen. Aber zurück zum Problem. Das Ganze läuft, wie bereits gesagt, über Zähler oder Schieberegister, welche die Signale über eine bestimmte Anzahl von Takten verzögern. Wenn du beispielsweise 1 MHz Systemtakt hast und 6 ms Verzögerung haben willst, dann sind das nach Adam Riese 6000 Takte. Sinnvollerweise macht man das über einen Zähler/State Machine, welcher zur rechten Zeit die Signale schaltet, den ein Schieberegister mit 6000 Bit ist ein wenig gross. MFG Falk
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.