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;
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 ;)
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.
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 ??
Float-Operationen sind generell nicht synthetisierbar.
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.
> 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.
Was ist in dem Source überhaupt Zeile 33? Immerhin schmeißts dort den Parser (endgültig) auf.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.