2016-05-30 16 views
0

Ich versuche, den Fixpunkt Wert in Verilog heraus. Im Allgemeinen verwende ich wie diese Methode (I'don't wissen, was es hieß) zum BeispielWie Fixpunkt Wert in Verilog?

output = 0.248*5 
output = ((0.248 << 8) * 5) >> 8; 

Aber in seinem Fall hat der Ausgang nur integer.

Ich möchte Fixpunkt Teil erhalten.

Wie mit dem Fixpunkt Wert in Verilog umgehen?

+1

können Sie die Definition von Ausgabe zeigen, wie werden Sie den Wert bekommen, Anzeige? oder zu einem anderen Modul wechseln. Verilog hat keinen Fixpunkttyp, daher müssen Sie skalierte Ganzzahlen verwenden. Sie müssen auch Ihr Festkommaformat definieren. – Morgan

+0

@Morgan Dank morgan. eigentlich, ich habe zwei Arten von Ausgang bedeutet, dass man Anzeige ist, man übergibt an ein anderes Modul. – nashile

Antwort

0

berechnen und mit 8 Bruchteilbits Anzeige:

integer out; 

initial begin 
    out = ((0.248 * 2**8) * 5); 
    $display("%f", $itor(out)*(2.0**-8.0)); 
end 
+0

würden Sie mich wissen lassen, wie diese Methode heißt? – nashile

+0

Lieber Morgan, was ist, wenn ich mit Fließkommaberechnung umgehen muss, knifflig, kann ich Fließkommazahlen in Fixpunkte umrechnen? oder sollte ich auf eine andere Weise haben? – nashile

+0

Sorry @nashile verstehe deine Frage nicht ganz. Sie müssen Ihre Variable definieren, Verilog hat nur reelle (Gleitkomma) und ganze Zahlen. Festkommawerte müssen um die Anzahl der benötigten Bruchbits erhöht werden. Um den Wert zu interpretieren, dh für $ display skalieren Sie zurück, aber die Zahl wird als Integer gespeichert. es ist nur ** skalierte Ganzzahl **. – Morgan