Hallo, ich will eine 2 kb grosse Tabelle in ein Rom packen. Dazu
verwende ich den Coregen für einen Single Port Block Ram und lade dort
ein coe File, die Konfiguration habe ich angehängt)
Jedoch bekomme ich beim lesen aus dem Rom (simulation) immer nur
Undefiniert (X)
Selbst wenn ich das Rom nur mit nullen initialisieren lasse, bekomm ich
nur X zurück.
Hier mal ein Testprogramm um das Problem zu verdeutlichen
1 | library IEEE;
|
2 | use IEEE.STD_LOGIC_1164.ALL;
|
3 | use IEEE.STD_LOGIC_ARITH.ALL;
|
4 | use IEEE.STD_LOGIC_UNSIGNED.ALL;
|
5 |
|
6 | entity test is
|
7 | Port (
|
8 | clk : in STD_LOGIC;
|
9 | table_out : out STD_LOGIC_VECTOR (7 downto 0);
|
10 | count_out : out STD_LOGIC_VECTOR (10 downto 0)
|
11 | );
|
12 | end test;
|
13 |
|
14 | architecture Behavioral of test is
|
15 |
|
16 | component gamma_table
|
17 | port(
|
18 | dout: out std_logic_vector ( 7 downto 0);
|
19 | addr: in std_logic_vector (10 downto 0);
|
20 | clk : in std_logic
|
21 | );
|
22 | end component;
|
23 |
|
24 | signal count : std_logic_vector (10 downto 0):=(others =>'0');
|
25 |
|
26 | begin
|
27 |
|
28 | process (clk) begin
|
29 | if rising_edge (clk) then
|
30 | count <= count + 1;
|
31 | end if;
|
32 | end process;
|
33 |
|
34 | count_out <= count;
|
35 |
|
36 | u0 :gamma_table
|
37 | port map(
|
38 | addr => count,
|
39 | dout => table_out,
|
40 | clk => clk
|
41 | );
|
42 |
|
43 | end;
|
Dieses eigentlich recht simple Rom treibt mich seit Tagen in die
verzweifelung