mikrocontroller.net

Forum: FPGA, VHDL & Co. Floating point


Autor: mayer (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Falk (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Xenu (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es gibt allerdings einen kostenlosen Gleitkomma-Core von Xilinx.

Autor: mayer (Gast)
Datum:

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

Grüß

Mayer

Autor: Klaus Falser (kfalser)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"0110.100" ist keine Floating Point Zahl, sondern eine Fixkomma-Zahl.

Autor: Falk (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: mayer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
„0110.100“ ist gleich 6.5.  Also.Fixkomma-Zahl

Das will ich eingeben und wieder als 7 Bit vector Ausgeben

Autor: mayer (Gast)
Datum:

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

wie kann ich dann 6.5 Ausgeben??

mfg

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: mayer (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: mayer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke Michael

Vielleicht muß ich ein bestimmte Bibliothek einbinden?

Grüss

Autor: Michael (Gast)
Datum:

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

Autor: Falk (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Michael (Gast)
Datum:

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

Autor: Falk (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Michael (Gast)
Datum:

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

Autor: Michael (Gast)
Datum:

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

Autor: Falk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Gast

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

Wieso?

MfG
Falk

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.