module gen_prod1(input [7:0] A,input neg,input zero,input one,input two,output [10:0] prod1);reg [7:0] D;reg [10:0] prod_pre;wire [3:0] m;assign m={{neg},{zero},{one},{two}};always @ (*) begincasex(m)4'b01xx: prod_pre <={{1{1'b1}},{!neg},{9{1'b0}}};4'b0x1x: prod_pre <= {{1'b1} ,{{!neg}},{1'b0}, A};4'b0xx1: prod_pre <= {{1'b1} ,{{!neg}}, A, {1'b0}};4'b1x1x:beginD[0]=A[0];D[1]=A[1]^A[0];D[2]=A[2]^(A[1]||A[0]);D[3]=A[3]^(A[2]||A[1]||A[0]);D[4]=A[4]^(A[3]||A[2]||A[1]||A[0]);D[5]=A[5]^(A[4]||A[3]||A[2]||A[1]||A[0]);D[6]=A[6]^(A[5]||A[4]||A[3]||A[2]||A[1]||A[0]);D[7]=A[7]^(A[6]||A[5]||A[4]||A[3]||A[2]||A[1]||A[0]);prod_pre <= {{1'b1} ,{{!neg}},{1'b1}, D};end4'b1xx1:beginD[0]=1'b0;D[1]=A[0]^{1'b0};D[2]=A[1]^A[0];D[3]=A[2]^(A[1]||A[0]);D[4]=A[3]^(A[2]||A[1]||A[0]);