1module repwhile_test001(input [5:0] a, output [7:0] y, output [31:0] x);
2
3	function [7:0] mylog2;
4		input [31:0] value;
5		begin
6			mylog2 = 0;
7			while (value > 0) begin
8				value = value >> 1;
9				mylog2 = mylog2 + 1;
10			end
11		end
12	endfunction
13
14	function [31:0] myexp2;
15		input [7:0] value;
16		begin
17			myexp2 = 1;
18			repeat (value)
19				myexp2 = myexp2 << 1;
20		end
21	endfunction
22
23	reg [7:0] y_table [63:0];
24	reg [31:0] x_table [63:0];
25
26	integer i;
27	initial begin
28		for (i = 0; i < 64; i = i+1) begin
29			y_table[i] <= mylog2(i);
30			x_table[i] <= myexp2(i);
31		end
32	end
33
34	assign y = y_table[a];
35	assign x = x_table[a];
36endmodule
37