Forum: FPGA, VHDL & Co. Strichpunkt Fehler


von Johannes H. (Gast)


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)


Lesenswert?

end struc;
?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


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)


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. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


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)


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. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


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)


Lesenswert?

Aha ok ich schau mich mal durch nochmals vielen Dank.

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.