# Pastebin Ke3ViPQS // 4-input LUT test. module luta(input [3:0] I, output O); always @* case(I) 4'b1000 : O = 1; 4'b1001 : O = 1; 4'b1010 : O = 1; 4'b1100 : O = 1; 4'b1110 : O = 1; 4'b1111 : O = 1; default : O = 0; endcase endmodule // top module lutb(input [3:0] I, output O); always @* case(I) 4'b1000 : O = 1; 4'b1001 : O = 1; 4'b1010 : O = 1; 4'b1100 : O = 1; 4'b1110 : O = 1; 4'b1111 : O = 1; default : O = 0; endcase endmodule // top module lutc(input [3:0] I, output O); always @* case(I) 4'b1000 : O = 1; 4'b1001 : O = 1; 4'b1010 : O = 1; 4'b1100 : O = 1; 4'b1110 : O = 1; 4'b1111 : O = 1; default : O = 0; endcase endmodule // top module lutd(input [3:0] I, output O); always @* case(I) 4'b1000 : O = 1; 4'b1001 : O = 1; 4'b1010 : O = 1; 4'b1100 : O = 1; 4'b1110 : O = 1; 4'b1111 : O = 1; default : O = 0; endcase endmodule // top module top(input [5:0] I, output O); wire cascade_a1tob1; wire cascade_b1toc1; wire cascade_c1tod1; wire cascade_d1toa2; wire cascade_a2tob2; wire cascade_b2toc2; wire cascade_c2tod2; luta luta1_i ({1'b1 , I[2:0]}, cascade_a1tob1); lutb lutb1_i ({cascade_a1tob1, I[3:1]}, cascade_b1toc1); lutc lutc1_i ({cascade_b1toc1, I[4:2]}, cascade_c1tod1); lutd lutd1_i ({cascade_c1tod1, I[5:3]}, cascade_d1toa2); luta luta2_i ({cascade_d1toa2, I[2:0]}, cascade_a2tob2); lutb lutb2_i ({cascade_a2tob2, I[3:1]}, cascade_b2toc2); lutc lutc2_i ({cascade_b2toc2, I[4:2]}, cascade_c2tod2); lutd lutd2_i ({cascade_c2tod2, I[5:3]}, O); endmodule // top