iverilog/ivtest/ivltests/pr1793749.v

30 lines
523 B
Verilog

module test;
reg [8:0] t1;
initial
main;
function integer log2;
input [31:0] arg;
for (log2=0; arg > 0; log2=log2+1)
arg = arg >> 1;
endfunction // log2
task main;
integer temp;
begin
t1 = 9'h0a5;
temp = log2($unsigned(t1 - t1 - 1'b1));
$display("%d", temp);
temp = log2($signed(t1 - t1 - 1'b1));
$display("%d", temp);
temp = log2({t1 - t1 - 1'b1});
$display("%d", temp);
temp = $bits(t1 - t1 - 1'b1);
$display("%d", temp);
end
endtask
endmodule