Hallo Leute :)
ich versuche gerade anhand einer iterativen Instanziierung mehrere
VHDL-Komponenten zusammenzufügen jedoch bekomme ich eine Fehlermeldung
die ich leider nicht lösen kann. Es handelt sich hierbei um einen 4 Bit
Johnson Zähler.
1 | library IEEE;
|
2 | use IEEE.std_logic_1164.all;
|
3 |
|
4 | entity johnson_cnt is
|
5 | generic(W : positive := 4); -- Anzahl der D - FF
|
6 | port (Reset : in std_logic;
|
7 | Clk : in std_logic;
|
8 | q_o : out std_logic_vector(W - 1 downto 0));
|
9 | end entity johnson_cnt;
|
10 |
|
11 | architecture struc of johnson_cnt is
|
12 | signal intern : std_logic_vector(W - 1 downto 0);
|
13 | signal ser_i : std_logic;
|
14 |
|
15 | component dff
|
16 | port(Clk : in std_logic;
|
17 | Reset : in std_logic;
|
18 | d_i : in std_logic;
|
19 | q_o : out std_logic);
|
20 | end component dff;
|
21 |
|
22 | begin
|
23 |
|
24 | i_johnson_cnt : dff -- erster FF
|
25 | port map
|
26 | (Clk => Clk,
|
27 | Reset => Reset,
|
28 | d_i => ser_i,
|
29 | q_o => intern(0));
|
30 |
|
31 | i_johnson_cnt1 : dff -- mittlerer FF
|
32 | for i in 1 to W - 2 generate
|
33 | port map
|
34 | (Clk => Clk,
|
35 | Reset => Reset,
|
36 | d_i => intern(i - 1),
|
37 | q_o => intern(i));
|
38 | end generate;
|
39 |
|
40 | i_johnson_cnt2 : dff -- letzter FF
|
41 | port map
|
42 | (Clk => Clk,
|
43 | Reset => Reset,
|
44 | d_i => intern(W - 2),
|
45 | q_o => intern(W - 1));
|
46 |
|
47 | ser_i <= not(intern(W - 1));
|
48 |
|
49 | end architecture struc;
|
Die Fehlermeldung erscheint bei der for-Schleife und lautet:
johnson_cnt_struc_.vhdl(28): near "for": expecting <= or :=;
Ich vermute, dass es ein dummer Fehler ist, jedoch kann ich es leider
nicht lösen und hoffe, Ihr könntet mir da helfen.
Lg