mikrocontroller.net

Forum: FPGA, VHDL & Co. Quartus ignoriert AFTER


Autor: Werner (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Werner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Achso also haben die ganzen zeitsachen keinen praktischen Zweck?!

Schade..

Danke trotzdem;)

Autor: Sven P. (haku) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Werner wrote:
> Achso also haben die ganzen zeitsachen keinen praktischen Zweck?!

Na aba sicha doch: zur Simulation.

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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. ;-)

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Mathi (Gast)
Datum:

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

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Duke Scarring (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Klaus Falser (kfalser)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Oliver N. (neufranke)
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.