Forum: FPGA, VHDL & Co. Schnelle Designe MAX 10 Quartus


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Martin O. (ossi-2)


Bewertung
0 lesenswert
nicht lesenswert
Ich bin noch ziemlicher FPGA-Neuling und habe jetzt ein paar Fragen zuu 
"Schnellen Designs":

Alles Folgende gillt für MAX 10 unter Quartus Prime Lite

a) Wenn ich in Verilog einen 32Bit Addierer aufbaue, wird dieser immer 
als (langsamer) Ripple-Carry-Adder synthetisiert. Gibts da nichts 
schnellers oder wie helfe ich dem Tool was schnelles (Carry lookahaed, 
Carry Skip o.ä) zu nehmen ? In Vivado (Xilinx,Device Zynq) werden bei 
sowas immer Carry Beschleunigung Baugruppen synthetisiert).

b) Wenn ich in Verilog teste, ob ein 13-Bit Wert ==0 ist, wird eine
Kaskade aus 4 Logikblöcken mit  je 4 Eingängen synthetisiert, also eine 
Verzögerungszeit von 4 Stufen. Ich kann das ganze aber zweistufig mit 
den gleichen 4 Blöcken realisieren.

Wenn ich diese Realisierung in Verilog hinschreibe und mir die 
zugehörige Beschreibung und Quartus als RTL ansehe, elimiert Quartus die 
Kaskade und macht daraus ein Oder Gatter mit 13 Eingänge, woraus der 
Synthetisierer dann wieder die Kaskade mit 4 Stufen macht. Wie kann ich 
eine bestimmte Art der Kaskadierung erzwingen?

von Lothar M. (lkmiller) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Ein Thread pro Thema und User und Tag reicht, oder nicht?

Martin O. schrieb:
> woraus der Synthetisierer dann wieder die Kaskade mit 4 Stufen macht.
Und was kommt letztendlich raus?
Ein Lösungsansatz ist.in deinem anderen Thread im 
Beitrag "Re: Critical Path Carry Skip Adder" beschrieben

: Bearbeitet durch Moderator
von Martin O. (ossi-2)


Bewertung
0 lesenswert
nicht lesenswert
"Ich kann das ganze aber zweistufig mit den gleichen 4 Blöcken 
realisieren."

Ich hab es geschafft, mein Design mittels
1
wire z1 /* synthesis keep */ ; 
2
assign z1=result[0]|result[1]|result[2]|result[3] ;
zu erzwingen, und es ist tatsächlich etwas schneller als das von Quartus 
synthetisierte Design.

von Lothar M. (lkmiller) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Martin O. schrieb:
> und es ist tatsächlich etwas schneller als das von Quartus
> synthetisierte Design.
Sagt welcher Teil der Toolchain? Aus welchem Report liest du die 
Geschwindigkeit?

von Martin O. (ossi-2)


Bewertung
0 lesenswert
nicht lesenswert
Ohne die "synthesis keep" Hinweise bekomme ich "timing violations". Wenn 
ich mit den "synthesis keep" Hinweisen mein Design erzwinge (Weniger 
Stufen hintereinander), erhalte ich keine timing violations.

Ich kann auch mit dem "TimeQuest Timing Analyzer" sehen, ob "negativer 
slack" vorkommt, und ich kann mir damit auch die Timings einzelner Pfade 
ansehen, da sehe ich dann den Unterschied.

Ich hoffe dass ich das so richtig mache, bin aber, wie gesagt, noch ein 
ziemlicher FPGA-Noob.

von opt (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Ist da denn als Optimierungsziel Fläche oder Geschwindigkeit 
eingestellt?

von Weltbester FPGA-Pongo (Gast)


Bewertung
0 lesenswert
nicht lesenswert
unser Freund ist ja echt enthusiastisch, meint besser routen zu können, 
als Quartus, naja ...

... wahrscheinlich hat er alles auf "balanced" stehen gehabt.

>Re: Schnelle Designe
Isse dasse neue Deutsche Rechteschreibunge?

von Martin O. (ossi-2)


Bewertung
0 lesenswert
nicht lesenswert
Ich hab mal die folgende Option gewählt:

Info (16303): Aggressive Performance optimization mode selected -- 
timing performance will be prioritized at the potential cost of 
increased logic area and compilation time

Nachwievor wählt Quartus eine Kaskade aus 4 Blöcken und es gibt Timing 
Violations.

>Re: Schnelle Designe
Isse dasse neue Deutsche Rechteschreibunge?

Ne, war ein Tippfehler, sollte "Designs" heissen, aber man kann, meine 
ich, den Betreff nicht mehr im Nachinein ändern.

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]
  • [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.