Forum: FPGA, VHDL & Co. Xilinx ISE & fixed_pkg/float_pkg


von Andreas S. (andreas) (Admin) Benutzerseite


Angehängte Dateien:

Lesenswert?

Hallo,

ich versuche die für Xilinx angepasste Version des fixed_pkg in ISE 9.1 
zu synthethisieren (von http://www.eda-stds.org/fphdl/vhdl.html). Das 
Kompilieren der Dateien klappt, allerdings bekomme ich dann folgende 
Meldung:

======================================================================== 
=
*                     Design Hierarchy Analysis 
*
======================================================================== 
=
ERROR:Xst:2683 - Unexpected error found while building hierarchy.
-->

Hat jemand eine Idee woran das liegen könnte? Das komplette Projekt ist 
im Anhang (habe alles nach work verschoben um Fehler durch die Library 
auszuschließen).

Gruß
Andreas

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Nachtrag: das Problem tritt auch beim einem Minimalbeispiel auf das 
fixed_pkg benutzt:
1
architecture rtl of top is
2
  signal x, y : sfixed (3 downto -3);
3
begin
4
  x <= to_sfixed(in1, 3, -3);
5
  y <= x * 2;
6
  out1 <= to_slv(y);
7
end rtl;

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Mit Service Pack 2 wird die Meldung sinnvoller:

ERROR:Xst:2744 - "C:/Dokumente und Einstellungen/A/Eigene Dateien/FPGA/
fixpt-test/vhdl200x/fixed_pkg_c.vhdl" line 1026: alias of a function
is not supported.
ERROR:Xst:2683 - Unexpected error found while building hierarchy.

Nach Auskommentieren der Aliase funktioniert es.

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Kurzer Erfahrungsbericht:
Multiplikation wird einwandfrei optimiert, auch Pipelining wird korrekt 
erkannt. Division durch real-Konstante funktioniert leider nicht:
ERROR:Xst:769 - "C:/Dokumente und Einstellungen/A/Eigene 
Dateien/FPGA/fixpt-test/vhdl200x/fixed_pkg_c.vhdl" line 2599: Operator 
<INVALID OPERATOR> must have constant operands or first operand must be 
power of 2

Naja, dann halt x * (1.0/c) statt x / c.

float_pkg lässt sich nach Auskommentieren von ein paar Aliasen ebenfalls 
synthetisieren. Die Synthese erkennt hier kein Pipelining für die 
Multiplizierer, gibt zumindest keine entsprechenden Meldungen aus, 
trotzdem bringt eine Pipelinestruktur einige MHz. Ein 32 <= 32x32 Bit 
MAC (jeweils 2 Register an den MUL- und ACC-Ausgängen) läuft im Spartan 
3-1000-4 mit ca. 40 MHz. Der Logikverbrauch ist natürlich wie erwartet 
hoch (~3000 LUTs bzw. 20%).

Ob das alles auch richtig rechnet habe ich noch nicht ausprobiert.

von Youssef .. (Firma: privat) (youssef)


Lesenswert?

Andreas Schwarz wrote:

> float_pkg lässt sich nach Auskommentieren von ein paar Aliasen ebenfalls
> synthetisieren.

welche aliasen hast du auskommentiert .

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Die welche zu Fehlermeldungen führen.

von Youssef .. (Firma: privat) (youssef)


Lesenswert?

ich werde es testen . danke

von Youssef .. (Firma: privat) (youssef)


Lesenswert?

hallo  Andreas

ich habe folgende Meldung bekommen :
======================================================================== 
=
*                     Design Hierarchy Analysis 
*
======================================================================== 
=
ERROR:Xst:2744 - "I:/Xilinx92i/test/fixed_pkg_c.vhdl" line 1026: alias 
of a function is not supported.


FATAL_ERROR:Xst:Portability/export/Port_Main.h:127:1.17 - This 
application has discovered an exceptional
condition from which it cannot recover.
Process will terminate.
For more information on this error, please consult the Answers Database 
or open a
WebCase with this project attached at h**p://www.xilinx.com/support.

nach die aus kommentierung von die Linie 1026 und 1027

fixed_pkg_c.vhdl line 1026:
alias to_StdLogicVector is to_slv  [UNRESOLVED_ufixed
fixed_pkg_c.vhdl line 1027:   return STD_LOGIC_VECTOR];

bekomme ich dann nur noch tausende von diese Meldung und der Rechner ist 
gelähmt :

ERROR:HDLParsers:333 - Binary file "xst/ieee_proposed/sub00/vhpl02" is 
corrupted. Recompile unit fixed_pkg.fixed_pkg.


hast du eine Idee wie ich das los kriege ???? die frage ich doch für 
alle ;-)

von Youssef .. (Firma: privat) (youssef)


Lesenswert?

ich denke ich habe es gefunden :-)

nach jede Änderung im package  habe ich gespeichert und danach clean 
project fils gemacht und neue synthetisieren.

also es lauft jetzt ;-)

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.