data/full_repos/permissive/181665138/verilog/capitolo_ii/Rete_Combinatoria_2.v
data/verilator_xmls/1835f061-93d4-4606-b63f-4725139337f8.xml
module Rete_Combinatoria_2(x2, x1, x0, z1, z0);
    input x2, x1, x0;
    output z1, z0;

    assign {z1, z0} = F(x2, x1, x0);


	function [1:0] F;
	    input x2, x1, x0;
	

	    casex({x2, x1, x0})
	        'B000 : F='B00;
	        'B001 : F='B01;
	        'B011 : F='B10;
	        'B010 : F='B10;
	        'B100 : F='B11;
	        'B101 : F='B11;
	        'B111 : F='B00;
	        'B110 : F='B00;
	    endcase
	endfunction


	function [1:0] F2;
	    input x2, x1, x0;
	
	    casex({x2, x1, x0})
	        'B001   : F2='B01;
	        'B011   : F2='B10;
	        'B010   : F2='B10;
	        'B100   : F2='B11;
	        'B101   : F2='B11;
	        default : F2='B00;
	    endcase
	endfunction


	function [1:0] F3;
	    input x2, x1, x0;
	
	    casex({x2, x1, x0})
	        'B001   : F3='B01;
	        'B01?   : F3='B10;
	        'B10?   : F3='B11;
	        default : F3='B00;
	    endcase
	endfunction
endmodule
module Rete_Combinatoria_2(x2, x1, x0, z1, z0);

    input x2, x1, x0;
    output z1, z0;

    assign {z1, z0} = F(x2, x1, x0);


	function [1:0] F;
	    input x2, x1, x0;
	

	    casex({x2, x1, x0})
	        'B000 : F='B00;
	        'B001 : F='B01;
	        'B011 : F='B10;
	        'B010 : F='B10;
	        'B100 : F='B11;
	        'B101 : F='B11;
	        'B111 : F='B00;
	        'B110 : F='B00;
	    endcase
	endfunction


	function [1:0] F2;
	    input x2, x1, x0;
	
	    casex({x2, x1, x0})
	        'B001   : F2='B01;
	        'B011   : F2='B10;
	        'B010   : F2='B10;
	        'B100   : F2='B11;
	        'B101   : F2='B11;
	        default : F2='B00;
	    endcase
	endfunction


	function [1:0] F3;
	    input x2, x1, x0;
	
	    casex({x2, x1, x0})
	        'B001   : F3='B01;
	        'B01?   : F3='B10;
	        'B10?   : F3='B11;
	        default : F3='B00;
	    endcase
	endfunction
endmodule