Forum: FPGA, VHDL & Co. Quartus ignoriert AFTER


von Werner (Gast)


Lesenswert?

Hallo.

Ich versuche mich sein wenigen Tagen mal in VHDL.

Wenn ich mit quartus 2 folgendes Progi schreibe, wird der Befehl AFTER

völlig ignoriert.!

Also der Ausgang springt sofort auf eins.


entity ak is
port ( Clock : in bit;
OutPort : out bit
);
end ak;

architecture RTL of ak is
begin -- RTL
OutPort <= '1' AFTER 20ns;
end RTL;


Wenn mir da jemand weiter helfen könnte wäre das ne feine Sache!

Danke!

MFG Werner

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Sowas
> OutPort <= '1' AFTER 20ns;
geht nur in einer Testbench. *NIEMALS auf FPGA-Hardware*
Dazu bräuchte man ja sowas wie eine einstellbare Verzögerungsleitung... 
:-(

Wenn du in einem FPGA 20ns Verzögerung willst, dann brauchst du ein 
Flipflop (getakterer Prozess) und einen 50MHz-Takt. Wenn du längere 
Verzögerungen haben willst, brauchst du einen Zähler.

Das allerwenigste, was mit VHDL beschrieben werden kann, kann auch 
tatsächlich in ein FPGA abgebildet werden. Das macht die Sache 
einerseits umständlich (weil du so ein AFTER nicht schreiben kannst), 
andererseits aber schön einfach (es gibt nur Kombinatorik und FFs). Kauf 
dir ein Buch z.B. Reichardt/Schwarz, VHDL-Synthese, dann wird dir 
einiges klar.

von Werner (Gast)


Lesenswert?

Achso also haben die ganzen zeitsachen keinen praktischen Zweck?!

Schade..

Danke trotzdem;)

von Sven P. (Gast)


Lesenswert?

Werner wrote:
> Achso also haben die ganzen zeitsachen keinen praktischen Zweck?!

Na aba sicha doch: zur Simulation.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> ...keinen praktischen Zweck?!
Nicht für die Synthese.

Und versuch jetzt nur nicht, aus Frust darüber z.B. eine for-Schleife zu 
programmieren (wie du sie z.B. von Basic oder C her kennen könntest). 
Das Ergebnis wird dich dann auch überraschen. ;-)

von Gast (Gast)


Lesenswert?

>geht nur in einer Testbench. NIEMALS auf FPGA-Hardware
>Dazu bräuchte man ja sowas wie eine einstellbare Verzögerungsleitung...

Nein, nur ein Synthesetool, welches den "After" , abhängig von clock und 
Prozesstrigger in eine FlipFlopKette übersetzt und entsprechend taktet 
sowie eine im Synthesisreport meldet, ob es geklappt hat. (Wegen 
Clock-Granularität etc.).

Da die Granularität ja im FPGa immer gegebn ist, muss es also eine 
Einstellung geben, bei der es hinhaut, weil das Signal ja irgendwann 
verspätet übernommen wird. Es könnte nur an einer ungünstigen 
Kombinatorik scheitern, die auf dem verzögerten Sig aufbaut und einen 
Ausgang treibt, der in der Nähe einer Takktflanke ändert. Tut es das 
nicht, müssen nur die klassischen Timings geprpüft werden und es braucht 
gfs ein Multicycle contraint:

Ein "After 100 ns" wäre bei einem 33MHz-System eine 3er-Kette (90ns + 
Delay) und es wäre "Platz" für 10ns Kombinatorik abzüglich Setuptime.

Ich würde sowas sehr begrüssen!

von Gast (Gast)


Lesenswert?

Frage dazu: Wie überzeugt man die Normenkomision, einen neuen 
VDHL-Konstrukt aufzunehmen:

Ich will einen Konstrukt haben wie:

SigOut <= SigIn after 2c;

"c" wäre ein Clocktakt.

Die Synthese darf dann die FFs einbauen.

von Mathi (Gast)


Lesenswert?

Du gehst einfach auf http://www.eda.org/vasg/ und dort auf Enhancement 
Request. Da kannste Deine Vorschläge einbringen...

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

>... welches den "After" , abhängig von clock ... in eine
> FlipFlopKette übersetzt ... Clock-Granularität ...
Ja schon, und wenn ich dann 2 Takte habe, darf es sich den schöneren 
heraussuchen. Oder wenn ich eine DCM freihabe kann die Synthese ja mal 
das hernehmen...
Nein, nein, nein. Das Denken wird einem dadurch nicht abgenommen.
Dann mach ich das lieber von Hand ;-)

> Auf http://www.eda.org/vasg/... deine Vorschläge einbringen...
Da wären die Vorschlage an den falschen Mann gebracht. Der VHDL-Standard 
bietet diese Bechreibung mit AFTER schon, nur die Synthesetools können 
sie (noch) nicht umsetzen. Als Höchstmaß der Gefühle wäre dann aber 
vermutlich diese taktweise Schieberei zu sehen (damit könnte man schön 
Eingangssignal synchronisieren). Allerdings ist die mit einer Funktion 
genausoschnell beschrieben...

von Duke Scarring (Gast)


Lesenswert?

@Lothar Miller:
>NIEMALS auf FPGA-Hardware

Sag niemals nie. Nachher entwickelt noch jemand einen FPGA, wo an jedem 
FlipFlop eine Delay-Line hängt, damit die ganzen akademischen 
Sprachkonstrukte realisiert werden können ;-)

Duke

von Klaus F. (kfalser)


Lesenswert?

> Sag niemals nie. Nachher entwickelt noch jemand einen FPGA, wo an jedem
> FlipFlop eine Delay-Line hängt, damit die ganzen akademischen
> Sprachkonstrukte realisiert werden können ;-)

Was sollte das für einen Sinn haben.
Außerdem sind diese Sprachkonstrukte nicht akademisch, sondern werden 
genau dafür gebraucht, wofür VHDL entwickelt wurde : Digitale 
Schaltungen mit ihren Eigenheiten (= Verzögerungen) zu SIMULIEREN.

von Oliver N. (neufranke)


Lesenswert?

Da VHDL aber immer häufiger auch dazu verwendet wird, Schaltungen zu 
definieren, um sie bauen zu lassen, ist es doch legitim, darüber 
nachzudenken, was man verbessern kann.

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.