Floating point

Gast #507848
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
Gast #509037
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
Gast #509091
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
Gast #509095
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren