Forum: FPGA, VHDL & Co. Synplify Pro vs. Lattice LSE – gibt's einen Vergleich?


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 Jörg W. (dl8dtl) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Wenn ich in Lattice Radiant ein neues Projekt anlege, werde ich gefragt, 
ob ich für die Synthese Synplify Pro oder Lattice LSE benutzen möchte.

Wenn ich könnte, würde ich hier wohl mit "42" antworten … gibt's 
irgendwo einen Vergleich, warum bzw. wofür man das eine oder das andere 
Tool benutzen sollte?

von Tobias B. (Firma: www.elpra.de) (ttobsen) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Das kann man leider nicht pauschal beantworten.

Der normale Design Flow ist, dass man Constraints hat (z.B. Timings oder 
verfuegbare Ressourcen wie Logic Slices) und dann verschiedene 
Strategien durchprobiert. Ein davon ist z.B. ds man das eine oder das 
andere Tool einsetzt und hinterher vergleicht.

Hier ein bisschen Lesestoff zu Lattices LSE:

https://www.latticesemi.com/en/Products/DesignSoftwareAndIP/FPGAandLDS/LatticeDiamond/LatticeSynthesisEngine

Pauschal wuerde ich bei Lattice immer versuchen LSE zu verwenden und nur 
auf Synplify umsteigen, wenn ich meine Ziele mit LSE nicht geschafft 
habe.

Aehnliches Problem hat man ja auch z.B. wenn ich waehlen muss zwischen 
GCC und LLVM. Sind auch zwei verschiedene Tools, mit zwei verschiedenen 
Technologien, die die gleiche Blackbox erzeugen. Das Ergebnis wird aber 
keinesfalls identisch sein.

Kleiner Nachtrag:
Ein Anwendungsfall kann auch sein wenn ich Tool spezifische Features 
benoetige. Dann bin ich mit Synplify vll. besser bedient, wenn ich z.B. 
mein Design auf andere FPGA Hersteller portieren moechte. Was Synplify 
da jetzt alles in der Werkzeugkiste bereit haelt, kann ich allerdings 
nicht sagen. War nie ein Synplify Nutzer.

: Bearbeitet durch User
von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Danke, klingt plausibel.

Dass man bei Lattice vielleicht erstmal bei LSE bleibt, hätte ich auch 
so gemacht, ist bei einem neuen Projekt auch voreingestellt.

Die Portierbarkeits-Idee hat natürlich was, wenngleich weit jenseits 
dessen, wo ich mich da derzeit bewege. Außerdem benutze ich schon sowas 
wie deren embedded RAM, weil es mir sinnvoll erscheint, nicht dafür 
sackweise normale Flipflops zu verplempern. Wäre natürlich die Frage, ob 
ein Tool wie Synplify ggf. erkennen könnte, dass man einen RAM zusammen 
definiert hat und dafür dann auch die vorgefertigten RAM-Blöcke 
synthetisieren würde.

von Christoph Z. (christophz)


Bewertung
0 lesenswert
nicht lesenswert
Jörg W. schrieb:
> Wäre natürlich die Frage, ob
> ein Tool wie Synplify ggf. erkennen könnte, dass man einen RAM zusammen
> definiert hat und dafür dann auch die vorgefertigten RAM-Blöcke
> synthetisieren würde.

Das sollten alle Tools können. Nicht alle BlockRAMs können alle Features 
die RAMs so haben könnten, also klappt das nicht immer. Gute Tools geben 
dann Bescheid wieso sie jetzt genau doch kein BlockRAM gemapped haben.

Tobias B. schrieb:
> Pauschal wuerde ich bei Lattice immer versuchen LSE zu verwenden und nur
> auf Synplify umsteigen, wenn ich meine Ziele mit LSE nicht geschafft
> habe.

Warnung, LSE hatte ich 2013 zuletzt ausprobiert!

Klingt im Prinzip nachvollziehbar. Klappt nach meiner Erfahrung auch 
sehr gut, da LSE wesentlich langsamere Designs erzeugt als Synplify.

Ich arbeite sehr gerne mit Synplify, gerade auch weil er sehr viele 
Logmessages generiert und diverse Möglichkeiten bietet sein Design 
anzuguken und zu analysieren. Braucht natürlich auch Einarbeitung aber 
die lohnt sich, habe viel über VHDL/FPGAs gelernt zusammen mit diesem 
Tool.

Synplify spezifische Sachen verwende ich wegen der Portierbarkeit aus 
Prinzip nicht. Lattice und Microship liefern Synplify Lizenzen mit, 
sobald ich auf Xilinx/Intel portieren müsste, würde es verdammt teuer 
werden.

von Lothar M. (lkmiller) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Jörg W. schrieb:
> Wäre natürlich die Frage, ob ein Tool wie Synplify ggf. erkennen könnte,
> dass man einen RAM zusammen definiert hat und dafür dann auch die
> vorgefertigten RAM-Blöcke synthetisieren würde.
Das kommt drauf an, wie generisch das RAM beschrieben wurde. Aber ich 
verwende gern möglichst hardwarenahe Templates für solche Hardware, die 
der Synthesizer sicher als die entsprechende Hardware erkennt. Da drauf 
kommt dann ein Wrapper, der nur "übliche" Signale ins Design weitergibt.

Tobias B. schrieb:
> Pauschal wuerde ich bei Lattice immer versuchen LSE zu verwenden und nur
> auf Synplify umsteigen, wenn ich meine Ziele mit LSE nicht geschafft habe.
So ein Umstieg war bis vor kurzer Zeit schon bei sowas Einfachem wie 
z.B. Initialwerte nötig. Synplify konnte das, die LSE nicht. Deshalb 
verwende ich der Einfachheit halber gleich den Synopsys Synthesizer.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Lothar M. schrieb:
> Da drauf kommt dann ein Wrapper, der nur "übliche" Signale ins Design
> weitergibt.

Diese allgegenwärtigen Wrappers haben mich schon gewundert, als ich 
früher bei Atmel mal in ein Design eins unserer ICs geguckt habe. Beim 
Programmieren würde man nicht einfach nur so Hierarchieebenen hinzufügen 
wollen, aber bei einer HDL sind das natürlich letztlich nur Drähte, die 
praktisch nichts kosten.

von Duke Scarring (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Jörg W. schrieb:
> Wenn ich könnte, würde ich hier wohl mit "42" antworten
Das ist nach meiner Erfahrung die richtige Antwort.

pro LSE:
- lässt sich leichter verskripten
- startet gefühlt etwas schneller
- braucht die Timing-Constraints nicht in tcl-Syntax

pro Synplify:
- optimiert tendenziell etwas besser
- synthetisiert gefühlt etwas schneller
- schöne grafische Darstellung des synthetisierten Codes (dafür Synplify 
manuell starten)

Die Initialwerte wurden schon genannt, aber ich glaube das funktioniert 
inzwischen.

Nachteil von Beiden: es gibt Konstrukte die mit Xilinx-ISE (und 
ModelSim) problemlos gehen, hier aber Probleme machen...

Sei es ein Tristate-Buffer, der write-only ist (MISO hochohmig, wenn CS 
nicht aktiv ist) oder ein Schieberegister, was in dem einen Tool von MSB 
nach LSB ausgibt und im anderen von LSB nach MSB...

Der Support ist lausig und hat mein Problem gar nicht als solches 
erkannt, aber das bin ich schon von Xilinx gewohnt :-/
(Der Support von Mentor ist da die rühmliche Ausnahme!)

Duke

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.

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