Moin,
für alle die diese folgende Warning schon einmal von Ihrem Synthese-Tool
(Synplify Pro in meinem Fall) bekommen haben.
1
@W: MT420 |Found inferred clock top|Clock with period 5.00ns. A user-defined clock should be declared on object "p:Clock"
Nach vielem googlen habe ich folgende Quelle gefunden - der
Google-Translater macht den Rest.
http://www36.atwiki.jp/aroe/pages/30.html
Das Problem tritt immer dann auf, wenn man ein das Synthesewerkzeug die
Geschwindigkeit des Taktes nicht kennt. Um das Problem zu lösen bietet
Lattice Diamond direkten Zugriff auf Symplify Pro in Symplify kann man
das die User-Defined Clock contrainen und diese Konfiguration
abspeichern. Das Constrain-File (.sdc) kann man dann in Lattice Diamond
einbinden.
Das geht wie folgt:
- Synplify starten (toolbar oben rechts)
- Synplify einmal compilieren lassen (run)
- New Scope File (.sdc)
- Scope File constrainen und abspeichern
- In Lattice-Diamond den Strategy-File öffnen und bei "Input SDC
Constraint File (.sdc) die erstellte Datei hinzufügen
Das wars schon :)
Ich hoffe das hilft dem einen oder anderen.
Gruß Steffen
Das auf diese Art erzeugte Constraintfile gilt meines Wissens nur für
Synplify und nicht für den Rest der Tools (Map,Place&Route,statische
Timing Analyze).
Der korrekte Platz für Timingcontstraints in Diamond ist das .lpf File,
entweder von Hand mit Editor eintragen oder mit Spreadsheet View unter
Timingparameters wenn man eine GUI bevorzugt.
Ein contraint File für Symplify wird dann automatisch erstellt.
Moin,
das stimmt. Im *.lpf file muss man das für die Input Pins nochmal
einstellen, aber soweit ich das verstanden habe geht das nicht für
interne Signale, sondern nur für Pins.
Steffen schrieb:> das stimmt. Im *.lpf file muss man das für die Input Pins nochmal> einstellen, aber soweit ich das verstanden habe geht das nicht für> interne Signale, sondern nur für Pins.>
Für interner Signale geht es mit NET:
Steffen schrieb:> Aaaah - vielen Dank! Woher weißt du das? Ich habe noch keine richtige> Dokumentation gefunden.
Einfach mal die Diamond Help aufrufen (aus Diamond selbst oder im
Startmenu unter Diamond->Accessories)
Dort auf Constraint Reference und Preferences clicken.
Mit Firefox funktioniert die Hilfe einwandfrei, ob das auch mit allen
Variantes des IE der Fall ist weiss ich nicht.
Eigentlich nicht, wird nur übersichtlicher. Ist wohl ihn erster Linie
für den LSE (neuer allternativer Synthesiser für MachXO,MachXO2)
ich habe gerade mal mit den Clocksettings in Synplify herumgespielt, auf
das Ergebniss von Place&Route haben sie keine Auswirkungen zumindestens
bei mir. Ich denke das Warning kann man einfach ignorieren.
Nützlich sind sie wohl dann wenn man in einem komplexen Design eine
Analyse der kritischen Pfade mit Synplify machen möchte.
Ich habe das nun auch mal ausprobiert. In dem Moment wo man an dem SDC
file rumschraubt läuft Translate und Synthesize Design nochmal (bei den
Constrains im .LPF file nur Map und Place und Route) und je nachdem wie
man das Constraint werden dann meine Ergebnisse insgesamt besser.
Also mein Verständnis:
- Beide Constrainfiles sind wichtig
- Für ein optimales Ergebnis müssen beide angefasst werden
- Durch Register Balancing, Statemachine-Optimierung, etc. passieren vor
dem Map und Place & Route d.h. das bekommt man durch die .LPF-Constrains
nicht mehr optimiert
Gruß Steffen
Steffen schrieb:> Also mein Verständnis:> - Beide Constrainfiles sind wichtig> - Für ein optimales Ergebnis müssen beide angefasst werden
Auf die Settings im lpf File kann man nicht verzichten, während die
Defaulteinstellungen für Synplify für die meisten Fälle ausreichend
sind.
> - Durch Register Balancing, Statemachine-Optimierung, etc. passieren vor> dem Map und Place & Route d.h. das bekommt man durch die .LPF-Constrains> nicht mehr optimiert
Sicherlich nicht, allerdings ist vieles davon auch als Option in der
Strategy und als Synthese Attribute im Design zugänglich.
>> - Durch Register Balancing, Statemachine-Optimierung, etc. passieren vor>> dem Map und Place & Route d.h. das bekommt man durch die .LPF-Constrains>> nicht mehr optimiert>> Sicherlich nicht, allerdings ist vieles davon auch als Option in der> Strategy und als Synthese Attribute im Design zugänglich.
Das stimmt, wobei man immer nur einen globalen Clock vorgeben kann. Das
heißt um Platz zu sparen oder die Performance zu optimieren muss man da
wieder ran.
Ich muß mich hier mal ranhängen.
Lattice User schrieb:> Der korrekte Platz für Timingcontstraints in Diamond ist das .lpf File,> entweder von Hand mit Editor eintragen oder mit Spreadsheet View unter> Timingparameters wenn man eine GUI bevorzugt.> Ein contraint File für Symplify wird dann automatisch erstellt.
Kann man das (.lpf zu .sdc) auch irgendwie per Kommandozeile erledigen?
In der Doku habe ich nur den umgekehrten Weg gefunden (Synplify
generiert ein .lpf-File):
1
Use LPF Created from SDC in Project (for Synplify Pro)
2
3
When this is set to True (default), Synplify Pro creates a preference
4
(.lpf) file based on the Synopsys Design Constraint (.sdc) file. With
5
this .lpf file, the synthesis constraints will also be applied to the
6
Map Design stage of implementation.
7
8
This option is equivalent to the “set_option -write_apr_constraint 1 | 0”
Duke Scarring schrieb:> Ich muß mich hier mal ranhängen.>> Lattice User schrieb:>> Der korrekte Platz für Timingcontstraints in Diamond ist das .lpf File,>> entweder von Hand mit Editor eintragen oder mit Spreadsheet View unter>> Timingparameters wenn man eine GUI bevorzugt.>>> Ein contraint File für Symplify wird dann automatisch erstellt.
Da wurde leider nur das auto constraint feature von Synplify Pro
benutzt. Gibt brauchbare Werte für die Synthese, aber nicht für P&R.
> Kann man das (.lpf zu .sdc) auch irgendwie per Kommandozeile erledigen?>> In der Doku habe ich nur den umgekehrten Weg gefunden (Synplify> generiert ein .lpf-File):
Das gab es bei Diamond 1.x noch nicht. Der Thread ist von 2011
Lattice User schrieb:> Da wurde leider nur das auto constraint feature von Synplify Pro> benutzt.
Ja, ok. Aber wann wird denn das auto constraint feature aktiv?
Wenn ich Synplify über die GUI starte? Wenn eine Datei zum Projekt
hinzugefügt wird?
Momentan habe ich ein .sdc (für die Synthese) und ein .lpf (für den
Rest). Und in beiden stehten die Timing-Constraints. (Ok, im .lpf stehen
auch noch die Pins mit drin.)
> Der Thread ist von 2011
Jaaaa, aber ich beschäftige mich doch erst seit kurzem mit Lattice ;-)
Duke