www.mikrocontroller.net

Forum: FPGA, VHDL & Co. Process "Check Syntax" failed


Autor: Christoph B (Gast)
Datum:
Angehängte Dateien:
  • 3.rar (1,5 MB, 18 Downloads)

Bewertung
0 lesenswert
nicht lesenswert
Hi,
ich benutzte xilinx und habe folgendes problem:

ich lass die Syntax von meiner TB checken und dann kommt folgendes:


Started : "Check Syntax".
Running vhpcomp
Compiling vhdl file "C:/Dokumente und 
Einstellungen/roGl/Desktop/3/3a.vhd" in Library isim_temp.
Entity <tr> compiled.
Entity <tr> (Architecture <compl3>) compiled.
Compiling vhdl file "C:/Dokumente und 
Einstellungen/roGl/Desktop/3/TB4.vhd" in Library isim_temp.
Entity <tb4_vhd> compiled.
Entity <tb4_vhd> (Architecture <behavior>) compiled.
Parsing "TB4_vhd_stx.prj": 0.25

Process "Check Syntax" failed


und ich habe keinen blassen schimmer was ich da machen soll!
Ich hab schon die aktuellen Updates runtergeladen und es ändert sich 
nichts!

Es wär super wenn euch dafür ne Lösung oder zumindest ein Grund 
einfällt!

Danke

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast du schon mal so richtig einfache Projekte gemacht?
Oder legst du gleich mit dem Monsterprojekt los?

Das sieht recht bedenklich aus:
use IEEE.STD_LOGIC_ARITH.ALL;      ---- entweder die beiden hier
use IEEE.STD_LOGIC_UNSIGNED.ALL;   

use ieee.numeric_std.all;          ---- oder die hier
:
architecture compl3 of TR is
:
begin
:
verrechnung: process (clk,zahl2, operator) -- sieh dir mal die Sensitivliste an...
begin
zahl1i <= zahl1;                           -- da fehlt mindestens zahl1
zahl2i <= zahl2;

if (operator = "0000") then       -- man darf, um die Lesbarkeit zu erhöhen, 
z1 (22 downto 0)<=zahl1i+zahl2i;  -- in VHDL am Zeilenanfang Leerzeichen einfügen
end if;
if (operator ="0001") then
z1 (22 downto 0)<=zahl1i-zahl2i;
end if;
if (operator = "0010") then
z1<=zahl1i*zahl2i;
--if (operator = "0011") then z1:=zahl1i/zahl2i;   --- das hast du selbst gemerkt, dass das nicht geht....
elsif (clk'event and clk = '1') then  --- der Takt hier? Ist das schon so gewollt????
z1<="0000000000000000000000000000000000000000000000";
end if;
:
loop05: for i in 9 downto 0 loop   --- lies dir mal das Thema loops in VHDL durch
if (z1>= "0000000000000000000000000000011000011010100000") --100000
then BCD05<=i;
z1<=z1 - "0000000000000000000000000000011000011010100000";
end if;
end loop loop05;
:
end if;

bcd0o <= bcd0;
bcd1o <= bcd1;
bcd2o <= bcd2;
bcd3o <= bcd3;
bcd4o <= bcd4;
bcd5o <= bcd5;
bcd6o <= bcd6;

end process verrechnung;  -- aber holla, alles in 1 Prozess. Und der ist teilweise getaktet. Das ist gewagt...
end compl3;

Autor: Christoph B (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja ich hab mal die Taktung weggelassen und die SL aktuellisiert.
Die Libary hab ich aus rausgelöscht obwohl der die selbstständig 
einfügt.
-> es geht immer noch nicht!...

was meinst du mit der Zeile:
loop05: for i in 9 downto 0 loop   --- lies dir mal das Thema loops in 
VHDL durch
ist 1:1 aus unserem skript raus!...
was soll da nicht passen?
Danke!

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> ist 1:1 aus unserem skript raus!...
    for i in 9 downto 0 loop
Klar, das ist eine Schleife nach VHDL-Syntax.
> was soll da nicht passen?
Die Art und Weise, wie diese loop verwendet wird, passt nicht. Eine 
Schleife in VHDL erzeugt paralelle Hardware (Kombinatorik).

Aber das:
loop05: for i in 9 downto 0 loop   
   if (z1 >= "0000000000000000000000000000011000011010100000") then  --100000
      BCD05 <= i;
      z1 <= z1 - "0000000000000000000000000000011000011010100000";
   end if;
end loop loop05;
Das kannst du zwar simulieren, aber das wirst du nicht so ohne weiteres 
in Hardware abbilden können. Das ist eine gut versteckte kombinatorische 
Schleife:
http://www.lothar-miller.de/s9y/categories/36-Komb...


Die Umwandlung einer Zahl in eine BCD-Zahl geht besser so:
http://www.lothar-miller.de/s9y/categories/44-BCD-Umwandlung

Autor: Duke Scarring (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Christoph B
>Compiling vhdl file "C:/Dokumente und Einstellungen/roGl/Desktop/3/3a.vhd

Seit wann kann Xilinx denn richtig mit Leerzeichen (und Punkten) im Pfad 
umgehen?

Duke

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Duke Scarring schrieb:
> Seit wann kann Xilinx denn richtig mit Leerzeichen (und Punkten) im Pfad
> umgehen?
Ich denke, seit der Pfad und der Dateiname in Anführungszeichen gesetzt 
werden. Aber ein kleines Fragezeichen verbleibt, weil z.B. aus
Synthesizing Unit <test>.
    Related source file is "F:/Projekte/FPGA/Pfad mit Leerzeichen/test/test.vhd".
Zwischendurch mal das wird:
F:/Projekte/FPGA/Pfad has been created.
Ich würde den Pfad so wählen, dass diese "Sonderzeichen" nicht 
vorkommen...

Autor: Christoph B (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lösung:
Das "Syntax failed" kommt ist einfach ein bug!
Die TB funktioniert genauso!....

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.