Forum: FPGA, VHDL & Co. Signal wird nicht verzögert


von BK (Gast)


Lesenswert?

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

von Jan M. (mueschel)


Lesenswert?

Daran, dass du den Eingang direkt dem Ausgang zuweist? After-Statements 
sind nicht synthetisierbar.

von BK (Gast)


Lesenswert?

Hallo,
was muss ich dann ändern im Code?

Danke.

von Gast (Gast)


Lesenswert?

@ BK

Du musst vielleicht mit Signalen arbeiten !?

von BK (Gast)


Lesenswert?

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

von thomas (Gast)


Lesenswert?

Du musst einen getakteten Prozess erstellen und einen Counter laufen 
lassen um die 6 ms Verzögerung zu realisieren.

von BK (Gast)


Lesenswert?

hallo Thomas,
und wie realisiere ich die 6ms. Die Verzögerungszeit ist ja nicht immer 
gleich. Sie wird berechnet. Wie funktioniert das?

Danke.

von Falk B. (falk)


Lesenswert?

@ 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

von BK (Gast)


Lesenswert?

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

von Falk B. (falk)


Lesenswert?

@ 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
Noch kein Account? Hier anmelden.