Quartus ignoriert AFTER

Gast #986865
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
Moderator (Firma: Titel) Persönliche Seite #986973
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.
Gast #987258
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!
Gast #987260
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.
Moderator (Firma: Titel) Persönliche Seite #987392
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...
Gast #987786
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
#987817
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren