Download Ulrich Golze

Transcript
3-21
3.4 Variablen und Konstanten
V20
Konstante
Konstanten können zu unterschiedlichen Basen gebildet werden. Wird keine Basis
angegeben, wird 10 verwendet. Es sind die Basen 2 ('b), 8 ('o), 10 ('d' oder gar
nichts) sowie 16 ('h) möglich. Mit der Angabe einer Konstantenbreite wird die
Angabe einer Basis zwingend. Die Breite der Konstante wird der Basis als Dezimalzahl vorangestellt.
Es sind lediglich die Ziffern der gewählten Basis zulässig (bei der Basis 2 etwa
nur 0 und 1) sowie die Zeichen x, z, ? und _. Den Wert „hochohmig“ stellt z dar.
Als „unbestimmt“ wird x interpretiert. Das Zeichen _ dient nur der besseren Lesbarkeit. Die Bedeutung von z und x wird in Beispiel 3.24 näher erläutert.
Im Beispiel 3.23 werden dem Register DATA einige typische Konstanten zugewiesen und ausgegeben. Die Formatierung ist nicht mehr %d, sondern %b zur Ausgabe
einer Binärzahl.
module constant_example;
reg [7:0] DATA;
initial begin
DATA =
0;
DATA =
10;
DATA =
'h10;
DATA =
'b10;
DATA =
255;
DATA =
1'b1;
DATA = 'bxxxxzzzz;
DATA = 'b1010_1010;
DATA =
1'bz;
DATA =
'bz;
end
endmodule
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
=
=
=
=
=
=
=
=
=
=
$display
$display
$display
$display
$display
$display
$display
$display
$display
$display
("DATA
("DATA
("DATA
("DATA
("DATA
("DATA
("DATA
("DATA
("DATA
("DATA
=
=
=
=
=
=
=
=
=
=
%b",
%b",
%b",
%b",
%b",
%b",
%b",
%b",
%b",
%b",
DATA);
DATA);
DATA);
DATA);
DATA);
DATA);
DATA);
DATA);
DATA);
DATA);
//
//
//
//
//
dezimal
0
dezimal 10
dezimal 16
dezimal
2
dezimal 255
00000000
00001010
00010000
00000010
11111111
00000001
xxxxzzzz
10101010
0000000z
zzzzzzzz
Beispiel 3.23 Konstanten
Durch
DATA = 1'b1;
erhält DATA den Wert 1, obwohl die Konstante explizit die Weite 1 Bit hat. Die
restlichen Bits werden durch 0 ergänzt. In
DATA = 'bz;