konvertieren einer wire-Wert, um eine Ganzzahl in verilog
Will ich wandeln die Daten in einem Draht, der in eine Ganzzahl. Zum Beispiel:
wire [2:0] w = 3'b101;
Möchte ich eine Methode auf, konvertiert diese auf '5' und speichert es in eine Ganzzahl. Wie kann ich das machen, dass Sie in einem besseren Weg, als dieses:
j=1;
for(i=0; i<=2; i=i+1)
begin
a=a+(w[i]*j);
j=j*2;
end
Auch, wie wandle ich es wieder um binäre sobald ich den Wert in eine Ganzzahl? Dies scheint ungeschickt. Danke.
InformationsquelleAutor Brahadeesh | 2011-04-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einfach! Umwandlung ist automatisch in verilog bei der Zuweisung an eine Ganzzahl. In verilog, alle Datentypen sind nur Sammlung an bits.
Es ist, aber du bekommst nur die 3 LSBs des
my_int
gespeichert inw
. Zum Beispiel, wenn die Anzahl'd16
(10000
) ist inmy_int
,w
=3'b000
es bekam. Danke. Es bedeutet, dass ich nur darauf achten, zu halten, w lang genug.
InformationsquelleAutor Marty
Als Marty sagte : Umrechnung zwischen bit-Vektoren und zahlen erfolgt automatisch.
Aber es gibt eine Reihe von Fallstricken. Sie sind offensichtlich, wenn man bedenkt, dass ein integer ist eine 32-bit-Wert mit Vorzeichen.
Ich weiß nicht, warum, die Sie konvertieren möchten einen Integerwert zurück. Ich möchte nur darauf hinweisen, dass die arithmetischen Operationen werden vollständig unterstützt signed-und unsigned-bit-Vektoren. In der Tat, Sie sind stärker, da es keine 32-bit-Grenze:
Auch mithilfe eines Vektors als index unterstützt:
InformationsquelleAutor Oldfart