Forum: FPGA, VHDL & Co. ispLEVER - ich beiße in den Teppich!


von Bürovorsteher (Gast)


Lesenswert?

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?

von Stefan W. (wswbln)


Lesenswert?

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...

von JBB (Gast)


Lesenswert?

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....

von cfgardiner (Gast)


Lesenswert?

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

von Georg A. (georga)


Lesenswert?

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...

von SuperWilly (Gast)


Lesenswert?

>"This design element is only for use in schematics.".

Da beißt aber jemand in einen ALTEN Teppich ;-)

von Bürovorsteher (Gast)


Lesenswert?

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.

von Bürovorsteher (Gast)


Lesenswert?

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.

von cfgardiner (Gast)


Lesenswert?

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

von Bürovorsteher (Gast)


Lesenswert?

@ 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.

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