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?
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
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.
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.
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.
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.
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.