Forum: FPGA, VHDL & Co. VHDL physikalische Datentypen


von Martin (Gast)


Lesenswert?

Hallo leute ich habe folgendes Problem.
Ich moechte mir einen Datentyp 'current' fuer den Strom festlegen. Der 
Haken an der Sache ist, dass der Wertebereich von -10A bis +10A bei 
einer Aufloesung von 1nA gehen soll (also -1E10 bis 1E10). Fuer die 
deklaration wird aber integer verlangt (-2E9 bis 2E9).

ich habe es so versucht:
--------------------------------------------------
type current is range -1E10 to 1E10
  units nA;
    uA = 1000 nA;
    mA = 1000 uA;
     A = 1000 mA;
  end units;
--------------------------------------------------

Gibt es da irgendeine Moeglichkeit? Wie wird das bei 'time' geloest? Da 
geht der Wertebereich von -9E20 bis 9E20.

Viele Dank im vorraus

mfg

von Martin (Gast)


Lesenswert?

Vielen Dank fuer die zahlreichen Antworten

von Falk (Gast)


Lesenswert?

@Martin

>Vielen Dank fuer die zahlreichen Antworten

Das Forum (und seine Teilnehmer) ist nicht allwissend. Da musst du schon 
das Orakel von Delphi befragen.

MFG
Falk

von Martin (Gast)


Lesenswert?

ein einfaches 'geht nicht' haette mir schon gereicht!

von Falk (Gast)


Lesenswert?

@Martin

>ein einfaches 'geht nicht' haette mir schon gereicht!

Ich weiss nicht ob es nicht geht. Und ich weiss auch nicht wie es geht. 
Deshalb halte ich mich mit der Aussage "geht nicht" zurück. Allen 
anderen Mitlesern wird es ähnlich ergehen.

MfG
Falk

von Stefan H. (stefanhanke)


Lesenswert?

Schuß ins Blaue:
1
        -- predefined type TIME:
2
3
        type TIME is range -2147483647 to 2147483647
4
        -- this declaration is for the convenience of the parser.  Internally
5
        -- the parser treats it as if the range were:
6
        --      range -9223372036854775807 to 9223372036854775807
7
        units
8
                fs;                     -- femtosecond
9
                ps      = 1000 fs;      -- picosecond
10
                ns      = 1000 ps;      -- nanosecond
11
                us      = 1000 ns;      -- microsecond
12
                ms      = 1000 us;      -- millisecond
13
                sec     = 1000 ms;      -- second
14
                min     =   60 sec;     -- minute
15
                hr      =   60 min;     -- hour
16
        end units;

Das große Problem ist, dass der Parser "time" speziell behandelt. Damit 
hast du keine Chance, das gleiche Verhalten hervorzurufen. Der 
Ausschnitt hier ist aus der "standard.vhd" der ISE 9.1.

 -- stefan

von Martin (Gast)


Lesenswert?

Danke fuer die antwort.

Also wenn ich das richtig verstanden hab dann kann ich fuer 
physikalische Datentypen lediglich den Wertebereich von integer nutzen. 
Dann muss ich wohl auf real umsteigen :(

trotzdem danke


mfg Martin

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.