Forum: FPGA, VHDL & Co. Strichpunkt Fehler


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Johannes H. (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute,

ich bin gerade am Verzweifeln. Seit stunden versuche ich vergeblichst, 
den Strichpunktfehler zu finden, den mir Modelsim ausgibt. Langsam 
glaube ich, dass es sich nicht um einen Strichpunkt Fehler handelt und 
deshalb hoffe ich, ihr könntet mir helfen.
1
library IEEE;
2
use IEEE.std_logic_1164.all;
3
4
architecture struc of johnson_cnt is
5
  signal s_inv_msb  : std_logic;
6
  signal s_load    : std_logic;
7
  signal s_q_intern  : std_logic_vector(BITS - 1 downto 0);
8
  
9
  component dff_l
10
    port(Clk  : in  std_logic;
11
       Reset  : in  std_logic;
12
       Load  : in  std_logic;    
13
       D_load  : in  std_logic;    
14
       D_in  : in  std_logic;
15
       Q    : out  std_logic);
16
  end component;
17
       
18
  component kor_sn 
19
    port(Msb_i   : in  std_logic;
20
       Lsb_i   : in  std_logic;
21
       Inv_msb : out  std_logic;
22
       Load_o   : out  std_logic);
23
  end component;
24
25
begin 
26
  
27
  i_johnson_cnt : kor_sn
28
    port map
29
      (Msb_i    => s_q_intern(BITS - 1),
30
       Lsb_i    => s_q_intern(0),
31
       Inv_msb  => s_inv_msb,
32
       Load_o    => s_load);
33
  
34
  i_johnson_cnt0 : for i in 0 to BITS - 1 generate
35
    DFF_A : if i = 0 generate
36
      I_0 :  dff_l  
37
      port map
38
        (Clk   => Clk,
39
         Reset  => Reset,
40
         Load  => s_load,
41
         D_load => D_load(i),
42
         D_in  => s_inv_msb, 
43
         Q    => s_q_intern(i));
44
    end generate DFF_A;
45
    
46
    DFF_M : if i > 0 and i < BITS - 1 generate
47
      I_M :  dff_l
48
      port map
49
        (Clk   => Clk,
50
         Reset  => Reset,
51
         Load  => s_load,
52
         D_load => D_load(i),
53
         D_in  => s_q_intern(i - 1), 
54
         Q    => s_q_intern(i));
55
    end generate DFF_M;
56
    
57
    DFF_E : if i = BITS - 1 generate 
58
      I_E : dff_l
59
      port map
60
        (Clk  => Clk,
61
         Reset   => Reset,
62
         Load  => s_load,
63
         D_load  => D_load(i),
64
         D_in  => s_q_intern(i - 1),
65
         Q    => s_q_intern(i));
66
    end generate DFF_E;
67
    
68
  Q_out <= s_q_intern;
69
  
70
end architecture struc;

Die Fehlermeldung, die ich erhalte, lautet:
near "architecture": expecting ';'

und es zeigt auf die letzte Architecture Zeile
1
 end architecture struc;

von Michael B. (laberkopp)


Bewertung
0 lesenswert
nicht lesenswert
end struc;
?

von Lothar M. (lkmiller) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Johannes H. schrieb:
> Die Fehlermeldung, die ich erhalte, lautet: near "architecture":
> expecting ';'
Mit genau diesem Code? Wo ist die Entity zur Architecture?

> Langsam glaube ich, dass es sich nicht um einen Strichpunkt Fehler
> handelt
Ich glaube du hast Recht.

Beitrag #4948880 wurde vom Autor gelöscht.
von Johannes H. (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Tut mir Leid, hier ist die Entity.
1
library IEEE;
2
use IEEE.std_logic_1164.all;
3
4
entity johnson_cnt is 
5
  generic(BITS : positive := 4);
6
  port(Clk  : in  std_logic;
7
     Reset  : in  std_logic;
8
     D_load  : in  std_logic_vector(BITS - 1 downto 0);
9
     Q_out  : out  std_logic_vector(BITS - 1 downto 0));
10
end entity johnson_cnt;

von Lothar M. (lkmiller) (Moderator) Benutzerseite


Bewertung
1 lesenswert
nicht lesenswert
Active HDL sagt:
# Error: COMP96_0019: johnson_cnt.vhd : (78, 5): Keyword 'generate' 
expected.
# Error: COMP96_0019: johnson_cnt.vhd : (78, 23): Keyword 'end' 
expected.
Ich würde sagen: zähl mal deine "generate" und "end generate" nach:
1
  i_johnson_cnt0 : for i in 0 to BITS - 1 generate
2
    DFF_A : if i = 0 generate
3
      I_0 :  dff_l  
4
      port map
5
        (Clk   => Clk,
6
         Reset  => Reset,
7
         Load  => s_load,
8
         D_load => D_load(i),
9
         D_in  => s_inv_msb, 
10
         Q    => s_q_intern(i));
11
    end generate DFF_A;
Und als Tipp: immer mal auch einen anderen Compiler drüber schauen 
lassen... ;-)

: Bearbeitet durch Moderator
von Johannes H. (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Das gibt's nicht, da sitzt man stundenlang und das wegen sowas...ich 
glaube ich sollte es für heute belassen :)

Aber vielen, vielen Dank für die Hilfe und könntest du mir noch andere 
Compiler empfehlen?

von Lothar M. (lkmiller) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Ich nehme gern den Active HDL, den ed über Lattice für lau gibt. Aber 
normalerweise hast auch du zwei Compiler: den vom Synthesizer und den 
vom Simulator.

von Johannes H. (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Aha ok ich schau mich mal durch nochmals vielen Dank.

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]
  • [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.