Frage

Ich habe ein Paket, in dem ich eine Reihe von Untertypen und Typen deklariere.In Active HDL scheint es immer dann ein Problem zu geben, wenn ich versuche, aus einem Untertyp einen Port zu machen, daher frage ich mich, ob es eine Möglichkeit gibt, sie stattdessen in Typen umzuwandeln.Das Folgende wäre ein Untertyp, den ich konvertieren möchte:

Subtyp word_t ist std_logic_vector(15 downto 0);-- Wort (Definition)

Ist dies möglich, ohne nur einen Typ zu erstellen, der ein Datensatz oder ein Array ist?Danke

War es hilfreich?

Lösung

Ich glaube nicht, dass es möglich ist, direkt eine zu erstellen type basierend auf einem anderen subtype, aber ohne die subtype es kann so gemacht werden:

type word_t is array (15 downto 0) of std_logic;

Es entsteht jedoch ein neues type Für den Port ist die Nutzung des Ports aufgrund der harten Natur von VHDL umständlich.

Eine alternative Problemumgehung könnte darin bestehen, eine zu erstellen subtype mit der Reichweite für word_t, wie:

subtype word_range_t is natural range 15 downto 0;

und das dann nutzen subtype mit std_logic_vector im port Erklärung, wie:

... std_logic_vector(word_range_t);

Der Port ist dann weiterhin kompatibel mit std_logic_vector, und die Größe des Wortes ist dann immer noch leicht beizubehalten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top