Forum: FPGA, VHDL & Co. OUTPUT <= INPUT after 2500 ns


von Mattias (Gast)


Lesenswert?

Hallo Gemeinde,
hab mal eine Frage zu einer Verzögerung.
Ich möchte gerne ein Signal um 2,5 µs versögern. Nun gibt es ja den
Befehl bla bla after xxx ns.
Ist eine Verzögerung um so einen Wert überhaupt machbar und wie bekommt
man raus, wie genau das ist.
Ich verwende einen Xilinx XC9536 - 15 und die ISE Umgebung.

Danke schon im voraus.
Mattias

von Xenu (Gast)


Lesenswert?

"after"-Anweisungen werden von Synthesizern nicht unterstützt.

Definierte Verzögerungen kannst Du nur durch ein getaktetes Design
erreichen. Verzögern kannst Du dann um ein Vielfaches Deiner
Taktperiode. Wenn Du Dein CPLD z.B. mit 10 MHz taktest, ergibt sich
eine Wartezeit von 25 Taktzyklen.

von Mattias (Gast)


Lesenswert?

Hallo Xenu,
was meinst Du mit, "wird nicht unterstützt" ?
Ich kann doch in meinem VHDL schreiben:

entity main is
    Port ( INPUT : in std_logic;
           OUTPUT: out std_logic);
end main;

architecture Behavioral of main is
begin
     OUTPUT <= INPUT after 2500 ns;
end Behavioral;


Die Frage ist aber, wie genau das geht und ob der große Wert zulässig
ist.

Mattias

von Xenu (Gast)


Lesenswert?

VHDL-Synthesizer ignorieren after-Anweisungen.

Für einen Synthesizer steht da nur:

OUTPUT <= INPUT;

von Thomas R. (Gast)


Lesenswert?

.....Die Frage ist aber, wie genau das geht und ob der große Wert
zulässig ist.....

Also beim Simulator wird das auf die ns genau umgesetzt. Doch diese
Anweisung ist rein für funktionale Beschreibungen gedacht, nich aber
für die Synthese auf die Hardware, dort musst du halt für x
Taktperioden warten, wenn du das benötigst.

von T.M. (Gast)


Lesenswert?

Laut VHDL-Standard ist der Typ time auf 1 fs genau. Also genauer, als
man es meist braucht. Es kommt am Ende natürlich auch drauf an, was im
Simulator als Resolution eingestellt ist. Das gilt dann auch für die
Simulation.

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.