Forum: FPGA, VHDL & Co. Lattice bringt nicht ersichtlichen Fehler


von matzunami (Gast)


Lesenswert?

Hallo,

ich habe ein Problem mit Lattice. Und zwar habe ich ein Top Level mit 
jeweils drei Modulen. Integriere ich Modul 1 und 2, oder 1 und 3 oder 2 
und 3 funktioniert alles integriere ich aber alle 3 Module bekomme ich 
folgende Fehlermeldung.

@E:Signal 011 error in m_gen_lattice.exe
Stack trace
===========
0044591E
005A656C
005A6D09
...
..
.

Please open a web case about this problem. A Synopsys CAE will then 
contact you.

Instructions to open a web-case:
1.  Go to the Synopsys support web site, https://solvnet.synopsys.com.
2.  Login with your user name and password. If you do not have an 
account, please register and set one up.
3.  Click the `Enter A Call' link.
4.  Provide a detailed description of the problem, and fill in all 
required fields.
5.  Attach any test cases or archived project files required to 
reproduce the problem.

Error output EDIF file c:/.../ctrl_eval/edtIroq5CtrlEval.edi
Error executing Synplicity VHDL/Verilog HDL Synthesizer with code 2

Done: failed with exit code: 0002.


Hat sowas schon mal jemand gehabt? Das komische ist, wenn ich irgendein 
Stück Quellcode auskommentiere (nicht egal welches Stück - hab ich durch 
probieren rausgefunden, es gibt aber in jedem Modul eine Zeile Code, 
wenn ich diese auskommentiere funktioniert alles (also entweder in Modul 
1 eine Zeile auskommentieren oder in Modul 2 oder 3))????
(ach so der Fehler kommt bei Build Database)

Ich komme eigentlich aus der Xilinx Ecke, wo man ja eigentlich nichts 
Gutes über die Software höht, aber solche Probleme hatte ich da nicht???

freu mich über Hilfe
matzunami

von Duke Scarring (Gast)


Lesenswert?

matzunami schrieb:
> Please open a web case about this problem

Und hast Du das schon gemacht?

Duke

von matzunami (Gast)


Lesenswert?

nein :-)

von SuperWilly (Gast)


Lesenswert?

>Integriere ich Modul 1 und 2, oder 1 und 3 oder 2
>und 3 funktioniert alles

Kann es sein, dass bei diesen Zweier-Kombinationen der relevante Pfad 
wegoptimiert wird und der Fehler somit nicht sichtbar wird ?

Versuch doch mal jede Komponente für sich als Toplevel zu 
synthetisieren.

VG, SuperWilly

von matzunami (Gast)


Lesenswert?

Jedes Modul für sich als Toplevel funktioniert. Immer nur ein Modul ins 
Toplevel eingebunden geht auch, oder halt 2. Aber alle drei gehen nicht.

In einem Modul existiert zb. ein Input std_logic_vector der intern einem 
Register gleicher länge übergeben wird. signal_intern <= signal_extern;

Wenn ich die Zeile Auskommentiere geht alles. Aber wie gesagt ich kann 
die Zeile auch stehen lassen und kommentier in einem anderen Modul was 
aus, dann gehts auf einmel auch.

Die Module haben unterschiedliche Funktionen und haben nix miteinander 
zu tun, legentlich die verbindung in dem Toplevel.

Werd mir gleich mal das WebPack von Xilinx runterladen, um mal zu 
schauen was der sagt. Jedenfalls sehr Mysteriös.

von Duke Scarring (Gast)


Lesenswert?

Hast Du das ganze schonmal simuliert?
Manchmal geben die Simulatoren auch ganz gute Fehlerhinweise ab.

Duke

von cfgardiner (Gast)


Lesenswert?

Hi Matsunami,

welcher Lattice Tool verwendest Du, ispLever oder Diamond? Falls es 
ispLever ist, seit einigen Tagen gibt es 8.1 SP1. Es ist wohl auch etwas 
im Synthesemodul (Synopsys ehemals. Synplicity) geändert worden.

So was hatte ich vielleicht ein Mal in drei Jahren. Lässt sich in der 
Regel durch eine andere Formulierung des HDL Codes umgehen, sofern man 
die Stelle findet.

Sonst würde ich zunächst mit verschiedenen Einstellung versuchen. In 
ispLever gibt es hier zwei Möglichkeiten einzugreifen (für den Synthese 
Schritt)

1) Mit dem FPGA Top-Level Selektiert (gelbes Icon oben links im Projekt 
Fenster):
- Rechte Maustaste auf 'Map Design' im Prozess Fenster, z.B. Register 
Retiming, Timing Driven Mapping verändern.

2) Meine bevorzugte Lösung, mit der Top-Level Hdl Datei selektiert (eine 
ebene unter den FPGA Icon aber nicht irgendwelche Packages)
'Synplify Synthesise VHDL File' im Prozess Fenster selektieren und z.B. 
'Pipelining and Retiming' oder 'Resource Sharing' verändern. Andere 
Kandidaten wären 'Frequency', 'Area', 'FSM Encoding' oder 'Fanout Limit'

M.e, sollte 'Resource Sharing' immer gesetzt sein, es sei dann das 
Design ist völlig Zeitunkritisch

Ich würde es aber auf jeden Fall an Lattice melden (auch wenn sie 
natürlich gleich ein Test Case haben wollen, aber das tun sie alle). 
Deren Support finde ich recht gut.

Grüße,
Charles

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.