Forum: FPGA, VHDL & Co. Floating point


von mayer (Gast)


Lesenswert?

Gruss alle

Welche Bibliothek soll ich benutzen mit so ein floating point  zahl 
„0110.100“  unter ISE von Xilinx
Und von welche Type ist das.

PS: „0110.100“ = 6.5(von type real)

Danke im voraus

von Falk (Gast)


Lesenswert?

@mayer

>Welche Bibliothek soll ich benutzen mit so ein floating point  zahl
>„0110.100“  unter ISE von Xilinx

Gar keine. Der VHDL Compiler von Xilinx unterstützt keine Floating Point 
Zahlen. Bestenfalls der Simulator (Modelsim).

MFG
Falk

von Xenu (Gast)


Lesenswert?

Es gibt allerdings einen kostenlosen Gleitkomma-Core von Xilinx.

von mayer (Gast)


Lesenswert?

wie heißt das denn, und kann ich damit die zahlen wie „0110.100“ 
benutzen

Grüß

Mayer

von Klaus F. (kfalser)


Lesenswert?

"0110.100" ist keine Floating Point Zahl, sondern eine Fixkomma-Zahl.

von Falk (Gast)


Lesenswert?

@Klaus Falser

>"0110.100" ist keine Floating Point Zahl, sondern eine Fixkomma-Zahl.

Sicher? Für mich sieht das nach einhundertzehn komma eins aus.

MfG
Falk

von mayer (Gast)


Lesenswert?

„0110.100“ ist gleich 6.5.  Also.Fixkomma-Zahl

Das will ich eingeben und wieder als 7 Bit vector Ausgeben

von mayer (Gast)


Lesenswert?

6 kann ich als   out std_logic_vector(5 downto 0):= „000110“; ausgeben

wie kann ich dann 6.5 Ausgeben??

mfg

von Michael (Gast)


Lesenswert?

Es kommt drauf an wohin du es ausgeben willst. Wenn Du es über RS232 an 
den PC sendest kannst Du "0110100" als 6.5 interpretieren. Im FPGA 
kannste doch mit der Zahl so weiterrechnen (die anderen Zahlen müssen 
auch 3 Nachkommastellen besitzen)


z.B. 6,5 + 3 = 9,6

0110.100 + 0011.000 = 1001.100

Wenn du voher eine Integer Zahl (std_logic_vector(2 downto 0) hast z.B. 
3 --> "0011" dann kannst du aus dieser Zahl eine Fließkommazahl machen, 
indem du 3 Nullen hinter ranhängst. Somit sind dann beides 
std_logic_vectoren mit je 7 Bit. Dies geht so

Fliekommazahl <= "0011" & "000";

        oder so

Fliekommazahl <= Zahl & "000"; (wobei Zahl ein std_logic_vector(3 downto 
0) ist)

Grüsse

Michael

von mayer (Gast)


Lesenswert?

Mein Board ist über USB au mein PC angeschlossen, ich will dann die 
Werte zwischen 1.0 und 2.0 an 6 pins mein FPGA ausgeben. Und  ISE 
akzeptiert kein Zahlen in dieser Format "0110.100"

Grüsse

von Michael (Gast)


Lesenswert?

Wo ist das Problem?

Wie viele Nachkommastellen brauchst Du denn?

1.0 bis 2.0 bei einer Nachkommastelle da braucht man doch 3 Bits.

von mayer (Gast)


Lesenswert?

Danke Michael

Vielleicht muß ich ein bestimmte Bibliothek einbinden?

Grüss

von Michael (Gast)


Lesenswert?

Keine Bibliothek. Was willste denn genau machen? Willste zwei Zahlen 
addieren und das Ergebnis ausgeben?

von Falk (Gast)


Lesenswert?

@mayer

>Mein Board ist über USB au mein PC angeschlossen, ich will dann die
>Werte zwischen 1.0 und 2.0 an 6 pins mein FPGA ausgeben. Und  ISE

Du hast ein Problem mit dem Verständnis on Zahlendarstellungen. 
FPGA-Pins können gar keine Zahlen darstellen, nur HIGH oder LOW. Deine 6 
Pins können max. 64 Kombinationen zwischen "000000" und "111111" 
darstellen. Welcher "Zahl" das entspricht, ist Interpretationssache.
Im einfachsten Fall Binär

"000000" = 0
"111111" = 63

Für dein Fliesskommaproblem kannst du dein 6 Bit in 2 + 4 aufteilen. 
Dann sind die oberen 2 Bit die Vorkommastelle (0..3) und die unteren 4 
Bit die Nachkommastelle (0..15, respektive dann 0, 1/16,2/16 .. 15/16).

>akzeptiert kein Zahlen in dieser Format "0110.100"

Das ist ja auch ein binär String bzw. Binärzahl. Machs mal ohne Punkt 
(der Interessier bei Festkomma praktisch nicht, da er immer an der 
selben Stelle steht.

MfG
Falk

von Michael (Gast)


Lesenswert?

Es gibt nur einfache Signale (std_logic) oder Vektoren 
(std_logic_vector). Mit den Signalen kann man Flasg setzten und somit 
andere Prozesse anstoßen und mit den Vektoren kann man Daten speichern 
und verarbeiten. Die anderen Datentypen wie String oder Reale Zahlen 
gibt es nicht. Dies muss man selbst erzeugen oder findet einen IP-Core 
der dies macht. Aber am besten man macht es selber, dann kann man es 
auch anpassen.

von Michael (Gast)


Lesenswert?

Das hast Du aber schön geschrieben Falk :-). Kommste iegentlich aus dem 
Norden?

von Falk (Gast)


Lesenswert?

@Michael

>Das hast Du aber schön geschrieben Falk :-). Kommste iegentlich aus dem

Danke.

>Norden?

Nein, wieso? Ich komme aus dem Osten.
Est oriente lux!
;-)

MfG
Falk

von Gast (Gast)


Lesenswert?

>Ich komme aus dem Osten.

Das war eigentlich klar! Für die Freunde der Float-Arithmetik hätte ich 
noch einen link: http://de.wikipedia.org/wiki/Gleitkommazahlen

von Michael (Gast)


Lesenswert?

Ich suche noch Leute mit denen man sich austauschen kann. Ich komme aus 
Lübeck, ist ja auch sehr Nordöstlich

von Michael (Gast)


Lesenswert?

Ich habe da auch was schönes ist ein PDF. Dies kann ich morgen mal zur 
Verfügung stellen

von Falk (Gast)


Lesenswert?

@Gast

>>Ich komme aus dem Osten.
>Das war eigentlich klar! Für die Freunde der Float-Arithmetik hätte ich

Wieso?

MfG
Falk

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.