www.mikrocontroller.net

Forum: FPGA, VHDL & Co. Integer range Maximum wiedergeben


Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,


kleines Problemchen bei Integer und Range:

--ich hab nen Integer dekl.

signal counter_variable : integer range 0 to 10;

-- nun möchte ich im Text das Maximum meiner Range zurückgeben lassen
-- zB so:
 

if counter_variable = counter_variable'"MAX" then 
    -- Springe irgendwo hin
else
 counter_variable = counter_variable + 1;
end if

-- Was muss ich für ein Attribut für das "MAX" setzen, damit ich auch 
-- wirklich das Maximum, also die 10, zurückbekomme
-- Hab keine lust das über ne zusätzliche variable zu lösen


Vielen Dank für Eure Antworten

VG Stefan

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Probier mal counter_variable'High

Autor: Der Besucher (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also ich würde es mit einer Konstantendefinition lösen.

constant counter_max : integer := 10;
signal counter_variable : integer range 0 to counter_max;

if counter_variable = counter_max then
    -- Springe irgendwo hin
else
 counter_variable = counter_variable + 1;
end if


Ich guge mal, ob man das auch mit einem Attribut lösen kann.

Der Besucher

Autor: Der Besucher (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Lothar hats sofort gewusst :)

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
super sache, Danke ... ihr seit alle so fit
ein hoch auf den Lothar :)

Probier ich gleich mal aus.

Schönes WE euch allen

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
leider doch nicht... :(

Line 107. Prefix of attribute 'high must be an array object.

Das Prefix ist nen Integer

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Prefix of attribute 'high must be an array object.
>> Also ich würde es mit einer Konstantendefinition lösen.
Also, ich auch (nach genauerer Betrachtung)...  :-o
Oder eben als Generic in die Entity-Schnittstelle mit aufnehmen.

Vordefiniert sind nur die Attribute:
http://www.csee.umbc.edu/help/VHDL/attribute.html

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
'right, wenn du sicherstellst dass kein downto für die Definition 
verwendet wird.

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> 'right
--> Prefix of attribute 'right must be an array object.
Auch das Attribut 'right funktioniert nicht mit integern :-/

Autor: jetztnicht (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi,

es wuerde auch folgendes gehen:

subtype small_t is natural range 0 to 10;
signal cnt: small_t;



if cnt=small_t'high then
   cnt <=small_t'low;
else
   cnt<=cnt+1;
end if;


regads

Autor: Matthias G. (mgottke)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe dazu ein ähnliches Problem: Nur dass ich das Maximum und das 
Minimum innerhalb einer Funktion ermitteln muss. Daher, es wird ein 
Integer übergeben, welches einen unterschiedlichen Range haben kann. Hat 
dafür jemand eine Lösung?

Matthias

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.