{"body":"\n    always @(mb_sig)\n    begin\n       mb_shift_sig = mb_sig << 18;\n    end\n \n    always @ (op_sig_gen_new or ma_sig_m or r_sig or c_sig_gen_new or a_sig)\n    begin\n       case (op_sig_gen_new[1:0])\n          2'b00 : a_mux = {r_sig};    // [53:0]\n          2'b01 : a_mux = ma_sig_m;\n          2'b10 : a_mux = {(signedr_sig & c_sig_gen_new[17]), c_sig_gen_new[17:0], a_sig};\n          2'b11 : a_mux = 0;\n       endcase\n    end\n\n    always @ (op_sig_gen_new or mb_sig_m or c_sig_gen_new or b_sig or mb_shift_sig)\n    begin\n       case (op_sig_gen_new[3:2])\n          2'b00 : b_mux = mb_shift_sig;\n          2'b01 : b_mux = mb_sig_m;\n          2'b10 : b_mux = {(signedr_sig & c_sig_gen_new[44]), c_sig_gen_new[44:27], b_sig};\n          2'b11 : b_mux = 0;\n       endcase \n    end\n\n    always @(cin_sig or signedcin_sig)\n    begin\n      if (signedcin_sig == 1'b1)\n        begin\n           cin_shift_sig[35:0] = cin_sig[53:18];\n           cin_shift_sig[54:36] = { cin_sig[53],\n                            cin_sig[53],\n                            cin_sig[53],\n                            cin_sig[53],\n                            cin_sig[53],\n                            cin_sig[53],\n                            cin_sig[53],\n                            cin_sig[53],\n                            cin_sig[53],\n                            cin_sig[53],\n                            cin_sig[53],\n                            cin_sig[53],\n                            cin_sig[53],\n                            cin_sig[53],\n                            cin_sig[53],\n                            cin_sig[53],\n                            cin_sig[53],\n                            cin_sig[53],\n                            cin_sig[53]};\n        end\n      else\n        begin\n           cin_shift_sig[35:0] =  cin_sig[53:18];\n           cin_shift_sig[54:36] = 0;\n        end\n    end\n \n    always @ (*)\n    begin\n       case (op_sig_gen_new[6:4])\n          3'b000 : c_mux = 0;\n          3'b001 : c_mux = cin_shift_sig;\n          3'b010 : c_mux = {signedcin_sig, cin_sig};\n          3'b011 : c_mux = {(c_sig_gen_new[53] & signedr_sig), c_sig_gen_new};     \n          3'b100 : c_mux = {(c_sig_gen_new[17] & signedr_sig), c_sig_gen_new[17:0], a_sig};\n//          3'b101 : c_mux = {r_sig[51], r_sig[51], r_sig[51:0]};\n          3'b101 : c_mux = {r_sig};     // [53:0]\n          3'b110 : c_mux = {1'b0, rnd_pattern};\n          3'b111 : c_mux = {1'b0, rnd_pattern_m1};\n       endcase\n    end\n\n    always @ (a_mux or b_mux or c_mux or op_sig_gen_new)\n    begin\n       case (op_sig_gen_new[10:7])\n          4'b0000 : r_out = ~(b_mux & c_mux);                 // nand\n          4'b0100 : begin \n                       r_out = (a_mux + b_mux + c_mux);\n                       r_out1 = (a_mux[53:0] + b_mux[53:0] + c_mux[53:0]);\n                    end\n          4'b0101 : begin\n                       r_out = (a_mux - b_mux + c_mux);\n                       r_out1 = (a_mux[53:0] - b_mux[53:0] + c_mux[53:0]);\n                    end\n          4'b0110 : begin\n                       r_out = (a_mux + b_mux - c_mux);\n                       r_out1 = (a_mux[53:0] + b_mux[53:0] - c_mux[53:0]);\n                    end\n          4'b0111 : begin\n                       r_out = (a_mux - b_mux - c_mux);\n                       r_out1 = (a_mux[53:0] - b_mux[53:0] - c_mux[53:0]);\n                    end\n          4'b1100 : r_out = (b_mux ^~ c_mux);                 // xnor\n          4'b1110 : r_out = (b_mux ^ c_mux);                  // xor\n          4'b1000 : r_out = (b_mux & c_mux);                  // and\n          4'b0011 : r_out = (b_mux | c_mux);                  // or\n          4'b1011 : r_out = ~(b_mux | c_mux);                 // nor\n       endcase\n    end","name":"","extension":"txt","url":"https://www.irccloud.com/pastebin/H6sTgMvP","modified":1546681938,"id":"H6sTgMvP","size":3721,"lines":100,"own_paste":false,"theme":"","date":1546681938}