Forum: FPGA, VHDL & Co. vector array in der vhdl entity


von Ralfi (Gast)


Lesenswert?

Ich brauche einen (später skalierbaren) Vektor als input in der entity. 
Ich bekomme aber die Definition nicht hin. Auch bei den Signalen geht es 
nicht.
1
entity matrix4mal6 is
2
port
3
(
4
  input_left :  IN vector6;
5
  input_right : IN vector4;
6
  output_left : OUT vector4;
7
);
8
end neuron4_matrix46;
9
10
architecture n4m46_a of matrix4mal6  is
11
12
type matrix is array (0 to 3, 0 to 5) of std_logic_vector(7 downto 0);
13
type vector6 is array (0 to 5) of std_logic_vector(7 downto 0);
14
type vector4 is array (0 to 3) of std_logic_vector(7 downto 0);
15
16
SIGNAL input_n, input_s : vector6;

So, wie es jetzt ist, klappt es aber perfekt für die internen Signale 
input_n und input_s. So brauche ich es auch in der entity.

Wie macht man das?

von Georg A. (Gast)


Lesenswert?

Pack die Typen in ein Package und benutze das vor der entity-Definition.

Das hier schluckt ghdl problemlos:
1
library IEEE;
2
use IEEE.std_logic_1164.all;
3
4
package x_pkg is
5
        type matrix is array (0 to 3, 0 to 5) of std_logic_vector(7 downto 0);
6
end x_pkg;
7
8
library IEEE;
9
use IEEE.std_logic_1164.all;
10
library work;
11
use work.x_pkg.all;
12
13
entity m is
14
        port (
15
                clk: in std_logic;
16
                mm: in matrix
17
        );
18
end m;
19
20
architecture v1 of m is
21
begin
22
end v1;

von Ralf (Gast)


Lesenswert?

Danke, ich probiere es!

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.