Ich habe das Problem, dass ich von einem Xilinx XC9532 zu einem
ispMACH4032 migrieren muss - der Kunde will es so.
Für den XC9536 habe ich alles in VHDL vorliegen (top.vhd und ca. 5
Instanzen, auch als .vhd). Mit der ISE lässt sich alles wie gewohnt zu
einem funktionsfähigen Schaltkreis verarbeiten.
Wenn ich dieselben VHDL-Dateien nehme und versuche, diese mit
ispLeverClassic 1.4 bzw. mit Synopsis zu synthetisieren, kommt
regelmäßig für jede Entity die Meldung:
"CD590 - instantiated entity brlshft8 (oderwasauchimmer) has not been
analyzed".
Die Fehlersuche gestaltet sich sehr zähe, weil das Tutorial
selbstverständlich nicht zur Software passt. Das die top.vhd am ende der
VHDL-File-Liste stehen muss, habe ich bereits gemerkt :-((.
Hat vllt jemand einen hilfreichen Hinweis?
Hmmm, so ganz kann ich Deine Probleme nicht nachvollziehen.
Man macht ein neues Projekt audf und "wirft" per "add existing File"
alle VHDL Files rein, die dazu gehören. Falls es die Analyse nicht
selber raus bekommt, deklariert man manuell was Top ist. Ggf. kümmert
man sich noch um die Constraints, aber für's erste Übersetzten
(Syntay-Check) braucht's das noch nicht.
Wenn Du angemeldet wärst, hätte ich Dir mal eine PN schicken können...
Sollte ein Problem der Reihenfolge sein. Ggf die Sequenz der
Bekanntmachung ändern oder das file (barrelshifter) mal raus und wieder
rein.
Wenn nichts hilft, einen dummie generieren und einmal einbauen. Dann
txtuell drüberkopieren.
Ein Glück bin ich den ISP -Mist los....
Könnte auch sein, dass "brlshft8 (oderwasauchimmer)" Zellen aus einer
Xilinx Macrobibliothek (coregen etc.) sind. Die gibt es natürlich nicht
von Lattice (auch nicht von Altera, Atmel ...). Da musst Du entweder
etwas entsprechendes in den Lattice Bibliotheken finden oder selber nach
Datenblatt nachbauen.
Bedenke, die Hersteller Bibliotheken haben auch den Zweck, den Kunden an
den Hersteller zu binden. Ein Umstieg soll Aufwand generieren.
Deine Aversion gegen Lattice verstehe ich übrigens nicht. Ich wuesste
nicht wo sie schlechter sind als die Konkurrenz, dafür oft spürbar
günstiger. Aber jedem das seine ...
Grüße,
Charles
brlshft8 kommt wohl wirklich aus einer Xilinx-Lib, die noch aus der
Schematic-Zeit hinübergerettet wurde. Da gabs ja alles mögliche von
74xxx-Replacements. In
http://www.xilinx.com/itp/xilinx10/books/docs/cpld_all_scm/cpld_all_scm.pdf
steht zum BRLSHFT8 "This design element is only for use in schematics.".
In Unisim gibts so Zeug nicht mehr...
Vielen Dank für alle Hinweise von euch.
Der Barrelshifter ist nichts aus einer Xilinx- oder Lattice-Bibliothek,
sondern etwas selbstgeschriebenes (ca. 20 Zeilen). Alle Instanzen
durchlaufen den eigenen Syntaxcheck auch fehlerfrei und können einzeln
synthesisiert werden.
> Falls es die Analyse nicht> selber raus bekommt, deklariert man manuell was Top ist.
Genau das funktioniert bei meiner Synopsis-Variante nicht (im Gegensatz
zur ISE). Laut Lattice muss Top in der Liste unten stehen, was wiederum
nur klappt, wenn ich einen Namen wie ZZZ vergebe, woduch es dann nach
unten sackt. Geht aber trotzdem nicht.
> >"This design element is only for use in schematics.".
Nein, siehe oben.
> Sollte ein Problem der Reihenfolge sein.
Den Eindruck habe ich auch. Offenbar muss ich alles in einen einzigen
File hineinbasteln mit der Top-Entity ganz unten.
Lösung: alles in einen File reinmanschen und beim Kopieren der Entities
alle Zeilen mitnehmen.:-((
Top-Entity dann ans Ende setzen und es läuft.
> Deine Aversion gegen Lattice verstehe ich übrigens nicht. Ich wuesste> nicht wo sie schlechter sind als die Konkurrenz, dafür oft spürbar> günstiger.
Die Schaltkreise sind gut und preiswert, da gibt es keine Frage.
Es ist nur schade, dass ispLever offenbar nur immer lustlos überarbeitet
wurde und heute das Tutorial nicht mehr zur Software passt.
Ich hoffe, das Diamond besser handhabbar ist, da ich bald die MachXO2
einsetzen möchte.
Bzgl. der Reihenfolge, es hängt natürlich von Deiner Gesamtstruktur ab,
aber wenn Entities und Architekturen in getrennten Dateien sind, kannst
Du einfach alle Entities und dann alle Architekturen einlesen. Das
muesste immer klappen. VHDL schreibt nur vor, dass die "Primary Design
Units" (Entities, Packages) vor den "Secondary Design Units"
(Architekturen, Package Bodies) kompiliert werden muessen.
Da gibt es übrigens in ispLever einen Schalter "Arrange VHDL Files", der
vielleicht hilfreich sein kann. Leider nur etwas versteckt bzw. ich
glaube eigentlich eine Synplify Einstellung
- Selektiere den Top Level (auch wenn das einlesen bisher mit
Fehlermeldungen versehen war), und zwar den HDL Top Level mit dem 'v'
Ikon, nicht dem ganz oben mit dem Baustein Symbol (im Project/Modules
Fenster)
- Im Process Fenster erscheinen dann Hierarchy Browser, HDL Explorer,
Synplify Synthesise VHDL File etc.
- Selektiere eben "Synplify Synthesise VHDL File" mit der rechten Maus
Taste
- Ganz unten im Properties steht dann "Arrange VHDL Files".
- Diese Einstellung würde ich auf 'True' stellen und anschliessend View
-> Refresh Process oder View -> Analyse Hierarchy aufrufen. Kann gut
sein, dass Deine Probleme danach weg sind.
Wenn Du Probleme hast, verrate mir Deine Email Adresse und ich mach Dir
einen Screen Shot
Nur noch ein Punkt, ISE/ISIM würde ich nicht als Massstab nehmen. Das
Produkt ist m.E. noch in der Entstehung. Meine bisherige Berührung
deutet darauf hin, dass das Tool einen Misch-Masch aus VHDL
1993/2002/2008 akzeptiert und sogar ein Paar Konstrukte, die eigentlich
gar nicht richtig sind. Ob es Projektstress oder Methode hat, damit die
Kunden noch ein Grund haben an der Kette zu bleiben, möchte ich nicht
beurteilen. Wo nur möglich würde ich immer einen 'Standard' Tool nehmen,
Mentor, Aldec, Cadence (seltener natürlich, wegen mangelnder
Verfügbarkeit) und diesen Code in dem jeweiligen FPGA Flow importieren.
Die günstigste Lösung hat hier im Augenblick tatsächlich Lattice, HDL
Mixed Language für circa EUR700/Jahr. Den VHDL/Verilog Code kann man
generisch schreiben und beim Tool des FPGA Herstellers seiner Wahl
anschliessend importieren.
Charles
@ cfgardiner
Vielen Dank für deine ausführlichen Hinweise! Ich habe das ausgedruckt
und werde es im Januar ausprobieren. Im Moment drängelt der Kunde und es
läuft erstmal.
Die Lösung HDL mixed Language klingt nicht schlecht, leider drückt mir
Mentor Graphics schon mit 2 k€ jährlich den Geldbeutel flach.
Mit der ISE hast du recht, da ist immer noch alles sehr in Fluss. Ich
habe das Ding seit Version 3 unter Beobachtung.
Ich bemühe mich seit neuestem, generischen Code zu schreiben, das ist
die einzige Lösung, um schnell migrieren zu können.