RosettaCodeData/Task/Pancake-numbers/Verilog/pancake-numbers.v
2024-10-16 18:07:41 -07:00

30 lines
567 B
Verilog

module pancake;
integer i, j, n;
integer p;
initial begin
for (i = 0; i <= 3; i = i + 1) begin
for (j = 1; j <= 5; j = j + 1) begin
n = (i * 5) + j;
p = pancake(n);
$display("p(%0d) = %0d", n, p);
end
end
end
function integer pancake;
input integer n;
integer gap, sum, adj;
begin
gap = 2;
sum = 2;
adj = -1;
while (sum < n) begin
adj = adj + 1;
gap = (gap * 2) - 1;
sum = sum + gap;
end
pancake = n + adj;
end
endfunction
endmodule