Floating point

Gast
@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
@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
Gast
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
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
Gast
@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
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.
Gast
@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

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 19 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.