Forum: FPGA, VHDL & Co. Fehler: object "tap_table" is used but not declared


von Nexus (Gast)


Lesenswert?

Hier der Code für ein rückgekoppeltes Schieberegister. Ich habe noch 
einen Fehler drin. Angeblich habe ich das Objekt "tab_table" nicht 
deklariert. Das habe ich doch getan und zwar mit
1
type tab_table is array(1 to 36, 1 to 4) of integer range -1 to 36;

Vielleicht findet ihr den Fehler. Komme auf jeden Fall nicht weiter. 
Hier der komplette Code:
1
-- Dateiname : random.vhd
2
-- Beschreibung: Rückgekoppeltes Schieberegister variabler Länge (n=1...36). Der
3
-- Default-Wert ist n = 8. Die für die Rückkopplung benutzten Zweige werden in einer
4
-- Tabelle definiert. Das Element "-1" bedeutet keine Rückkopplung.
5
6
library ieee;
7
use ieee.std_logic_1164.all;
8
9
entity random is
10
  generic(n : integer range 1 to 36 := 8);
11
  port(clk, reset : in std_logic;
12
     q : out std_logic_vector(n-1 downto 0));
13
end entity random;
14
15
architecture verhalten of random is
16
  type tab_table is array(1 to 36, 1 to 4) of integer range -1 to 36;
17
  constant taps : tap_table := (
18
                  ( 0,  -1, -1, -1),  -- 1
19
                  ( 1,   0, -1, -1),  -- 2
20
                  ( 1,  -1, -1, -1),  -- 3
21
                  ( 1,   0, -1, -1),  -- 4
22
                  ( 2,   0, -1, -1),  -- 5
23
                  ( 1,  -1, -1, -1),  -- 6
24
                  ( 1,   0, -1, -1),  -- 7
25
                  ( 6,   5,  1,  0),  -- 8
26
                  ( 4,   0, -1, -1),  -- 9
27
                  ( 3,   0, -1, -1),  --10
28
                  ( 2,   0, -1, -1),  --11
29
                  ( 7,   4,  3,  0),  --12
30
                  ( 4,   3,  1,  0),  --13
31
                  (12,  11,  1,  0),  --14
32
                  ( 1,   0, -1, -1),  --15
33
                  ( 5,   3,  2,  0),  --16
34
                  ( 3,   0, -1, -1),  --17
35
                  ( 7,   0, -1, -1),  --18
36
                  ( 6,   5,  1,  0),  --19
37
                  ( 3,   0, -1, -1),  --20
38
                  ( 2,   0, -1, -1),  --21
39
                  ( 1,   0, -1, -1),  --22
40
                  ( 5,   0, -1, -1),  --23
41
                  ( 4,   3,  1,  0),  --24
42
                  ( 3,   0, -1, -1),  --25
43
                  ( 8,   7,  1,  0),  --26
44
                  ( 8,   7,  1,  0),  --27
45
                  ( 3,   0, -1, -1),  --28
46
                  ( 2,   0, -1, -1),  --29
47
                  (16,  15,  1,  0),  --30
48
                  ( 3,   0, -1, -1),  --31
49
                  (28,  27,  1,  0),  --32
50
                  (13,   0, -1, -1),  --33
51
                  (15,  14,  1,  0),  --34
52
                  ( 2,   0, -1, -1),  --35
53
                  (11,   0, -1, -1)); --36
54
  begin
55
    p0: process(clk, reset) is
56
      variable reg : std_logic_vector(n-1 downto 0);
57
      variable feedback : std_logic;
58
      begin
59
        if reset = '1' then -- asynchrones Reset
60
          reg := (others => '1');
61
        elsif rising_edge(clk) then
62
          feedback := reg(taps(n, 1));  -- Modellzuweisung
63
          for i in 2 to 4 loop
64
            if taps(n, i) >= 0 then
65
              feedback := feedback xor reg(taps(n, i));
66
            end if;
67
          end loop;
68
          reg := feedback & reg(n-1 downto 1); -- Rechtsschieben
69
        end if;
70
        q <= reg;
71
    end process p0;
72
end architecture verhalten;

von SeriousSam (Gast)


Lesenswert?

einmal heissts tab_table, ein ander mal tap_table...

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.