Hallo,
kann mir jemand sagen, wo der Unterschied zwischen beiden Datentypen
liegt:
1
typesmall_intisrange0to31;
2
typesmall_intisrange31downto0;
In beiden Fällen definiere ich einen Typ der bestimmte Integerwerte
annehmen kann. Ich verstehe nicht, was das downto für einen Sinn machen
soll. Bei Binärzahlen wo ich die Anzahl der Binärstellen angebe ist es
mir ja klar, aber hier nicht, da hier nur ein Wertebereich definiert
wird.
Nahja die Attribute 'left 'right liefern andere Rückgabewerte, ebenso
andere Werte. Möglichweise werden die Vergleichsoperatoren beeinflusst
(<; >). Ferner die Frage nach dem Rückgabewert eines
nichtinitialisierten signals, der kleinste?, der rechte?, der linke?.
Daher lässt man bereiche im gesamtem VHDL-Code gern immer in derselben
Richtung laufen (meist downto) um nicht irgendwo überrascht zu werden.
Hallo Kristian,
faktisch legst Du 2 verschiedene Typen an, der eine läuft eben von 0 bis
31, der andere von 31 bis 0.
Du kannst diese Typen z.B. verwenden um Signale vom Typ std_logic_vector
anzulegen die jeweils bit 31 oder bit 0 als MSB haben.
Du kannst mal 2 Signale von jeweils einem dieser Typen anlegen. Eine
zuweisung von sig1 auf sig2 ist nicht möglich, da es sich um
verschiedene Typen handelt !
Hi,
versteh ich nicht.
Es handelt sich hier um Integertypen mit einem eingeschränkten
Wertebereich. Es gibt keine Bits und somit auch keine LSB oder MSB.
Mark wrote:
> Hi Kristian,>> wo steht Integer? Du hast ranges definiert. Mit Integer würde man> schreiben:>> subtype small_int is integer range 0 to 31;
Hab ich aus einem Tutorial:
"One can introduce new types by using the type declaration, which names
the type and specifies its value range. The syntax is
type identifier is type_definition;
Here are a few examples of type definitions,
Hi Kristian,
OK, Du hast recht, es wurden 2 verschiedene Integer-Typen definiert.
to oder downto legen fest ob die Elemente aufwärts oder abwärts laufen.
Zurück zu Deiner Frage:
hat das downto einen Sinn? Kommt auf Deine Anwendung an, manchmal ist
die Zählweise eben umgekehrt. Was solls ...
Wenn man es nicht braucht, muss man es nicht verwenden, die Sprache
gibt Dir aber die Möglichkeit.
>Es handelt sich hier um Integertypen mit einem eingeschränkten>Wertebereich. Es gibt keine Bits und somit auch keine LSB oder MSB.
In der HW gibt es immer Bits ;)
Joe wrote:
>>Es handelt sich hier um Integertypen mit einem eingeschränkten>>Wertebereich. Es gibt keine Bits und somit auch keine LSB oder MSB.>> In der HW gibt es immer Bits ;)
@Joe: Du meinst, dass der Integerwert intern als Binärwert dargestellt
ist. Das ist zwar richtig, hat aber nichts mit dem Thema zu tun.
@Mark: Mit der Antwort kann ich leben. Ist ja im Grunde das, was
Abwickler in seiner Antwort bereits geschrieben het.
Danke für eure Hilfe.
gruß
kristian
>@Joe: Du meinst, dass der Integerwert intern als Binärwert dargestellt>ist. Das ist zwar richtig, hat aber nichts mit dem Thema zu tun.
Doch hat es schon, wandle den Integer z.B. auf unsigned und greife auf
die einzelnen Bits zu. Da wirst du merken das die Bitorder anders ist
MSB bzw. LSB first.
Eine eigene Frage?
Dieser Thread ist über 18 Jahre alt.
Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.