mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-11-04 05:19:11 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			36 lines
		
	
	
	
		
			625 B
		
	
	
	
		
			Verilog
		
	
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
	
		
			625 B
		
	
	
	
		
			Verilog
		
	
	
	
	
	
module repwhile_test001(input [5:0] a, output [7:0] y, output [31:0] x);
 | 
						|
 | 
						|
	function [7:0] mylog2;
 | 
						|
		input [31:0] value;
 | 
						|
		begin
 | 
						|
			mylog2 = 0;
 | 
						|
			while (value > 0) begin
 | 
						|
				value = value >> 1;
 | 
						|
				mylog2 = mylog2 + 1;
 | 
						|
			end
 | 
						|
		end
 | 
						|
	endfunction
 | 
						|
 | 
						|
	function [31:0] myexp2;
 | 
						|
		input [7:0] value;
 | 
						|
		begin
 | 
						|
			myexp2 = 1;
 | 
						|
			repeat (value)
 | 
						|
				myexp2 = myexp2 << 1;
 | 
						|
		end
 | 
						|
	endfunction
 | 
						|
 | 
						|
	reg [7:0] y_table [63:0];
 | 
						|
	reg [31:0] x_table [63:0];
 | 
						|
 | 
						|
	integer i;
 | 
						|
	initial begin
 | 
						|
		for (i = 0; i < 64; i = i+1) begin
 | 
						|
			y_table[i] <= mylog2(i);
 | 
						|
			x_table[i] <= myexp2(i);
 | 
						|
		end
 | 
						|
	end
 | 
						|
 | 
						|
	assign y = y_table[a];
 | 
						|
	assign x = x_table[a];
 | 
						|
endmodule
 |