blob: 5da421a62bba287d53b9a6eab9d31fa0c45bfc8a [file] [log] [blame]
`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company:
// Engineer:
//
// Create Date: 09/21/2021 11:38:43 AM
// Design Name:
// Module Name: RP_Add_Sub_4bit
// Project Name:
// Target Devices:
// Tool Versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//////////////////////////////////////////////////////////////////////////////////
module RP_Add_Sub_4bit( IN_A,IN_B,MODE, OUT_SUM,OUT_COUT );
input [3:0]IN_A,IN_B;
input MODE;
output [3:0] OUT_SUM;
output OUT_COUT;
wire [3:0] IN_B_INV,IN_B_Selected;
assign IN_B_INV[0] = ~IN_B[0];
assign IN_B_INV[1] = ~IN_B[1];
assign IN_B_INV[2] = ~IN_B[2];
assign IN_B_INV[3] = ~IN_B[3];
MUX_2X1 dataSel0(.IN_A(IN_B_INV[0]),.IN_B(IN_B[0]),.S(MODE),.OUT(IN_B_Selected[0]));
MUX_2X1 dataSel1(.IN_A(IN_B_INV[1]),.IN_B(IN_B[1]),.S(MODE),.OUT(IN_B_Selected[1]));
MUX_2X1 dataSel2(.IN_A(IN_B_INV[2]),.IN_B(IN_B[2]),.S(MODE),.OUT(IN_B_Selected[2]));
MUX_2X1 dataSel3(.IN_A(IN_B_INV[3]),.IN_B(IN_B[3]),.S(MODE),.OUT(IN_B_Selected[3]));
RPA_4bit rp1(.IN_A(IN_A), .IN_B(IN_B_Selected), .IN_CIN(MODE),.OUT_SUM(OUT_SUM),.OUT_COUT(OUT_COUT));
endmodule