Forum: FPGA, VHDL & Co. FATAL_ERROR:HDLParsers:vhptype.c:174:$Id: vhptype.c,v 1.9 2005/08/22


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


Lesenswert?

weiss jemand was das sein soll ?

bei die Synthese bekomme ich diese Fehlermeldung
Tool ist xilinx ise 9.2i mit dem Compiler xst .

FATAL_ERROR:HDLParsers:vhptype.c:174:$Id: vhptype.c,v 1.9 2005/08/22 
17:03:34 mikev Exp $:200 - INTERNAL ERROR... while parsing 
"I:/Xilinx92i/Uniform_verteilung/uniform_D.vhd" line 33. Contact your 
hot line.   Process will terminate....
Process "Synthesize" failed

hier ist der code :


ENTITY unif_Div IS
    PORT (
           genRnd_unif :in bit;
           unif_z : out sfixed(7 downto -7));
END unif_Div;

architecture genunifz OF unif_Div IS

BEGIN

  PROCESS (genRnd_unif)
    VARIABLE seed1:integer:=1;
    VARIABLE seed2:integer:=56;
    VARIABLE rand: real;
    VARIABLE int_rand: sfixed (7 downto -7);
BEGIN
  UNIFORM(seed1, seed2, rand);
  int_rand := to_sfixed(INTEGER(TRUNC(rand*96.0)),7,-7);
    IF(genRnd_unif = '1') THEN unif_z <=int_rand;
    ELSE unif_z<=to_sfixed(integer(0),7,-7);
    END IF;

  END PROCESS;
END genunifz;

von martin (Gast)


Lesenswert?

Bin kein Experte, aber INTERNAL ERROR ist meiner Meinung nach
starker Hinweis, dass es ein Bug im Parser/Compiler ist.
Contact your hotline .. das ist deswegen, damit Du schön
mithilfst diesen Bug zu reporten und damit irgendwann man zu beseitigen 
;)

von Morin (Gast)


Lesenswert?

Jo das ist ein Fehler im Synthesizer-Programm. Da kannst du wenig machen 
außer mal andere Versionen vom ISE / XST ausprobieren.

Allerdings sieht mir dein Code auch nicht wirklich synthetisierbar aus. 
Vielleicht kannst du den Fehler umgehen, wenn du etwas hinschreibst, was 
eher nach "echter" Hardware aussiehst.

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


Lesenswert?

Danke Leute

ich habe nur einen einzigen link über dieses Problem beim googeln 
gefunden
such begriff : FATAL_ERROR:HDLParsers:vhptype.c:174:$Id: vhptype.c,v 1.9

Fehler Ursache:  Gleichzeitiger Zugriff auf eine Ressource.

bei xilinx support steht etwas mit alias und subtyps aber hier habe ich 
kein alias benutzt

Morin wrote:

> außer mal andere Versionen vom ISE / XST ausprobieren.

ich habe die aktuelle version.

> Allerdings sieht mir dein Code auch nicht wirklich synthetisierbar aus.

woran siehst du das ??

von Jan M. (mueschel)


Lesenswert?

Float-Operationen sind generell nicht synthetisierbar.

von T.M. (Gast)


Lesenswert?

1
UNIFORM(seed1, seed2, rand);
2
int_rand := to_sfixed(INTEGER(TRUNC(rand*96.0)),7,-7)

uniform ist eine Funktion, die imho nicht synthetisierbar ist. Sie kann 
für Testbenches benutzt werden, um Pseudozufallsdaten zu erzeugen. Wenn 
man in HW Zufall braucht, greift man zB. zu einem SR mit Rückkopplung 
als PRNG.

von Morin (Gast)


Lesenswert?

> ich habe die aktuelle version.

Eben, die ist Müll. Bei "Internal Errors" versuch mal ISE 6.2 oder 6.3.

Hier denke ich aber dass es was anderes ist:

> woran siehst du das ??

Wie schon gesagt wurde: Verwendung der unbeschränkten REAL- und 
INTEGER-Datentypen und der entsprechenden Funktionen.

Setz das mal in Bit- oder Std_logic-Vektoren um, und gib das dem XST zu 
fressen. Damit kommt es klar.

von Matthias F. (flint)


Lesenswert?

Was ist in dem Source überhaupt Zeile 33? Immerhin schmeißts dort den 
Parser (endgültig) auf.

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


Lesenswert?

Matthias F. wrote:
> Was ist in dem Source überhaupt Zeile 33?

Zeile 33 ist die letzte Zeile im Source: END genunifz;

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.