Was ist der Unterschied zwischen $size
und $bits
Operator in Verilog.? wenn ich Variablen habe, [9:0]a
, [6:0]b
, [31:0]c
.
Was wird die Ausgabe bei 'c' von dem obigen Ausdruck sein?
Was ist der Unterschied zwischen $size
und $bits
Operator in Verilog.? wenn ich Variablen habe, [9:0]a
, [6:0]b
, [31:0]c
.
Was wird die Ausgabe bei 'c' von dem obigen Ausdruck sein?
$size
soll die Anzahl der Elemente in der Dimension zurückgeben, was $high - $low + 1
entspricht. Es ist relativ zu der Dimension, nicht nur Bits zählt. Wenn der Typ ein 1D-gepacktes Array oder ein integraler Typ ist, entspricht er $bits
.
$bits
Die Systemfunktion gibt die Anzahl der Bits zurück, die erforderlich sind, um einen Ausdruck als Bitstrom zu speichern.
$bits ([expression|type_identifier])
Es gibt 0 zurück, wenn sie mit einer dynamischen angepassten Art aufgerufen, die derzeit leer. Es ist ein Fehler, die Systemfunktion $bits
direkt mit einer dynamisch großen Typkennung zu verwenden.
Ich habe keine Ahnung über Ihre Frage, c <= [($size(a)+$size(b)-1]-:$bits(b)];
. Ist es ein gültiger Ausdruck in RHS? Sprechen Sie über den Ausdruck array range, [n +: m]
oder [n -: m]
?
$size()
gibt die Anzahl der Bits für eine einzelne Dimension an. $bits()
gibt die Anzahl der Bits an, die die Variable vollständig repräsentieren.
Zum Beispiel:
reg [9:0] a;
reg [9:0] b [5:0];
initial begin
$display("a Size ", $size(a));
$display("a Bits ", $bits(a));
$display("b Size ", $size(b));
$display("b Bits ", $bits(b)) ;
end
Gibt:
a Size 10
a Bits 10
b Size 6 // Depth of memory
b Bits 60 // Width * Depth
In Ihrem Fall müssen Sie nur noch 1 dimensionalen Arrays, nicht Erinnerungen oder structs so $size()
und $bits()
würde dasselbe sein.
'$ size (a)' = 10, '$ Größe (b) = 7',' $ Bits (b) '= 7:' c <= x [17-1-: 7] 'Diese sind alle Standardtypen, also "$ bits" und "$ size" wären gleich. – Morgan
Sie haben Recht. Aber mir ist nur nicht bewusst, dass es sich um einen Tippfehler oder eine echte Absicht für 'c <= [17 + 7-1] -: 7] handelt;' – jclin
Ach ja, Tippfehler 17 + 7-1. Beachten Sie auch, die Frage hat keine Variable, es ist nur ein Bereich, so dass es nicht gültig ist Verilog. – Morgan