Логические типы данных (logic и bit)
Как и reg
, logic
хранит значения, находящиеся в одном из 4 состояний. Главным отличием его от регистра является то, что управлять значениями можно как в процедурных блоках, так и через непрерывное присваивание как у проводов. Для logic
может быть только 1 исходный сигнал (для проводов их может быть несколько).
Пример
module logic_tb;
logic[3:0] data;
logic x;
assign x = data[0];
initial begin
$display("data=0x%0h x=%0b", data, x);
data = 4'hB; $display("data=0x%0h x=%0b", data, x);
#1; $display("data=0x%0h x=%0b", data, x);
end
endmodule
Результат исполнения
data=0xx x=x
data=0xb x=x
data=0xb x=1
Значения типа bit
могут находиться в одном из двух состояний: логический 0 или 1. При приведении logic
(или reg
) в bit
значения z и x конвертируются в 0.
Пример
module bit_tb;
bit var_a;
bit [3:0] var_b;
logic [3:0] x_val;
initial begin
$display("var_a=%0b var_b=0x%0h", var_a, var_b);
var_a = 1; var_b = 4'hF;
$display("var_a=%0b var_b=0x%0h", var_a, var_b);
var_b = 16'h481a;
$display("var_b=0x%0h", var_b);
$display("var_b = %b", var_b);
end
endmodule
Результат исполнения
var_a=0 var_b=0x0
var_a=1 var_b=0xf
var_b=0xa
var_b = 1010
Last updated