Forum: FPGA, VHDL & Co. Fehler: object "tap_table" is used but not declared
von
Nexus (Gast)
27.09.2008 22:49
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)
28.09.2008 00:35
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.