Ich versuche ein "dynamisches" 2D-Array zu erstellen, das ich mit Generics in meiner Entity festlegen kann.Illegale Syntax für Subtyp-Anzeige VHDL200X
folgte ich dem Beispiel in https://s3.amazonaws.com/verificationhorizons.verificationacademy.com/volume-8_issue-3/articles/stream/vhdl-2008-why-it-matters_vh-v8-i3.pdf auf Seite 32.
Die Erklärung meiner Art innerhalb der Verpackung (TypeDeclarations):
library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
package TypeDeclarations is
-- Type BusArray -----------------------------------------------------
-- Can be used by: DArray((Y - 1) downto 0)((X - 1) downto 0); --
--
type TArray is array (natural range <>) of std_logic_vector; --
--
----------------------------------------------------------------------
end package;
meine Einheit:
-- Libraries
library ieee;
use ieee.std_logic_1164.all;
-- Own libraries
use work.TypeDeclarations.all;
entity DynamicRegisterSet is
generic (
INPUT_DATAWIDTH : integer := 1;
OUTPUT_DATAWIDTH : integer := 8;
N_REGISTERS : integer := 1);
port (
MCLK : in std_logic := '0';
WE : in std_logic := '0';
-- input data
DATA : in std_logic_vector((INPUT_DATAWIDTH-1) downto 0) := (others => '0');
SEL : in integer range 0 to (INPUT_DATAWIDTH-1) := 0;
-- in/output data (register set)
REGISTERSET : inout TArray((N_REGISTERS-1) downto 0)((OUTPUT_DATAWIDTH-1) downto 0) := (others => (others => '0')));
end DynamicRegisterSet;
Dies ist Das erste Mal, dass ich den aktualisierten Compiler (VHDL200X) verwende, glaube ich nicht, dass ich das falsch mache, aber sonst würde ich diese Nachricht nicht bekommen:
VHDL \ CommonBlocks \ DynamicRegisterSet \ Sources \ DynamicRegisterSet.vhd“Zeile 25: Illegale Syntax für den Subtyp Indikation
jemand irgendwelche Vorschläge? Ich würde es sehr schätzen, danke!
Es sind nicht 49 Zeilen Code geschrieben ... –
Zeilen davor sind Kommentare, es gibt den Fehler bei REGISTERSET: das ist Zeile 49 – MVT
Was Werkzeug verwendest du? – Paebbels