blob: dff1c9a37bf1c9128193fbddf46c80717ebaeecb [file] [log] [blame]
module user_proj_example (
`ifdef USE_POWER_PINS
inout vccd1, // User area 1 1.8V supply
inout vssd1, // User area 1 digital ground
`endif
// Global Signals
input iClk,
input iRst_n, // Synchronous Reset_n
// Inputs
// Control Signals
input iValid,
input [2:0] iSize, // 000->2p; 001->4p; 010->8p; 011->16p; 1xx->32p
// Data Signals
input iSVAL,
input iSDAT,
// Outputs
output reg oSVAL,
output reg oSDAT
);
/*****************************************************************************
* Internal Wires and Registers Declarations *
*****************************************************************************/
wire Valid_n;
reg [2:0] Size;
// Input ShiftRegs
wire [255:0] RegIn_w;
reg [255:0] RegIn; // 32*8bit
// Core Signals
// Input Signals
wire [7:0] X0, X1, X2, X3, X4, X5, X6, X7,
/* 8.0 */ X8, X9, X10, X11, X12, X13, X14, X15,
X16, X17, X18, X19, X20, X21, X22, X23,
X24, X25, X26, X27, X28, X29, X30, X31;
// Output Signals
wire [12:0] /*13.0*/ Y0, Y16;
wire [18:0] /*14.5*/ Y8, Y24;
wire [19:0] /*14.6*/ Y4, Y20, Y12, Y28;
wire [21:0] /*14.8*/ Y2, Y18, Y10, Y26, Y6, Y22, Y14, Y30;
wire [23:0] /*14.10*/ Y1, Y17, Y9, Y25, Y5, Y21, Y13, Y29,
Y3, Y19, Y11, Y27, Y7, Y23, Y15, Y31;
// Output ShiftRegs
reg [9:0] CounterOut; // count 0 to 768
wire [9:0] CounterOut_plus1;
wire [9:0] CounterOut_w;
wire CounterOut_Rstn;
wire CounterEnd;
wire CounterEnd32, CounterEnd16, CounterEnd8, CounterEnd4, CounterEnd2;
wire ShiftCtrl;
reg [767:0] RegOut;
wire [767:0] RegOut_Sft;
wire [23:0] RegOut0, RegOut1, RegOut2, RegOut3,
RegOut4, RegOut5, RegOut6, RegOut7,
RegOut8, RegOut9, RegOut10, RegOut11,
RegOut12, RegOut13, RegOut14, RegOut15,
RegOut16, RegOut17, RegOut18, RegOut19,
RegOut20, RegOut21, RegOut22, RegOut23,
RegOut24, RegOut25, RegOut26, RegOut27,
RegOut28, RegOut29, RegOut30, RegOut31;
/*****************************************************************************
* Input ShiftRegs *
*****************************************************************************/
assign RegIn_w = (iSVAL) ? {RegIn[254:0], iSDAT} : RegIn;
always@(posedge iClk)
begin
RegIn <= {(256){iRst_n}} & RegIn_w;
end
assign X0 = RegIn[7:0];
assign X1 = RegIn[15:8];
assign X2 = RegIn[23:16];
assign X3 = RegIn[31:24];
assign X4 = RegIn[39:32];
assign X5 = RegIn[47:40];
assign X6 = RegIn[55:48];
assign X7 = RegIn[63:56];
assign X8 = RegIn[71:64];
assign X9 = RegIn[79:72];
assign X10 = RegIn[87:80];
assign X11 = RegIn[95:88];
assign X12 = RegIn[103:96];
assign X13 = RegIn[111:104];
assign X14 = RegIn[119:112];
assign X15 = RegIn[127:120];
assign X16 = RegIn[135:128];
assign X17 = RegIn[143:136];
assign X18 = RegIn[151:144];
assign X19 = RegIn[159:152];
assign X20 = RegIn[167:160];
assign X21 = RegIn[175:168];
assign X22 = RegIn[183:176];
assign X23 = RegIn[191:184];
assign X24 = RegIn[199:192];
assign X25 = RegIn[207:200];
assign X26 = RegIn[215:208];
assign X27 = RegIn[223:216];
assign X28 = RegIn[231:224];
assign X29 = RegIn[239:232];
assign X30 = RegIn[247:240];
assign X31 = RegIn[255:248];
/*****************************************************************************
* Internal Modules *
*****************************************************************************/
ACor_DCT_32p DCT32p (
// Input Signals
.iX0 (X0), .iX1 (X1), .iX2 (X2), .iX3 (X3),
.iX4 (X4), .iX5 (X5), .iX6 (X6), .iX7 (X7),
.iX8 (X8), .iX9 (X9), .iX10 (X10), .iX11 (X11),
.iX12 (X12), .iX13 (X13), .iX14 (X14), .iX15 (X15),
.iX16 (X16), .iX17 (X17), .iX18 (X18), .iX19 (X19),
.iX20 (X20), .iX21 (X21), .iX22 (X22), .iX23 (X23),
.iX24 (X24), .iX25 (X25), .iX26 (X26), .iX27 (X27),
.iX28 (X28), .iX29 (X29), .iX30 (X30), .iX31 (X31),
// Output Signals
.oY0 (Y0), .oY1 (Y1), .oY2 (Y2), .oY3 (Y3),
.oY4 (Y4), .oY5 (Y5), .oY6 (Y6), .oY7 (Y7),
.oY8 (Y8), .oY9 (Y9), .oY10 (Y10), .oY11 (Y11),
.oY12 (Y12), .oY13 (Y13), .oY14 (Y14), .oY15 (Y15),
.oY16 (Y16), .oY17 (Y17), .oY18 (Y18), .oY19 (Y19),
.oY20 (Y20), .oY21 (Y21), .oY22 (Y22), .oY23 (Y23),
.oY24 (Y24), .oY25 (Y25), .oY26 (Y26), .oY27 (Y27),
.oY28 (Y28), .oY29 (Y29), .oY30 (Y30), .oY31 (Y31)
);
/*****************************************************************************
* Output ShiftRegs *
*****************************************************************************/
always@(posedge iClk)
begin
Size <= iSize;
end
// ShiftCtrl = (CounterOut!=0);
assign ShiftCtrl = ((CounterOut[9]|CounterOut[8]) | (CounterOut[7]|CounterOut[6])) |
((CounterOut[5]|CounterOut[4]) | (CounterOut[3]|CounterOut[2])) |
(CounterOut[1]|CounterOut[0]);
// CounterEnd = (Size[2]) ? (CounterOut==768) :
// (Size[1]) ? ( (Size[0]) ? (CounterOut==384) : (CounterOut==192) ) :
// ( (Size[0]) ? (CounterOut== 96) : (CounterOut== 48) );
assign CounterEnd32 = CounterOut[9] & CounterOut[8];
assign CounterEnd16 = CounterOut[8] & CounterOut[7];
assign CounterEnd8 = CounterOut[7] & CounterOut[6];
assign CounterEnd4 = CounterOut[6] & CounterOut[5];
assign CounterEnd2 = CounterOut[5] & CounterOut[4];
assign CounterEnd = (Size[2]) ? CounterEnd32 :
(Size[1]) ? ( (Size[0]) ? CounterEnd16 : CounterEnd8 ) :
( (Size[0]) ? CounterEnd4 : CounterEnd2 );
/*always@(posedge iClk)
begin
if (~iRst_n|CounterEnd)
CounterOut <= 10'b0;
else if (iValid|ShiftCtrl)
CounterOut <= CounterOut + 1'b1;
else
CounterOut <= CounterOut;
end*/
Ripple_Add_10bit_plus1 CounterPlus1 (.iA (CounterOut), .oS (CounterOut_plus1));
assign CounterOut_w = (iValid|ShiftCtrl) ? CounterOut_plus1 : CounterOut;
assign CounterOut_Rstn = iRst_n & ~CounterEnd;
always@(posedge iClk)
begin
CounterOut <= {(10){CounterOut_Rstn}} & CounterOut_w;
end
always@(posedge iClk)
begin
oSVAL <= ShiftCtrl;
end
/*always@(posedge iClk)
begin
if (iValid)
RegOut <= { Y31, {Y30,2'b0}, Y29, { Y28, 4'b0},
Y27, {Y26,2'b0}, Y25, { Y24, 5'b0},
Y23, {Y22,2'b0}, Y21, { Y20, 4'b0},
Y19, {Y18,2'b0}, Y17, {Y16[12],Y16,10'b0},
Y15, {Y14,2'b0}, Y13, { Y12, 4'b0},
Y11, {Y10,2'b0}, Y9, { Y8, 5'b0},
Y7, {Y6 ,2'b0}, Y5, { Y4, 4'b0},
Y3, {Y2 ,2'b0}, Y1, {Y0[12], Y0, 10'b0}};
else if (ShiftCtrl)
RegOut <= {1'b0, RegOut[767:1]};
else
RegOut <= RegOut;
end*/
assign RegOut_Sft[766:0] = (ShiftCtrl) ? RegOut[767:1] : RegOut[766:0];
assign RegOut_Sft[767] = ~ShiftCtrl & RegOut[767];
assign Valid_n = ~iValid;
assign RegOut0[9:0] = {(10){Valid_n}} & RegOut_Sft[9:0];
assign RegOut0[23:10] = (iValid) ? {Y0[12], Y0} : RegOut_Sft[23:10];
assign RegOut1 = (iValid) ? Y1 : RegOut_Sft[47:24];
assign RegOut2[1:0] = {(2){Valid_n}} & RegOut_Sft[49:48];
assign RegOut2[23:2] = (iValid) ? Y2 : RegOut_Sft[71:50];
assign RegOut3 = (iValid) ? Y3 : RegOut_Sft[95:72];
assign RegOut4[3:0] = {(4){Valid_n}} & RegOut_Sft[99:96];
assign RegOut4[23:4] = (iValid) ? Y4 : RegOut_Sft[119:100];
assign RegOut5 = (iValid) ? Y5 : RegOut_Sft[143:120];
assign RegOut6[1:0] = {(2){Valid_n}} & RegOut_Sft[145:144];
assign RegOut6[23:2] = (iValid) ? Y6 : RegOut_Sft[167:146];
assign RegOut7 = (iValid) ? Y7 : RegOut_Sft[191:168];
assign RegOut8[4:0] = {(5){Valid_n}} & RegOut_Sft[196:192];
assign RegOut8[23:5] = (iValid) ? Y8 : RegOut_Sft[215:197];
assign RegOut9 = (iValid) ? Y9 : RegOut_Sft[239:216];
assign RegOut10[1:0] = {(2){Valid_n}} & RegOut_Sft[241:240];
assign RegOut10[23:2] = (iValid) ? Y10 : RegOut_Sft[263:242];
assign RegOut11 = (iValid) ? Y11 : RegOut_Sft[287:264];
assign RegOut12[3:0] = {(4){Valid_n}} & RegOut_Sft[291:288];
assign RegOut12[23:4] = (iValid) ? Y12 : RegOut_Sft[311:292];
assign RegOut13 = (iValid) ? Y13 : RegOut_Sft[335:312];
assign RegOut14[1:0] = {(2){Valid_n}} & RegOut_Sft[337:336];
assign RegOut14[23:2] = (iValid) ? Y14 : RegOut_Sft[359:338];
assign RegOut15 = (iValid) ? Y15 : RegOut_Sft[383:360];
assign RegOut16[9:0] = {(10){Valid_n}} & RegOut_Sft[393:384];
assign RegOut16[23:10] = (iValid) ? {Y16[12],Y16} : RegOut_Sft[407:394];
assign RegOut17 = (iValid) ? Y17 : RegOut_Sft[431:408];
assign RegOut18[1:0] = {(2){Valid_n}} & RegOut_Sft[433:432];
assign RegOut18[23:2] = (iValid) ? Y18 : RegOut_Sft[455:434];
assign RegOut19 = (iValid) ? Y19 : RegOut_Sft[479:456];
assign RegOut20[3:0] = {(4){Valid_n}} & RegOut_Sft[483:480];
assign RegOut20[23:4] = (iValid) ? Y20 : RegOut_Sft[503:484];
assign RegOut21 = (iValid) ? Y21 : RegOut_Sft[527:504];
assign RegOut22[1:0] = {(2){Valid_n}} & RegOut_Sft[529:528];
assign RegOut22[23:2] = (iValid) ? Y22 : RegOut_Sft[551:530];
assign RegOut23 = (iValid) ? Y23 : RegOut_Sft[575:552];
assign RegOut24[4:0] = {(5){Valid_n}} & RegOut_Sft[580:576];
assign RegOut24[23:5] = (iValid) ? Y24 : RegOut_Sft[599:581];
assign RegOut25 = (iValid) ? Y25 : RegOut_Sft[623:600];
assign RegOut26[1:0] = {(2){Valid_n}} & RegOut_Sft[625:624];
assign RegOut26[23:2] = (iValid) ? Y26 : RegOut_Sft[647:626];
assign RegOut27 = (iValid) ? Y27 : RegOut_Sft[671:648];
assign RegOut28[3:0] = {(4){Valid_n}} & RegOut_Sft[675:672];
assign RegOut28[23:4] = (iValid) ? Y28 : RegOut_Sft[695:676];
assign RegOut29 = (iValid) ? Y29 : RegOut_Sft[719:696];
assign RegOut30[1:0] = {(2){Valid_n}} & RegOut_Sft[721:720];
assign RegOut30[23:2] = (iValid) ? Y30 : RegOut_Sft[743:722];
assign RegOut31 = (iValid) ? Y31 : RegOut_Sft[767:744];
always@(posedge iClk)
begin
RegOut <= {RegOut31, RegOut30, RegOut29, RegOut28,
RegOut27, RegOut26, RegOut25, RegOut24,
RegOut23, RegOut22, RegOut21, RegOut20,
RegOut19, RegOut18, RegOut17, RegOut16,
RegOut15, RegOut14, RegOut13, RegOut12,
RegOut11, RegOut10, RegOut9, RegOut8,
RegOut7, RegOut6, RegOut5, RegOut4,
RegOut3, RegOut2, RegOut1, RegOut0};
end
always@(posedge iClk)
begin
oSDAT <= RegOut[0];
end
endmodule
module Ripple_Add_10bit_plus1 (
// Input Signals
input [9:0] iA,
// Output Signals
output [9:0] oS
);
wire [7:0] C;
assign oS[0] = ~iA[0];
FA_Cir_Cin0 S1 (.iA (iA[1]), .iB (iA[0]), .oS (oS[1]), .oC (C[0]));
FA_Cir_Cin0 S2 (.iA (iA[2]), .iB (C[0]), .oS (oS[2]), .oC (C[1]));
FA_Cir_Cin0 S3 (.iA (iA[3]), .iB (C[1]), .oS (oS[3]), .oC (C[2]));
FA_Cir_Cin0 S4 (.iA (iA[4]), .iB (C[2]), .oS (oS[4]), .oC (C[3]));
FA_Cir_Cin0 S5 (.iA (iA[5]), .iB (C[3]), .oS (oS[5]), .oC (C[4]));
FA_Cir_Cin0 S6 (.iA (iA[6]), .iB (C[4]), .oS (oS[6]), .oC (C[5]));
FA_Cir_Cin0 S7 (.iA (iA[7]), .iB (C[5]), .oS (oS[7]), .oC (C[6]));
FA_Cir_Cin0 S8 (.iA (iA[8]), .iB (C[6]), .oS (oS[8]), .oC (C[7]));
assign oS[9] = iA[9]^C[7];
endmodule
module ACor_DCT_32p (
// Input Signals
input [7:0] iX0, iX1, iX2, iX3, iX4, iX5, iX6, iX7,
/* 8.0 */ iX8, iX9, iX10, iX11, iX12, iX13, iX14, iX15,
iX16, iX17, iX18, iX19, iX20, iX21, iX22, iX23,
iX24, iX25, iX26, iX27, iX28, iX29, iX30, iX31,
// Output Signals
output [12:0] /*13.0*/ oY0, oY16,
output [18:0] /*14.5*/ oY8, oY24,
output [19:0] /*14.6*/ oY4, oY20, oY12, oY28,
output [21:0] /*14.8*/ oY2, oY18, oY10, oY26,
oY6, oY22, oY14, oY30,
output [23:0] /*14.10*/ oY1, oY17, oY9, oY25,
oY5, oY21, oY13, oY29,
oY3, oY19, oY11, oY27,
oY7, oY23, oY15, oY31
);
/*****************************************************************************
* Internal Wires and Registers Declarations *
*****************************************************************************/
// Stage1
wire [8:0] A0, A1, A2, A3, A4, A5, A6, A7,
/* 9.0 */ A8, A9, A10, A11, A12, A13, A14, A15,
A16, A17, A18, A19, A20, A21, A22, A23,
A24, A25, A26, A27, A28, A29, A30, A31;
// Stage2
wire [9:0] B0, B1, B2, B3, B4, B5, B6, B7,
/*10. 0*/ B8, B9, B10, B11, B12, B13, B14, B15;
wire [20:0] B16_0a, B16_0b, B17_4a, B17_4b, B18_6a, B18_6b, B19_3a, B19_3b,
/*11.10*/ B20_3a, B20_3b, B21_6a, B21_6b, B22_4a, B22_4b, B23_0a, B23_0b;
wire [19:0] B16_7a, B16_7b, B17_1a, B17_1b, B18_3a, B18_3b, B19_5a, B19_5b,
/*11.9 */ B20_5a, B20_5b, B21_3a, B21_3b, B22_1a, B22_1b, B23_7a, B23_7b;
wire [20:0] B16_4a, B16_4b, B17_3a, B17_3b, B18_0a, B18_0b, B19_7a, B19_7b,
/*11.10*/ B20_7a, B20_7b, B21_0a, B21_0b, B22_3a, B22_3b, B23_4a, B23_4b;
wire [15:0] B16_3a, B16_3b, B17_7a, B17_7b, B18_4a, B18_4b, B19_1a, B19_1b,
/*11.5 */ B20_1a, B20_1b, B21_4a, B21_4b, B22_7a, B22_7b, B23_3a, B23_3b;
wire [17:0] B16_2a, B16_2b, B17_6a, B17_6b, B18_5a, B18_5b, B19_0a, B19_0b,
/*11.7 */ B20_0a, B20_0b, B21_5a, B21_5b, B22_6a, B22_6b, B23_2a, B23_2b;
wire [15:0] B16_5a, B16_5b, B17_2a, B17_2b, B18_1a, B18_1b, B19_6a, B19_6b,
/*11.5 */ B20_6a, B20_6b, B21_1a, B21_1b, B22_2a, B22_2b, B23_5a, B23_5b;
wire [13:0] B16_6a, B16_6b, B17_0a, B17_0b, B18_2a, B18_2b, B19_4a, B19_4b,
/*11.3 */ B20_4a, B20_4b, B21_2a, B21_2b, B22_0a, B22_0b, B23_6a, B23_6b;
wire [14:0] B16_1a, B16_1b, B17_5a, B17_5b, B18_7a, B18_7b, B19_2a, B19_2b,
/*11.4 */ B20_2a, B20_2b, B21_7a, B21_7b, B22_5a, B22_5b, B23_1a, B23_1b;
// Stage3
wire [10:0] /*11.0*/ C0, C1, C2, C3, C4, C5, C6, C7;
wire [19:0] /*12.8 */ C8_0a, C8_0b, C9_3a, C9_3b,
C10_3a, C10_3b, C11_0a, C11_0b;
wire [17:0] /*12.6 */ C8_3a, C8_3b, C9_1a, C9_1b,
C10_1a, C10_1b, C11_3a, C11_3b;
wire [17:0] /*12.6 */ C8_2a, C8_2b, C9_0a, C9_0b,
C10_0a, C10_0b, C11_2a, C11_2b;
wire [14:0] /*12.3 */ C8_1a, C8_1b, C9_2a, C9_2b,
C10_2a, C10_2b, C11_1a, C11_1b;
wire [21:0] /*12.10*/ C12_0a, C12_0b, C12_1a, C12_1b;
wire [18:0] /*12.7 */ C12_2a, C12_2b, C12_3a, C12_3b;
wire [21:0] /*12.10*/ C12_4a, C12_4b, C12_5a, C12_5b;
wire [20:0] /*12.9 */ C12_6a, C12_6b, C12_7a, C12_7b;
wire [21:0] /*12.10*/ C13_0a, C13_0b, C13_1a, C13_1b;
wire [20:0] /*12.9 */ C13_2a, C13_2b, C13_3a, C13_3b;
wire [18:0] /*12.7 */ C13_4a, C13_4b, C13_5a, C13_5b;
wire [21:0] /*12.10*/ C13_6a, C13_6b, C13_7a, C13_7b;
wire [18:0] /*12.7 */ C14_0a, C14_0b, C14_1a, C14_1b;
wire [21:0] /*12.10*/ C14_2a, C14_2b, C14_3a, C14_3b;
wire [20:0] /*12.9 */ C14_4a, C14_4b, C14_5a, C14_5b;
wire [21:0] /*12.10*/ C14_6a, C14_6b, C14_7a, C14_7b;
wire [20:0] /*12.9 */ C15_0a, C15_0b, C15_1a, C15_1b;
wire [21:0] /*12.10*/ C15_2a, C15_2b, C15_3a, C15_3b;
wire [21:0] /*12.10*/ C15_4a, C15_4b, C15_5a, C15_5b;
wire [18:0] /*12.7 */ C15_6a, C15_6b, C15_7a, C15_7b;
// Stage4
wire [11:0] /*12.0*/ D0, D1, D2, D3;
wire [18:0] /*13.6 */ D4_0a, D4_0b, D5_1a, D5_1b;
wire [16:0] /*13.4 */ D4_1a, D4_1b, D5_0a, D5_0b;
wire [20:0] /*13.8 */ D6_0a, D6_0b, D6_1a, D6_1b;
wire [18:0] /*13.6 */ D6_2a, D6_2b, D6_3a, D6_3b;
wire [18:0] /*13.6 */ D7_0a, D7_0b, D7_1a, D7_1b;
wire [20:0] /*13.8 */ D7_2a, D7_2b, D7_3a, D7_3b;
wire [22:0] /*13.10*/ D8_0a, D8_0b, D8_1a, D8_1b,
D8_2a, D8_2b, D8_3a, D8_3b,
D8_4a, D8_4b, D8_5a, D8_5b,
D8_6a, D8_6b, D8_7a, D8_7b;
wire [22:0] /*13.10*/ D9_0a, D9_0b, D9_1a, D9_1b,
D9_2a, D9_2b, D9_3a, D9_3b,
D9_4a, D9_4b, D9_5a, D9_5b,
D9_6a, D9_6b, D9_7a, D9_7b;
// Stage5
wire [12:0] /*13.0*/ E0, E1;
wire [18:0] /*14.5 */ E2, E3;
wire [19:0] /*14.6 */ E4, E5, E6, E7;
wire [21:0] /*14.8 */ E8, E9, E10, E11,
E12, E13, E14, E15;
wire [23:0] /*14.10 */ E16, E17, E18, E19,
E20, E21, E22, E23,
E24, E25, E26, E27,
E28, E29, E30, E31;
/*****************************************************************************
* Internal Modules *
*****************************************************************************/
// Stage1
ACor_DCT_32p_S1 Stage1 (
// Input Signals
.iX0 (iX0), .iX1 (iX1), .iX2 (iX2), .iX3 (iX3),
.iX4 (iX4), .iX5 (iX5), .iX6 (iX6), .iX7 (iX7),
.iX8 (iX8), .iX9 (iX9), .iX10 (iX10), .iX11 (iX11),
.iX12 (iX12), .iX13 (iX13), .iX14 (iX14), .iX15 (iX15),
.iX16 (iX16), .iX17 (iX17), .iX18 (iX18), .iX19 (iX19),
.iX20 (iX20), .iX21 (iX21), .iX22 (iX22), .iX23 (iX23),
.iX24 (iX24), .iX25 (iX25), .iX26 (iX26), .iX27 (iX27),
.iX28 (iX28), .iX29 (iX29), .iX30 (iX30), .iX31 (iX31),
// Output Signals
.oA0 (A0), .oA1 (A1), .oA2 (A2), .oA3 (A3),
.oA4 (A4), .oA5 (A5), .oA6 (A6), .oA7 (A7),
.oA8 (A8), .oA9 (A9), .oA10 (A10), .oA11 (A11),
.oA12 (A12), .oA13 (A13), .oA14 (A14), .oA15 (A15),
.oA16 (A16), .oA17 (A17), .oA18 (A18), .oA19 (A19),
.oA20 (A20), .oA21 (A21), .oA22 (A22), .oA23 (A23),
.oA24 (A24), .oA25 (A25), .oA26 (A26), .oA27 (A27),
.oA28 (A28), .oA29 (A29), .oA30 (A30), .oA31 (A31)
);
// Stage2
ACor_DCT_32p_S2 Stage2 (
// Input Signals
.iA0 (A0), .iA1 (A1), .iA2 (A2), .iA3 (A3),
.iA4 (A4), .iA5 (A5), .iA6 (A6), .iA7 (A7),
.iA8 (A8), .iA9 (A9), .iA10 (A10), .iA11 (A11),
.iA12 (A12), .iA13 (A13), .iA14 (A14), .iA15 (A15),
.iA16 (A16), .iA17 (A17), .iA18 (A18), .iA19 (A19),
.iA20 (A20), .iA21 (A21), .iA22 (A22), .iA23 (A23),
.iA24 (A24), .iA25 (A25), .iA26 (A26), .iA27 (A27),
.iA28 (A28), .iA29 (A29), .iA30 (A30), .iA31 (A31),
// Output Signals
.oB0 (B0), .oB1 (B1), .oB2 (B2), .oB3 (B3),
.oB4 (B4), .oB5 (B5), .oB6 (B6), .oB7 (B7),
.oB8 (B8), .oB9 (B9), .oB10 (B10), .oB11 (B11),
.oB12 (B12), .oB13 (B13), .oB14 (B14), .oB15 (B15),
.oB16_0a (B16_0a), .oB16_0b (B16_0b), .oB16_1a (B16_1a), .oB16_1b (B16_1b),
.oB16_2a (B16_2a), .oB16_2b (B16_2b), .oB16_3a (B16_3a), .oB16_3b (B16_3b),
.oB16_4a (B16_4a), .oB16_4b (B16_4b), .oB16_5a (B16_5a), .oB16_5b (B16_5b),
.oB16_6a (B16_6a), .oB16_6b (B16_6b), .oB16_7a (B16_7a), .oB16_7b (B16_7b),
.oB17_0a (B17_0a), .oB17_0b (B17_0b), .oB17_1a (B17_1a), .oB17_1b (B17_1b),
.oB17_2a (B17_2a), .oB17_2b (B17_2b), .oB17_3a (B17_3a), .oB17_3b (B17_3b),
.oB17_4a (B17_4a), .oB17_4b (B17_4b), .oB17_5a (B17_5a), .oB17_5b (B17_5b),
.oB17_6a (B17_6a), .oB17_6b (B17_6b), .oB17_7a (B17_7a), .oB17_7b (B17_7b),
.oB18_0a (B18_0a), .oB18_0b (B18_0b), .oB18_1a (B18_1a), .oB18_1b (B18_1b),
.oB18_2a (B18_2a), .oB18_2b (B18_2b), .oB18_3a (B18_3a), .oB18_3b (B18_3b),
.oB18_4a (B18_4a), .oB18_4b (B18_4b), .oB18_5a (B18_5a), .oB18_5b (B18_5b),
.oB18_6a (B18_6a), .oB18_6b (B18_6b), .oB18_7a (B18_7a), .oB18_7b (B18_7b),
.oB19_0a (B19_0a), .oB19_0b (B19_0b), .oB19_1a (B19_1a), .oB19_1b (B19_1b),
.oB19_2a (B19_2a), .oB19_2b (B19_2b), .oB19_3a (B19_3a), .oB19_3b (B19_3b),
.oB19_4a (B19_4a), .oB19_4b (B19_4b), .oB19_5a (B19_5a), .oB19_5b (B19_5b),
.oB19_6a (B19_6a), .oB19_6b (B19_6b), .oB19_7a (B19_7a), .oB19_7b (B19_7b),
.oB20_0a (B20_0a), .oB20_0b (B20_0b), .oB20_1a (B20_1a), .oB20_1b (B20_1b),
.oB20_2a (B20_2a), .oB20_2b (B20_2b), .oB20_3a (B20_3a), .oB20_3b (B20_3b),
.oB20_4a (B20_4a), .oB20_4b (B20_4b), .oB20_5a (B20_5a), .oB20_5b (B20_5b),
.oB20_6a (B20_6a), .oB20_6b (B20_6b), .oB20_7a (B20_7a), .oB20_7b (B20_7b),
.oB21_0a (B21_0a), .oB21_0b (B21_0b), .oB21_1a (B21_1a), .oB21_1b (B21_1b),
.oB21_2a (B21_2a), .oB21_2b (B21_2b), .oB21_3a (B21_3a), .oB21_3b (B21_3b),
.oB21_4a (B21_4a), .oB21_4b (B21_4b), .oB21_5a (B21_5a), .oB21_5b (B21_5b),
.oB21_6a (B21_6a), .oB21_6b (B21_6b), .oB21_7a (B21_7a), .oB21_7b (B21_7b),
.oB22_0a (B22_0a), .oB22_0b (B22_0b), .oB22_1a (B22_1a), .oB22_1b (B22_1b),
.oB22_2a (B22_2a), .oB22_2b (B22_2b), .oB22_3a (B22_3a), .oB22_3b (B22_3b),
.oB22_4a (B22_4a), .oB22_4b (B22_4b), .oB22_5a (B22_5a), .oB22_5b (B22_5b),
.oB22_6a (B22_6a), .oB22_6b (B22_6b), .oB22_7a (B22_7a), .oB22_7b (B22_7b),
.oB23_0a (B23_0a), .oB23_0b (B23_0b), .oB23_1a (B23_1a), .oB23_1b (B23_1b),
.oB23_2a (B23_2a), .oB23_2b (B23_2b), .oB23_3a (B23_3a), .oB23_3b (B23_3b),
.oB23_4a (B23_4a), .oB23_4b (B23_4b), .oB23_5a (B23_5a), .oB23_5b (B23_5b),
.oB23_6a (B23_6a), .oB23_6b (B23_6b), .oB23_7a (B23_7a), .oB23_7b (B23_7b)
);
// Stage3
ACor_DCT_32p_S3 Stage3 (
// Input Signals
.iB0 (B0), .iB1 (B1), .iB2 (B2), .iB3 (B3),
.iB4 (B4), .iB5 (B5), .iB6 (B6), .iB7 (B7),
.iB8 (B8), .iB9 (B9), .iB10 (B10), .iB11 (B11),
.iB12 (B12), .iB13 (B13), .iB14 (B14), .iB15 (B15),
.iB16_0a (B16_0a), .iB16_0b (B16_0b), .iB16_1a (B16_1a), .iB16_1b (B16_1b),
.iB16_2a (B16_2a), .iB16_2b (B16_2b), .iB16_3a (B16_3a), .iB16_3b (B16_3b),
.iB16_4a (B16_4a), .iB16_4b (B16_4b), .iB16_5a (B16_5a), .iB16_5b (B16_5b),
.iB16_6a (B16_6a), .iB16_6b (B16_6b), .iB16_7a (B16_7a), .iB16_7b (B16_7b),
.iB17_0a (B17_0a), .iB17_0b (B17_0b), .iB17_1a (B17_1a), .iB17_1b (B17_1b),
.iB17_2a (B17_2a), .iB17_2b (B17_2b), .iB17_3a (B17_3a), .iB17_3b (B17_3b),
.iB17_4a (B17_4a), .iB17_4b (B17_4b), .iB17_5a (B17_5a), .iB17_5b (B17_5b),
.iB17_6a (B17_6a), .iB17_6b (B17_6b), .iB17_7a (B17_7a), .iB17_7b (B17_7b),
.iB18_0a (B18_0a), .iB18_0b (B18_0b), .iB18_1a (B18_1a), .iB18_1b (B18_1b),
.iB18_2a (B18_2a), .iB18_2b (B18_2b), .iB18_3a (B18_3a), .iB18_3b (B18_3b),
.iB18_4a (B18_4a), .iB18_4b (B18_4b), .iB18_5a (B18_5a), .iB18_5b (B18_5b),
.iB18_6a (B18_6a), .iB18_6b (B18_6b), .iB18_7a (B18_7a), .iB18_7b (B18_7b),
.iB19_0a (B19_0a), .iB19_0b (B19_0b), .iB19_1a (B19_1a), .iB19_1b (B19_1b),
.iB19_2a (B19_2a), .iB19_2b (B19_2b), .iB19_3a (B19_3a), .iB19_3b (B19_3b),
.iB19_4a (B19_4a), .iB19_4b (B19_4b), .iB19_5a (B19_5a), .iB19_5b (B19_5b),
.iB19_6a (B19_6a), .iB19_6b (B19_6b), .iB19_7a (B19_7a), .iB19_7b (B19_7b),
.iB20_0a (B20_0a), .iB20_0b (B20_0b), .iB20_1a (B20_1a), .iB20_1b (B20_1b),
.iB20_2a (B20_2a), .iB20_2b (B20_2b), .iB20_3a (B20_3a), .iB20_3b (B20_3b),
.iB20_4a (B20_4a), .iB20_4b (B20_4b), .iB20_5a (B20_5a), .iB20_5b (B20_5b),
.iB20_6a (B20_6a), .iB20_6b (B20_6b), .iB20_7a (B20_7a), .iB20_7b (B20_7b),
.iB21_0a (B21_0a), .iB21_0b (B21_0b), .iB21_1a (B21_1a), .iB21_1b (B21_1b),
.iB21_2a (B21_2a), .iB21_2b (B21_2b), .iB21_3a (B21_3a), .iB21_3b (B21_3b),
.iB21_4a (B21_4a), .iB21_4b (B21_4b), .iB21_5a (B21_5a), .iB21_5b (B21_5b),
.iB21_6a (B21_6a), .iB21_6b (B21_6b), .iB21_7a (B21_7a), .iB21_7b (B21_7b),
.iB22_0a (B22_0a), .iB22_0b (B22_0b), .iB22_1a (B22_1a), .iB22_1b (B22_1b),
.iB22_2a (B22_2a), .iB22_2b (B22_2b), .iB22_3a (B22_3a), .iB22_3b (B22_3b),
.iB22_4a (B22_4a), .iB22_4b (B22_4b), .iB22_5a (B22_5a), .iB22_5b (B22_5b),
.iB22_6a (B22_6a), .iB22_6b (B22_6b), .iB22_7a (B22_7a), .iB22_7b (B22_7b),
.iB23_0a (B23_0a), .iB23_0b (B23_0b), .iB23_1a (B23_1a), .iB23_1b (B23_1b),
.iB23_2a (B23_2a), .iB23_2b (B23_2b), .iB23_3a (B23_3a), .iB23_3b (B23_3b),
.iB23_4a (B23_4a), .iB23_4b (B23_4b), .iB23_5a (B23_5a), .iB23_5b (B23_5b),
.iB23_6a (B23_6a), .iB23_6b (B23_6b), .iB23_7a (B23_7a), .iB23_7b (B23_7b),
// Output Signals
.oC0 (C0), .oC1 (C1), .oC2 (C2), .oC3 (C3),
.oC4 (C4), .oC5 (C5), .oC6 (C6), .oC7 (C7),
.oC8_0a (C8_0a), .oC8_0b (C8_0b), .oC8_1a (C8_1a), .oC8_1b (C8_1b),
.oC8_2a (C8_2a), .oC8_2b (C8_2b), .oC8_3a (C8_3a), .oC8_3b (C8_3b),
.oC9_0a (C9_0a), .oC9_0b (C9_0b), .oC9_1a (C9_1a), .oC9_1b (C9_1b),
.oC9_2a (C9_2a), .oC9_2b (C9_2b), .oC9_3a (C9_3a), .oC9_3b (C9_3b),
.oC10_0a (C10_0a), .oC10_0b (C10_0b), .oC10_1a (C10_1a), .oC10_1b (C10_1b),
.oC10_2a (C10_2a), .oC10_2b (C10_2b), .oC10_3a (C10_3a), .oC10_3b (C10_3b),
.oC11_0a (C11_0a), .oC11_0b (C11_0b), .oC11_1a (C11_1a), .oC11_1b (C11_1b),
.oC11_2a (C11_2a), .oC11_2b (C11_2b), .oC11_3a (C11_3a), .oC11_3b (C11_3b),
.oC12_0a (C12_0a), .oC12_0b (C12_0b), .oC12_1a (C12_1a), .oC12_1b (C12_1b),
.oC12_2a (C12_2a), .oC12_2b (C12_2b), .oC12_3a (C12_3a), .oC12_3b (C12_3b),
.oC12_4a (C12_4a), .oC12_4b (C12_4b), .oC12_5a (C12_5a), .oC12_5b (C12_5b),
.oC12_6a (C12_6a), .oC12_6b (C12_6b), .oC12_7a (C12_7a), .oC12_7b (C12_7b),
.oC13_0a (C13_0a), .oC13_0b (C13_0b), .oC13_1a (C13_1a), .oC13_1b (C13_1b),
.oC13_2a (C13_2a), .oC13_2b (C13_2b), .oC13_3a (C13_3a), .oC13_3b (C13_3b),
.oC13_4a (C13_4a), .oC13_4b (C13_4b), .oC13_5a (C13_5a), .oC13_5b (C13_5b),
.oC13_6a (C13_6a), .oC13_6b (C13_6b), .oC13_7a (C13_7a), .oC13_7b (C13_7b),
.oC14_0a (C14_0a), .oC14_0b (C14_0b), .oC14_1a (C14_1a), .oC14_1b (C14_1b),
.oC14_2a (C14_2a), .oC14_2b (C14_2b), .oC14_3a (C14_3a), .oC14_3b (C14_3b),
.oC14_4a (C14_4a), .oC14_4b (C14_4b), .oC14_5a (C14_5a), .oC14_5b (C14_5b),
.oC14_6a (C14_6a), .oC14_6b (C14_6b), .oC14_7a (C14_7a), .oC14_7b (C14_7b),
.oC15_0a (C15_0a), .oC15_0b (C15_0b), .oC15_1a (C15_1a), .oC15_1b (C15_1b),
.oC15_2a (C15_2a), .oC15_2b (C15_2b), .oC15_3a (C15_3a), .oC15_3b (C15_3b),
.oC15_4a (C15_4a), .oC15_4b (C15_4b), .oC15_5a (C15_5a), .oC15_5b (C15_5b),
.oC15_6a (C15_6a), .oC15_6b (C15_6b), .oC15_7a (C15_7a), .oC15_7b (C15_7b)
);
// Stage4
ACor_DCT_32p_S4 Stage4 (
// Input Signals
.iC0 (C0), .iC1 (C1), .iC2 (C2), .iC3 (C3),
.iC4 (C4), .iC5 (C5), .iC6 (C6), .iC7 (C7),
.iC8_0a (C8_0a), .iC8_0b (C8_0b), .iC8_1a (C8_1a), .iC8_1b (C8_1b),
.iC8_2a (C8_2a), .iC8_2b (C8_2b), .iC8_3a (C8_3a), .iC8_3b (C8_3b),
.iC9_0a (C9_0a), .iC9_0b (C9_0b), .iC9_1a (C9_1a), .iC9_1b (C9_1b),
.iC9_2a (C9_2a), .iC9_2b (C9_2b), .iC9_3a (C9_3a), .iC9_3b (C9_3b),
.iC10_0a (C10_0a), .iC10_0b (C10_0b), .iC10_1a (C10_1a), .iC10_1b (C10_1b),
.iC10_2a (C10_2a), .iC10_2b (C10_2b), .iC10_3a (C10_3a), .iC10_3b (C10_3b),
.iC11_0a (C11_0a), .iC11_0b (C11_0b), .iC11_1a (C11_1a), .iC11_1b (C11_1b),
.iC11_2a (C11_2a), .iC11_2b (C11_2b), .iC11_3a (C11_3a), .iC11_3b (C11_3b),
.iC12_0a (C12_0a), .iC12_0b (C12_0b), .iC12_1a (C12_1a), .iC12_1b (C12_1b),
.iC12_2a (C12_2a), .iC12_2b (C12_2b), .iC12_3a (C12_3a), .iC12_3b (C12_3b),
.iC12_4a (C12_4a), .iC12_4b (C12_4b), .iC12_5a (C12_5a), .iC12_5b (C12_5b),
.iC12_6a (C12_6a), .iC12_6b (C12_6b), .iC12_7a (C12_7a), .iC12_7b (C12_7b),
.iC13_0a (C13_0a), .iC13_0b (C13_0b), .iC13_1a (C13_1a), .iC13_1b (C13_1b),
.iC13_2a (C13_2a), .iC13_2b (C13_2b), .iC13_3a (C13_3a), .iC13_3b (C13_3b),
.iC13_4a (C13_4a), .iC13_4b (C13_4b), .iC13_5a (C13_5a), .iC13_5b (C13_5b),
.iC13_6a (C13_6a), .iC13_6b (C13_6b), .iC13_7a (C13_7a), .iC13_7b (C13_7b),
.iC14_0a (C14_0a), .iC14_0b (C14_0b), .iC14_1a (C14_1a), .iC14_1b (C14_1b),
.iC14_2a (C14_2a), .iC14_2b (C14_2b), .iC14_3a (C14_3a), .iC14_3b (C14_3b),
.iC14_4a (C14_4a), .iC14_4b (C14_4b), .iC14_5a (C14_5a), .iC14_5b (C14_5b),
.iC14_6a (C14_6a), .iC14_6b (C14_6b), .iC14_7a (C14_7a), .iC14_7b (C14_7b),
.iC15_0a (C15_0a), .iC15_0b (C15_0b), .iC15_1a (C15_1a), .iC15_1b (C15_1b),
.iC15_2a (C15_2a), .iC15_2b (C15_2b), .iC15_3a (C15_3a), .iC15_3b (C15_3b),
.iC15_4a (C15_4a), .iC15_4b (C15_4b), .iC15_5a (C15_5a), .iC15_5b (C15_5b),
.iC15_6a (C15_6a), .iC15_6b (C15_6b), .iC15_7a (C15_7a), .iC15_7b (C15_7b),
// Output Signals
.oD0 (D0), .oD1 (D1), .oD2 (D2), .oD3 (D3),
.oD4_0a (D4_0a), .oD4_0b (D4_0b), .oD4_1a (D4_1a), .oD4_1b (D4_1b),
.oD5_0a (D5_0a), .oD5_0b (D5_0b), .oD5_1a (D5_1a), .oD5_1b (D5_1b),
.oD6_0a (D6_0a), .oD6_0b (D6_0b), .oD6_1a (D6_1a), .oD6_1b (D6_1b),
.oD6_2a (D6_2a), .oD6_2b (D6_2b), .oD6_3a (D6_3a), .oD6_3b (D6_3b),
.oD7_0a (D7_0a), .oD7_0b (D7_0b), .oD7_1a (D7_1a), .oD7_1b (D7_1b),
.oD7_2a (D7_2a), .oD7_2b (D7_2b), .oD7_3a (D7_3a), .oD7_3b (D7_3b),
.oD8_0a (D8_0a), .oD8_0b (D8_0b), .oD8_1a (D8_1a), .oD8_1b (D8_1b),
.oD8_2a (D8_2a), .oD8_2b (D8_2b), .oD8_3a (D8_3a), .oD8_3b (D8_3b),
.oD8_4a (D8_4a), .oD8_4b (D8_4b), .oD8_5a (D8_5a), .oD8_5b (D8_5b),
.oD8_6a (D8_6a), .oD8_6b (D8_6b), .oD8_7a (D8_7a), .oD8_7b (D8_7b),
.oD9_0a (D9_0a), .oD9_0b (D9_0b), .oD9_1a (D9_1a), .oD9_1b (D9_1b),
.oD9_2a (D9_2a), .oD9_2b (D9_2b), .oD9_3a (D9_3a), .oD9_3b (D9_3b),
.oD9_4a (D9_4a), .oD9_4b (D9_4b), .oD9_5a (D9_5a), .oD9_5b (D9_5b),
.oD9_6a (D9_6a), .oD9_6b (D9_6b), .oD9_7a (D9_7a), .oD9_7b (D9_7b)
);
// Stage5
ACor_DCT_32p_S5 Stage5 (
// Input Signals
.iD0 (D0), .iD1 (D1), .iD2 (D2), .iD3 (D3),
.iD4_0a (D4_0a), .iD4_0b (D4_0b), .iD4_1a (D4_1a), .iD4_1b (D4_1b),
.iD5_0a (D5_0a), .iD5_0b (D5_0b), .iD5_1a (D5_1a), .iD5_1b (D5_1b),
.iD6_0a (D6_0a), .iD6_0b (D6_0b), .iD6_1a (D6_1a), .iD6_1b (D6_1b),
.iD6_2a (D6_2a), .iD6_2b (D6_2b), .iD6_3a (D6_3a), .iD6_3b (D6_3b),
.iD7_0a (D7_0a), .iD7_0b (D7_0b), .iD7_1a (D7_1a), .iD7_1b (D7_1b),
.iD7_2a (D7_2a), .iD7_2b (D7_2b), .iD7_3a (D7_3a), .iD7_3b (D7_3b),
.iD8_0a (D8_0a), .iD8_0b (D8_0b), .iD8_1a (D8_1a), .iD8_1b (D8_1b),
.iD8_2a (D8_2a), .iD8_2b (D8_2b), .iD8_3a (D8_3a), .iD8_3b (D8_3b),
.iD8_4a (D8_4a), .iD8_4b (D8_4b), .iD8_5a (D8_5a), .iD8_5b (D8_5b),
.iD8_6a (D8_6a), .iD8_6b (D8_6b), .iD8_7a (D8_7a), .iD8_7b (D8_7b),
.iD9_0a (D9_0a), .iD9_0b (D9_0b), .iD9_1a (D9_1a), .iD9_1b (D9_1b),
.iD9_2a (D9_2a), .iD9_2b (D9_2b), .iD9_3a (D9_3a), .iD9_3b (D9_3b),
.iD9_4a (D9_4a), .iD9_4b (D9_4b), .iD9_5a (D9_5a), .iD9_5b (D9_5b),
.iD9_6a (D9_6a), .iD9_6b (D9_6b), .iD9_7a (D9_7a), .iD9_7b (D9_7b),
// Output Signals
.oE0 (E0), .oE1 (E1), .oE2 (E2), .oE3 (E3),
.oE4 (E4), .oE5 (E5), .oE6 (E6), .oE7 (E7),
.oE8 (E8), .oE9 (E9), .oE10 (E10), .oE11 (E11),
.oE12 (E12), .oE13 (E13), .oE14 (E14), .oE15 (E15),
.oE16 (E16), .oE17 (E17), .oE18 (E18), .oE19 (E19),
.oE20 (E20), .oE21 (E21), .oE22 (E22), .oE23 (E23),
.oE24 (E24), .oE25 (E25), .oE26 (E26), .oE27 (E27),
.oE28 (E28), .oE29 (E29), .oE30 (E30), .oE31 (E31)
);
/*****************************************************************************
* Combinational Logic *
*****************************************************************************/
// 13.0 [12:0]
assign oY0 = E0; // *sqrt(2)/8
assign oY16 = E1; // *sqrt(2)/8
// 14.5 [18:0]
assign oY8 = E2; // *1/4
assign oY24 = E3; // *1/4
// 14.6 [19:0]
assign oY4 = E4; // *1/4
assign oY20 = E6; // *1/4
assign oY12 = E7; // *-1/4
assign oY28 = E5; // *1/4
// 14.8 [21:0]
assign oY2 = E8; // *1/4
assign oY18 = E10; // *1/4
assign oY10 = E12; // *1/4
assign oY26 = E14; // *1/4
assign oY6 = E15; // *1/4
assign oY22 = E13; // *1/4
assign oY14 = E11; // *1/4
assign oY30 = E9; // *1/4
// 14.10 [23:0]
assign oY1 = E16; // *1/4
assign oY17 = E18; // *1/4
assign oY9 = E20; // *1/4
assign oY25 = E22; // *1/4
assign oY5 = E24; // *1/4
assign oY21 = E26; // *1/4
assign oY13 = E28; // *1/4
assign oY29 = E30; // *1/4
assign oY3 = E31; // *1/4
assign oY19 = E29; // *1/4
assign oY11 = E27; // *1/4
assign oY27 = E25; // *1/4
assign oY7 = E23; // *1/4
assign oY23 = E21; // *1/4
assign oY15 = E19; // *1/4
assign oY31 = E17; // *1/4
endmodule
module ACor_DCT_32p_S1 (
// Input Signals
input [7:0] iX0, iX1, iX2, iX3, iX4, iX5, iX6, iX7,
/* 8.0 */ iX8, iX9, iX10, iX11, iX12, iX13, iX14, iX15,
iX16, iX17, iX18, iX19, iX20, iX21, iX22, iX23,
iX24, iX25, iX26, iX27, iX28, iX29, iX30, iX31,
// Output Signals
output [8:0] oA0, oA1, oA2, oA3, oA4, oA5, oA6, oA7,
/* 9.0 */ oA8, oA9, oA10, oA11, oA12, oA13, oA14, oA15,
oA16, oA17, oA18, oA19, oA20, oA21, oA22, oA23,
oA24, oA25, oA26, oA27, oA28, oA29, oA30, oA31
);
// assign oA0 = { iX0[7], iX0} + {iX31[7],iX31};
wire A0_c0;
FA_Cir_Cin0 A0m0 (.iA (iX0[0]), .iB (iX31[0]), .oS (oA0[0]), .oC (A0_c0));
Ripple_Add_8bit A0m1 (
.iA (iX0[7:1]), .iB (iX31[7:1]),
.iC (A0_c0), .oS (oA0[8:1]));
// assign oA1 = { iX1[7], iX1} + {iX30[7],iX30};
wire A1_c0;
FA_Cir_Cin0 A1m0 (.iA (iX1[0]), .iB (iX30[0]), .oS (oA1[0]), .oC (A1_c0));
Ripple_Add_8bit A1m1 (
.iA (iX1[7:1]), .iB (iX30[7:1]),
.iC (A1_c0), .oS (oA1[8:1]));
// assign oA2 = { iX2[7], iX2} + {iX29[7],iX29};
wire A2_c0;
FA_Cir_Cin0 A2m0 (.iA (iX2[0]), .iB (iX29[0]), .oS (oA2[0]), .oC (A2_c0));
Ripple_Add_8bit A2m1 (
.iA (iX2[7:1]), .iB (iX29[7:1]),
.iC (A2_c0), .oS (oA2[8:1]));
// assign oA3 = { iX3[7], iX3} + {iX28[7],iX28};
wire A3_c0;
FA_Cir_Cin0 A3m0 (.iA (iX3[0]), .iB (iX28[0]), .oS (oA3[0]), .oC (A3_c0));
Ripple_Add_8bit A3m1 (
.iA (iX3[7:1]), .iB (iX28[7:1]),
.iC (A3_c0), .oS (oA3[8:1]));
// assign oA4 = { iX4[7], iX4} + {iX27[7],iX27};
wire A4_c0;
FA_Cir_Cin0 A4m0 (.iA (iX4[0]), .iB (iX27[0]), .oS (oA4[0]), .oC (A4_c0));
Ripple_Add_8bit A4m1 (
.iA (iX4[7:1]), .iB (iX27[7:1]),
.iC (A4_c0), .oS (oA4[8:1]));
// assign oA5 = { iX5[7], iX5} + {iX26[7],iX26};
wire A5_c0;
FA_Cir_Cin0 A5m0 (.iA (iX5[0]), .iB (iX26[0]), .oS (oA5[0]), .oC (A5_c0));
Ripple_Add_8bit A5m1 (
.iA (iX5[7:1]), .iB (iX26[7:1]),
.iC (A5_c0), .oS (oA5[8:1]));
// assign oA6 = { iX6[7], iX6} + {iX25[7],iX25};
wire A6_c0;
FA_Cir_Cin0 A6m0 (.iA (iX6[0]), .iB (iX25[0]), .oS (oA6[0]), .oC (A6_c0));
Ripple_Add_8bit A6m1 (
.iA (iX6[7:1]), .iB (iX25[7:1]),
.iC (A6_c0), .oS (oA6[8:1]));
// assign oA7 = { iX7[7], iX7} + {iX24[7],iX24};
wire A7_c0;
FA_Cir_Cin0 A7m0 (.iA (iX7[0]), .iB (iX24[0]), .oS (oA7[0]), .oC (A7_c0));
Ripple_Add_8bit A7m1 (
.iA (iX7[7:1]), .iB (iX24[7:1]),
.iC (A7_c0), .oS (oA7[8:1]));
// assign oA8 = { iX8[7], iX8} + {iX23[7],iX23};
wire A8_c0;
FA_Cir_Cin0 A8m0 (.iA (iX8[0]), .iB (iX23[0]), .oS (oA8[0]), .oC (A8_c0));
Ripple_Add_8bit A8m1 (
.iA (iX8[7:1]), .iB (iX23[7:1]),
.iC (A8_c0), .oS (oA8[8:1]));
// assign oA9 = { iX9[7], iX9} + {iX22[7],iX22};
wire A9_c0;
FA_Cir_Cin0 A9m0 (.iA (iX9[0]), .iB (iX22[0]), .oS (oA9[0]), .oC (A9_c0));
Ripple_Add_8bit A9m1 (
.iA (iX9[7:1]), .iB (iX22[7:1]),
.iC (A9_c0), .oS (oA9[8:1]));
// assign oA10 = {iX10[7],iX10} + {iX21[7],iX21};
wire A10_c0;
FA_Cir_Cin0 A10m0 (.iA (iX10[0]), .iB (iX21[0]), .oS (oA10[0]), .oC (A10_c0));
Ripple_Add_8bit A10m1 (
.iA (iX10[7:1]),.iB (iX21[7:1]),
.iC (A10_c0), .oS (oA10[8:1]));
// assign oA11 = {iX11[7],iX11} + {iX20[7],iX20};
wire A11_c0;
FA_Cir_Cin0 A11m0 (.iA (iX11[0]), .iB (iX20[0]), .oS (oA11[0]), .oC (A11_c0));
Ripple_Add_8bit A11m1 (
.iA (iX11[7:1]),.iB (iX20[7:1]),
.iC (A11_c0), .oS (oA11[8:1]));
// assign oA12 = {iX12[7],iX12} + {iX19[7],iX19};
wire A12_c0;
FA_Cir_Cin0 A12m0 (.iA (iX12[0]), .iB (iX19[0]), .oS (oA12[0]), .oC (A12_c0));
Ripple_Add_8bit A12m1 (
.iA (iX12[7:1]),.iB (iX19[7:1]),
.iC (A12_c0), .oS (oA12[8:1]));
// assign oA13 = {iX13[7],iX13} + {iX18[7],iX18};
wire A13_c0;
FA_Cir_Cin0 A13m0 (.iA (iX13[0]), .iB (iX18[0]), .oS (oA13[0]), .oC (A13_c0));
Ripple_Add_8bit A13m1 (
.iA (iX13[7:1]),.iB (iX18[7:1]),
.iC (A13_c0), .oS (oA13[8:1]));
// assign oA14 = {iX14[7],iX14} + {iX17[7],iX17};
wire A14_c0;
FA_Cir_Cin0 A14m0 (.iA (iX14[0]), .iB (iX17[0]), .oS (oA14[0]), .oC (A14_c0));
Ripple_Add_8bit A14m1 (
.iA (iX14[7:1]),.iB (iX17[7:1]),
.iC (A14_c0), .oS (oA14[8:1]));
// assign oA15 = {iX15[7],iX15} + {iX16[7],iX16};
wire A15_c0;
FA_Cir_Cin0 A15m0 (.iA (iX15[0]), .iB (iX16[0]), .oS (oA15[0]), .oC (A15_c0));
Ripple_Add_8bit A15m1 (
.iA (iX15[7:1]),.iB (iX16[7:1]),
.iC (A15_c0), .oS (oA15[8:1]));
// assign oA16 = {iX15[7],iX15} - {iX16[7],iX16};
wire A16_c0;
FA_Cir_Cin1 A16m0 (.iA (iX15[0]), .iB (~iX16[0]), .oS (oA16[0]), .oC (A16_c0));
Ripple_Add_8bit A16m1 (
.iA (iX15[7:1]),.iB (~iX16[7:1]),
.iC (A16_c0), .oS (oA16[8:1]));
// assign oA17 = {iX14[7],iX14} - {iX17[7],iX17};
wire A17_c0;
FA_Cir_Cin1 A17m0 (.iA (iX14[0]), .iB (~iX17[0]), .oS (oA17[0]), .oC (A17_c0));
Ripple_Add_8bit A17m1 (
.iA (iX14[7:1]),.iB (~iX17[7:1]),
.iC (A17_c0), .oS (oA17[8:1]));
// assign oA18 = {iX13[7],iX13} - {iX18[7],iX18};
wire A18_c0;
FA_Cir_Cin1 A18m0 (.iA (iX13[0]), .iB (~iX18[0]), .oS (oA18[0]), .oC (A18_c0));
Ripple_Add_8bit A18m1 (
.iA (iX13[7:1]),.iB (~iX18[7:1]),
.iC (A18_c0), .oS (oA18[8:1]));
// assign oA19 = {iX12[7],iX12} - {iX19[7],iX19};
wire A19_c0;
FA_Cir_Cin1 A19m0 (.iA (iX12[0]), .iB (~iX19[0]), .oS (oA19[0]), .oC (A19_c0));
Ripple_Add_8bit A19m1 (
.iA (iX12[7:1]),.iB (~iX19[7:1]),
.iC (A19_c0), .oS (oA19[8:1]));
// assign oA20 = {iX11[7],iX11} - {iX20[7],iX20};
wire A20_c0;
FA_Cir_Cin1 A20m0 (.iA (iX11[0]), .iB (~iX20[0]), .oS (oA20[0]), .oC (A20_c0));
Ripple_Add_8bit A20m1 (
.iA (iX11[7:1]),.iB (~iX20[7:1]),
.iC (A20_c0), .oS (oA20[8:1]));
// assign oA21 = {iX10[7],iX10} - {iX21[7],iX21};
wire A21_c0;
FA_Cir_Cin1 A21m0 (.iA (iX10[0]), .iB (~iX21[0]), .oS (oA21[0]), .oC (A21_c0));
Ripple_Add_8bit A21m1 (
.iA (iX10[7:1]),.iB (~iX21[7:1]),
.iC (A21_c0), .oS (oA21[8:1]));
// assign oA22 = { iX9[7], iX9} - {iX22[7],iX22};
wire A22_c0;
FA_Cir_Cin1 A22m0 (.iA (iX9[0]), .iB (~iX22[0]), .oS (oA22[0]), .oC (A22_c0));
Ripple_Add_8bit A22m1 (
.iA (iX9[7:1]), .iB (~iX22[7:1]),
.iC (A22_c0), .oS (oA22[8:1]));
// assign oA23 = { iX8[7], iX8} - {iX23[7],iX23};
wire A23_c0;
FA_Cir_Cin1 A23m0 (.iA (iX8[0]), .iB (~iX23[0]), .oS (oA23[0]), .oC (A23_c0));
Ripple_Add_8bit A23m1 (
.iA (iX8[7:1]), .iB (~iX23[7:1]),
.iC (A23_c0), .oS (oA23[8:1]));
// assign oA24 = { iX7[7], iX7} - {iX24[7],iX24};
wire A24_c0;
FA_Cir_Cin1 A24m0 (.iA (iX7[0]), .iB (~iX24[0]), .oS (oA24[0]), .oC (A24_c0));
Ripple_Add_8bit A24m1 (
.iA (iX7[7:1]), .iB (~iX24[7:1]),
.iC (A24_c0), .oS (oA24[8:1]));
// assign oA25 = { iX6[7], iX6} - {iX25[7],iX25};
wire A25_c0;
FA_Cir_Cin1 A25m0 (.iA (iX6[0]), .iB (~iX25[0]), .oS (oA25[0]), .oC (A25_c0));
Ripple_Add_8bit A25m1 (
.iA (iX6[7:1]), .iB (~iX25[7:1]),
.iC (A25_c0), .oS (oA25[8:1]));
// assign oA26 = { iX5[7], iX5} - {iX26[7],iX26};
wire A26_c0;
FA_Cir_Cin1 A26m0 (.iA (iX5[0]), .iB (~iX26[0]), .oS (oA26[0]), .oC (A26_c0));
Ripple_Add_8bit A26m1 (
.iA (iX5[7:1]), .iB (~iX26[7:1]),
.iC (A26_c0), .oS (oA26[8:1]));
// assign oA27 = { iX4[7], iX4} - {iX27[7],iX27};
wire A27_c0;
FA_Cir_Cin1 A27m0 (.iA (iX4[0]), .iB (~iX27[0]), .oS (oA27[0]), .oC (A27_c0));
Ripple_Add_8bit A27m1 (
.iA (iX4[7:1]), .iB (~iX27[7:1]),
.iC (A27_c0), .oS (oA27[8:1]));
// assign oA28 = { iX3[7], iX3} - {iX28[7],iX28};
wire A28_c0;
FA_Cir_Cin1 A28m0 (.iA (iX3[0]), .iB (~iX28[0]), .oS (oA28[0]), .oC (A28_c0));
Ripple_Add_8bit A28m1 (
.iA (iX3[7:1]), .iB (~iX28[7:1]),
.iC (A28_c0), .oS (oA28[8:1]));
// assign oA29 = { iX2[7], iX2} - {iX29[7],iX29};
wire A29_c0;
FA_Cir_Cin1 A29m0 (.iA (iX2[0]), .iB (~iX29[0]), .oS (oA29[0]), .oC (A29_c0));
Ripple_Add_8bit A29m1 (
.iA (iX2[7:1]), .iB (~iX29[7:1]),
.iC (A29_c0), .oS (oA29[8:1]));
// assign oA30 = { iX1[7], iX1} - {iX30[7],iX30};
wire A30_c0;
FA_Cir_Cin1 A30m0 (.iA (iX1[0]), .iB (~iX30[0]), .oS (oA30[0]), .oC (A30_c0));
Ripple_Add_8bit A30m1 (
.iA (iX1[7:1]), .iB (~iX30[7:1]),
.iC (A30_c0), .oS (oA30[8:1]));
// assign oA31 = { iX0[7], iX0} - {iX31[7],iX31};
wire A31_c0;
FA_Cir_Cin1 A31m0 (.iA (iX0[0]), .iB (~iX31[0]), .oS (oA31[0]), .oC (A31_c0));
Ripple_Add_8bit A31m1 (
.iA (iX0[7:1]), .iB (~iX31[7:1]),
.iC (A31_c0), .oS (oA31[8:1]));
endmodule
module ACor_DCT_32p_S2 (
// Input Signals
input [8:0] iA0, iA1, iA2, iA3, iA4, iA5, iA6, iA7,
/* 9.0 */ iA8, iA9, iA10, iA11, iA12, iA13, iA14, iA15,
iA16, iA17, iA18, iA19, iA20, iA21, iA22, iA23,
iA24, iA25, iA26, iA27, iA28, iA29, iA30, iA31,
// Output Signals
output [9:0] oB0, oB1, oB2, oB3, oB4, oB5, oB6, oB7,
/*10.0 */ oB8, oB9, oB10, oB11, oB12, oB13, oB14, oB15,
output [20:0] oB16_0a, oB16_0b, oB17_4a, oB17_4b, oB18_6a, oB18_6b, oB19_3a, oB19_3b,
/*11.10*/ oB20_3a, oB20_3b, oB21_6a, oB21_6b, oB22_4a, oB22_4b, oB23_0a, oB23_0b,
output [19:0] oB16_7a, oB16_7b, oB17_1a, oB17_1b, oB18_3a, oB18_3b, oB19_5a, oB19_5b,
/*11.9 */ oB20_5a, oB20_5b, oB21_3a, oB21_3b, oB22_1a, oB22_1b, oB23_7a, oB23_7b,
output [20:0] oB16_4a, oB16_4b, oB17_3a, oB17_3b, oB18_0a, oB18_0b, oB19_7a, oB19_7b,
/*11.10*/ oB20_7a, oB20_7b, oB21_0a, oB21_0b, oB22_3a, oB22_3b, oB23_4a, oB23_4b,
output [15:0] oB16_3a, oB16_3b, oB17_7a, oB17_7b, oB18_4a, oB18_4b, oB19_1a, oB19_1b,
/*11.5 */ oB20_1a, oB20_1b, oB21_4a, oB21_4b, oB22_7a, oB22_7b, oB23_3a, oB23_3b,
output [17:0] oB16_2a, oB16_2b, oB17_6a, oB17_6b, oB18_5a, oB18_5b, oB19_0a, oB19_0b,
/*11.7 */ oB20_0a, oB20_0b, oB21_5a, oB21_5b, oB22_6a, oB22_6b, oB23_2a, oB23_2b,
output [15:0] oB16_5a, oB16_5b, oB17_2a, oB17_2b, oB18_1a, oB18_1b, oB19_6a, oB19_6b,
/*11.5 */ oB20_6a, oB20_6b, oB21_1a, oB21_1b, oB22_2a, oB22_2b, oB23_5a, oB23_5b,
output [13:0] oB16_6a, oB16_6b, oB17_0a, oB17_0b, oB18_2a, oB18_2b, oB19_4a, oB19_4b,
/*11.3 */ oB20_4a, oB20_4b, oB21_2a, oB21_2b, oB22_0a, oB22_0b, oB23_6a, oB23_6b,
output [14:0] oB16_1a, oB16_1b, oB17_5a, oB17_5b, oB18_7a, oB18_7b, oB19_2a, oB19_2b,
/*11.4 */ oB20_2a, oB20_2b, oB21_7a, oB21_7b, oB22_5a, oB22_5b, oB23_1a, oB23_1b
);
// assign oB0 = {iA0[8],iA0} + {iA15[8],iA15};
wire B0_c0;
FA_Cir_Cin0 B0m0 (.iA (iA0[0]), .iB (iA15[0]), .oS (oB0[0]), .oC (B0_c0));
Ripple_Add_9bit B0m1 (
.iA (iA0[8:1]), .iB (iA15[8:1]),
.iC (B0_c0), .oS (oB0[9:1]));
// assign oB1 = {iA1[8],iA1} + {iA14[8],iA14};
wire B1_c0;
FA_Cir_Cin0 B1m0 (.iA (iA1[0]), .iB (iA14[0]), .oS (oB1[0]), .oC (B1_c0));
Ripple_Add_9bit B1m1 (
.iA (iA1[8:1]), .iB (iA14[8:1]),
.iC (B1_c0), .oS (oB1[9:1]));
// assign oB2 = {iA2[8],iA2} + {iA13[8],iA13};
wire B2_c0;
FA_Cir_Cin0 B2m0 (.iA (iA2[0]), .iB (iA13[0]), .oS (oB2[0]), .oC (B2_c0));
Ripple_Add_9bit B2m1 (
.iA (iA2[8:1]), .iB (iA13[8:1]),
.iC (B2_c0), .oS (oB2[9:1]));
// assign oB3 = {iA3[8],iA3} + {iA12[8],iA12};
wire B3_c0;
FA_Cir_Cin0 B3m0 (.iA (iA3[0]), .iB (iA12[0]), .oS (oB3[0]), .oC (B3_c0));
Ripple_Add_9bit B3m1 (
.iA (iA3[8:1]), .iB (iA12[8:1]),
.iC (B3_c0), .oS (oB3[9:1]));
// assign oB4 = {iA4[8],iA4} + {iA11[8],iA11};
wire B4_c0;
FA_Cir_Cin0 B4m0 (.iA (iA4[0]), .iB (iA11[0]), .oS (oB4[0]), .oC (B4_c0));
Ripple_Add_9bit B4m1 (
.iA (iA4[8:1]), .iB (iA11[8:1]),
.iC (B4_c0), .oS (oB4[9:1]));
// assign oB5 = {iA5[8],iA5} + {iA10[8],iA10};
wire B5_c0;
FA_Cir_Cin0 B5m0 (.iA (iA5[0]), .iB (iA10[0]), .oS (oB5[0]), .oC (B5_c0));
Ripple_Add_9bit B5m1 (
.iA (iA5[8:1]), .iB (iA10[8:1]),
.iC (B5_c0), .oS (oB5[9:1]));
// assign oB6 = {iA6[8],iA6} + { iA9[8], iA9};
wire B6_c0;
FA_Cir_Cin0 B6m0 (.iA (iA6[0]), .iB (iA9[0]), .oS (oB6[0]), .oC (B6_c0));
Ripple_Add_9bit B6m1 (
.iA (iA6[8:1]), .iB (iA9[8:1]),
.iC (B6_c0), .oS (oB6[9:1]));
// assign oB7 = {iA7[8],iA7} + { iA8[8], iA8};
wire B7_c0;
FA_Cir_Cin0 B7m0 (.iA (iA7[0]), .iB (iA8[0]), .oS (oB7[0]), .oC (B7_c0));
Ripple_Add_9bit B7m1 (
.iA (iA7[8:1]), .iB (iA8[8:1]),
.iC (B7_c0), .oS (oB7[9:1]));
// assign oB8 = {iA7[8],iA7} - { iA8[8], iA8};
wire B8_c0;
FA_Cir_Cin1 B8m0 (.iA (iA7[0]), .iB (~iA8[0]), .oS (oB8[0]), .oC (B8_c0));
Ripple_Add_9bit B8m1 (
.iA (iA7[8:1]), .iB (~iA8[8:1]),
.iC (B8_c0), .oS (oB8[9:1]));
// assign oB9 = {iA6[8],iA6} - { iA9[8], iA9};
wire B9_c0;
FA_Cir_Cin1 B9m0 (.iA (iA6[0]), .iB (~iA9[0]), .oS (oB9[0]), .oC (B9_c0));
Ripple_Add_9bit B9m1 (
.iA (iA6[8:1]), .iB (~iA9[8:1]),
.iC (B9_c0), .oS (oB9[9:1]));
// assign oB10 = {iA5[8],iA5} - {iA10[8],iA10};
wire B10_c0;
FA_Cir_Cin1 B10m0 (.iA (iA5[0]), .iB (~iA10[0]), .oS (oB10[0]), .oC (B10_c0));
Ripple_Add_9bit B10m1 (
.iA (iA5[8:1]), .iB (~iA10[8:1]),
.iC (B10_c0), .oS (oB10[9:1]));
// assign oB11 = {iA4[8],iA4} - {iA11[8],iA11};
wire B11_c0;
FA_Cir_Cin1 B11m0 (.iA (iA4[0]), .iB (~iA11[0]), .oS (oB11[0]), .oC (B11_c0));
Ripple_Add_9bit B11m1 (
.iA (iA4[8:1]), .iB (~iA11[8:1]),
.iC (B11_c0), .oS (oB11[9:1]));
// assign oB12 = {iA3[8],iA3} - {iA12[8],iA12};
wire B12_c0;
FA_Cir_Cin1 B12m0 (.iA (iA3[0]), .iB (~iA12[0]), .oS (oB12[0]), .oC (B12_c0));
Ripple_Add_9bit B12m1 (
.iA (iA3[8:1]), .iB (~iA12[8:1]),
.iC (B12_c0), .oS (oB12[9:1]));
// assign oB13 = {iA2[8],iA2} - {iA13[8],iA13};
wire B13_c0;
FA_Cir_Cin1 B13m0 (.iA (iA2[0]), .iB (~iA13[0]), .oS (oB13[0]), .oC (B13_c0));
Ripple_Add_9bit B13m1 (
.iA (iA2[8:1]), .iB (~iA13[8:1]),
.iC (B13_c0), .oS (oB13[9:1]));
// assign oB14 = {iA1[8],iA1} - {iA14[8],iA14};
wire B14_c0;
FA_Cir_Cin1 B14m0 (.iA (iA1[0]), .iB (~iA14[0]), .oS (oB14[0]), .oC (B14_c0));
Ripple_Add_9bit B14m1 (
.iA (iA1[8:1]), .iB (~iA14[8:1]),
.iC (B14_c0), .oS (oB14[9:1]));
// assign oB15 = {iA0[8],iA0} - {iA15[8],iA15};
wire B15_c0;
FA_Cir_Cin1 B15m0 (.iA (iA0[0]), .iB (~iA15[0]), .oS (oB15[0]), .oC (B15_c0));
Ripple_Add_9bit B15m1 (
.iA (iA0[8:1]), .iB (~iA15[8:1]),
.iC (B15_c0), .oS (oB15[9:1]));
ACor_DCT_32p_1to15_pi64_2Stg B16m0 (
// Input Signals
.iA (iA16), .iB (iA31),
// Output Signals
.o0a (oB16_0a), .o0b(oB16_0b), .o1a (oB16_7a), .o1b (oB16_7b),
.o2a (oB16_4a), .o2b(oB16_4b), .o3a (oB16_3a), .o3b (oB16_3b),
.o4a (oB16_2a), .o4b(oB16_2b), .o5a (oB16_5a), .o5b (oB16_5b),
.o6a (oB16_6a), .o6b(oB16_6b), .o7a (oB16_1a), .o7b (oB16_1b));
ACor_DCT_32p_1to15_pi64_2Stg B17m0 (
// Input Signals
.iA (iA30), .iB (iA17),
// Output Signals
.o0a (oB17_4a), .o0b(oB17_4b), .o1a (oB17_1a), .o1b (oB17_1b),
.o2a (oB17_3a), .o2b(oB17_3b), .o3a (oB17_7a), .o3b (oB17_7b),
.o4a (oB17_6a), .o4b(oB17_6b), .o5a (oB17_2a), .o5b (oB17_2b),
.o6a (oB17_0a), .o6b(oB17_0b), .o7a (oB17_5a), .o7b (oB17_5b));
ACor_DCT_32p_1to15_pi64_2Stg B18m0 (
// Input Signals
.iA (iA18), .iB (iA29),
// Output Signals
.o0a (oB18_6a), .o0b(oB18_6b), .o1a (oB18_3a), .o1b (oB18_3b),
.o2a (oB18_0a), .o2b(oB18_0b), .o3a (oB18_4a), .o3b (oB18_4b),
.o4a (oB18_5a), .o4b(oB18_5b), .o5a (oB18_1a), .o5b (oB18_1b),
.o6a (oB18_2a), .o6b(oB18_2b), .o7a (oB18_7a), .o7b (oB18_7b));
ACor_DCT_32p_1to15_pi64_2Stg B19m0 (
// Input Signals
.iA (iA28), .iB (iA19),
// Output Signals
.o0a (oB19_3a), .o0b(oB19_3b), .o1a (oB19_5a), .o1b (oB19_5b),
.o2a (oB19_7a), .o2b(oB19_7b), .o3a (oB19_1a), .o3b (oB19_1b),
.o4a (oB19_0a), .o4b(oB19_0b), .o5a (oB19_6a), .o5b (oB19_6b),
.o6a (oB19_4a), .o6b(oB19_4b), .o7a (oB19_2a), .o7b (oB19_2b));
ACor_DCT_32p_1to15_pi64_2Stg B20m0 (
// Input Signals
.iA (iA20), .iB (iA27),
// Output Signals
.o0a (oB20_3a), .o0b(oB20_3b), .o1a (oB20_5a), .o1b (oB20_5b),
.o2a (oB20_7a), .o2b(oB20_7b), .o3a (oB20_1a), .o3b (oB20_1b),
.o4a (oB20_0a), .o4b(oB20_0b), .o5a (oB20_6a), .o5b (oB20_6b),
.o6a (oB20_4a), .o6b(oB20_4b), .o7a (oB20_2a), .o7b (oB20_2b));
ACor_DCT_32p_1to15_pi64_2Stg B21m0 (
// Input Signals
.iA (iA26), .iB (iA21),
// Output Signals
.o0a (oB21_6a), .o0b(oB21_6b), .o1a (oB21_3a), .o1b (oB21_3b),
.o2a (oB21_0a), .o2b(oB21_0b), .o3a (oB21_4a), .o3b (oB21_4b),
.o4a (oB21_5a), .o4b(oB21_5b), .o5a (oB21_1a), .o5b (oB21_1b),
.o6a (oB21_2a), .o6b(oB21_2b), .o7a (oB21_7a), .o7b (oB21_7b));
ACor_DCT_32p_1to15_pi64_2Stg B22m0 (
// Input Signals
.iA (iA22), .iB (iA25),
// Output Signals
.o0a (oB22_4a), .o0b(oB22_4b), .o1a (oB22_1a), .o1b (oB22_1b),
.o2a (oB22_3a), .o2b(oB22_3b), .o3a (oB22_7a), .o3b (oB22_7b),
.o4a (oB22_6a), .o4b(oB22_6b), .o5a (oB22_2a), .o5b (oB22_2b),
.o6a (oB22_0a), .o6b(oB22_0b), .o7a (oB22_5a), .o7b (oB22_5b));
ACor_DCT_32p_1to15_pi64_2Stg B23m0 (
// Input Signals
.iA (iA24), .iB (iA23),
// Output Signals
.o0a (oB23_0a), .o0b(oB23_0b), .o1a (oB23_7a), .o1b (oB23_7b),
.o2a (oB23_4a), .o2b(oB23_4b), .o3a (oB23_3a), .o3b (oB23_3b),
.o4a (oB23_2a), .o4b(oB23_2b), .o5a (oB23_5a), .o5b (oB23_5b),
.o6a (oB23_6a), .o6b(oB23_6b), .o7a (oB23_1a), .o7b (oB23_1b));
endmodule
module ACor_DCT_32p_S3 (
// Input Signals
input [9:0] iB0, iB1, iB2, iB3, iB4, iB5, iB6, iB7,
/*10.0 */ iB8, iB9, iB10, iB11, iB12, iB13, iB14, iB15,
input [20:0] iB16_0a, iB16_0b, iB17_4a, iB17_4b, iB18_6a, iB18_6b, iB19_3a, iB19_3b,
/*11.10*/ iB20_3a, iB20_3b, iB21_6a, iB21_6b, iB22_4a, iB22_4b, iB23_0a, iB23_0b,
input [19:0] iB16_7a, iB16_7b, iB17_1a, iB17_1b, iB18_3a, iB18_3b, iB19_5a, iB19_5b,
/*11.9 */ iB20_5a, iB20_5b, iB21_3a, iB21_3b, iB22_1a, iB22_1b, iB23_7a, iB23_7b,
input [20:0] iB16_4a, iB16_4b, iB17_3a, iB17_3b, iB18_0a, iB18_0b, iB19_7a, iB19_7b,
/*11.10*/ iB20_7a, iB20_7b, iB21_0a, iB21_0b, iB22_3a, iB22_3b, iB23_4a, iB23_4b,
input [15:0] iB16_3a, iB16_3b, iB17_7a, iB17_7b, iB18_4a, iB18_4b, iB19_1a, iB19_1b,
/*11.5 */ iB20_1a, iB20_1b, iB21_4a, iB21_4b, iB22_7a, iB22_7b, iB23_3a, iB23_3b,
input [17:0] iB16_2a, iB16_2b, iB17_6a, iB17_6b, iB18_5a, iB18_5b, iB19_0a, iB19_0b,
/*11.7 */ iB20_0a, iB20_0b, iB21_5a, iB21_5b, iB22_6a, iB22_6b, iB23_2a, iB23_2b,
input [15:0] iB16_5a, iB16_5b, iB17_2a, iB17_2b, iB18_1a, iB18_1b, iB19_6a, iB19_6b,
/*11.5 */ iB20_6a, iB20_6b, iB21_1a, iB21_1b, iB22_2a, iB22_2b, iB23_5a, iB23_5b,
input [13:0] iB16_6a, iB16_6b, iB17_0a, iB17_0b, iB18_2a, iB18_2b, iB19_4a, iB19_4b,
/*11.3 */ iB20_4a, iB20_4b, iB21_2a, iB21_2b, iB22_0a, iB22_0b, iB23_6a, iB23_6b,
input [14:0] iB16_1a, iB16_1b, iB17_5a, iB17_5b, iB18_7a, iB18_7b, iB19_2a, iB19_2b,
/*11.4 */ iB20_2a, iB20_2b, iB21_7a, iB21_7b, iB22_5a, iB22_5b, iB23_1a, iB23_1b,
// Output Signals
output [10:0] /*11.0 */ oC0, oC1, oC2, oC3, oC4, oC5, oC6, oC7,
output [19:0] /*12.8 */ oC8_0a, oC8_0b, oC9_3a, oC9_3b, oC10_3a, oC10_3b, oC11_0a, oC11_0b,
output [17:0] /*12.6 */ oC8_3a, oC8_3b, oC9_1a, oC9_1b, oC10_1a, oC10_1b, oC11_3a, oC11_3b,
output [17:0] /*12.6 */ oC8_2a, oC8_2b, oC9_0a, oC9_0b, oC10_0a, oC10_0b, oC11_2a, oC11_2b,
output [14:0] /*12.3 */ oC8_1a, oC8_1b, oC9_2a, oC9_2b, oC10_2a, oC10_2b, oC11_1a, oC11_1b,
output [21:0] /*12.10*/ oC12_0a, oC12_0b, oC12_1a, oC12_1b,
output [18:0] /*12.7 */ oC12_2a, oC12_2b, oC12_3a, oC12_3b,
output [21:0] /*12.10*/ oC12_4a, oC12_4b, oC12_5a, oC12_5b,
output [20:0] /*12.9 */ oC12_6a, oC12_6b, oC12_7a, oC12_7b,
output [21:0] /*12.10*/ oC13_0a, oC13_0b, oC13_1a, oC13_1b,
output [20:0] /*12.9 */ oC13_2a, oC13_2b, oC13_3a, oC13_3b,
output [18:0] /*12.7 */ oC13_4a, oC13_4b, oC13_5a, oC13_5b,
output [21:0] /*12.10*/ oC13_6a, oC13_6b, oC13_7a, oC13_7b,
output [18:0] /*12.7 */ oC14_0a, oC14_0b, oC14_1a, oC14_1b,
output [21:0] /*12.10*/ oC14_2a, oC14_2b, oC14_3a, oC14_3b,
output [20:0] /*12.9 */ oC14_4a, oC14_4b, oC14_5a, oC14_5b,
output [21:0] /*12.10*/ oC14_6a, oC14_6b, oC14_7a, oC14_7b,
output [20:0] /*12.9 */ oC15_0a, oC15_0b, oC15_1a, oC15_1b,
output [21:0] /*12.10*/ oC15_2a, oC15_2b, oC15_3a, oC15_3b,
output [21:0] /*12.10*/ oC15_4a, oC15_4b, oC15_5a, oC15_5b,
output [18:0] /*12.7 */ oC15_6a, oC15_6b, oC15_7a, oC15_7b
);
// assign oC0 = {iB0[9],iB0} + {iB7[9],iB7};
wire C0_c0;
FA_Cir_Cin0 C0m0 (.iA (iB0[0]), .iB (iB7[0]), .oS (oC0[0]), .oC (C0_c0));
Ripple_Add_10bit C0m1 (
.iA (iB0[9:1]), .iB (iB7[9:1]),
.iC (C0_c0), .oS (oC0[10:1]));
// assign oC1 = {iB1[9],iB1} + {iB6[9],iB6};
wire C1_c0;
FA_Cir_Cin0 C1m0 (.iA (iB1[0]), .iB (iB6[0]), .oS (oC1[0]), .oC (C1_c0));
Ripple_Add_10bit C1m1 (
.iA (iB1[9:1]), .iB (iB6[9:1]),
.iC (C1_c0), .oS (oC1[10:1]));
// assign oC2 = {iB2[9],iB2} + {iB5[9],iB5};
wire C2_c0;
FA_Cir_Cin0 C2m0 (.iA (iB2[0]), .iB (iB5[0]), .oS (oC2[0]), .oC (C2_c0));
Ripple_Add_10bit C2m1 (
.iA (iB2[9:1]), .iB (iB5[9:1]),
.iC (C2_c0), .oS (oC2[10:1]));
// assign oC3 = {iB3[9],iB3} + {iB4[9],iB4};
wire C3_c0;
FA_Cir_Cin0 C3m0 (.iA (iB3[0]), .iB (iB4[0]), .oS (oC3[0]), .oC (C3_c0));
Ripple_Add_10bit C3m1 (
.iA (iB3[9:1]), .iB (iB4[9:1]),
.iC (C3_c0), .oS (oC3[10:1]));
// assign oC4 = {iB3[9],iB3} - {iB4[9],iB4};
wire C4_c0;
FA_Cir_Cin1 C4m0 (.iA (iB3[0]), .iB (~iB4[0]), .oS (oC4[0]), .oC (C4_c0));
Ripple_Add_10bit C4m1 (
.iA (iB3[9:1]), .iB (~iB4[9:1]),
.iC (C4_c0), .oS (oC4[10:1]));
// assign oC5 = {iB2[9],iB2} - {iB5[9],iB5};
wire C5_c0;
FA_Cir_Cin1 C5m0 (.iA (iB2[0]), .iB (~iB5[0]), .oS (oC5[0]), .oC (C5_c0));
Ripple_Add_10bit C5m1 (
.iA (iB2[9:1]), .iB (~iB5[9:1]),
.iC (C5_c0), .oS (oC5[10:1]));
// assign oC6 = {iB1[9],iB1} - {iB6[9],iB6};
wire C6_c0;
FA_Cir_Cin1 C6m0 (.iA (iB1[0]), .iB (~iB6[0]), .oS (oC6[0]), .oC (C6_c0));
Ripple_Add_10bit C6m1 (
.iA (iB1[9:1]), .iB (~iB6[9:1]),
.iC (C6_c0), .oS (oC6[10:1]));
// assign oC7 = {iB0[9],iB0} - {iB7[9],iB7};
wire C7_c0;
FA_Cir_Cin1 C7m0 (.iA (iB0[0]), .iB (~iB7[0]), .oS (oC7[0]), .oC (C7_c0));
Ripple_Add_10bit C7m1 (
.iA (iB0[9:1]), .iB (~iB7[9:1]),
.iC (C7_c0), .oS (oC7[10:1]));
ACor_DCT_32p_1to7_pi32_2Stg C8m0 (
// Input Signals
.iA (iB8), .iB (iB15),
// Output Signals
.o0a (oC8_0a), .o0b (oC8_0b), .o1a (oC8_3a), .o1b (oC8_3b),
.o2a (oC8_2a), .o2b (oC8_2b), .o3a (oC8_1a), .o3b (oC8_1b));
ACor_DCT_32p_1to7_pi32_2Stg C9m0 (
// Input Signals
.iA (iB14), .iB (iB9),
// Output Signals
.o0a (oC9_3a), .o0b (oC9_3b), .o1a (oC9_1a), .o1b (oC9_1b),
.o2a (oC9_0a), .o2b (oC9_0b), .o3a (oC9_2a), .o3b (oC9_2b));
ACor_DCT_32p_1to7_pi32_2Stg C10m0 (
// Input Signals
.iA (iB10), .iB (iB13),
// Output Signals
.o0a (oC10_3a), .o0b (oC10_3b), .o1a (oC10_1a), .o1b (oC10_1b),
.o2a (oC10_0a), .o2b (oC10_0b), .o3a (oC10_2a), .o3b (oC10_2b));
ACor_DCT_32p_1to7_pi32_2Stg C11m0 (
// Input Signals
.iA (iB12), .iB (iB11),
// Output Signals
.o0a (oC11_0a), .o0b (oC11_0b), .o1a (oC11_3a), .o1b (oC11_3b),
.o2a (oC11_2a), .o2b (oC11_2b), .o3a (oC11_1a), .o3b (oC11_1b));
/**********************************
************** C12 **************
**********************************/
// 12.10 [21:0] 11.10 [20:0] 11.4 [14:0]
//assign oC12_0a = {iB16_0a[20],iB16_0a} + {iB23_1a[14],iB23_1a,6'b0};
wire C12_0a_c6;
assign oC12_0a[5:0] = iB16_0a[5:0];
FA_Cir_Cin0 C120am6 (.iA (iB16_0a[6]), .iB (iB23_1a[0]), .oS (oC12_0a[6]), .oC (C12_0a_c6));
Ripple_Add_15bit C120am7 (
.iA (iB16_0a[20:7]), .iB (iB23_1a[14:1]),
.iC (C12_0a_c6), .oS (oC12_0a[21:7]));
// 12.10 [21:0] 11.4 [14:0] 11.10 [20:0]
//assign oC12_0b = {iB23_1b[14],iB23_1b,6'b0} - {iB16_0b[20],iB16_0b};
wire C12_0b_c1, C12_0b_c2, C12_0b_c3, C12_0b_c4, C12_0b_c5;
assign oC12_0b[0] = iB16_0b[0];
FA_Cir_Cin0 C120bm1 (.iA (~iB16_0b[1]), .iB (~iB16_0b[0]), .oS (oC12_0b[1]), .oC (C12_0b_c1));
FA_Cir_Cin0 C120bm2 (.iA (~iB16_0b[2]), .iB (C12_0b_c1), .oS (oC12_0b[2]), .oC (C12_0b_c2));
FA_Cir_Cin0 C120bm3 (.iA (~iB16_0b[3]), .iB (C12_0b_c2), .oS (oC12_0b[3]), .oC (C12_0b_c3));
FA_Cir_Cin0 C120bm4 (.iA (~iB16_0b[4]), .iB (C12_0b_c3), .oS (oC12_0b[4]), .oC (C12_0b_c4));
FA_Cir_Cin0 C120bm5 (.iA (~iB16_0b[5]), .iB (C12_0b_c4), .oS (oC12_0b[5]), .oC (C12_0b_c5));
Ripple_Add_16bit C120bm6 (
.iA (iB23_1b), .iB (~iB16_0b[20:6]),
.iC (C12_0b_c5), .oS (oC12_0b[21:6]));
// 12.10 [21:0] 11.4 [14:0] 11.10 [20:0]
//assign oC12_1a = {iB16_1a[14],iB16_1a,6'b0} + {iB23_0b[20],iB23_0b};
wire C12_1a_c6;
assign oC12_1a[5:0] = iB23_0b[5:0];
FA_Cir_Cin0 C121am6 (.iA (iB16_1a[0]), .iB (iB23_0b[6]), .oS (oC12_1a[6]), .oC (C12_1a_c6));
Ripple_Add_15bit C121am7 (
.iA (iB16_1a[14:1]), .iB (iB23_0b[20:7]),
.iC (C12_1a_c6), .oS (oC12_1a[21:7]));
// 12.10 [21:0] 11.4 [14:0] 11.10 [20:0]
//assign oC12_1b = {iB16_1b[14],iB16_1b,6'b0} + {iB23_0a[20],iB23_0a};
wire C12_1b_c6;
assign oC12_1b[5:0] = iB23_0a[5:0];
FA_Cir_Cin0 C121bm6 (.iA (iB16_1b[0]), .iB (iB23_0a[6]), .oS (oC12_1b[6]), .oC (C12_1b_c6));
Ripple_Add_15bit C121bm7 (
.iA (iB16_1b[14:1]), .iB (iB23_0a[20:7]),
.iC (C12_1b_c6), .oS (oC12_1b[21:7]));
// 12.7 [18:0] 11.7 [17:0] 11.5 [15:0]
//assign oC12_2a = {iB16_2a[17],iB16_2a} + {iB23_3a[15],iB23_3a,2'b0};
wire C12_2a_c3;
assign oC12_2a[1:0] = iB16_2a[1:0];
FA_Cir_Cin0 C122am2 (.iA (iB16_2a[2]), .iB (iB23_3a[0]), .oS (oC12_2a[2]), .oC (C12_2a_c3));
Ripple_Add_16bit C122am3 (
.iA (iB16_2a[17:3]), .iB (iB23_3a[15:1]),
.iC (C12_2a_c3), .oS (oC12_2a[18:3]));
// 12.7 [18:0] 11.5 [15:0] 11.7 [17:0]
//assign oC12_2b = {iB23_3b[15],iB23_3b,2'b0} - {iB16_2b[17],iB16_2b};
wire C12_2b_c1;
assign oC12_2b[0] = iB16_2b[0];
FA_Cir_Cin0 C122bm1 (.iA (~iB16_2b[1]), .iB (~iB16_2b[0]), .oS (oC12_2b[1]), .oC (C12_2b_c1));
Ripple_Add_17bit C122bm2 (
.iA (iB23_3b), .iB (~iB16_2b[17:2]),
.iC (C12_2b_c1), .oS (oC12_2b[18:2]));
// 12.7 [18:0] 11.5 [15:0] 11.7 [17:0]
//assign oC12_3a = {iB16_3a[15],iB16_3a,2'b0} + {iB23_2b[17],iB23_2b};
wire C12_3a_c3;
assign oC12_3a[1:0] = iB23_2b[1:0];
FA_Cir_Cin0 C123am2 (.iA (iB16_3a[0]), .iB (iB23_2b[2]), .oS (oC12_3a[2]), .oC (C12_3a_c3));
Ripple_Add_16bit C123am3 (
.iA (iB16_3a[15:1]), .iB (iB23_2b[17:3]),
.iC (C12_3a_c3), .oS (oC12_3a[18:3]));
// 12.7 [18:0] 11.5 [15:0] 11.7 [17:0]
//assign oC12_3b = {iB16_3b[15],iB16_3b,2'b0} + {iB23_2a[17],iB23_2a};
wire C12_3b_c3;
assign oC12_3b[1:0] = iB23_2a[1:0];
FA_Cir_Cin0 C123bm2 (.iA (iB16_3b[0]), .iB (iB23_2a[2]), .oS (oC12_3b[2]), .oC (C12_3b_c3));
Ripple_Add_16bit C123bm3 (
.iA (iB16_3b[15:1]), .iB (iB23_2a[17:3]),
.iC (C12_3b_c3), .oS (oC12_3b[18:3]));
// 12.10 [21:0] 11.10 [20:0] 11.5 [15:0]
//assign oC12_4a = {iB16_4a[20],iB16_4a} - {iB23_5a[15],iB23_5a,5'b0};
wire C12_4a_c5;
assign oC12_4a[4:0] = iB16_4a[4:0];
FA_Cir_Cin1 C124am5 (.iA (iB16_4a[5]), .iB (~iB23_5a[0]), .oS (oC12_4a[5]), .oC (C12_4a_c5));
Ripple_Add_16bit C124am6 (
.iA (iB16_4a[20:6]), .iB (~iB23_5a[15:1]),
.iC (C12_4a_c5), .oS (oC12_4a[21:6]));
// 12.10 [21:0] 11.10 [20:0] 11.5 [15:0]
//assign oC12_4b = {iB16_4b[20],iB16_4b} + {iB23_5b[15],iB23_5b,5'b0};
wire C12_4b_c5;
assign oC12_4b[4:0] = iB16_4b[4:0];
FA_Cir_Cin0 C124bm5 (.iA (iB16_4b[5]), .iB (iB23_5b[0]), .oS (oC12_4b[5]), .oC (C12_4b_c5));
Ripple_Add_16bit C124bm6 (
.iA (iB16_4b[20:6]), .iB (iB23_5b[15:1]),
.iC (C12_4b_c5), .oS (oC12_4b[21:6]));
// 12.10 [21:0] 11.5 [15:0] 11.10 [20:0]
//assign oC12_5a = {iB16_5a[15],iB16_5a,5'b0} - {iB23_4b[20],iB23_4b};
wire C12_5a_c1, C12_5a_c2, C12_5a_c3, C12_5a_c4;
assign oC12_5a[0] = iB23_4b[0];
FA_Cir_Cin0 C125am1 (.iA (~iB23_4b[1]), .iB (~iB23_4b[0]), .oS (oC12_5a[1]), .oC (C12_5a_c1));
FA_Cir_Cin0 C125am2 (.iA (~iB23_4b[2]), .iB (C12_5a_c1), .oS (oC12_5a[2]), .oC (C12_5a_c2));
FA_Cir_Cin0 C125am3 (.iA (~iB23_4b[3]), .iB (C12_5a_c2), .oS (oC12_5a[3]), .oC (C12_5a_c3));
FA_Cir_Cin0 C125am4 (.iA (~iB23_4b[4]), .iB (C12_5a_c3), .oS (oC12_5a[4]), .oC (C12_5a_c4));
Ripple_Add_17bit C125am5 (
.iA (iB16_5a), .iB (~iB23_4b[20:5]),
.iC (C12_5a_c4), .oS (oC12_5a[21:5]));
// 12.10 [21:0] 11.5 [15:0] 11.10 [20:0]
//assign oC12_5b = {iB16_5b[15],iB16_5b,5'b0} - {iB23_4a[20],iB23_4a};
wire C12_5b_c1, C12_5b_c2, C12_5b_c3, C12_5b_c4;
assign oC12_5b[0] = iB23_4a[0];
FA_Cir_Cin0 C125bm1 (.iA (~iB23_4a[1]), .iB (~iB23_4a[0]), .oS (oC12_5b[1]), .oC (C12_5b_c1));
FA_Cir_Cin0 C125bm2 (.iA (~iB23_4a[2]), .iB (C12_5b_c1), .oS (oC12_5b[2]), .oC (C12_5b_c2));
FA_Cir_Cin0 C125bm3 (.iA (~iB23_4a[3]), .iB (C12_5b_c2), .oS (oC12_5b[3]), .oC (C12_5b_c3));
FA_Cir_Cin0 C125bm4 (.iA (~iB23_4a[4]), .iB (C12_5b_c3), .oS (oC12_5b[4]), .oC (C12_5b_c4));
Ripple_Add_17bit C125bm5 (
.iA (iB16_5b), .iB (~iB23_4a[20:5]),
.iC (C12_5b_c4), .oS (oC12_5b[21:5]));
// 12.9 [20:0] 11.3 [13:0] 11.9 [19:0]
//assign oC12_6a = {iB16_6a[13],iB16_6a,6'b0} - {iB23_7a[19],iB23_7a};
wire C12_6a_c1, C12_6a_c2, C12_6a_c3, C12_6a_c4, C12_6a_c5;
assign oC12_6a[0] = iB23_7a[0];
FA_Cir_Cin0 C126am1 (.iA (~iB23_7a[1]), .iB (~iB23_7a[0]), .oS (oC12_6a[1]), .oC (C12_6a_c1));
FA_Cir_Cin0 C126am2 (.iA (~iB23_7a[2]), .iB (C12_6a_c1), .oS (oC12_6a[2]), .oC (C12_6a_c2));
FA_Cir_Cin0 C126am3 (.iA (~iB23_7a[3]), .iB (C12_6a_c2), .oS (oC12_6a[3]), .oC (C12_6a_c3));
FA_Cir_Cin0 C126am4 (.iA (~iB23_7a[4]), .iB (C12_6a_c3), .oS (oC12_6a[4]), .oC (C12_6a_c4));
FA_Cir_Cin0 C126am5 (.iA (~iB23_7a[5]), .iB (C12_6a_c4), .oS (oC12_6a[5]), .oC (C12_6a_c5));
Ripple_Add_15bit C126am6 (
.iA (iB16_6a), .iB (~iB23_7a[19:6]),
.iC (C12_6a_c5), .oS (oC12_6a[20:6]));
// 12.9 [20:0] 11.3 [13:0] 11.9 [19:0]
//assign oC12_6b = {iB16_6b[13],iB16_6b,6'b0} + {iB23_7b[19],iB23_7b};
wire C12_6b_c6;
assign oC12_6b[5:0] = iB23_7b[5:0];
FA_Cir_Cin0 C126bm6 (.iA (iB16_6b[0]), .iB (iB23_7b[6]), .oS (oC12_6b[6]), .oC (C12_6b_c6));
Ripple_Add_14bit C126bm7 (
.iA (iB16_6b[13:1]), .iB (iB23_7b[19:7]),
.iC (C12_6b_c6), .oS (oC12_6b[20:7]));
// 12.9 [20:0] 11.9 [19:0] 11.3 [13:0]
//assign oC12_7a = {iB16_7a[19],iB16_7a} - {iB23_6b[13],iB23_6b,6'b0};
wire C12_7a_c6;
assign oC12_7a[5:0] = iB16_7a[5:0];
FA_Cir_Cin1 C127am6 (.iA (iB16_7a[6]), .iB (~iB23_6b[0]), .oS (oC12_7a[6]), .oC (C12_7a_c6));
Ripple_Add_14bit C127am7 (
.iA (iB16_7a[19:7]), .iB (~iB23_6b[13:1]),
.iC (C12_7a_c6), .oS (oC12_7a[20:7]));
// 12.9 [20:0] 11.9 [19:0] 11.3 [13:0]
//assign oC12_7b = {iB16_7b[19],iB16_7b} - {iB23_6a[13],iB23_6a,6'b0};
wire C12_7b_c6;
assign oC12_7b[5:0] = iB16_7b[5:0];
FA_Cir_Cin1 C127bm6 (.iA (iB16_7b[6]), .iB (~iB23_6a[0]), .oS (oC12_7b[6]), .oC (C12_7b_c6));
Ripple_Add_14bit C127bm7 (
.iA (iB16_7b[19:7]), .iB (~iB23_6a[13:1]),
.iC (C12_7b_c6), .oS (oC12_7b[20:7]));
/**********************************
************** C13 **************
**********************************/
// 12.10 [21:0] 11.10 [20:0] 11.5 [15:0]
//assign oC13_0a = {iB18_0a[20],iB18_0a} + {iB21_1a[15],iB21_1a,5'b0};
wire C13_0a_c5;
assign oC13_0a[4:0] = iB18_0a[4:0];
FA_Cir_Cin0 C130am5 (.iA (iB18_0a[5]), .iB (iB21_1a[0]), .oS (oC13_0a[5]), .oC (C13_0a_c5));
Ripple_Add_16bit C130am6 (
.iA (iB18_0a[20:6]), .iB (iB21_1a[15:1]),
.iC (C13_0a_c5), .oS (oC13_0a[21:6]));
// 12.10 [21:0] 11.5 [15:0] 11.10 [20:0]
//assign oC13_0b = {iB21_1b[15],iB21_1b,5'b0} - {iB18_0b[20],iB18_0b};
wire C13_0b_c1, C13_0b_c2, C13_0b_c3, C13_0b_c4;
assign oC13_0b[0] = iB18_0b[0];
FA_Cir_Cin0 C130bm1 (.iA (~iB18_0b[1]), .iB (~iB18_0b[0]), .oS (oC13_0b[1]), .oC (C13_0b_c1));
FA_Cir_Cin0 C130bm2 (.iA (~iB18_0b[2]), .iB (C13_0b_c1), .oS (oC13_0b[2]), .oC (C13_0b_c2));
FA_Cir_Cin0 C130bm3 (.iA (~iB18_0b[3]), .iB (C13_0b_c2), .oS (oC13_0b[3]), .oC (C13_0b_c3));
FA_Cir_Cin0 C130bm4 (.iA (~iB18_0b[4]), .iB (C13_0b_c3), .oS (oC13_0b[4]), .oC (C13_0b_c4));
Ripple_Add_17bit C130bm5 (
.iA (iB21_1b), .iB (~iB18_0b[20:5]),
.iC (C13_0b_c4), .oS (oC13_0b[21:5]));
// 12.10 [21:0] 11.5 [15:0] 11.10 [20:0]
//assign oC13_1a = {iB18_1a[15],iB18_1a,5'b0} + {iB21_0b[20],iB21_0b};
wire C13_1a_c5;
assign oC13_1a[4:0] = iB21_0b[4:0];
FA_Cir_Cin0 C131am5 (.iA (iB18_1a[0]), .iB (iB21_0b[5]), .oS (oC13_1a[5]), .oC (C13_1a_c5));
Ripple_Add_16bit C131am6 (
.iA (iB18_1a[15:1]), .iB (iB21_0b[20:6]),
.iC (C13_1a_c5), .oS (oC13_1a[21:6]));
// 12.10 [21:0] 11.5 [15:0] 11.10 [20:0]
//assign oC13_1b = {iB18_1b[15],iB18_1b,5'b0} + {iB21_0a[20],iB21_0a};
wire C13_1b_c5;
assign oC13_1b[4:0] = iB21_0a[4:0];
FA_Cir_Cin0 C131bm5 (.iA (iB18_1b[0]), .iB (iB21_0a[5]), .oS (oC13_1b[5]), .oC (C13_1b_c5));
Ripple_Add_16bit C131bm6 (
.iA (iB18_1b[15:1]), .iB (iB21_0a[20:6]),
.iC (C13_1b_c5), .oS (oC13_1b[21:6]));
// 12.9 [20:0] 11.3 [13:0] 11.9 [19:0]
//assign oC13_2a = {iB18_2a[13],iB18_2a,6'b0} + {iB21_3a[19],iB21_3a};
wire C13_2a_c6;
assign oC13_2a[5:0] = iB21_3a[5:0];
FA_Cir_Cin0 C132am6 (.iA (iB18_2a[0]), .iB (iB21_3a[6]), .oS (oC13_2a[6]), .oC (C13_2a_c6));
Ripple_Add_14bit C132am7 (
.iA (iB18_2a[13:1]), .iB (iB21_3a[19:7]),
.iC (C13_2a_c6), .oS (oC13_2a[20:7]));
// 12.9 [20:0] 11.9 [19:0] 11.3 [13:0]
//assign oC13_2b = {iB21_3b[19],iB21_3b} - {iB18_2b[13],iB18_2b,6'b0};
wire C13_2b_c6;
assign oC13_2b[5:0] = iB21_3b[5:0];
FA_Cir_Cin1 C132bm6 (.iA (iB21_3b[6]), .iB (~iB18_2b[0]), .oS (oC13_2b[6]), .oC (C13_2b_c6));
Ripple_Add_14bit C132bm7 (
.iA (iB21_3b[19:7]), .iB (~iB18_2b[13:1]),
.iC (C13_2b_c6), .oS (oC13_2b[20:7]));
// 12.9 [20:0] 11.9 [19:0] 11.3 [13:0]
//assign oC13_3a = {iB18_3a[19],iB18_3a} + {iB21_2b[13],iB21_2b,6'b0};
wire C13_3a_c6;
assign oC13_3a[5:0] = iB18_3a[5:0];
FA_Cir_Cin0 C133am6 (.iA (iB18_3a[6]), .iB (iB21_2b[0]), .oS (oC13_3a[6]), .oC (C13_3a_c6));
Ripple_Add_14bit C133am7 (
.iA (iB18_3a[19:7]), .iB (iB21_2b[13:1]),
.iC (C13_3a_c6), .oS (oC13_3a[20:7]));
// 12.9 [20:0] 11.9 [19:0] 11.3 [13:0]
//assign oC13_3b = {iB18_3b[19],iB18_3b} + {iB21_2a[13],iB21_2a,6'b0};
wire C13_3b_c6;
assign oC13_3b[5:0] = iB18_3b[5:0];
FA_Cir_Cin0 C133bm6 (.iA (iB18_3b[6]), .iB (iB21_2a[0]), .oS (oC13_3b[6]), .oC (C13_3b_c6));
Ripple_Add_14bit C133bm7 (
.iA (iB18_3b[19:7]), .iB (iB21_2a[13:1]),
.iC (C13_3b_c6), .oS (oC13_3b[20:7]));
// 12.7 [18:0] 11.5 [15:0] 11.7 [17:0]
//assign oC13_4a = {iB18_4a[15],iB18_4a,2'b0} - {iB21_5b[17],iB21_5b};
wire C13_4a_c1;
assign oC13_4a[0] = iB21_5b[0];
FA_Cir_Cin0 C134am1 (.iA (~iB21_5b[1]), .iB (~iB21_5b[0]), .oS (oC13_4a[1]), .oC (C13_4a_c1));
Ripple_Add_17bit C134am2 (
.iA (iB18_4a), .iB (~iB21_5b[17:2]),
.iC (C13_4a_c1), .oS (oC13_4a[18:2]));
// 12.7 [18:0] 11.5 [15:0] 11.7 [17:0]
//assign oC13_4b = {iB18_4b[15],iB18_4b,2'b0} - {iB21_5a[17],iB21_5a};
wire C13_4b_c1;
assign oC13_4b[0] = iB21_5a[0];
FA_Cir_Cin0 C134bm1 (.iA (~iB21_5a[1]), .iB (~iB21_5a[0]), .oS (oC13_4b[1]), .oC (C13_4b_c1));
Ripple_Add_17bit C134bm2 (
.iA (iB18_4b), .iB (~iB21_5a[17:2]),
.iC (C13_4b_c1), .oS (oC13_4b[18:2]));
// 12.7 [18:0] 11.7 [17:0] 11.5 [15:0]
//assign oC13_5a = {iB18_5a[17],iB18_5a} - {iB21_4a[15],iB21_4a,2'b0};
wire C13_5a_c2;
assign oC13_5a[1:0] = iB18_5a[1:0];
FA_Cir_Cin1 C135am2 (.iA (iB18_5a[2]), .iB (~iB21_4a[0]), .oS (oC13_5a[2]), .oC (C13_5a_c2));
Ripple_Add_16bit C135am3 (
.iA (iB18_5a[17:3]), .iB (~iB21_4a[15:1]),
.iC (C13_5a_c2), .oS (oC13_5a[18:3]));
// 12.7 [18:0] 11.7 [17:0] 11.5 [15:0]
//assign oC13_5b = {iB18_5b[17],iB18_5b} + {iB21_4b[15],iB21_4b,2'b0};
wire C13_5b_c3;
assign oC13_5b[1:0] = iB18_5b[1:0];
FA_Cir_Cin0 C135bm2 (.iA (iB18_5b[2]), .iB (iB21_4b[0]), .oS (oC13_5b[2]), .oC (C13_5b_c3));
Ripple_Add_16bit C135bm3 (
.iA (iB18_5b[17:3]), .iB (iB21_4b[15:1]),
.iC (C13_5b_c3), .oS (oC13_5b[18:3]));
// 12.10 [21:0] 11.10 [20:0] 11.4 [14:0]
//assign oC13_6a = {iB18_6a[20],iB18_6a} - {iB21_7a[14],iB21_7a,6'b0};
wire C13_6a_c6;
assign oC13_6a[5:0] = iB18_6a[5:0];
FA_Cir_Cin1 C136am6 (.iA (iB18_6a[6]), .iB (~iB21_7a[0]), .oS (oC13_6a[6]), .oC (C13_6a_c6));
Ripple_Add_15bit C136am7 (
.iA (iB18_6a[20:7]), .iB (~iB21_7a[14:1]),
.iC (C13_6a_c6), .oS (oC13_6a[21:7]));
// 12.10 [21:0] 11.10 [20:0] 11.4 [14:0]
//assign oC13_6b = {iB18_6b[20],iB18_6b} + {iB21_7b[14],iB21_7b,6'b0};
wire C13_6b_c6;
assign oC13_6b[5:0] = iB18_6b[5:0];
FA_Cir_Cin0 C136bm6 (.iA (iB18_6b[6]), .iB (iB21_7b[0]), .oS (oC13_6b[6]), .oC (C13_6b_c6));
Ripple_Add_15bit C136bm7 (
.iA (iB18_6b[20:7]), .iB (iB21_7b[14:1]),
.iC (C13_6b_c6), .oS (oC13_6b[21:7]));
// 12.10 [21:0] 11.4 [14:0] 11.10 [20:0]
//assign oC13_7a = {iB18_7a[14],iB18_7a,6'b0} - {iB21_6b[20],iB21_6b};
wire C13_7a_c1, C13_7a_c2, C13_7a_c3, C13_7a_c4, C13_7a_c5;
assign oC13_7a[0] = iB21_6b[0];
FA_Cir_Cin0 C137am1 (.iA (~iB21_6b[1]), .iB (~iB21_6b[0]), .oS (oC13_7a[1]), .oC (C13_7a_c1));
FA_Cir_Cin0 C137am2 (.iA (~iB21_6b[2]), .iB (C13_7a_c1), .oS (oC13_7a[2]), .oC (C13_7a_c2));
FA_Cir_Cin0 C137am3 (.iA (~iB21_6b[3]), .iB (C13_7a_c2), .oS (oC13_7a[3]), .oC (C13_7a_c3));
FA_Cir_Cin0 C137am4 (.iA (~iB21_6b[4]), .iB (C13_7a_c3), .oS (oC13_7a[4]), .oC (C13_7a_c4));
FA_Cir_Cin0 C137am5 (.iA (~iB21_6b[5]), .iB (C13_7a_c4), .oS (oC13_7a[5]), .oC (C13_7a_c5));
Ripple_Add_16bit C137am6 (
.iA (iB18_7a), .iB (~iB21_6b[20:6]),
.iC (C13_7a_c5), .oS (oC13_7a[21:6]));
// 12.10 [21:0] 11.4 [14:0] 11.10 [20:0]
//assign oC13_7b = {iB18_7b[14],iB18_7b,6'b0} - {iB21_6a[20],iB21_6a};
wire C13_7b_c1, C13_7b_c2, C13_7b_c3, C13_7b_c4, C13_7b_c5;
assign oC13_7b[0] = iB21_6a[0];
FA_Cir_Cin0 C137bm1 (.iA (~iB21_6a[1]), .iB (~iB21_6a[0]), .oS (oC13_7b[1]), .oC (C13_7b_c1));
FA_Cir_Cin0 C137bm2 (.iA (~iB21_6a[2]), .iB (C13_7b_c1), .oS (oC13_7b[2]), .oC (C13_7b_c2));
FA_Cir_Cin0 C137bm3 (.iA (~iB21_6a[3]), .iB (C13_7b_c2), .oS (oC13_7b[3]), .oC (C13_7b_c3));
FA_Cir_Cin0 C137bm4 (.iA (~iB21_6a[4]), .iB (C13_7b_c3), .oS (oC13_7b[4]), .oC (C13_7b_c4));
FA_Cir_Cin0 C137bm5 (.iA (~iB21_6a[5]), .iB (C13_7b_c4), .oS (oC13_7b[5]), .oC (C13_7b_c5));
Ripple_Add_16bit C137bm6 (
.iA (iB18_7b), .iB (~iB21_6a[20:6]),
.iC (C13_7b_c5), .oS (oC13_7b[21:6]));
/**********************************
************** C14 **************
**********************************/
// 12.7 [18:0] 11.7 [17:0] 11.5 [15:0]
//assign oC14_0a = {iB20_0a[17],iB20_0a} + {iB19_1a[15],iB19_1a,2'b0};
wire C14_0a_c3;
assign oC14_0a[1:0] = iB20_0a[1:0];
FA_Cir_Cin0 C140am2 (.iA (iB20_0a[2]), .iB (iB19_1a[0]), .oS (oC14_0a[2]), .oC (C14_0a_c3));
Ripple_Add_16bit C140am3 (
.iA (iB20_0a[17:3]), .iB (iB19_1a[15:1]),
.iC (C14_0a_c3), .oS (oC14_0a[18:3]));
// 12.7 [18:0] 11.5 [15:0] 11.7 [17:0]
//assign oC14_0b = {iB19_1b[15],iB19_1b,2'b0} - {iB20_0b[17],iB20_0b};
wire C14_0b_c1;
assign oC14_0b[0] = iB20_0b[0];
FA_Cir_Cin0 C140bm1 (.iA (~iB20_0b[1]), .iB (~iB20_0b[0]), .oS (oC14_0b[1]), .oC (C14_0b_c1));
Ripple_Add_17bit C140bm2 (
.iA (iB19_1b), .iB (~iB20_0b[17:2]),
.iC (C14_0b_c1), .oS (oC14_0b[18:2]));
// 12.7 [18:0] 11.5 [15:0] 11.7 [17:0]
//assign oC14_1a = {iB20_1a[15],iB20_1a,2'b0} + {iB19_0b[17],iB19_0b};
wire C14_1a_c3;
assign oC14_1a[1:0] = iB19_0b[1:0];
FA_Cir_Cin0 C141am2 (.iA (iB20_1a[0]), .iB (iB19_0b[2]), .oS (oC14_1a[2]), .oC (C14_1a_c3));
Ripple_Add_16bit C141am3 (
.iA (iB20_1a[15:1]), .iB (iB19_0b[17:3]),
.iC (C14_1a_c3), .oS (oC14_1a[18:3]));
// 12.7 [18:0] 11.5 [15:0] 11.7 [17:0]
//assign oC14_1b = {iB20_1b[15],iB20_1b,2'b0} + {iB19_0a[17],iB19_0a};
wire C14_1b_c3;
assign oC14_1b[1:0] = iB19_0a[1:0];
FA_Cir_Cin0 C141bm2 (.iA (iB20_1b[0]), .iB (iB19_0a[2]), .oS (oC14_1b[2]), .oC (C14_1b_c3));
Ripple_Add_16bit C141bm3 (
.iA (iB20_1b[15:1]), .iB (iB19_0a[17:3]),
.iC (C14_1b_c3), .oS (oC14_1b[18:3]));
// 12.10 [21:0] 11.4 [14:0] 11.10 [20:0]
//assign oC14_2a = {iB20_2a[14],iB20_2a,6'b0} + {iB19_3b[20],iB19_3b};
wire C14_2a_c6;
assign oC14_2a[5:0] = iB19_3b[5:0];
FA_Cir_Cin0 C142am6 (.iA (iB20_2a[0]), .iB (iB19_3b[6]), .oS (oC14_2a[6]), .oC (C14_2a_c6));
Ripple_Add_15bit C142am7 (
.iA (iB20_2a[14:1]), .iB (iB19_3b[20:7]),
.iC (C14_2a_c6), .oS (oC14_2a[21:7]));
// 12.10 [21:0] 11.4 [14:0] 11.10 [20:0]
//assign oC14_2b = {iB20_2b[14],iB20_2b,6'b0} + {iB19_3a[20],iB19_3a};
wire C14_2b_c6;
assign oC14_2b[5:0] = iB19_3a[5:0];
FA_Cir_Cin0 C142bm6 (.iA (iB20_2b[0]), .iB (iB19_3a[6]), .oS (oC14_2b[6]), .oC (C14_2b_c6));
Ripple_Add_15bit C142bm7 (
.iA (iB20_2b[14:1]), .iB (iB19_3a[20:7]),
.iC (C14_2b_c6), .oS (oC14_2b[21:7]));
// 12.10 [21:0] 11.10 [20:0] 11.4 [14:0]
//assign oC14_3a = {iB20_3a[20],iB20_3a} + {iB19_2a[14],iB19_2a,6'b0};
wire C14_3a_c6;
assign oC14_3a[5:0] = iB20_3a[5:0];
FA_Cir_Cin0 C143am6 (.iA (iB20_3a[6]), .iB (iB19_2a[0]), .oS (oC14_3a[6]), .oC (C14_3a_c6));
Ripple_Add_15bit C143am7 (
.iA (iB20_3a[20:7]), .iB (iB19_2a[14:1]),
.iC (C14_3a_c6), .oS (oC14_3a[21:7]));
// 12.10 [21:0] 11.4 [14:0] 11.10 [20:0]
//assign oC14_3b = {iB19_2b[14],iB19_2b,6'b0} - {iB20_3b[20],iB20_3b};
wire C14_3b_c1, C14_3b_c2, C14_3b_c3, C14_3b_c4, C14_3b_c5;
assign oC14_3b[0] = iB20_3b[0];
FA_Cir_Cin0 C143bm1 (.iA (~iB20_3b[1]), .iB (~iB20_3b[0]), .oS (oC14_3b[1]), .oC (C14_3b_c1));
FA_Cir_Cin0 C143bm2 (.iA (~iB20_3b[2]), .iB (C14_3b_c1), .oS (oC14_3b[2]), .oC (C14_3b_c2));
FA_Cir_Cin0 C143bm3 (.iA (~iB20_3b[3]), .iB (C14_3b_c2), .oS (oC14_3b[3]), .oC (C14_3b_c3));
FA_Cir_Cin0 C143bm4 (.iA (~iB20_3b[4]), .iB (C14_3b_c3), .oS (oC14_3b[4]), .oC (C14_3b_c4));
FA_Cir_Cin0 C143bm5 (.iA (~iB20_3b[5]), .iB (C14_3b_c4), .oS (oC14_3b[5]), .oC (C14_3b_c5));
Ripple_Add_16bit C143bm6 (
.iA (iB19_2b), .iB (~iB20_3b[20:6]),
.iC (C14_3b_c5), .oS (oC14_3b[21:6]));
// 12.9 [20:0] 11.3 [13:0] 11.9 [19:0]
//assign oC14_4a = {iB20_4a[13],iB20_4a,6'b0} - {iB19_5a[19],iB19_5a};
wire C14_4a_c1, C14_4a_c2, C14_4a_c3, C14_4a_c4, C14_4a_c5;
assign oC14_4a[0] = iB19_5a[0];
FA_Cir_Cin0 C144am1 (.iA (~iB19_5a[1]), .iB (~iB19_5a[0]), .oS (oC14_4a[1]), .oC (C14_4a_c1));
FA_Cir_Cin0 C144am2 (.iA (~iB19_5a[2]), .iB (C14_4a_c1), .oS (oC14_4a[2]), .oC (C14_4a_c2));
FA_Cir_Cin0 C144am3 (.iA (~iB19_5a[3]), .iB (C14_4a_c2), .oS (oC14_4a[3]), .oC (C14_4a_c3));
FA_Cir_Cin0 C144am4 (.iA (~iB19_5a[4]), .iB (C14_4a_c3), .oS (oC14_4a[4]), .oC (C14_4a_c4));
FA_Cir_Cin0 C144am5 (.iA (~iB19_5a[5]), .iB (C14_4a_c4), .oS (oC14_4a[5]), .oC (C14_4a_c5));
Ripple_Add_15bit C144am6 (
.iA (iB20_4a), .iB (~iB19_5a[19:6]),
.iC (C14_4a_c5), .oS (oC14_4a[20:6]));
// 12.9 [20:0] 11.3 [13:0] 11.9 [19:0]
//assign oC14_4b = {iB20_4b[13],iB20_4b,6'b0} + {iB19_5b[19],iB19_5b};
wire C14_4b_c6;
assign oC14_4b[5:0] = iB19_5b[5:0];
FA_Cir_Cin0 C144bm6 (.iA (iB20_4b[0]), .iB (iB19_5b[6]), .oS (oC14_4b[6]), .oC (C14_4b_c6));
Ripple_Add_14bit C144bm7 (
.iA (iB20_4b[13:1]), .iB (iB19_5b[19:7]),
.iC (C14_4b_c6), .oS (oC14_4b[20:7]));
// 12.9 [20:0] 11.9 [19:0] 11.3 [13:0]
//assign oC14_5a = {iB20_5a[19],iB20_5a} - {iB19_4b[13],iB19_4b,6'b0};
wire C14_5a_c6;
assign oC14_5a[5:0] = iB20_5a[5:0];
FA_Cir_Cin1 C145am6 (.iA (iB20_5a[6]), .iB (~iB19_4b[0]), .oS (oC14_5a[6]), .oC (C14_5a_c6));
Ripple_Add_14bit C145am7 (
.iA (iB20_5a[19:7]), .iB (~iB19_4b[13:1]),
.iC (C14_5a_c6), .oS (oC14_5a[20:7]));
// 12.9 [20:0] 11.9 [19:0] 11.3 [13:0]
//assign oC14_5b = {iB20_5b[19],iB20_5b} - {iB19_4a[13],iB19_4a,6'b0};
wire C14_5b_c6;
assign oC14_5b[5:0] = iB20_5b[5:0];
FA_Cir_Cin1 C145bm6 (.iA (iB20_5b[6]), .iB (~iB19_4a[0]), .oS (oC14_5b[6]), .oC (C14_5b_c6));
Ripple_Add_14bit C145bm7 (
.iA (iB20_5b[19:7]), .iB (~iB19_4a[13:1]),
.iC (C14_5b_c6), .oS (oC14_5b[20:7]));
// 12.10 [21:0] 11.5 [15:0] 11.10 [20:0]
//assign oC14_6a = {iB20_6a[15],iB20_6a,5'b0} - {iB19_7b[20],iB19_7b};
wire C14_6a_c1, C14_6a_c2, C14_6a_c3, C14_6a_c4;
assign oC14_6a[0] = iB19_7b[0];
FA_Cir_Cin0 C146am1 (.iA (~iB19_7b[1]), .iB (~iB19_7b[0]), .oS (oC14_6a[1]), .oC (C14_6a_c1));
FA_Cir_Cin0 C146am2 (.iA (~iB19_7b[2]), .iB (C14_6a_c1), .oS (oC14_6a[2]), .oC (C14_6a_c2));
FA_Cir_Cin0 C146am3 (.iA (~iB19_7b[3]), .iB (C14_6a_c2), .oS (oC14_6a[3]), .oC (C14_6a_c3));
FA_Cir_Cin0 C146am4 (.iA (~iB19_7b[4]), .iB (C14_6a_c3), .oS (oC14_6a[4]), .oC (C14_6a_c4));
Ripple_Add_17bit C146am5 (
.iA (iB20_6a), .iB (~iB19_7b[20:5]),
.iC (C14_6a_c4), .oS (oC14_6a[21:5]));
// 12.10 [21:0] 11.5 [15:0] 11.10 [20:0]
//assign oC14_6b = {iB20_6b[15],iB20_6b,5'b0} - {iB19_7a[20],iB19_7a};
wire C14_6b_c1, C14_6b_c2, C14_6b_c3, C14_6b_c4;
assign oC14_6b[0] = iB19_7a[0];
FA_Cir_Cin0 C146bm1 (.iA (~iB19_7a[1]), .iB (~iB19_7a[0]), .oS (oC14_6b[1]), .oC (C14_6b_c1));
FA_Cir_Cin0 C146bm2 (.iA (~iB19_7a[2]), .iB (C14_6b_c1), .oS (oC14_6b[2]), .oC (C14_6b_c2));
FA_Cir_Cin0 C146bm3 (.iA (~iB19_7a[3]), .iB (C14_6b_c2), .oS (oC14_6b[3]), .oC (C14_6b_c3));
FA_Cir_Cin0 C146bm4 (.iA (~iB19_7a[4]), .iB (C14_6b_c3), .oS (oC14_6b[4]), .oC (C14_6b_c4));
Ripple_Add_17bit C146bm5 (
.iA (iB20_6b), .iB (~iB19_7a[20:5]),
.iC (C14_6b_c4), .oS (oC14_6b[21:5]));
// 12.10 [21:0] 11.10 [20:0] 11.5 [15:0]
//assign oC14_7a = {iB20_7a[20],iB20_7a} - {iB19_6a[15],iB19_6a,5'b0};
wire C14_7a_c5;
assign oC14_7a[4:0] = iB20_7a[4:0];
FA_Cir_Cin1 C147am5 (.iA (iB20_7a[5]), .iB (~iB19_6a[0]), .oS (oC14_7a[5]), .oC (C14_7a_c5));
Ripple_Add_16bit C147am6 (
.iA (iB20_7a[20:6]), .iB (~iB19_6a[15:1]),
.iC (C14_7a_c5), .oS (oC14_7a[21:6]));
// 12.10 [21:0] 11.10 [20:0] 11.5 [15:0]
//assign oC14_7b = {iB20_7b[20],iB20_7b} + {iB19_6b[15],iB19_6b,5'b0};
wire C14_7b_c5;
assign oC14_7b[4:0] = iB20_7b[4:0];
FA_Cir_Cin0 C147bm5 (.iA (iB20_7b[5]), .iB (iB19_6b[0]), .oS (oC14_7b[5]), .oC (C14_7b_c5));
Ripple_Add_16bit C147bm6 (
.iA (iB20_7b[20:6]), .iB (iB19_6b[15:1]),
.iC (C14_7b_c5), .oS (oC14_7b[21:6]));
/**********************************
************** C15 **************
**********************************/
// 12.9 [20:0] 11.3 [13:0] 11.9 [19:0]
//assign oC15_0a = {iB22_0a[13],iB22_0a,6'b0} + {iB17_1a[19],iB17_1a};
wire C15_0a_c6;
assign oC15_0a[5:0] = iB17_1a[5:0];
FA_Cir_Cin0 C150am6 (.iA (iB22_0a[0]), .iB (iB17_1a[6]), .oS (oC15_0a[6]), .oC (C15_0a_c6));
Ripple_Add_14bit C150am7 (
.iA (iB22_0a[13:1]), .iB (iB17_1a[19:7]),
.iC (C15_0a_c6), .oS (oC15_0a[20:7]));
// 12.9 [20:0] 11.9 [19:0] 11.3 [13:0]
//assign oC15_0b = {iB17_1b[19],iB17_1b} - {iB22_0b[13],iB22_0b,6'b0};
wire C15_0b_c6;
assign oC15_0b[5:0] = iB17_1b[5:0];
FA_Cir_Cin1 C150bm6 (.iA (iB17_1b[6]), .iB (~iB22_0b[0]), .oS (oC15_0b[6]), .oC (C15_0b_c6));
Ripple_Add_14bit C150bm7 (
.iA (iB17_1b[19:7]), .iB (~iB22_0b[13:1]),
.iC (C15_0b_c6), .oS (oC15_0b[20:7]));
// 12.9 [20:0] 11.9 [19:0] 11.3 [13:0]
//assign oC15_1a = {iB22_1a[19],iB22_1a} + {iB17_0b[13],iB17_0b,6'b0};
wire C15_1a_c6;
assign oC15_1a[5:0] = iB22_1a[5:0];
FA_Cir_Cin0 C151am6 (.iA (iB22_1a[6]), .iB (iB17_0b[0]), .oS (oC15_1a[6]), .oC (C15_1a_c6));
Ripple_Add_14bit C151am7 (
.iA (iB22_1a[19:7]), .iB (iB17_0b[13:1]),
.iC (C15_1a_c6), .oS (oC15_1a[20:7]));
// 12.9 [20:0] 11.9 [19:0] 11.3 [13:0]
//assign oC15_1b = {iB22_1b[19],iB22_1b} + {iB17_0a[13],iB17_0a,6'b0};
wire C15_1b_c6;
assign oC15_1b[5:0] = iB22_1b[5:0];
FA_Cir_Cin0 C151bm6 (.iA (iB22_1b[6]), .iB (iB17_0a[0]), .oS (oC15_1b[6]), .oC (C15_1b_c6));
Ripple_Add_14bit C151bm7 (
.iA (iB22_1b[19:7]), .iB (iB17_0a[13:1]),
.iC (C15_1b_c6), .oS (oC15_1b[20:7]));
// 12.10 [21:0] 11.5 [15:0] 11.10 [20:0]
//assign oC15_2a = {iB22_2a[15],iB22_2a,5'b0} + {iB17_3b[20],iB17_3b};
wire C15_2a_c5;
assign oC15_2a[4:0] = iB17_3b[4:0];
FA_Cir_Cin0 C152am5 (.iA (iB22_2a[0]), .iB (iB17_3b[5]), .oS (oC15_2a[5]), .oC (C15_2a_c5));
Ripple_Add_16bit C152am6 (
.iA (iB22_2a[15:1]), .iB (iB17_3b[20:6]),
.iC (C15_2a_c5), .oS (oC15_2a[21:6]));
// 12.10 [21:0] 11.5 [15:0] 11.10 [20:0]
//assign oC15_2b = {iB22_2b[15],iB22_2b,5'b0} + {iB17_3a[20],iB17_3a};
wire C15_2b_c5;
assign oC15_2b[4:0] = iB17_3a[4:0];
FA_Cir_Cin0 C152bm5 (.iA (iB22_2b[0]), .iB (iB17_3a[5]), .oS (oC15_2b[5]), .oC (C15_2b_c5));
Ripple_Add_16bit C152bm6 (
.iA (iB22_2b[15:1]), .iB (iB17_3a[20:6]),
.iC (C15_2b_c5), .oS (oC15_2b[21:6]));
// 12.10 [21:0] 11.10 [20:0] 11.5 [15:0]
//assign oC15_3a = {iB22_3a[20],iB22_3a} + {iB17_2a[15],iB17_2a,5'b0};
wire C15_3a_c5;
assign oC15_3a[4:0] = iB22_3a[4:0];
FA_Cir_Cin0 C153am5 (.iA (iB22_3a[5]), .iB (iB17_2a[0]), .oS (oC15_3a[5]), .oC (C15_3a_c5));
Ripple_Add_16bit C153am6 (
.iA (iB22_3a[20:6]), .iB (iB17_2a[15:1]),
.iC (C15_3a_c5), .oS (oC15_3a[21:6]));
// 12.10 [21:0] 11.5 [15:0] 11.10 [20:0]
//assign oC15_3b = {iB17_2b[15],iB17_2b,5'b0} - {iB22_3b[20],iB22_3b};
wire C15_3b_c1, C15_3b_c2, C15_3b_c3, C15_3b_c4;
assign oC15_3b[0] = iB22_3b[0];
FA_Cir_Cin0 C153bm1 (.iA (~iB22_3b[1]), .iB (~iB22_3b[0]), .oS (oC15_3b[1]), .oC (C15_3b_c1));
FA_Cir_Cin0 C153bm2 (.iA (~iB22_3b[2]), .iB (C15_3b_c1), .oS (oC15_3b[2]), .oC (C15_3b_c2));
FA_Cir_Cin0 C153bm3 (.iA (~iB22_3b[3]), .iB (C15_3b_c2), .oS (oC15_3b[3]), .oC (C15_3b_c3));
FA_Cir_Cin0 C153bm4 (.iA (~iB22_3b[4]), .iB (C15_3b_c3), .oS (oC15_3b[4]), .oC (C15_3b_c4));
Ripple_Add_17bit C153bm5 (
.iA (iB17_2b), .iB (~iB22_3b[20:5]),
.iC (C15_3b_c4), .oS (oC15_3b[21:5]));
// 12.10 [21:0] 11.10 [20:0] 11.4 [14:0]
//assign oC15_4a = {iB22_4a[20],iB22_4a} - {iB17_5a[14],iB17_5a,6'b0};
wire C15_4a_c6;
assign oC15_4a[5:0] = iB22_4a[5:0];
FA_Cir_Cin1 C154am6 (.iA (iB22_4a[6]), .iB (~iB17_5a[0]), .oS (oC15_4a[6]), .oC (C15_4a_c6));
Ripple_Add_15bit C154am7 (
.iA (iB22_4a[20:7]), .iB (~iB17_5a[14:1]),
.iC (C15_4a_c6), .oS (oC15_4a[21:7]));
// 12.10 [21:0] 11.10 [20:0] 11.4 [14:0]
//assign oC15_4b = {iB22_4b[20],iB22_4b} + {iB17_5b[14],iB17_5b,6'b0};
wire C15_4b_c6;
assign oC15_4b[5:0] = iB22_4b[5:0];
FA_Cir_Cin0 C154bm6 (.iA (iB22_4b[6]), .iB (iB17_5b[0]), .oS (oC15_4b[6]), .oC (C15_4b_c6));
Ripple_Add_15bit C154bm7 (
.iA (iB22_4b[20:7]), .iB (iB17_5b[14:1]),
.iC (C15_4b_c6), .oS (oC15_4b[21:7]));
// 12.10 [21:0] 11.4 [14:0] 11.10 [20:0]
//assign oC15_5a = {iB22_5a[14],iB22_5a,6'b0} - {iB17_4b[20],iB17_4b};
wire C15_5a_c1, C15_5a_c2, C15_5a_c3, C15_5a_c4, C15_5a_c5;
assign oC15_5a[0] = iB17_4b[0];
FA_Cir_Cin0 C155am1 (.iA (~iB17_4b[1]), .iB (~iB17_4b[0]), .oS (oC15_5a[1]), .oC (C15_5a_c1));
FA_Cir_Cin0 C155am2 (.iA (~iB17_4b[2]), .iB (C15_5a_c1), .oS (oC15_5a[2]), .oC (C15_5a_c2));
FA_Cir_Cin0 C155am3 (.iA (~iB17_4b[3]), .iB (C15_5a_c2), .oS (oC15_5a[3]), .oC (C15_5a_c3));
FA_Cir_Cin0 C155am4 (.iA (~iB17_4b[4]), .iB (C15_5a_c3), .oS (oC15_5a[4]), .oC (C15_5a_c4));
FA_Cir_Cin0 C155am5 (.iA (~iB17_4b[5]), .iB (C15_5a_c4), .oS (oC15_5a[5]), .oC (C15_5a_c5));
Ripple_Add_16bit C155am6 (
.iA (iB22_5a), .iB (~iB17_4b[20:6]),
.iC (C15_5a_c5), .oS (oC15_5a[21:6]));
// 12.10 [21:0] 11.4 [14:0] 11.10 [20:0]
//assign oC15_5b = {iB22_5b[14],iB22_5b,6'b0} - {iB17_4a[20],iB17_4a};
wire C15_5b_c1, C15_5b_c2, C15_5b_c3, C15_5b_c4, C15_5b_c5;
assign oC15_5b[0] = iB17_4a[0];
FA_Cir_Cin0 C155bm1 (.iA (~iB17_4a[1]), .iB (~iB17_4a[0]), .oS (oC15_5b[1]), .oC (C15_5b_c1));
FA_Cir_Cin0 C155bm2 (.iA (~iB17_4a[2]), .iB (C15_5b_c1), .oS (oC15_5b[2]), .oC (C15_5b_c2));
FA_Cir_Cin0 C155bm3 (.iA (~iB17_4a[3]), .iB (C15_5b_c2), .oS (oC15_5b[3]), .oC (C15_5b_c3));
FA_Cir_Cin0 C155bm4 (.iA (~iB17_4a[4]), .iB (C15_5b_c3), .oS (oC15_5b[4]), .oC (C15_5b_c4));
FA_Cir_Cin0 C155bm5 (.iA (~iB17_4a[5]), .iB (C15_5b_c4), .oS (oC15_5b[5]), .oC (C15_5b_c5));
Ripple_Add_16bit C155bm6 (
.iA (iB22_5b), .iB (~iB17_4a[20:6]),
.iC (C15_5b_c5), .oS (oC15_5b[21:6]));
// 12.7 [18:0] 11.7 [17:0] 11.5 [15:0]
//assign oC15_6a = {iB22_6a[17],iB22_6a} - {iB17_7a[15],iB17_7a,2'b0};
wire C15_6a_c2;
assign oC15_6a[1:0] = iB22_6a[1:0];
FA_Cir_Cin1 C156am2 (.iA (iB22_6a[2]), .iB (~iB17_7a[0]), .oS (oC15_6a[2]), .oC (C15_6a_c2));
Ripple_Add_16bit C156am3 (
.iA (iB22_6a[17:3]), .iB (~iB17_7a[15:1]),
.iC (C15_6a_c2), .oS (oC15_6a[18:3]));
// 12.7 [18:0] 11.7 [17:0] 11.5 [15:0]
//assign oC15_6b = {iB22_6b[17],iB22_6b} + {iB17_7b[15],iB17_7b,2'b0};
wire C15_6b_c3;
assign oC15_6b[1:0] = iB22_6b[1:0];
FA_Cir_Cin0 C156bm2 (.iA (iB22_6b[2]), .iB (iB17_7b[0]), .oS (oC15_6b[2]), .oC (C15_6b_c3));
Ripple_Add_16bit C156bm3 (
.iA (iB22_6b[17:3]), .iB (iB17_7b[15:1]),
.iC (C15_6b_c3), .oS (oC15_6b[18:3]));
// 12.7 [18:0] 11.5 [15:0] 11.7 [17:0]
//assign oC15_7a = {iB22_7a[15],iB22_7a,2'b0} - {iB17_6b[17],iB17_6b};
wire C15_7a_c1;
assign oC15_7a[0] = iB17_6b[0];
FA_Cir_Cin0 C157am1 (.iA (~iB17_6b[1]), .iB (~iB17_6b[0]), .oS (oC15_7a[1]), .oC (C15_7a_c1));
Ripple_Add_17bit C157am2 (
.iA (iB22_7a), .iB (~iB17_6b[17:2]),
.iC (C15_7a_c1), .oS (oC15_7a[18:2]));
// 12.7 [18:0] 11.5 [15:0] 11.7 [17:0]
//assign oC15_7b = {iB22_7b[15],iB22_7b,2'b0} - {iB17_6a[17],iB17_6a};
wire C15_7b_c1;
assign oC15_7b[0] = iB17_6a[0];
FA_Cir_Cin0 C157bm1 (.iA (~iB17_6a[1]), .iB (~iB17_6a[0]), .oS (oC15_7b[1]), .oC (C15_7b_c1));
Ripple_Add_17bit C157bm2 (
.iA (iB22_7b), .iB (~iB17_6a[17:2]),
.iC (C15_7b_c1), .oS (oC15_7b[18:2]));
endmodule
module ACor_DCT_32p_S4 (
// Input Signals
input [10:0] /*11.0 */ iC0, iC1, iC2, iC3, iC4, iC5, iC6, iC7,
input [19:0] /*12.8 */ iC8_0a, iC8_0b, iC9_3a, iC9_3b, iC10_3a, iC10_3b, iC11_0a, iC11_0b,
input [17:0] /*12.6 */ iC8_3a, iC8_3b, iC9_1a, iC9_1b, iC10_1a, iC10_1b, iC11_3a, iC11_3b,
input [17:0] /*12.6 */ iC8_2a, iC8_2b, iC9_0a, iC9_0b, iC10_0a, iC10_0b, iC11_2a, iC11_2b,
input [14:0] /*12.3 */ iC8_1a, iC8_1b, iC9_2a, iC9_2b, iC10_2a, iC10_2b, iC11_1a, iC11_1b,
input [21:0] /*12.10*/ iC12_0a, iC12_0b, iC12_1a, iC12_1b,
input [18:0] /*12.7 */ iC12_2a, iC12_2b, iC12_3a, iC12_3b,
input [21:0] /*12.10*/ iC12_4a, iC12_4b, iC12_5a, iC12_5b,
input [20:0] /*12.9 */ iC12_6a, iC12_6b, iC12_7a, iC12_7b,
input [21:0] /*12.10*/ iC13_0a, iC13_0b, iC13_1a, iC13_1b,
input [20:0] /*12.9 */ iC13_2a, iC13_2b, iC13_3a, iC13_3b,
input [18:0] /*12.7 */ iC13_4a, iC13_4b, iC13_5a, iC13_5b,
input [21:0] /*12.10*/ iC13_6a, iC13_6b, iC13_7a, iC13_7b,
input [18:0] /*12.7 */ iC14_0a, iC14_0b, iC14_1a, iC14_1b,
input [21:0] /*12.10*/ iC14_2a, iC14_2b, iC14_3a, iC14_3b,
input [20:0] /*12.9 */ iC14_4a, iC14_4b, iC14_5a, iC14_5b,
input [21:0] /*12.10*/ iC14_6a, iC14_6b, iC14_7a, iC14_7b,
input [20:0] /*12.9 */ iC15_0a, iC15_0b, iC15_1a, iC15_1b,
input [21:0] /*12.10*/ iC15_2a, iC15_2b, iC15_3a, iC15_3b,
input [21:0] /*12.10*/ iC15_4a, iC15_4b, iC15_5a, iC15_5b,
input [18:0] /*12.7 */ iC15_6a, iC15_6b, iC15_7a, iC15_7b,
// Output Signals
output [11:0] /*12.0 */ oD0, oD1, oD2, oD3,
output [18:0] /*13.6 */ oD4_0a, oD4_0b, oD5_1a, oD5_1b,
output [16:0] /*13.4 */ oD4_1a, oD4_1b, oD5_0a, oD5_0b,
output [20:0] /*13.8 */ oD6_0a, oD6_0b, oD6_1a, oD6_1b,
output [18:0] /*13.6 */ oD6_2a, oD6_2b, oD6_3a, oD6_3b,
output [18:0] /*13.6 */ oD7_0a, oD7_0b, oD7_1a, oD7_1b,
output [20:0] /*13.8 */ oD7_2a, oD7_2b, oD7_3a, oD7_3b,
output [22:0] /*13.10*/ oD8_0a, oD8_0b, oD8_1a, oD8_1b,
oD8_2a, oD8_2b, oD8_3a, oD8_3b,
oD8_4a, oD8_4b, oD8_5a, oD8_5b,
oD8_6a, oD8_6b, oD8_7a, oD8_7b,
output [22:0] /*13.10*/ oD9_0a, oD9_0b, oD9_1a, oD9_1b,
oD9_2a, oD9_2b, oD9_3a, oD9_3b,
oD9_4a, oD9_4b, oD9_5a, oD9_5b,
oD9_6a, oD9_6b, oD9_7a, oD9_7b
);
// assign oD0 = {iC0[10],iC0} + {iC3[10],iC3};
wire D0_c0;
FA_Cir_Cin0 D0m0 (.iA (iC0[0]), .iB (iC3[0]), .oS (oD0[0]), .oC (D0_c0));
Ripple_Add_11bit D0m1 (
.iA (iC0[10:1]),.iB (iC3[10:1]),
.iC (D0_c0), .oS (oD0[11:1]));
// assign oD1 = {iC1[10],iC1} + {iC2[10],iC2};
wire D1_c0;
FA_Cir_Cin0 D1m0 (.iA (iC1[0]), .iB (iC2[0]), .oS (oD1[0]), .oC (D1_c0));
Ripple_Add_11bit D1m1 (
.iA (iC1[10:1]),.iB (iC2[10:1]),
.iC (D1_c0), .oS (oD1[11:1]));
// assign oD2 = {iC1[10],iC1} - {iC2[10],iC2};
wire D2_c0;
FA_Cir_Cin1 D2m0 (.iA (iC1[0]), .iB (~iC2[0]), .oS (oD2[0]), .oC (D2_c0));
Ripple_Add_11bit D2m1 (
.iA (iC1[10:1]),.iB (~iC2[10:1]),
.iC (D2_c0), .oS (oD2[11:1]));
// assign oD3 = {iC0[10],iC0} - {iC3[10],iC3};
wire D3_c0;
FA_Cir_Cin1 D3m0 (.iA (iC0[0]), .iB (~iC3[0]), .oS (oD3[0]), .oC (D3_c0));
Ripple_Add_11bit D3m1 (
.iA (iC0[10:1]),.iB (~iC3[10:1]),
.iC (D3_c0), .oS (oD3[11:1]));
ACor_DCT_32p_1to3_pi16_2Stg D4m0 (
// Input Signals
.iA (iC4), .iB (iC7),
// Output Signals
.o0a (oD4_0a), .o0b (oD4_0b), .o1a (oD4_1a), .o1b (oD4_1b));
ACor_DCT_32p_1to3_pi16_2Stg D5m0 (
// Input Signals
.iA (iC6), .iB (iC5),
// Output Signals
.o0a (oD5_1a), .o0b (oD5_1b), .o1a (oD5_0a), .o1b (oD5_0b));
/*********************************
************** D6 **************
*********************************/
// 13.8 [20:0] 12.8 [19:0] 12.3 [14:0]
//assign oD6_0a = { iC8_0a[19], iC8_0a} + {iC11_1a[14],iC11_1a,5'b0};
wire D6_0a_c5;
assign oD6_0a[4:0] = iC8_0a[4:0];
FA_Cir_Cin0 D60am5 (.iA (iC8_0a[5]), .iB (iC11_1a[0]), .oS (oD6_0a[5]), .oC (D6_0a_c5));
Ripple_Add_15bit D60am6 (
.iA (iC8_0a[19:6]), .iB (iC11_1a[14:1]),
.iC (D6_0a_c5), .oS (oD6_0a[20:6]));
// 13.8 [20:0] 12.3 [14:0] 12.8 [19:0]
//assign oD6_0b = {iC11_1b[14],iC11_1b,5'b0} - { iC8_0b[19], iC8_0b};
wire D6_0b_c1, D6_0b_c2, D6_0b_c3, D6_0b_c4;
assign oD6_0b[0] = iC8_0b[0];
FA_Cir_Cin0 D60bm1 (.iA (~iC8_0b[1]), .iB (~iC8_0b[0]), .oS (oD6_0b[1]), .oC (D6_0b_c1));
FA_Cir_Cin0 D60bm2 (.iA (~iC8_0b[2]), .iB (D6_0b_c1), .oS (oD6_0b[2]), .oC (D6_0b_c2));
FA_Cir_Cin0 D60bm3 (.iA (~iC8_0b[3]), .iB (D6_0b_c2), .oS (oD6_0b[3]), .oC (D6_0b_c3));
FA_Cir_Cin0 D60bm4 (.iA (~iC8_0b[4]), .iB (D6_0b_c3), .oS (oD6_0b[4]), .oC (D6_0b_c4));
Ripple_Add_16bit D60bm5 (
.iA (iC11_1b), .iB (~iC8_0b[19:5]),
.iC (D6_0b_c4), .oS (oD6_0b[20:5]));
// 13.8 [20:0] 12.3 [14:0] 12.8 [19:0]
//assign oD6_1a = { iC8_1a[14], iC8_1a,5'b0} + {iC11_0b[19],iC11_0b};
wire D6_1a_c5;
assign oD6_1a[4:0] = iC11_0b[4:0];
FA_Cir_Cin0 D61am5 (.iA (iC8_1a[0]), .iB (iC11_0b[5]), .oS (oD6_1a[5]), .oC (D6_1a_c5));
Ripple_Add_15bit D61am6 (
.iA (iC8_1a[14:1]), .iB (iC11_0b[19:6]),
.iC (D6_1a_c5), .oS (oD6_1a[20:6]));
// 13.8 [20:0] 12.3 [14:0] 12.8 [19:0]
//assign oD6_1b = { iC8_1b[14], iC8_1b,5'b0} + {iC11_0a[19],iC11_0a};
wire D6_1b_c5;
assign oD6_1b[4:0] = iC11_0a[4:0];
FA_Cir_Cin0 D61bm5 (.iA (iC8_1b[0]), .iB (iC11_0a[5]), .oS (oD6_1b[5]), .oC (D6_1b_c5));
Ripple_Add_15bit D61bm6 (
.iA (iC8_1b[14:1]), .iB (iC11_0a[19:6]),
.iC (D6_1b_c5), .oS (oD6_1b[20:6]));
// 13.6 [18:0] 12.6 [17:0] 12.6 [17:0]
//assign oD6_2a = { iC8_2a[17], iC8_2a} - {iC11_3a[17],iC11_3a};
wire D6_2a_c0;
FA_Cir_Cin1 D62am1 (.iA (iC8_2a[0]), .iB (~iC11_3a[0]), .oS (oD6_2a[0]), .oC (D6_2a_c0));
Ripple_Add_18bit D62am2 (
.iA (iC8_2a[17:1]), .iB (~iC11_3a[17:1]),
.iC (D6_2a_c0), .oS (oD6_2a[18:1]));
// 13.6 [18:0] 12.6 [17:0] 12.6 [17:0]
//assign oD6_2b = { iC8_2b[17], iC8_2b} + {iC11_3b[17],iC11_3b};
wire D6_2b_c0;
FA_Cir_Cin0 D62bm0 (.iA (iC8_2b[0]), .iB (iC11_3b[0]), .oS (oD6_2b[0]), .oC (D6_2b_c0));
Ripple_Add_18bit D62bm1 (
.iA (iC8_2b[17:1]), .iB (iC11_3b[17:1]),
.iC (D6_2b_c0), .oS (oD6_2b[18:1]));
// 13.6 [18:0] 12.6 [17:0] 12.6 [17:0]
//assign oD6_3a = { iC8_3a[17], iC8_3a} - {iC11_2b[17],iC11_2b};
wire D6_3a_c0;
FA_Cir_Cin1 D63am1 (.iA (iC8_3a[0]), .iB (~iC11_2b[0]), .oS (oD6_3a[0]), .oC (D6_3a_c0));
Ripple_Add_18bit D63am2 (
.iA (iC8_3a[17:1]), .iB (~iC11_2b[17:1]),
.iC (D6_3a_c0), .oS (oD6_3a[18:1]));
// 13.6 [18:0] 12.6 [17:0] 12.6 [17:0]
//assign oD6_3b = { iC8_3b[17], iC8_3b} - {iC11_2a[17],iC11_2a};
wire D6_3b_c0;
FA_Cir_Cin1 D63bm1 (.iA (iC8_3b[0]), .iB (~iC11_2a[0]), .oS (oD6_3b[0]), .oC (D6_3b_c0));
Ripple_Add_18bit D63bm2 (
.iA (iC8_3b[17:1]), .iB (~iC11_2a[17:1]),
.iC (D6_3b_c0), .oS (oD6_3b[18:1]));
/*********************************
************** D7 **************
*********************************/
// 13.6 [18:0] 12.6 [17:0] 12.6 [17:0]
//assign oD7_0a = {iC10_0a[17],iC10_0a} + { iC9_1a[17], iC9_1a};
wire D7_0a_c0;
FA_Cir_Cin0 D70am0 (.iA (iC10_0a[0]), .iB (iC9_1a[0]), .oS (oD7_0a[0]), .oC (D7_0a_c0));
Ripple_Add_18bit D70am1 (
.iA (iC10_0a[17:1]), .iB (iC9_1a[17:1]),
.iC (D7_0a_c0), .oS (oD7_0a[18:1]));
// 13.6 [18:0] 12.6 [17:0] 12.6 [17:0]
//assign oD7_0b = { iC9_1b[17], iC9_1b} - {iC10_0b[17],iC10_0b};
wire D7_0b_c0;
FA_Cir_Cin1 D70bm1 (.iA (iC9_1b[0]), .iB (~iC10_0b[0]), .oS (oD7_0b[0]), .oC (D7_0b_c0));
Ripple_Add_18bit D70bm2 (
.iA (iC9_1b[17:1]), .iB (~iC10_0b[17:1]),
.iC (D7_0b_c0), .oS (oD7_0b[18:1]));
// 13.6 [18:0] 12.6 [17:0] 12.6 [17:0]
//assign oD7_1a = {iC10_1a[17],iC10_1a} + { iC9_0b[17], iC9_0b};
wire D7_1a_c0;
FA_Cir_Cin0 D71am0 (.iA (iC10_1a[0]), .iB (iC9_0b[0]), .oS (oD7_1a[0]), .oC (D7_1a_c0));
Ripple_Add_18bit D71am1 (
.iA (iC10_1a[17:1]), .iB (iC9_0b[17:1]),
.iC (D7_1a_c0), .oS (oD7_1a[18:1]));
// 13.6 [18:0] 12.6 [17:0] 12.6 [17:0]
//assign oD7_1b = {iC10_1b[17],iC10_1b} + { iC9_0a[17], iC9_0a};
wire D7_1b_c0;
FA_Cir_Cin0 D71bm0 (.iA (iC10_1b[0]), .iB (iC9_0a[0]), .oS (oD7_1b[0]), .oC (D7_1b_c0));
Ripple_Add_18bit D71bm1 (
.iA (iC10_1b[17:1]), .iB (iC9_0a[17:1]),
.iC (D7_1b_c0), .oS (oD7_1b[18:1]));
// 13.8 [20:0] 12.3 [14:0] 12.8 [19:0]
//assign oD7_2a = {iC10_2a[14],iC10_2a,5'b0} - { iC9_3b[19], iC9_3b};
wire D7_2a_c1, D7_2a_c2, D7_2a_c3, D7_2a_c4;
assign oD7_2a[0] = iC9_3b[0];
FA_Cir_Cin0 D72am1 (.iA (~iC9_3b[1]), .iB (~iC9_3b[0]), .oS (oD7_2a[1]), .oC (D7_2a_c1));
FA_Cir_Cin0 D72am2 (.iA (~iC9_3b[2]), .iB (D7_2a_c1), .oS (oD7_2a[2]), .oC (D7_2a_c2));
FA_Cir_Cin0 D72am3 (.iA (~iC9_3b[3]), .iB (D7_2a_c2), .oS (oD7_2a[3]), .oC (D7_2a_c3));
FA_Cir_Cin0 D72am4 (.iA (~iC9_3b[4]), .iB (D7_2a_c3), .oS (oD7_2a[4]), .oC (D7_2a_c4));
Ripple_Add_16bit D72am5 (
.iA (iC10_2a), .iB (~iC9_3b[19:5]),
.iC (D7_2a_c4), .oS (oD7_2a[20:5]));
// 13.8 [20:0] 12.3 [14:0] 12.8 [19:0]
//assign oD7_2b = {iC10_2b[14],iC10_2b,5'b0} - { iC9_3a[19], iC9_3a};
wire D7_2b_c1, D7_2b_c2, D7_2b_c3, D7_2b_c4;
assign oD7_2b[0] = iC9_3a[0];
FA_Cir_Cin0 D72bm1 (.iA (~iC9_3a[1]), .iB (~iC9_3a[0]), .oS (oD7_2b[1]), .oC (D7_2b_c1));
FA_Cir_Cin0 D72bm2 (.iA (~iC9_3a[2]), .iB (D7_2b_c1), .oS (oD7_2b[2]), .oC (D7_2b_c2));
FA_Cir_Cin0 D72bm3 (.iA (~iC9_3a[3]), .iB (D7_2b_c2), .oS (oD7_2b[3]), .oC (D7_2b_c3));
FA_Cir_Cin0 D72bm4 (.iA (~iC9_3a[4]), .iB (D7_2b_c3), .oS (oD7_2b[4]), .oC (D7_2b_c4));
Ripple_Add_16bit D72bm5 (
.iA (iC10_2b), .iB (~iC9_3a[19:5]),
.iC (D7_2b_c4), .oS (oD7_2b[20:5]));
// 13.8 [20:0] 12.8 [19:0] 12.3 [14:0]
//assign oD7_3a = {iC10_3a[19],iC10_3a} - { iC9_2a[14], iC9_2a,5'b0};
wire D7_3a_c5;
assign oD7_3a[4:0] = iC10_3a[4:0];
FA_Cir_Cin1 D73am5 (.iA (iC10_3a[5]), .iB (~iC9_2a[0]), .oS (oD7_3a[5]), .oC (D7_3a_c5));
Ripple_Add_15bit D73am6 (
.iA (iC10_3a[19:6]), .iB (~iC9_2a[14:1]),
.iC (D7_3a_c5), .oS (oD7_3a[20:6]));
// 13.8 [20:0] 12.8 [19:0] 12.3 [14:0]
//assign oD7_3b = {iC10_3b[19],iC10_3b} + { iC9_2b[14], iC9_2b,5'b0};
wire D7_3b_c5;
assign oD7_3b[4:0] = iC10_3b[4:0];
FA_Cir_Cin0 D73bm5 (.iA (iC10_3b[5]), .iB (iC9_2b[0]), .oS (oD7_3b[5]), .oC (D7_3b_c5));
Ripple_Add_15bit D73bm6 (
.iA (iC10_3b[19:6]), .iB (iC9_2b[14:1]),
.iC (D7_3b_c5), .oS (oD7_3b[20:6]));
/*********************************
************** D8 **************
*********************************/
// 13.10 [22:0] 12.10 [21:0] 12.7 [18:0]
//assign oD8_0a = {iC12_0a[21],iC12_0a} + {iC14_0a[18],iC14_0a,3'b0};
wire D8_0a_c3;
assign oD8_0a[2:0] = iC12_0a[2:0];
FA_Cir_Cin0 D80am3 (.iA (iC12_0a[3]), .iB (iC14_0a[0]), .oS (oD8_0a[3]), .oC (D8_0a_c3));
Ripple_Add_19bit D80am4 (
.iA (iC12_0a[21:4]), .iB (iC14_0a[18:1]),
.iC (D8_0a_c3), .oS (oD8_0a[22:4]));
// 13.10 [22:0] 12.10 [21:0] 12.7 [18:0]
//assign oD8_0b = {iC12_0b[21],iC12_0b} + {iC14_0b[18],iC14_0b,3'b0};
wire D8_0b_c3;
assign oD8_0b[2:0] = iC12_0b[2:0];
FA_Cir_Cin0 D80bm3 (.iA (iC12_0b[3]), .iB (iC14_0b[0]), .oS (oD8_0b[3]), .oC (D8_0b_c3));
Ripple_Add_19bit D80bm4 (
.iA (iC12_0b[21:4]), .iB (iC14_0b[18:1]),
.iC (D8_0b_c3), .oS (oD8_0b[22:4]));
// 13.10 [22:0] 12.10 [21:0] 12.7 [18:0]
//assign oD8_1a = {iC12_1a[21],iC12_1a} + {iC14_1a[18],iC14_1a,3'b0};
wire D8_1a_c3;
assign oD8_1a[2:0] = iC12_1a[2:0];
FA_Cir_Cin0 D81am3 (.iA (iC12_1a[3]), .iB (iC14_1a[0]), .oS (oD8_1a[3]), .oC (D8_1a_c3));
Ripple_Add_19bit D81am4 (
.iA (iC12_1a[21:4]), .iB (iC14_1a[18:1]),
.iC (D8_1a_c3), .oS (oD8_1a[22:4]));
// 13.10 [22:0] 12.10 [21:0] 12.7 [18:0]
//assign oD8_1b = {iC12_1b[21],iC12_1b} + {iC14_1b[18],iC14_1b,3'b0};
wire D8_1b_c3;
assign oD8_1b[2:0] = iC12_1b[2:0];
FA_Cir_Cin0 D81bm3 (.iA (iC12_1b[3]), .iB (iC14_1b[0]), .oS (oD8_1b[3]), .oC (D8_1b_c3));
Ripple_Add_19bit D81bm4 (
.iA (iC12_1b[21:4]), .iB (iC14_1b[18:1]),
.iC (D8_1b_c3), .oS (oD8_1b[22:4]));
// 13.10 [22:0] 12.7 [18:0] 12.10 [21:0]
//assign oD8_2a = {iC12_2a[18],iC12_2a,3'b0} - {iC14_2a[21],iC14_2a};
wire D8_2a_c1, D8_2a_c2;
assign oD8_2a[0] = iC14_2a[0];
FA_Cir_Cin0 D82am1 (.iA (~iC14_2a[1]), .iB (~iC14_2a[0]), .oS (oD8_2a[1]), .oC (D8_2a_c1));
FA_Cir_Cin0 D82am2 (.iA (~iC14_2a[2]), .iB (D8_2a_c1), .oS (oD8_2a[2]), .oC (D8_2a_c2));
Ripple_Add_20bit D82am3 (
.iA (iC12_2a), .iB (~iC14_2a[21:3]),
.iC (D8_2a_c2), .oS (oD8_2a[22:3]));
// 13.10 [22:0] 12.7 [18:0] 12.10 [21:0]
//assign oD8_2b = {iC12_2b[18],iC12_2b,3'b0} - {iC14_2b[21],iC14_2b};
wire D8_2b_c1, D8_2b_c2;
assign oD8_2b[0] = iC14_2b[0];
FA_Cir_Cin0 D82bm1 (.iA (~iC14_2b[1]), .iB (~iC14_2b[0]), .oS (oD8_2b[1]), .oC (D8_2b_c1));
FA_Cir_Cin0 D82bm2 (.iA (~iC14_2b[2]), .iB (D8_2b_c1), .oS (oD8_2b[2]), .oC (D8_2b_c2));
Ripple_Add_20bit D82bm3 (
.iA (iC12_2b), .iB (~iC14_2b[21:3]),
.iC (D8_2b_c2), .oS (oD8_2b[22:3]));
// 13.10 [22:0] 12.7 [18:0] 12.10 [21:0]
//assign oD8_3a = {iC12_3a[18],iC12_3a,3'b0} + {iC14_3b[21],iC14_3b};
wire D8_3a_c3;
assign oD8_3a[2:0] = iC14_3b[2:0];
FA_Cir_Cin0 D83am3 (.iA (iC12_3a[0]), .iB (iC14_3b[3]), .oS (oD8_3a[3]), .oC (D8_3a_c3));
Ripple_Add_19bit D83am4 (
.iA (iC12_3a[18:1]), .iB (iC14_3b[21:4]),
.iC (D8_3a_c3), .oS (oD8_3a[22:4]));
// 13.10 [22:0] 12.7 [18:0] 12.10 [21:0]
//assign oD8_3b = {iC12_3b[18],iC12_3b,3'b0} - {iC14_3a[21],iC14_3a};
wire D8_3b_c1, D8_3b_c2;
assign oD8_3b[0] = iC14_3a[0];
FA_Cir_Cin0 D83bm1 (.iA (~iC14_3a[1]), .iB (~iC14_3a[0]), .oS (oD8_3b[1]), .oC (D8_3b_c1));
FA_Cir_Cin0 D83bm2 (.iA (~iC14_3a[2]), .iB (D8_3b_c1), .oS (oD8_3b[2]), .oC (D8_3b_c2));
Ripple_Add_20bit D83bm3 (
.iA (iC12_3b), .iB (~iC14_3a[21:3]),
.iC (D8_3b_c2), .oS (oD8_3b[22:3]));
// 13.10 [22:0] 12.10 [21:0] 12.9 [20:0]
//assign oD8_4a = {iC12_4a[21],iC12_4a} + {iC14_4b[20],iC14_4b,1'b0};
wire D8_4a_c1;
assign oD8_4a[0] = iC12_4a[0];
FA_Cir_Cin0 D84am0 (.iA (iC12_4a[1]), .iB (iC14_4b[0]), .oS (oD8_4a[1]), .oC (D8_4a_c1));
Ripple_Add_21bit D84am1 (
.iA (iC12_4a[21:2]), .iB (iC14_4b[20:1]),
.iC (D8_4a_c1), .oS (oD8_4a[22:2]));
// 13.10 [22:0] 12.9 [20:0] 12.10 [21:0]
//assign oD8_4b = {iC14_4a[20],iC14_4a,1'b0} - {iC12_4b[21],iC12_4b};
assign oD8_4b[0] = iC12_4b[0];
Ripple_Add_22bit D84bm0 (
.iA (iC14_4a), .iB (~iC12_4b[21:1]),
.iC (~iC12_4b[0]), .oS (oD8_4b[22:1]));
// 13.10 [22:0] 12.10 [21:0] 12.9 [20:0]
//assign oD8_5a = {iC12_5a[21],iC12_5a} - {iC14_5b[20],iC14_5b,1'b0};
wire D8_5a_c1;
assign oD8_5a[0] = iC12_5a[0];
FA_Cir_Cin1 D85am1 (.iA (iC12_5a[1]), .iB (~iC14_5b[0]), .oS (oD8_5a[1]), .oC (D8_5a_c1));
Ripple_Add_21bit D85am2 (
.iA (iC12_5a[21:2]), .iB (~iC14_5b[20:1]),
.iC (D8_5a_c1), .oS (oD8_5a[22:2]));
// 13.10 [22:0] 12.10 [21:0] 12.9 [20:0]
//assign oD8_5b = {iC12_5b[21],iC12_5b} + {iC14_5a[20],iC14_5a,1'b0};
wire D8_5b_c1;
assign oD8_5b[0] = iC12_5b[0];
FA_Cir_Cin0 D85bm0 (.iA (iC12_5b[1]), .iB (iC14_5a[0]), .oS (oD8_5b[1]), .oC (D8_5b_c1));
Ripple_Add_21bit D85bm1 (
.iA (iC12_5b[21:2]), .iB (iC14_5a[20:1]),
.iC (D8_5b_c1), .oS (oD8_5b[22:2]));
// 13.10 [22:0] 12.9 [20:0] 12.10 [21:0]
//assign oD8_6a = {iC12_6a[20],iC12_6a,1'b0} + {iC14_6b[21],iC14_6b};
wire D8_6a_c1;
assign oD8_6a[0] = iC14_6b[0];
FA_Cir_Cin0 D86am0 (.iA (iC12_6a[0]), .iB (iC14_6b[1]), .oS (oD8_6a[1]), .oC (D8_6a_c1));
Ripple_Add_21bit D86am1 (
.iA (iC12_6a[20:1]), .iB (iC14_6b[21:2]),
.iC (D8_6a_c1), .oS (oD8_6a[22:2]));
// 13.10 [22:0] 12.9 [20:0] 12.10 [21:0]
//assign oD8_6b = {iC12_6b[20],iC12_6b,1'b0} + {iC14_6a[21],iC14_6a};
wire D8_6b_c1;
assign oD8_6b[0] = iC14_6a[0];
FA_Cir_Cin0 D86bm0 (.iA (iC12_6b[0]), .iB (iC14_6a[1]), .oS (oD8_6b[1]), .oC (D8_6b_c1));
Ripple_Add_21bit D86bm1 (
.iA (iC12_6b[20:1]), .iB (iC14_6a[21:2]),
.iC (D8_6b_c1), .oS (oD8_6b[22:2]));
// 13.10 [22:0] 12.9 [20:0] 12.10 [21:0]
//assign oD8_7a = {iC12_7a[20],iC12_7a,1'b0} + {iC14_7a[21],iC14_7a};
wire D8_7a_c1;
assign oD8_7a[0] = iC14_7a[0];
FA_Cir_Cin0 D87am0 (.iA (iC12_7a[0]), .iB (iC14_7a[1]), .oS (oD8_7a[1]), .oC (D8_7a_c1));
Ripple_Add_21bit D87am1 (
.iA (iC12_7a[20:1]), .iB (iC14_7a[21:2]),
.iC (D8_7a_c1), .oS (oD8_7a[22:2]));
// 13.10 [22:0] 12.9 [20:0] 12.10 [21:0]
//assign oD8_7b = {iC12_7b[20],iC12_7b,1'b0} - {iC14_7b[21],iC14_7b};
assign oD8_7b[0] = iC14_7b[0];
Ripple_Add_22bit D87bm0 (
.iA (iC12_7b), .iB (~iC14_7b[21:1]),
.iC (~iC14_7b[0]), .oS (oD8_7b[22:1]));
/*********************************
************** D9 **************
*********************************/
// 13.10 [22:0] 12.10 [21:0] 12.9 [20:0]
//assign oD9_0a = {iC13_0a[21],iC13_0a} + {iC15_0a[20],iC15_0a,1'b0};
wire D9_0a_c1;
assign oD9_0a[0] = iC13_0a[0];
FA_Cir_Cin0 D90am0 (.iA (iC13_0a[1]), .iB (iC15_0a[0]), .oS (oD9_0a[1]), .oC (D9_0a_c1));
Ripple_Add_21bit D90am1 (
.iA (iC13_0a[21:2]), .iB (iC15_0a[20:1]),
.iC (D9_0a_c1), .oS (oD9_0a[22:2]));
// 13.10 [22:0] 12.10 [21:0] 12.9 [20:0]
//assign oD9_0b = {iC13_0b[21],iC13_0b} + {iC15_0b[20],iC15_0b,1'b0};
wire D9_0b_c1;
assign oD9_0b[0] = iC13_0b[0];
FA_Cir_Cin0 D90bm0 (.iA (iC13_0b[1]), .iB (iC15_0b[0]), .oS (oD9_0b[1]), .oC (D9_0b_c1));
Ripple_Add_21bit D90bm1 (
.iA (iC13_0b[21:2]), .iB (iC15_0b[20:1]),
.iC (D9_0b_c1), .oS (oD9_0b[22:2]));
// 13.10 [22:0] 12.10 [21:0] 12.9 [20:0]
//assign oD9_1a = {iC13_1a[21],iC13_1a} + {iC15_1a[20],iC15_1a,1'b0};
wire D9_1a_c1;
assign oD9_1a[0] = iC13_1a[0];
FA_Cir_Cin0 D91am0 (.iA (iC13_1a[1]), .iB (iC15_1a[0]), .oS (oD9_1a[1]), .oC (D9_1a_c1));
Ripple_Add_21bit D91am1 (
.iA (iC13_1a[21:2]), .iB (iC15_1a[20:1]),
.iC (D9_1a_c1), .oS (oD9_1a[22:2]));
// 13.10 [22:0] 12.10 [21:0] 12.9 [20:0]
//assign oD9_1b = {iC13_1b[21],iC13_1b} + {iC15_1b[20],iC15_1b,1'b0};
wire D9_1b_c1;
assign oD9_1b[0] = iC13_1b[0];
FA_Cir_Cin0 D91bm0 (.iA (iC13_1b[1]), .iB (iC15_1b[0]), .oS (oD9_1b[1]), .oC (D9_1b_c1));
Ripple_Add_21bit D91bm1 (
.iA (iC13_1b[21:2]), .iB (iC15_1b[20:1]),
.iC (D9_1b_c1), .oS (oD9_1b[22:2]));
// 13.10 [22:0] 12.9 [20:0] 12.10 [21:0]
//assign oD9_2a = {iC13_2a[20],iC13_2a,1'b0} - {iC15_2a[21],iC15_2a};
assign oD9_2a[0] = iC15_2a[0];
Ripple_Add_22bit D92am0 (
.iA (iC13_2a), .iB (~iC15_2a[21:1]),
.iC (~iC15_2a[0]), .oS (oD9_2a[22:1]));
// 13.10 [22:0] 12.9 [20:0] 12.10 [21:0]
//assign oD9_2b = {iC13_2b[20],iC13_2b,1'b0} - {iC15_2b[21],iC15_2b};
assign oD9_2b[0] = iC15_2b[0];
Ripple_Add_22bit D92bm0 (
.iA (iC13_2b), .iB (~iC15_2b[21:1]),
.iC (~iC15_2b[0]), .oS (oD9_2b[22:1]));
// 13.10 [22:0] 12.9 [20:0] 12.10 [21:0]
//assign oD9_3a = {iC13_3a[20],iC13_3a,1'b0} + {iC15_3b[21],iC15_3b};
wire D9_3a_c1;
assign oD9_3a[0] = iC15_3b[0];
FA_Cir_Cin0 D93am0 (.iA (iC13_3a[0]), .iB (iC15_3b[1]), .oS (oD9_3a[1]), .oC (D9_3a_c1));
Ripple_Add_21bit D93am1 (
.iA (iC13_3a[20:1]), .iB (iC15_3b[21:2]),
.iC (D9_3a_c1), .oS (oD9_3a[22:2]));
// 13.10 [22:0] 12.9 [20:0] 12.10 [21:0]
//assign oD9_3b = {iC13_3b[20],iC13_3b,1'b0} - {iC15_3a[21],iC15_3a};
assign oD9_3b[0] = iC15_3a[0];
Ripple_Add_22bit D93bm0 (
.iA (iC13_3b), .iB (~iC15_3a[21:1]),
.iC (~iC15_3a[0]), .oS (oD9_3b[22:1]));
// 13.10 [22:0] 12.7 [18:0] 12.10 [21:0]
//assign oD9_4a = {iC13_4a[18],iC13_4a,3'b0} - {iC15_4a[21],iC15_4a};
wire D9_4a_c1, D9_4a_c2;
assign oD9_4a[0] = iC15_4a[0];
FA_Cir_Cin0 D94am1 (.iA (~iC15_4a[1]), .iB (~iC15_4a[0]), .oS (oD9_4a[1]), .oC (D9_4a_c1));
FA_Cir_Cin0 D94am2 (.iA (~iC15_4a[2]), .iB (D9_4a_c1), .oS (oD9_4a[2]), .oC (D9_4a_c2));
Ripple_Add_20bit D94am3 (
.iA (iC13_4a), .iB (~iC15_4a[21:3]),
.iC (D9_4a_c2), .oS (oD9_4a[22:3]));
// 13.10 [22:0] 12.7 [18:0] 12.10 [21:0]
//assign oD9_4b = {iC13_4b[18],iC13_4b,3'b0} + {iC15_4b[21],iC15_4b};
wire D9_4b_c3;
assign oD9_4b[2:0] = iC15_4b[2:0];
FA_Cir_Cin0 D94bm3 (.iA (iC13_4b[0]), .iB (iC15_4b[3]), .oS (oD9_4b[3]), .oC (D9_4b_c3));
Ripple_Add_19bit D94bm4 (
.iA (iC13_4b[18:1]), .iB (iC15_4b[21:4]),
.iC (D9_4b_c3), .oS (oD9_4b[22:4]));
// 13.10 [22:0] 12.7 [18:0] 12.10 [21:0]
//assign oD9_5a = {iC13_5a[18],iC13_5a,3'b0} - {iC15_5b[21],iC15_5b};
wire D9_5a_c1, D9_5a_c2;
assign oD9_5a[0] = iC15_5b[0];
FA_Cir_Cin0 D95am1 (.iA (~iC15_5b[1]), .iB (~iC15_5b[0]), .oS (oD9_5a[1]), .oC (D9_5a_c1));
FA_Cir_Cin0 D95am2 (.iA (~iC15_5b[2]), .iB (D9_5a_c1), .oS (oD9_5a[2]), .oC (D9_5a_c2));
Ripple_Add_20bit D95am3 (
.iA (iC13_5a), .iB (~iC15_5b[21:3]),
.iC (D9_5a_c2), .oS (oD9_5a[22:3]));
// 13.10 [22:0] 12.7 [18:0] 12.10 [21:0]
//assign oD9_5b = {iC13_5b[18],iC13_5b,3'b0} - {iC15_5a[21],iC15_5a};
wire D9_5b_c1, D9_5b_c2;
assign oD9_5b[0] = iC15_5a[0];
FA_Cir_Cin0 D95bm1 (.iA (~iC15_5a[1]), .iB (~iC15_5a[0]), .oS (oD9_5b[1]), .oC (D9_5b_c1));
FA_Cir_Cin0 D95bm2 (.iA (~iC15_5a[2]), .iB (D9_5b_c1), .oS (oD9_5b[2]), .oC (D9_5b_c2));
Ripple_Add_20bit D95bm3 (
.iA (iC13_5b), .iB (~iC15_5a[21:3]),
.iC (D9_5b_c2), .oS (oD9_5b[22:3]));
// 13.10 [22:0] 12.7 [18:0] 12.10 [21:0]
//assign oD9_6a = {iC15_6b[18],iC15_6b,3'b0} - {iC13_6a[21],iC13_6a};
wire D9_6a_c1, D9_6a_c2;
assign oD9_6a[0] = iC13_6a[0];
FA_Cir_Cin0 D96am1 (.iA (~iC13_6a[1]), .iB (~iC13_6a[0]), .oS (oD9_6a[1]), .oC (D9_6a_c1));
FA_Cir_Cin0 D96am2 (.iA (~iC13_6a[2]), .iB (D9_6a_c1), .oS (oD9_6a[2]), .oC (D9_6a_c2));
Ripple_Add_20bit D96am3 (
.iA (iC15_6b), .iB (~iC13_6a[21:3]),
.iC (D9_6a_c2), .oS (oD9_6a[22:3]));
// 13.10 [22:0] 12.10 [21:0] 12.7 [18:0]
//assign oD9_6b = {iC13_6b[21],iC13_6b} + {iC15_6a[18],iC15_6a,3'b0};
wire D9_6b_c3;
assign oD9_6b[2:0] = iC13_6b[2:0];
FA_Cir_Cin0 D96bm3 (.iA (iC13_6b[3]), .iB (iC15_6a[0]), .oS (oD9_6b[3]), .oC (D9_6b_c3));
Ripple_Add_19bit D96bm4 (
.iA (iC13_6b[21:4]), .iB (iC15_6a[18:1]),
.iC (D9_6b_c3), .oS (oD9_6b[22:4]));
// 13.10 [22:0] 12.10 [21:0] 12.7 [18:0]
//assign oD9_7a = {iC13_7a[21],iC13_7a} + {iC15_7b[18],iC15_7b,3'b0};
wire D9_7a_c3;
assign oD9_7a[2:0] = iC13_7a[2:0];
FA_Cir_Cin0 D97am3 (.iA (iC13_7a[3]), .iB (iC15_7b[0]), .oS (oD9_7a[3]), .oC (D9_7a_c3));
Ripple_Add_19bit D97am4 (
.iA (iC13_7a[21:4]), .iB (iC15_7b[18:1]),
.iC (D9_7a_c3), .oS (oD9_7a[22:4]));
// 13.10 [22:0] 12.10 [21:0] 12.7 [18:0]
//assign oD9_7b = {iC13_7b[21],iC13_7b} - {iC15_7a[18],iC15_7a,3'b0};
wire D9_7b_c3;
assign oD9_7b[2:0] = iC13_7b[2:0];
FA_Cir_Cin1 D97bm3 (.iA (iC13_7b[3]), .iB (~iC15_7a[0]), .oS (oD9_7b[3]), .oC (D9_7b_c3));
Ripple_Add_19bit D97bm4 (
.iA (iC13_7b[21:4]), .iB (~iC15_7a[18:1]),
.iC (D9_7b_c3), .oS (oD9_7b[22:4]));
endmodule
module ACor_DCT_32p_S5 (
// Input Signals
input [11:0] /*12.0 */ iD0, iD1, iD2, iD3,
input [18:0] /*13.6 */ iD4_0a, iD4_0b, iD5_1a, iD5_1b,
input [16:0] /*13.4 */ iD4_1a, iD4_1b, iD5_0a, iD5_0b,
input [20:0] /*13.8 */ iD6_0a, iD6_0b, iD6_1a, iD6_1b,
input [18:0] /*13.6 */ iD6_2a, iD6_2b, iD6_3a, iD6_3b,
input [18:0] /*13.6 */ iD7_0a, iD7_0b, iD7_1a, iD7_1b,
input [20:0] /*13.8 */ iD7_2a, iD7_2b, iD7_3a, iD7_3b,
input [22:0] /*13.10*/ iD8_0a, iD8_0b, iD8_1a, iD8_1b,
iD8_2a, iD8_2b, iD8_3a, iD8_3b,
iD8_4a, iD8_4b, iD8_5a, iD8_5b,
iD8_6a, iD8_6b, iD8_7a, iD8_7b,
input [22:0] /*13.10*/ iD9_0a, iD9_0b, iD9_1a, iD9_1b,
iD9_2a, iD9_2b, iD9_3a, iD9_3b,
iD9_4a, iD9_4b, iD9_5a, iD9_5b,
iD9_6a, iD9_6b, iD9_7a, iD9_7b,
// Output Signals
output [12:0] /*13.0 */ oE0, oE1,
output [18:0] /*14.5 */ oE2, oE3,
output [19:0] /*14.6 */ oE4, oE5, oE6, oE7,
output [21:0] /*14.8 */ oE8, oE9, oE10, oE11,
oE12, oE13, oE14, oE15,
output [23:0] /*14.10 */ oE16, oE17, oE18, oE19,
oE20, oE21, oE22, oE23,
oE24, oE25, oE26, oE27,
oE28, oE29, oE30, oE31
);
//assign oE0 = {iD0[11],iD0} + {iD1[11],iD1};
wire E0_c0;
FA_Cir_Cin0 E0m0 (.iA (iD0[0]), .iB (iD1[0]), .oS (oE0[0]), .oC (E0_c0));
Ripple_Add_12bit E0m1 (
.iA (iD0[11:1]),.iB (iD1[11:1]),
.iC (E0_c0), .oS (oE0[12:1]));
//assign oE1 = {iD0[11],iD0} - {iD1[11],iD1};
wire E1_c0;
FA_Cir_Cin1 E1m0 (.iA (iD0[0]), .iB (~iD1[0]), .oS (oE1[0]), .oC (E1_c0));
Ripple_Add_12bit E1m1 (
.iA (iD0[11:1]),.iB (~iD1[11:1]),
.iC (E1_c0), .oS (oE1[12:1]));
ACor_DCT_32p_pi8_2Stg E2E3m0 (
// Input Signals
.iA (iD2), .iB (iD3),
// Output Signals
.o0a (oE2), .o0b (oE3));
/********************************/
// 14.6 [19:0] 13.6 [18:0] 13.4 [16:0]
//assign oE4 = {iD4_0a[18],iD4_0a} + {iD5_0a[16],iD5_0a,2'b0};
wire E4_c2;
assign oE4[1:0] = iD4_0a[1:0];
FA_Cir_Cin0 E4m2 (.iA (iD4_0a[2]), .iB (iD5_0a[0]), .oS (oE4[2]), .oC (E4_c2));
Ripple_Add_17bit E4m3 (
.iA (iD4_0a[18:3]), .iB (iD5_0a[16:1]),
.iC (E4_c2), .oS (oE4[19:3]));
// 14.6 [19:0] 13.4 [16:0] 13.6 [18:0]
//assign oE5 = {iD5_0b[16],iD5_0b,2'b0} - {iD4_0b[18],iD4_0b};
wire E5_c1;
assign oE5[0] = iD4_0b[0];
FA_Cir_Cin0 E5m1 (.iA (~iD4_0b[1]), .iB (~iD4_0b[0]), .oS (oE5[1]), .oC (E5_c1));
Ripple_Add_18bit E5m2 (
.iA (iD5_0b), .iB (~iD4_0b[18:2]),
.iC (E5_c1), .oS (oE5[19:2]));
// 14.6 [19:0] 13.4 [16:0] 13.6 [18:0]
//assign oE6 = {iD4_1a[16],iD4_1a,2'b0} - {iD5_1b[18],iD5_1b};
wire E6_c1;
assign oE6[0] = iD5_1b[0];
FA_Cir_Cin0 E6m1 (.iA (~iD5_1b[1]), .iB (~iD5_1b[0]), .oS (oE6[1]), .oC (E6_c1));
Ripple_Add_18bit E6m2 (
.iA (iD4_1a), .iB (~iD5_1b[18:2]),
.iC (E6_c1), .oS (oE6[19:2]));
// 14.6 [19:0] 13.4 [16:0] 13.6 [18:0]
//assign oE7 = {iD4_1b[16],iD4_1b,2'b0} - {iD5_1a[18],iD5_1a};
wire E7_c1;
assign oE7[0] = iD5_1a[0];
FA_Cir_Cin0 E7m1 (.iA (~iD5_1a[1]), .iB (~iD5_1a[0]), .oS (oE7[1]), .oC (E7_c1));
Ripple_Add_18bit E7m2 (
.iA (iD4_1b), .iB (~iD5_1a[18:2]),
.iC (E7_c1), .oS (oE7[19:2]));
/********************************/
// 14.8 [21:0] 13.8 [20:0] 13.6 [18:0]
//assign oE8 = {iD6_0a[20],iD6_0a} + {iD7_0a[18],iD7_0a,2'b0};
wire E8_c2;
assign oE8[1:0] = iD6_0a[1:0];
FA_Cir_Cin0 E8m2 (.iA (iD6_0a[2]), .iB (iD7_0a[0]), .oS (oE8[2]), .oC (E8_c2));
Ripple_Add_19bit E8m3 (
.iA (iD6_0a[20:3]), .iB (iD7_0a[18:1]),
.iC (E8_c2), .oS (oE8[21:3]));
// 14.8 [21:0] 13.8 [20:0] 13.6 [18:0]
//assign oE9 = {iD6_0b[20],iD6_0b} + {iD7_0b[18],iD7_0b,2'b0};
wire E9_c2;
assign oE9[1:0] = iD6_0b[1:0];
FA_Cir_Cin0 E9m2 (.iA (iD6_0b[2]), .iB (iD7_0b[0]), .oS (oE9[2]), .oC (E9_c2));
Ripple_Add_19bit E9m3 (
.iA (iD6_0b[20:3]), .iB (iD7_0b[18:1]),
.iC (E9_c2), .oS (oE9[21:3]));
// 14.8 [21:0] 13.8 [20:0] 13.6 [18:0]
//assign oE10 = {iD6_1a[20],iD6_1a} - {iD7_1a[18],iD7_1a,2'b0};
wire E10_c2;
assign oE10[1:0] = iD6_1a[1:0];
FA_Cir_Cin1 E10m2 (.iA (iD6_1a[2]), .iB (~iD7_1a[0]), .oS (oE10[2]), .oC (E10_c2));
Ripple_Add_19bit E10m3 (
.iA (iD6_1a[20:3]), .iB (~iD7_1a[18:1]),
.iC (E10_c2), .oS (oE10[21:3]));
// 14.8 [21:0] 13.8 [20:0] 13.6 [18:0]
//assign oE11 = {iD6_1b[20],iD6_1b} - {iD7_1b[18],iD7_1b,2'b0};
wire E11_c2;
assign oE11[1:0] = iD6_1b[1:0];
FA_Cir_Cin1 E11m2 (.iA (iD6_1b[2]), .iB (~iD7_1b[0]), .oS (oE11[2]), .oC (E11_c2));
Ripple_Add_19bit E11m3 (
.iA (iD6_1b[20:3]), .iB (~iD7_1b[18:1]),
.iC (E11_c2), .oS (oE11[21:3]));
// 14.8 [21:0] 13.6 [18:0] 13.8 [20:0]
//assign oE12 = {iD6_2a[18],iD6_2a,2'b0} - {iD7_2b[20],iD7_2b};
wire E12_c1;
assign oE12[0] = iD7_2b[0];
FA_Cir_Cin0 E12m1 (.iA (~iD7_2b[1]), .iB (~iD7_2b[0]), .oS (oE12[1]), .oC (E12_c1));
Ripple_Add_20bit E12m2 (
.iA (iD6_2a), .iB (~iD7_2b[20:2]),
.iC (E12_c1), .oS (oE12[21:2]));
// 14.8 [21:0] 13.8 [20:0] 13.6 [18:0]
//assign oE13 = {iD7_2a[20],iD7_2a} - {iD6_2b[18],iD6_2b,2'b0};
wire E13_c2;
assign oE13[1:0] = iD7_2a[1:0];
FA_Cir_Cin1 E13m2 (.iA (iD7_2a[2]), .iB (~iD6_2b[0]), .oS (oE13[2]), .oC (E13_c2));
Ripple_Add_19bit E13m3 (
.iA (iD7_2a[20:3]), .iB (~iD6_2b[18:1]),
.iC (E13_c2), .oS (oE13[21:3]));
// 14.8 [21:0] 13.6 [18:0] 13.8 [20:0]
//assign oE14 = {iD6_3a[18],iD6_3a,2'b0} + {iD7_3a[20],iD7_3a};
wire E14_c2;
assign oE14[1:0] = iD7_3a[1:0];
FA_Cir_Cin0 E14m2 (.iA (iD6_3a[0]), .iB (iD7_3a[2]), .oS (oE14[2]), .oC (E14_c2));
Ripple_Add_19bit E14m3 (
.iA (iD6_3a[18:1]), .iB (iD7_3a[20:3]),
.iC (E14_c2), .oS (oE14[21:3]));
// 14.8 [21:0] 13.6 [18:0] 13.8 [20:0]
//assign oE15 = {iD6_3b[18],iD6_3b,2'b0} - {iD7_3b[20],iD7_3b};
wire E15_c1;
assign oE15[0] = iD7_3b[0];
FA_Cir_Cin0 E15m1 (.iA (~iD7_3b[1]), .iB (~iD7_3b[0]), .oS (oE15[1]), .oC (E15_c1));
Ripple_Add_20bit E15m2 (
.iA (iD6_3b), .iB (~iD7_3b[20:2]),
.iC (E15_c1), .oS (oE15[21:2]));
/********************************/
// 14.10 [23:0] 13.10 [22:0] 13.10 [22:0]
//assign oE16 = {iD8_0a[22],iD8_0a} + {iD9_0a[22],iD9_0a};
wire E16_c0;
FA_Cir_Cin0 E16m0 (.iA (iD8_0a[0]), .iB (iD9_0a[0]), .oS (oE16[0]), .oC (E16_c0));
Ripple_Add_23bit E16m1 (
.iA (iD8_0a[22:1]), .iB (iD9_0a[22:1]),
.iC (E16_c0), .oS (oE16[23:1]));
// 14.10 [23:0] 13.10 [22:0] 13.10 [22:0]
//assign oE17 = {iD8_0b[22],iD8_0b} + {iD9_0b[22],iD9_0b};
wire E17_c0;
FA_Cir_Cin0 E17m0 (.iA (iD8_0b[0]), .iB (iD9_0b[0]), .oS (oE17[0]), .oC (E17_c0));
Ripple_Add_23bit E17m1 (
.iA (iD8_0b[22:1]), .iB (iD9_0b[22:1]),
.iC (E17_c0), .oS (oE17[23:1]));
// 14.10 [23:0] 13.10 [22:0] 13.10 [22:0]
//assign oE18 = {iD8_1a[22],iD8_1a} - {iD9_1a[22],iD9_1a};
wire E18_c0;
FA_Cir_Cin1 E18m0 (.iA (iD8_1a[0]), .iB (~iD9_1a[0]), .oS (oE18[0]), .oC (E18_c0));
Ripple_Add_23bit E18m1 (
.iA (iD8_1a[22:1]), .iB (~iD9_1a[22:1]),
.iC (E18_c0), .oS (oE18[23:1]));
// 14.10 [23:0] 13.10 [22:0] 13.10 [22:0]
//assign oE19 = {iD8_1b[22],iD8_1b} - {iD9_1b[22],iD9_1b};
wire E19_c0;
FA_Cir_Cin1 E19m0 (.iA (iD8_1b[0]), .iB (~iD9_1b[0]), .oS (oE19[0]), .oC (E19_c0));
Ripple_Add_23bit E19m1 (
.iA (iD8_1b[22:1]), .iB (~iD9_1b[22:1]),
.iC (E19_c0), .oS (oE19[23:1]));
// 14.10 [23:0] 13.10 [22:0] 13.10 [22:0]
//assign oE20 = {iD8_2a[22],iD8_2a} - {iD9_2b[22],iD9_2b};
wire E20_c0;
FA_Cir_Cin1 E20m0 (.iA (iD8_2a[0]), .iB (~iD9_2b[0]), .oS (oE20[0]), .oC (E20_c0));
Ripple_Add_23bit E20m1 (
.iA (iD8_2a[22:1]), .iB (~iD9_2b[22:1]),
.iC (E20_c0), .oS (oE20[23:1]));
// 14.10 [23:0] 13.10 [22:0] 13.10 [22:0]
//assign oE21 = {iD8_2b[22],iD8_2b} + {iD9_2a[22],iD9_2a};
wire E21_c0;
FA_Cir_Cin0 E21m0 (.iA (iD8_2b[0]), .iB (iD9_2a[0]), .oS (oE21[0]), .oC (E21_c0));
Ripple_Add_23bit E21m1 (
.iA (iD8_2b[22:1]), .iB (iD9_2a[22:1]),
.iC (E21_c0), .oS (oE21[23:1]));
// 14.10 [23:0] 13.10 [22:0] 13.10 [22:0]
//assign oE22 = {iD8_3a[22],iD8_3a} + {iD9_3b[22],iD9_3b};
wire E22_c0;
FA_Cir_Cin0 E22m0 (.iA (iD8_3a[0]), .iB (iD9_3b[0]), .oS (oE22[0]), .oC (E22_c0));
Ripple_Add_23bit E22m1 (
.iA (iD8_3a[22:1]), .iB (iD9_3b[22:1]),
.iC (E22_c0), .oS (oE22[23:1]));
// 14.10 [23:0] 13.10 [22:0] 13.10 [22:0]
//assign oE23 = {iD8_3b[22],iD8_3b} - {iD9_3a[22],iD9_3a};
wire E23_c0;
FA_Cir_Cin1 E23m0 (.iA (iD8_3b[0]), .iB (~iD9_3a[0]), .oS (oE23[0]), .oC (E23_c0));
Ripple_Add_23bit E23m1 (
.iA (iD8_3b[22:1]), .iB (~iD9_3a[22:1]),
.iC (E23_c0), .oS (oE23[23:1]));
// 14.10 [23:0] 13.10 [22:0] 13.10 [22:0]
//assign oE24 = {iD8_4a[22],iD8_4a} + {iD9_4a[22],iD9_4a};
wire E24_c0;
FA_Cir_Cin0 E24m0 (.iA (iD8_4a[0]), .iB (iD9_4a[0]), .oS (oE24[0]), .oC (E24_c0));
Ripple_Add_23bit E24m1 (
.iA (iD8_4a[22:1]), .iB (iD9_4a[22:1]),
.iC (E24_c0), .oS (oE24[23:1]));
// 14.10 [23:0] 13.10 [22:0] 13.10 [22:0]
//assign oE25 = {iD8_4b[22],iD8_4b} + {iD9_4b[22],iD9_4b};
wire E25_c0;
FA_Cir_Cin0 E25m0 (.iA (iD8_4b[0]), .iB (iD9_4b[0]), .oS (oE25[0]), .oC (E25_c0));
Ripple_Add_23bit E25m1 (
.iA (iD8_4b[22:1]), .iB (iD9_4b[22:1]),
.iC (E25_c0), .oS (oE25[23:1]));
// 14.10 [23:0] 13.10 [22:0] 13.10 [22:0]
//assign oE26 = {iD8_5a[22],iD8_5a} - {iD9_5b[22],iD9_5b};
wire E26_c0;
FA_Cir_Cin1 E26m0 (.iA (iD8_5a[0]), .iB (~iD9_5b[0]), .oS (oE26[0]), .oC (E26_c0));
Ripple_Add_23bit E26m1 (
.iA (iD8_5a[22:1]), .iB (~iD9_5b[22:1]),
.iC (E26_c0), .oS (oE26[23:1]));
// 14.10 [23:0] 13.10 [22:0] 13.10 [22:0]
//assign oE27 = {iD8_5b[22],iD8_5b} - {iD9_5a[22],iD9_5a};
wire E27_c0;
FA_Cir_Cin1 E27m0 (.iA (iD8_5b[0]), .iB (~iD9_5a[0]), .oS (oE27[0]), .oC (E27_c0));
Ripple_Add_23bit E27m1 (
.iA (iD8_5b[22:1]), .iB (~iD9_5a[22:1]),
.iC (E27_c0), .oS (oE27[23:1]));
// 14.10 [23:0] 13.10 [22:0] 13.10 [22:0]
//assign oE28 = {iD8_6a[22],iD8_6a} + {iD9_6a[22],iD9_6a};
wire E28_c0;
FA_Cir_Cin0 E28m0 (.iA (iD8_6a[0]), .iB (iD9_6a[0]), .oS (oE28[0]), .oC (E28_c0));
Ripple_Add_23bit E28m1 (
.iA (iD8_6a[22:1]), .iB (iD9_6a[22:1]),
.iC (E28_c0), .oS (oE28[23:1]));
// 14.10 [23:0] 13.10 [22:0] 13.10 [22:0]
//assign oE29 = {iD9_6b[22],iD9_6b} - {iD8_6b[22],iD8_6b};
wire E29_c0;
FA_Cir_Cin1 E29m0 (.iA (iD9_6b[0]), .iB (~iD8_6b[0]), .oS (oE29[0]), .oC (E29_c0));
Ripple_Add_23bit E29m1 (
.iA (iD9_6b[22:1]), .iB (~iD8_6b[22:1]),
.iC (E29_c0), .oS (oE29[23:1]));
// 14.10 [23:0] 13.10 [22:0] 13.10 [22:0]
//assign oE30 = {iD8_7a[22],iD8_7a} + {iD9_7a[22],iD9_7a};
wire E30_c0;
FA_Cir_Cin0 E30m0 (.iA (iD8_7a[0]), .iB (iD9_7a[0]), .oS (oE30[0]), .oC (E30_c0));
Ripple_Add_23bit E30m1 (
.iA (iD8_7a[22:1]), .iB (iD9_7a[22:1]),
.iC (E30_c0), .oS (oE30[23:1]));
// 14.10 [23:0] 13.10 [22:0] 13.10 [22:0]
//assign oE31 = {iD8_7b[22],iD8_7b} + {iD9_7b[22],iD9_7b};
wire E31_c0;
FA_Cir_Cin0 E31m0 (.iA (iD8_7b[0]), .iB (iD9_7b[0]), .oS (oE31[0]), .oC (E31_c0));
Ripple_Add_23bit E31m1 (
.iA (iD8_7b[22:1]), .iB (iD9_7b[22:1]),
.iC (E31_c0), .oS (oE31[23:1]));
endmodule
module ACor_DCT_32p_pi8_2Stg (
// Input Signals
input [11:0] /*12.0*/ iA, iB,
// Output Signals
output [18:0] /*14.5*/ o0a, o0b
);
wire /*13.1*/ [13:0] S1_0top, S1_0bot;
wire /*14.5*/ [18:0] S2_0top, S2_0bot;
//assign S1_0top = {iB[11],iB,1'b0} + {{(2){iA[11]}},iA}; // S1_top = b + a*2^-1;
wire S1_0top_c1;
assign S1_0top[0] = iA[0];
FA_Cir_Cin0 S10tpm1 (.iA (iB[0]), .iB (iA[1]), .oS(S1_0top[1]), .oC (S1_0top_c1));
Ripple_Add_12bit S10tpm2 (
.iA (iB[11:1]), .iB ({iA[11],iA[11:2]}),
.iC (S1_0top_c1), .oS (S1_0top[13:2]));
//assign S1_0bot = {iA[11],iA,1'b0} - {{(2){iB[11]}},iB}; // S1_bot = a - b*2^-1;
assign S1_0bot[0] = iB[0];
Ripple_Add_13bit S10btm0 (
.iA (iA), .iB (~{iB[11],iB[11:1]}),
.iC (~iB[0]), .oS (S1_0bot[13:1]));
//assign S2_0top = {S1_0top[13],S1_0top,4'b0} - {{(5){S1_0bot[13]}},S1_0bot}; // S2_top = S1_top - S1_bot*2^-4;
wire S2_0top_c1, S2_0top_c2, S2_0top_c3;
assign S2_0top[0] = S1_0bot[0];
FA_Cir_Cin0 S20tpm1 (.iA (~S1_0bot[1]), .iB (~S1_0bot[0]), .oS (S2_0top[1]), .oC (S2_0top_c1));
FA_Cir_Cin0 S20tpm2 (.iA (~S1_0bot[2]), .iB (S2_0top_c1), .oS (S2_0top[2]), .oC (S2_0top_c2));
FA_Cir_Cin0 S20tpm3 (.iA (~S1_0bot[3]), .iB (S2_0top_c2), .oS (S2_0top[3]), .oC (S2_0top_c3));
Ripple_Add_15bit S20tpm4 (
.iA (S1_0top), .iB (~{{(4){S1_0bot[13]}},S1_0bot[13:4]}),
.iC (S2_0top_c3), .oS (S2_0top[18:4]));
//assign S2_0bot = {S1_0bot[13],S1_0bot,4'b0} + {{(5){S1_0top[13]}},S1_0top}; // S2_bot = S1_bot + S1_top*2^-4;
wire S2_0bot_c4;
assign S2_0bot[3:0] = S1_0top[3:0];
FA_Cir_Cin0 S20btm4 (.iA (S1_0bot[0]), .iB (S1_0top[4]), .oS (S2_0bot[4]), .oC (S2_0bot_c4));
Ripple_Add_14bit S20btm5 (
.iA (S1_0bot[13:1]), .iB ({{(4){S1_0top[13]}},S1_0top[13:5]}),
.iC (S2_0bot_c4), .oS (S2_0bot[18:5]));
assign o0a = S2_0top;
assign o0b = S2_0bot;
endmodule
module ACor_DCT_32p_1to3_pi16_2Stg (
// Input Signals
input [10:0] /*11.0*/ iA, iB,
// Output Signals
output [18:0] /*13.6*/ o0a, o0b,
output [16:0] /*13.4*/ o1a, o1b
);
/* pi/16 */
wire /*12.2*/ [13:0] S1_0top, S1_0bot;
wire /*13.6*/ [18:0] S2_0top, S2_0bot;
//assign S1_0top = {iB[10],iB,2'b0} + {{(3){iA[10]}},iA}; // S1_top = b + a*2^-2;
wire S1_0top_c2;
assign S1_0top[1:0] = iA[1:0];
FA_Cir_Cin0 S10tpm2 (.iA (iB[0]), .iB (iA[2]), .oS (S1_0top[2]), .oC (S1_0top_c2));
Ripple_Add_11bit S10tpm3 (
.iA (iB[10:1]), .iB ({{(2){iA[10]}},iA[10:3]}),
.iC (S1_0top_c2), .oS (S1_0top[13:3]));
//assign S1_0bot = {iA[10],iA,2'b0} - {{(3){iB[10]}},iB}; // S1_bot = a - b*2^-2;
wire S1_0bot_c1;
assign S1_0bot[0] = iB[0];
FA_Cir_Cin0 S10btm1 (.iA (~iB[1]), .iB (~iB[0]), .oS (S1_0bot[1]), .oC (S1_0bot_c1));
Ripple_Add_12bit S10btm2 (
.iA (iA), .iB (~{{(2){iB[10]}},iB[10:2]}),
.iC (S1_0bot_c1), .oS(S1_0bot[13:2]));
//assign S2_0top = {S1_0top[13],S1_0top,4'b0} - {{(5){S1_0bot[13]}},S1_0bot}; // S2_top = S1_top - S1_bot*2^-4;
wire S2_0top_c1, S2_0top_c2, S2_0top_c3;
assign S2_0top[0] = S1_0bot[0];
FA_Cir_Cin0 S20tpm1 (.iA (~S1_0bot[1]), .iB (~S1_0bot[0]), .oS (S2_0top[1]), .oC (S2_0top_c1));
FA_Cir_Cin0 S20tpm2 (.iA (~S1_0bot[2]), .iB (S2_0top_c1), .oS (S2_0top[2]), .oC (S2_0top_c2));
FA_Cir_Cin0 S20tpm3 (.iA (~S1_0bot[3]), .iB (S2_0top_c2), .oS (S2_0top[3]), .oC (S2_0top_c3));
Ripple_Add_15bit S20tpm4 (
.iA (S1_0top), .iB (~{{(4){S1_0bot[13]}},S1_0bot[13:4]}),
.iC (S2_0top_c3), .oS (S2_0top[18:4]));
//assign S2_0bot = {S1_0bot[13],S1_0bot,4'b0} + {{(5){S1_0top[13]}},S1_0top}; // S2_bot = S1_bot + S1_top*2^-4;
wire S2_0bot_c4;
assign S2_0bot[3:0] = S1_0top[3:0];
FA_Cir_Cin0 S20btm4 (.iA (S1_0bot[0]), .iB (S1_0top[4]), .oS (S2_0bot[4]), .oC (S2_0bot_c4));
Ripple_Add_14bit S20btm5 (
.iA (S1_0bot[13:1]), .iB ({{(4){S1_0top[13]}},S1_0top[13:5]}),
.iC (S2_0bot_c4), .oS (S2_0bot[18:5]));
assign o0a = S2_0top;
assign o0b = S2_0bot;
/* 3pi/16 */
wire /*12.1*/ [12:0] S1_1top, S1_1bot;
wire /*13.4*/ [16:0] S2_1top, S2_1bot;
//assign S1_1top = {iA[10],iA,1'b0} + {{(2){iB[10]}},iB}; // S1_top = a + b*2^-1;
wire S1_1top_c1;
assign S1_1top[0] = iB[0];
FA_Cir_Cin0 S11tpm1 (.iA (iA[0]), .iB (iB[1]), .oS (S1_1top[1]), .oC (S1_1top_c1));
Ripple_Add_11bit S11tpm2 (
.iA (iA[10:1]), .iB ({iB[10],iB[10:2]}),
.iC (S1_1top_c1), .oS (S1_1top[12:2]));
//assign S1_1bot = {iB[10],iB,1'b0} - {{(2){iA[10]}},iA}; // S1_bot = b - a*2^-1;
assign S1_1bot[0] = iA[0];
Ripple_Add_12bit S11btm0 (
.iA (iB), .iB (~{iA[10],iA[10:1]}),
.iC (~iA[0]), .oS (S1_1bot[12:1]));
//assign S2_1top = {S1_1top[12],S1_1top,3'b0} + {{(4){S1_1bot[12]}},S1_1bot}; // S2_top = S1_top + S1_bot*2^-3;
wire S2_1top_c3;
assign S2_1top[2:0] = S1_1bot[2:0];
FA_Cir_Cin0 S21tpm3 (.iA (S1_1top[0]), .iB (S1_1bot[3]), .oS (S2_1top[3]), .oC (S2_1top_c3));
Ripple_Add_13bit S21tpm4 (
.iA (S1_1top[12:1]), .iB ({{(3){S1_1bot[12]}},S1_1bot[12:4]}),
.iC (S2_1top_c3), .oS (S2_1top[16:4]));
//assign S2_1bot = {S1_1bot[12],S1_1bot,3'b0} - {{(4){S1_1top[12]}},S1_1top}; // S2_bot = S1_bot - S1_top*2^-3;
wire S2_1bot_c1, S2_1bot_c2;
assign S2_1bot[0] = S1_1top[0];
FA_Cir_Cin0 S21btm1 (.iA (~S1_1top[1]), .iB (~S1_1top[0]), .oS (S2_1bot[1]), .oC (S2_1bot_c1));
FA_Cir_Cin0 S21btm2 (.iA (~S1_1top[2]), .iB (S2_1bot_c1), .oS (S2_1bot[2]), .oC (S2_1bot_c2));
Ripple_Add_14bit S21btm3 (
.iA (S1_1bot), .iB (~{{(3){S1_1top[12]}},S1_1top[12:3]}),
.iC (S2_1bot_c2), .oS (S2_1bot[16:3]));
assign o1a = S2_1top;
assign o1b = S2_1bot;
endmodule
module ACor_DCT_32p_1to7_pi32_2Stg (
// Input Signals
input [9:0] /*10.0*/ iA, iB,
// Output Signals
output [19:0] /*12.8*/ o0a, o0b,
output [17:0] /*12.6*/ o1a, o1b,
output [17:0] /*12.6*/ o2a, o2b,
output [14:0] /*12.3*/ o3a, o3b
);
/* pi/32 */
wire /*11.3*/ [13:0] S1_0top, S1_0bot;
wire /*12.8*/ [19:0] S2_0top, S2_0bot;
//assign S1_0top = {iB[9],iB,3'b0} + {{(4){iA[9]}},iA}; // S1_top = b + a*2^-3;
wire S1_0top_c3;
assign S1_0top[2:0] = iA[2:0];
FA_Cir_Cin0 S10tpm3 (.iA (iB[0]), .iB (iA[3]), .oS (S1_0top[3]), .oC (S1_0top_c3));
Ripple_Add_10bit S10tpm4 (
.iA (iB[9:1]), .iB ({{(3){iA[9]}},iA[9:4]}),
.iC (S1_0top_c3), .oS (S1_0top[13:4]));
//assign S1_0bot = {iA[9],iA,3'b0} - {{(4){iB[9]}},iB}; // S1_bot = a - b*2^-3;
wire S1_0bot_c1, S1_0bot_c2;
assign S1_0bot[0] = iB[0];
FA_Cir_Cin0 S10btm1 (.iA (~iB[1]), .iB (~iB[0]), .oS (S1_0bot[1]), .oC (S1_0bot_c1));
FA_Cir_Cin0 S10btm2 (.iA (~iB[2]), .iB (S1_0bot_c1), .oS (S1_0bot[2]), .oC (S1_0bot_c2));
Ripple_Add_11bit S10btm3 (
.iA (iA), .iB (~{{(3){iB[9]}},iB[9:3]}),
.iC (S1_0bot_c2), .oS (S1_0bot[13:3]));
//assign S2_0top = {S1_0top[13],S1_0top,5'b0} - {{(6){S1_0bot[13]}},S1_0bot}; // S2_top = S1_top - S1_bot*2^-5;
wire S2_0top_c1, S2_0top_c2, S2_0top_c3, S2_0top_c4;
assign S2_0top[0] = S1_0bot[0];
FA_Cir_Cin0 S20tpm1 (.iA (~S1_0bot[1]), .iB (~S1_0bot[0]), .oS (S2_0top[1]), .oC (S2_0top_c1));
FA_Cir_Cin0 S20tpm2 (.iA (~S1_0bot[2]), .iB (S2_0top_c1), .oS (S2_0top[2]), .oC (S2_0top_c2));
FA_Cir_Cin0 S20tpm3 (.iA (~S1_0bot[3]), .iB (S2_0top_c2), .oS (S2_0top[3]), .oC (S2_0top_c3));
FA_Cir_Cin0 S20tpm4 (.iA (~S1_0bot[4]), .iB (S2_0top_c3), .oS (S2_0top[4]), .oC (S2_0top_c4));
Ripple_Add_15bit S20tpm5 (
.iA (S1_0top), .iB (~{{(5){S1_0bot[13]}},S1_0bot[13:5]}),
.iC (S2_0top_c4), .oS (S2_0top[19:5]));
//assign S2_0bot = {S1_0bot[13],S1_0bot,5'b0} + {{(6){S1_0top[13]}},S1_0top}; // S2_bot = S1_bot + S1_top*2^-5;
wire S2_0bot_c5;
assign S2_0bot[4:0] = S1_0top[4:0];
FA_Cir_Cin0 S20btm5 (.iA (S1_0bot[0]), .iB (S1_0top[5]), .oS (S2_0bot[5]), .oC (S2_0bot_c5));
Ripple_Add_14bit S20btm6 (
.iA (S1_0bot[13:1]), .iB ({{(5){S1_0top[13]}},S1_0top[13:6]}),
.iC (S2_0bot_c5), .oS (S2_0bot[19:6]));
assign o0a = S2_0top;
assign o0b = S2_0bot;
/* 3pi/32 */
wire /*11.2*/ [12:0] S1_1top, S1_1bot;
wire /*12.6*/ [17:0] S2_1top, S2_1bot;
//assign S1_1top = {iA[9],iA,2'b0} + {{(3){iB[9]}},iB}; // S1_top = a + b*2^-2;
wire S1_1top_c2;
assign S1_1top[1:0] = iB[1:0];
FA_Cir_Cin0 S11tpm2 (.iA (iA[0]), .iB (iB[2]), .oS (S1_1top[2]), .oC (S1_1top_c2));
Ripple_Add_10bit S11tpm3 (
.iA (iA[9:1]), .iB ({{(2){iB[9]}},iB[9:3]}),
.iC (S1_1top_c2), .oS (S1_1top[12:3]));
//assign S1_1bot = {iB[9],iB,2'b0} - {{(3){iA[9]}},iA}; // S1_bot = b - a*2^-2;
wire S1_1bot_c1;
assign S1_1bot[0] = iA[0];
FA_Cir_Cin0 S11btm1 (.iA (~iA[1]), .iB (~iA[0]), .oS (S1_1bot[1]), .oC (S1_1bot_c1));
Ripple_Add_11bit S11btm2 (
.iA (iB), .iB (~{{(2){iA[9]}},iA[9:2]}),
.iC (S1_1bot_c1), .oS (S1_1bot[12:2]));
//assign S2_1top = {S1_1top[12],S1_1top,4'b0} + {{(5){S1_1bot[12]}},S1_1bot}; // S2_top = S1_top + S1_bot*2^-4;
wire S2_1top_c4;
assign S2_1top[3:0] = S1_1bot[3:0];
FA_Cir_Cin0 S21tpm4 (.iA (S1_1top[0]), .iB (S1_1bot[4]), .oS (S2_1top[4]), .oC (S2_1top_c4));
Ripple_Add_13bit S21tpm5 (
.iA (S1_1top[12:1]), .iB ({{(4){S1_1bot[12]}},S1_1bot[12:5]}),
.iC (S2_1top_c4), .oS (S2_1top[17:5]));
//assign S2_1bot = {S1_1bot[12],S1_1bot,4'b0} - {{(5){S1_1top[12]}},S1_1top}; // S2_bot = S1_bot - S1_top*2^-4;
wire S2_1bot_c1, S2_1bot_c2, S2_1bot_c3;
assign S2_1bot[0] = S1_1top[0];
FA_Cir_Cin0 S21btm1 (.iA (~S1_1top[1]), .iB (~S1_1top[0]), .oS (S2_1bot[1]), .oC (S2_1bot_c1));
FA_Cir_Cin0 S21btm2 (.iA (~S1_1top[2]), .iB (S2_1bot_c1), .oS (S2_1bot[2]), .oC (S2_1bot_c2));
FA_Cir_Cin0 S21btm3 (.iA (~S1_1top[3]), .iB (S2_1bot_c2), .oS (S2_1bot[3]), .oC (S2_1bot_c3));
Ripple_Add_14bit S21btm4 (
.iA (S1_1bot), .iB (~{{(4){S1_1top[12]}},S1_1top[12:4]}),
.iC (S2_1bot_c3), .oS (S2_1bot[17:4]));
assign o1a = S2_1top;
assign o1b = S2_1bot;
/* 5pi/32 */
wire /*11.1*/ [11:0] S1_2top, S1_2bot;
wire /*12.6*/ [17:0] S2_2top, S2_2bot;
//assign S1_2top = {iB[9],iB,1'b0} + {{(2){iA[9]}},iA}; // S1_top = b + a*2^-1;
wire S1_2top_c1;
assign S1_2top[0] = iA[0];
FA_Cir_Cin0 S12tpm1 (.iA (iB[0]), .iB (iA[1]), .oS (S1_2top[1]), .oC (S1_2top_c1));
Ripple_Add_10bit S12tpm2 (
.iA (iB[9:1]), .iB ({iA[9],iA[9:2]}),
.iC (S1_2top_c1), .oS (S1_2top[11:2]));
//assign S1_2bot = {iA[9],iA,1'b0} - {{(2){iB[9]}},iB}; // S1_bot = a - b*2^-1;
assign S1_2bot[0] = iB[0];
Ripple_Add_11bit S12btm0 (
.iA (iA), .iB (~{iB[9],iB[9:1]}),
.iC (~iB[0]), .oS (S1_2bot[11:1]));
//assign S2_2top = {S1_2top[11],S1_2top,5'b0} + {{(6){S1_2bot[11]}},S1_2bot}; // S2_top = S1_top + S1_bot*2^-5;
wire S2_2top_c5;
assign S2_2top[4:0] = S1_2bot[4:0];
FA_Cir_Cin0 S22tpm5 (.iA (S1_2top[0]), .iB (S1_2bot[5]), .oS (S2_2top[5]), .oC (S2_2top_c5));
Ripple_Add_12bit S22tpm6 (
.iA (S1_2top[11:1]), .iB ({{(5){S1_2bot[11]}},S1_2bot[11:6]}),
.iC (S2_2top_c5), .oS (S2_2top[17:6]));
//assign S2_2bot = {S1_2bot[11],S1_2bot,5'b0} - {{(6){S1_2top[11]}},S1_2top}; // S2_bot = S1_bot - S1_top*2^-5;
wire S2_2bot_c1, S2_2bot_c2, S2_2bot_c3, S2_2bot_c4;
assign S2_2bot[0] = S1_2top[0];
FA_Cir_Cin0 S22btm1 (.iA (~S1_2top[1]), .iB (~S1_2top[0]), .oS (S2_2bot[1]), .oC (S2_2bot_c1));
FA_Cir_Cin0 S22btm2 (.iA (~S1_2top[2]), .iB (S2_2bot_c1), .oS (S2_2bot[2]), .oC (S2_2bot_c2));
FA_Cir_Cin0 S22btm3 (.iA (~S1_2top[3]), .iB (S2_2bot_c2), .oS (S2_2bot[3]), .oC (S2_2bot_c3));
FA_Cir_Cin0 S22btm4 (.iA (~S1_2top[4]), .iB (S2_2bot_c3), .oS (S2_2bot[4]), .oC (S2_2bot_c4));
Ripple_Add_13bit S22btm5 (
.iA (S1_2bot), .iB (~{{(5){S1_2top[11]}},S1_2top[11:5]}),
.iC (S2_2bot_c4), .oS (S2_2bot[17:5]));
assign o2a = S2_2top;
assign o2b = S2_2bot;
/* 7pi/32 */
wire /*11.0*/ [10:0] S1_3top, S1_3bot;
wire /*12.3*/ [14:0] S2_3top, S2_3bot;
//assign S1_3top = {iA[9],iA} + {iB[9],iB}; // S1_top = a + b;
wire S1_3top_c0;
FA_Cir_Cin0 S13tpm0 (.iA (iA[0]), .iB (iB[0]), .oS (S1_3top[0]), .oC (S1_3top_c0));
Ripple_Add_10bit S13tpm1 (
.iA (iA[9:1]), .iB (iB[9:1]),
.iC (S1_3top_c0), .oS (S1_3top[10:1]));
//assign S1_3bot = {iB[9],iB} - {iA[9],iA}; // S1_bot = b - a;
wire S1_3bot_c1;
FA_Cir_Cin1 S13btm1 (.iA (iB[0]), .iB (~iA[0]), .oS (S1_3bot[0]), .oC (S1_3bot_c1));
Ripple_Add_10bit S13btm2 (
.iA (iB[9:1]), .iB (~iA[9:1]),
.iC (S1_3bot_c1), .oS (S1_3bot[10:1]));
//assign S2_3top = {S1_3top[10],S1_3top,3'b0} - {{(4){S1_3bot[10]}},S1_3bot}; // S2_top = S1_top - S1_bot*2^-3;
wire S2_3top_c1, S2_3top_c2;
assign S2_3top[0] = S1_3bot[0];
FA_Cir_Cin0 S23tpm1 (.iA (~S1_3bot[1]), .iB (~S1_3bot[0]), .oS (S2_3top[1]), .oC (S2_3top_c1));
FA_Cir_Cin0 S23tpm2 (.iA (~S1_3bot[2]), .iB (S2_3top_c1), .oS (S2_3top[2]), .oC (S2_3top_c2));
Ripple_Add_12bit S23tpm3 (
.iA (S1_3top), .iB (~{{(3){S1_3bot[10]}},S1_3bot[10:3]}),
.iC (S2_3top_c2), .oS (S2_3top[14:3]));
//assign S2_3bot = {S1_3bot[10],S1_3bot,3'b0} + {{(4){S1_3top[10]}},S1_3top}; // S2_bot = S1_bot + S1_top*2^-3;
wire S2_3bot_c3;
assign S2_3bot[2:0] = S1_3top[2:0];
FA_Cir_Cin0 S23btm3 (.iA (S1_3bot[0]), .iB (S1_3top[3]), .oS (S2_3bot[3]), .oC (S2_3bot_c3));
Ripple_Add_11bit S23btm4 (
.iA (S1_3bot[10:1]), .iB ({{(3){S1_3top[10]}},S1_3top[10:4]}),
.iC (S2_3bot_c3), .oS (S2_3bot[14:4]));
assign o3a = S2_3top;
assign o3b = S2_3bot;
endmodule
module ACor_DCT_32p_1to15_pi64_2Stg (
// Input Signals
input [8:0] /* 9.0 */ iA, iB,
// Output Signals
output [20:0] /*11.10*/ o0a, o0b,
output [19:0] /*11.9 */ o1a, o1b,
output [20:0] /*11.10*/ o2a, o2b,
output [15:0] /*11.5 */ o3a, o3b,
output [17:0] /*11.7 */ o4a, o4b,
output [15:0] /*11.5 */ o5a, o5b,
output [13:0] /*11.3 */ o6a, o6b,
output [14:0] /*11.4 */ o7a, o7b
);
/* pi/64 */
wire /*10.4 */ [13:0] S1_0top, S1_0bot;
wire /*11.10*/ [20:0] S2_0top, S2_0bot;
//assign S1_0top = {iB[8],iB,4'b0} + {{(5){iA[8]}},iA}; // S1_top = b + a*2^-4;
wire S1_0top_c4;
assign S1_0top[3:0] = iA[3:0];
FA_Cir_Cin0 S10tpm4 (.iA (iB[0]), .iB (iA[4]), .oS (S1_0top[4]), .oC (S1_0top_c4));
Ripple_Add_9bit S10tpm5 (
.iA (iB[8:1]), .iB ({{(4){iA[8]}},iA[8:5]}),
.iC (S1_0top_c4), .oS (S1_0top[13:5]));
//assign S1_0bot = {iA[8],iA,4'b0} - {{(5){iB[8]}},iB}; // S1_bot = a - b*2^-4;
wire S1_0bot_c1, S1_0bot_c2, S1_0bot_c3;
assign S1_0bot[0] = iB[0];
FA_Cir_Cin0 S10btm1 (.iA (~iB[1]), .iB (~iB[0]), .oS (S1_0bot[1]), .oC (S1_0bot_c1));
FA_Cir_Cin0 S10btm2 (.iA (~iB[2]), .iB (S1_0bot_c1), .oS (S1_0bot[2]), .oC (S1_0bot_c2));
FA_Cir_Cin0 S10btm3 (.iA (~iB[3]), .iB (S1_0bot_c2), .oS (S1_0bot[3]), .oC (S1_0bot_c3));
Ripple_Add_10bit S10btm4 (
.iA (iA), .iB (~{{(4){iB[8]}},iB[8:4]}),
.iC (S1_0bot_c3), .oS (S1_0bot[13:4]));
//assign S2_0top = {S1_0top[13],S1_0top,6'b0} - {{(7){S1_0bot[13]}},S1_0bot}; // S2_top = S1_top - S1_bot*2^-6;
wire S2_0top_c1, S2_0top_c2, S2_0top_c3, S2_0top_c4, S2_0top_c5;
assign S2_0top[0] = S1_0bot[0];
FA_Cir_Cin0 S20tpm1 (.iA (~S1_0bot[1]), .iB (~S1_0bot[0]), .oS (S2_0top[1]), .oC (S2_0top_c1));
FA_Cir_Cin0 S20tpm2 (.iA (~S1_0bot[2]), .iB (S2_0top_c1), .oS (S2_0top[2]), .oC (S2_0top_c2));
FA_Cir_Cin0 S20tpm3 (.iA (~S1_0bot[3]), .iB (S2_0top_c2), .oS (S2_0top[3]), .oC (S2_0top_c3));
FA_Cir_Cin0 S20tpm4 (.iA (~S1_0bot[4]), .iB (S2_0top_c3), .oS (S2_0top[4]), .oC (S2_0top_c4));
FA_Cir_Cin0 S20tpm5 (.iA (~S1_0bot[5]), .iB (S2_0top_c4), .oS (S2_0top[5]), .oC (S2_0top_c5));
Ripple_Add_15bit S20tpm6 (
.iA (S1_0top), .iB (~{{(6){S1_0bot[13]}},S1_0bot[13:6]}),
.iC (S2_0top_c5), .oS (S2_0top[20:6]));
//assign S2_0bot = {S1_0bot[13],S1_0bot,6'b0} + {{(7){S1_0top[13]}},S1_0top}; // S2_bot = S1_bot + S1_top*2^-6;
wire S2_0bot_c6;
assign S2_0bot[5:0] = S1_0top[5:0];
FA_Cir_Cin0 S20btm6 (.iA (S1_0bot[0]), .iB (S1_0top[6]), .oS (S2_0bot[6]), .oC (S2_0bot_c6));
Ripple_Add_14bit S20btm7 (
.iA (S1_0bot[13:1]), .iB ({{(6){S1_0top[13]}},S1_0top[13:7]}),
.iC (S2_0bot_c6), .oS (S2_0bot[20:7]));
assign o0a = S2_0top;
assign o0b = S2_0bot;
/* 3pi/64 */
wire /*10.3 */ [12:0] S1_1top, S1_1bot;
wire /*11.9 */ [19:0] S2_1top, S2_1bot;
//assign S1_1top = {iA[8],iA,3'b0} + {{(4){iB[8]}},iB}; // S1_top = a + b*2^-3;
wire S1_1top_c3;
assign S1_1top[2:0] = iB[2:0];
FA_Cir_Cin0 S11tpm3 (.iA (iA[0]), .iB (iB[3]), .oS (S1_1top[3]), .oC (S1_1top_c3));
Ripple_Add_9bit S11tpm4 (
.iA (iA[8:1]), .iB ({{(3){iB[8]}},iB[8:4]}),
.iC (S1_1top_c3), .oS (S1_1top[12:4]));
//assign S1_1bot = {iB[8],iB,3'b0} - {{(4){iA[8]}},iA}; // S1_bot = b - a*2^-3;
wire S1_1bot_c1, S1_1bot_c2;
assign S1_1bot[0] = iA[0];
FA_Cir_Cin0 S11btm1 (.iA (~iA[1]), .iB (~iA[0]), .oS (S1_1bot[1]), .oC (S1_1bot_c1));
FA_Cir_Cin0 S11btm2 (.iA (~iA[2]), .iB (S1_1bot_c1), .oS (S1_1bot[2]), .oC (S1_1bot_c2));
Ripple_Add_10bit S11btm3 (
.iA (iB), .iB (~{{(3){iA[8]}},iA[8:3]}),
.iC (S1_1bot_c2), .oS (S1_1bot[12:3]));
//assign S2_1top = {S1_1top[12],S1_1top,6'b0} + {{(7){S1_1bot[12]}},S1_1bot}; // S2_top = S1_top + S1_bot*2^-6;
wire S2_1top_c6;
assign S2_1top[5:0] = S1_1bot[5:0];
FA_Cir_Cin0 S21tpm6 (.iA (S1_1top[0]), .iB (S1_1bot[6]), .oS (S2_1top[6]), .oC (S2_1top_c6));
Ripple_Add_13bit S21tpm7 (
.iA (S1_1top[12:1]), .iB ({{(6){S1_1bot[12]}},S1_1bot[12:7]}),
.iC (S2_1top_c6), .oS (S2_1top[19:7]));
//assign S2_1bot = {S1_1bot[12],S1_1bot,6'b0} - {{(7){S1_1top[12]}},S1_1top}; // S2_bot = S1_bot - S1_top*2^-6;
wire S2_1bot_c1, S2_1bot_c2, S2_1bot_c3, S2_1bot_c4, S2_1bot_c5;
assign S2_1bot[0] = S1_1top[0];
FA_Cir_Cin0 S21btm1 (.iA (~S1_1top[1]), .iB (~S1_1top[0]), .oS (S2_1bot[1]), .oC (S2_1bot_c1));
FA_Cir_Cin0 S21btm2 (.iA (~S1_1top[2]), .iB (S2_1bot_c1), .oS (S2_1bot[2]), .oC (S2_1bot_c2));
FA_Cir_Cin0 S21btm3 (.iA (~S1_1top[3]), .iB (S2_1bot_c2), .oS (S2_1bot[3]), .oC (S2_1bot_c3));
FA_Cir_Cin0 S21btm4 (.iA (~S1_1top[4]), .iB (S2_1bot_c3), .oS (S2_1bot[4]), .oC (S2_1bot_c4));
FA_Cir_Cin0 S21btm5 (.iA (~S1_1top[5]), .iB (S2_1bot_c4), .oS (S2_1bot[5]), .oC (S2_1bot_c5));
Ripple_Add_14bit S21btm6 (
.iA (S1_1bot), .iB (~{{(6){S1_1top[12]}},S1_1top[12:6]}),
.iC (S2_1bot_c5), .oS (S2_1bot[19:6]));
assign o1a = S2_1top;
assign o1b = S2_1bot;
/* 5pi/64 */
wire /*10.2 */ [11:0] S1_2top, S1_2bot;
wire /*11.10*/ [20:0] S2_2top, S2_2bot;
//assign S1_2top = {iB[8],iB,2'b0} + {{(3){iA[8]}},iA}; // S1_top = b + a*2^-2;
wire S1_2top_c2;
assign S1_2top[1:0] = iA[1:0];
FA_Cir_Cin0 S12tpm2 (.iA (iB[0]), .iB (iA[2]), .oS (S1_2top[2]), .oC (S1_2top_c2));
Ripple_Add_9bit S12tpm3 (
.iA (iB[8:1]), .iB ({{(2){iA[8]}},iA[8:3]}),
.iC (S1_2top_c2), .oS (S1_2top[11:3]));
//assign S1_2bot = {iA[8],iA,2'b0} - {{(3){iB[8]}},iB}; // S1_bot = a - b*2^-2;
wire S1_2bot_c1;
assign S1_2bot[0] = iB[0];
FA_Cir_Cin0 S12btm1 (.iA (~iB[1]), .iB (~iB[0]), .oS (S1_2bot[1]), .oC (S1_2bot_c1));
Ripple_Add_10bit S12btm2 (
.iA (iA), .iB (~{{(2){iB[8]}},iB[8:2]}),
.iC (S1_2bot_c1), .oS (S1_2bot[11:2]));
//assign S2_2top = {S1_2top[11],S1_2top,8'b0} + {{(12){S1_2bot[11]}},S1_2bot[11:3]}; // S2_top = S1_top + S1_bot*2^-11;
wire S2_2top_c8;
assign S2_2top[7:0] = S1_2bot[10:3];
FA_Cir_Cin0 S22tpm8 (.iA (S1_2top[0]), .iB (S1_2bot[11]), .oS (S2_2top[8]), .oC (S2_2top_c8));
Ripple_Add_12bit S22tpm9 (
.iA (S1_2top[11:1]), .iB ({(11){S1_2bot[11]}}),
.iC (S2_2top_c8), .oS (S2_2top[20:9]));
//assign S2_2bot = {S1_2bot[11],S1_2bot,8'b0} - {{(12){S1_2top[11]}},S1_2top[11:3]}; // S2_bot = S1_bot - S1_top*2^-11;
wire S2_2bot_c1, S2_2bot_c2, S2_2bot_c3, S2_2bot_c4, S2_2bot_c5, S2_2bot_c6, S2_2bot_c7;
assign S2_2bot[0] = S1_2top[3];
FA_Cir_Cin0 S22btm1 (.iA (~S1_2top[4]), .iB (~S1_2top[3]), .oS (S2_2bot[1]), .oC (S2_2bot_c1));
FA_Cir_Cin0 S22btm2 (.iA (~S1_2top[5]), .iB (S2_2bot_c1), .oS (S2_2bot[2]), .oC (S2_2bot_c2));
FA_Cir_Cin0 S22btm3 (.iA (~S1_2top[6]), .iB (S2_2bot_c2), .oS (S2_2bot[3]), .oC (S2_2bot_c3));
FA_Cir_Cin0 S22btm4 (.iA (~S1_2top[7]), .iB (S2_2bot_c3), .oS (S2_2bot[4]), .oC (S2_2bot_c4));
FA_Cir_Cin0 S22btm5 (.iA (~S1_2top[8]), .iB (S2_2bot_c4), .oS (S2_2bot[5]), .oC (S2_2bot_c5));
FA_Cir_Cin0 S22btm6 (.iA (~S1_2top[9]), .iB (S2_2bot_c5), .oS (S2_2bot[6]), .oC (S2_2bot_c6));
FA_Cir_Cin0 S22btm7 (.iA (~S1_2top[10]), .iB (S2_2bot_c6), .oS (S2_2bot[7]), .oC (S2_2bot_c7));
Ripple_Add_13bit S22btm8 (
.iA (S1_2bot), .iB (~{{(10){S1_2top[11]}},S1_2top[11:10]}),
.iC (S2_2bot_c7), .oS (S2_2bot[20:8]));
assign o2a = S2_2top;
assign o2b = S2_2bot;
/* 7pi/64 */
wire /*10.2 */ [11:0] S1_3top, S1_3bot;
wire /*11.5 */ [15:0] S2_3top, S2_3bot;
//assign S1_3top = {iA[8],iA,2'b0} + {{(3){iB[8]}},iB}; // S1_top = a + b*2^-2;
wire S1_3top_c2;
assign S1_3top[1:0] = iB[1:0];
FA_Cir_Cin0 S13tpm2 (.iA (iA[0]), .iB (iB[2]), .oS (S1_3top[2]), .oC (S1_3top_c2));
Ripple_Add_9bit S13tpm3 (
.iA (iA[8:1]), .iB ({{(2){iB[8]}},iB[8:3]}),
.iC (S1_3top_c2), .oS (S1_3top[11:3]));
//assign S1_3bot = {iB[8],iB,2'b0} - {{(3){iA[8]}},iA}; // S1_bot = b - a*2^-2;
wire S1_3bot_c1;
assign S1_3bot[0] = iA[0];
FA_Cir_Cin0 S13btm1 (.iA (~iA[1]), .iB (~iA[0]), .oS (S1_3bot[1]), .oC (S1_3bot_c1));
Ripple_Add_10bit S13btm2 (
.iA (iB), .iB (~{{(2){iA[8]}},iA[8:2]}),
.iC (S1_3bot_c1), .oS (S1_3bot[11:2]));
//assign S2_3top = {S1_3top[11],S1_3top,3'b0} + {{(4){S1_3bot[11]}},S1_3bot}; // S2_top = S1_top + S1_bot*2^-3;
wire S2_3top_c3;
assign S2_3top[2:0] = S1_3bot[2:0];
FA_Cir_Cin0 S23tpm3 (.iA (S1_3top[0]), .iB (S1_3bot[3]), .oS (S2_3top[3]), .oC (S2_3top_c3));
Ripple_Add_12bit S23tpm4 (
.iA (S1_3top[11:1]), .iB ({{(3){S1_3bot[11]}},S1_3bot[11:4]}),
.iC (S2_3top_c3), .oS (S2_3top[15:4]));
//assign S2_3bot = {S1_3bot[11],S1_3bot,3'b0} - {{(4){S1_3top[11]}},S1_3top}; // S2_bot = S1_bot - S1_top*2^-3;
wire S2_3bot_c1, S2_3bot_c2;
assign S2_3bot[0] = S1_3top[0];
FA_Cir_Cin0 S23btm1 (.iA (~S1_3top[1]), .iB (~S1_3top[0]), .oS (S2_3bot[1]), .oC (S2_3bot_c1));
FA_Cir_Cin0 S23btm2 (.iA (~S1_3top[2]), .iB (S2_3bot_c1), .oS (S2_3bot[2]), .oC (S2_3bot_c2));
Ripple_Add_13bit S23btm3 (
.iA (S1_3bot), .iB (~{{(3){S1_3top[11]}},S1_3top[11:3]}),
.iC (S2_3bot_c2), .oS (S2_3bot[15:3]));
assign o3a = S2_3top;
assign o3b = S2_3bot;
/* 9pi/64 */
wire /*10.1 */ [10:0] S1_4top, S1_4bot;
wire /*11.7 */ [17:0] S2_4top, S2_4bot;
//assign S1_4top = {iB[8],iB,1'b0} + {{(2){iA[8]}},iA}; // S1_top = b + a*2^-1;
wire S1_4top_c1;
assign S1_4top[0] = iA[0];
FA_Cir_Cin0 S14tpm1 (.iA (iB[0]), .iB (iA[1]), .oS (S1_4top[1]), .oC (S1_4top_c1));
Ripple_Add_9bit S14tpm2 (
.iA (iB[8:1]), .iB ({iA[8],iA[8:2]}),
.iC (S1_4top_c1), .oS (S1_4top[10:2]));
//assign S1_4bot = {iA[8],iA,1'b0} - {{(2){iB[8]}},iB}; // S1_bot = a - b*2^-1;
assign S1_4bot[0] = iB[0];
Ripple_Add_10bit S14btm0 (
.iA (iA), .iB (~{iB[8],iB[8:1]}),
.iC (~iB[0]), .oS (S1_4bot[10:1]));
//assign S2_4top = {S1_4top[10],S1_4top,6'b0} - {{(7){S1_4bot[10]}},S1_4bot}; // S2_top = S1_top - S1_bot*2^-6;
wire S2_4top_c1, S2_4top_c2, S2_4top_c3, S2_4top_c4, S2_4top_c5;
assign S2_4top[0] = S1_4bot[0];
FA_Cir_Cin0 S24tpm1 (.iA (~S1_4bot[1]), .iB (~S1_4bot[0]), .oS (S2_4top[1]), .oC (S2_4top_c1));
FA_Cir_Cin0 S24tpm2 (.iA (~S1_4bot[2]), .iB (S2_4top_c1), .oS (S2_4top[2]), .oC (S2_4top_c2));
FA_Cir_Cin0 S24tpm3 (.iA (~S1_4bot[3]), .iB (S2_4top_c2), .oS (S2_4top[3]), .oC (S2_4top_c3));
FA_Cir_Cin0 S24tpm4 (.iA (~S1_4bot[4]), .iB (S2_4top_c3), .oS (S2_4top[4]), .oC (S2_4top_c4));
FA_Cir_Cin0 S24tpm5 (.iA (~S1_4bot[5]), .iB (S2_4top_c4), .oS (S2_4top[5]), .oC (S2_4top_c5));
Ripple_Add_12bit S24tpm6 (
.iA (S1_4top), .iB (~{{(6){S1_4bot[10]}},S1_4bot[10:6]}),
.iC (S2_4top_c5), .oS (S2_4top[17:6]));
//assign S2_4bot = {S1_4bot[10],S1_4bot,6'b0} + {{(7){S1_4top[10]}},S1_4top}; // S2_bot = S1_bot + S1_top*2^-6;
wire S2_4bot_c6;
assign S2_4bot[5:0] = S1_4top[5:0];
FA_Cir_Cin0 S24btm6 (.iA (S1_4bot[0]), .iB (S1_4top[6]), .oS (S2_4bot[6]), .oC (S2_4bot_c6));
Ripple_Add_11bit S24btm7 (
.iA (S1_4bot[10:1]), .iB ({{(6){S1_4top[10]}},S1_4top[10:7]}),
.iC (S2_4bot_c6), .oS (S2_4bot[17:7]));
assign o4a = S2_4top;
assign o4b = S2_4bot;
/* 11pi/64 */
wire /*10.1 */ [10:0] S1_5top, S1_5bot;
wire /*11.5 */ [15:0] S2_5top, S2_5bot;
//assign S1_5top = {iA[8],iA,1'b0} + {{(2){iB[8]}},iB}; // S1_top = a + b*2^-1;
wire S1_5top_c1;
assign S1_5top[0] = iB[0];
FA_Cir_Cin0 S15tpm1 (.iA (iA[0]), .iB (iB[1]), .oS (S1_5top[1]), .oC (S1_5top_c1));
Ripple_Add_9bit S15tpm2 (
.iA (iA[8:1]), .iB ({iB[8],iB[8:2]}),
.iC (S1_5top_c1), .oS (S1_5top[10:2]));
//assign S1_5bot = {iB[8],iB,1'b0} - {{(2){iA[8]}},iA}; // S1_bot = b - a*2^-1;
assign S1_5bot[0] = iA[0];
Ripple_Add_10bit S15btm0 (
.iA (iB), .iB (~{iA[8],iA[8:1]}),
.iC (~iA[0]), .oS (S1_5bot[10:1]));
//assign S2_5top = {S1_5top[10],S1_5top,4'b0} + {{(5){S1_5bot[10]}},S1_5bot}; // S2_top = S1_top + S1_bot*2^-4;
wire S2_5top_c4;
assign S2_5top[3:0] = S1_5bot[3:0];
FA_Cir_Cin0 S25tpm4 (.iA (S1_5top[0]), .iB (S1_5bot[4]), .oS (S2_5top[4]), .oC (S2_5top_c4));
Ripple_Add_11bit S25tpm5 (
.iA (S1_5top[10:1]), .iB ({{(4){S1_5bot[10]}},S1_5bot[10:5]}),
.iC (S2_5top_c4), .oS (S2_5top[15:5]));
//assign S2_5bot = {S1_5bot[10],S1_5bot,4'b0} - {{(5){S1_5top[10]}},S1_5top}; // S2_bot = S1_bot - S1_top*2^-4;
wire S2_5bot_c1, S2_5bot_c2, S2_5bot_c3;
assign S2_5bot[0] = S1_5top[0];
FA_Cir_Cin0 S25btm1 (.iA (~S1_5top[1]), .iB (~S1_5top[0]), .oS (S2_5bot[1]), .oC (S2_5bot_c1));
FA_Cir_Cin0 S25btm2 (.iA (~S1_5top[2]), .iB (S2_5bot_c1), .oS (S2_5bot[2]), .oC (S2_5bot_c2));
FA_Cir_Cin0 S25btm3 (.iA (~S1_5top[3]), .iB (S2_5bot_c2), .oS (S2_5bot[3]), .oC (S2_5bot_c3));
Ripple_Add_12bit S25btm4 (
.iA (S1_5bot), .iB (~{{(4){S1_5top[10]}},S1_5top[10:4]}),
.iC (S2_5bot_c3), .oS (S2_5bot[15:4]));
assign o5a = S2_5top;
assign o5b = S2_5bot;
/* 13pi/64 */
wire /*10.0 */ [9:0] S1_6top, S1_6bot;
wire /*11.3 */ [13:0] S2_6top, S2_6bot;
//assign S1_6top = {iB[8],iB} + {iA[8],iA}; // S1_top = b + a;
wire S1_6top_c0;
FA_Cir_Cin0 S16tpm0 (.iA (iB[0]), .iB (iA[0]), .oS (S1_6top[0]), .oC (S1_6top_c0));
Ripple_Add_9bit S16tpm1 (
.iA (iB[8:1]), .iB (iA[8:1]),
.iC (S1_6top_c0), .oS (S1_6top[9:1]));
//assign S1_6bot = {iA[8],iA} - {iB[8],iB}; // S1_bot = a - b;
wire S1_6bot_c0;
FA_Cir_Cin1 S16btm0 (.iA (iA[0]), .iB (~iB[0]), .oS (S1_6bot[0]), .oC (S1_6bot_c0));
Ripple_Add_9bit S16btm1 (
.iA (iA[8:1]), .iB (~iB[8:1]),
.iC (S1_6bot_c0), .oS (S1_6bot[9:1]));
//assign S2_6top = {S1_6top[9],S1_6top,3'b0} - {{(4){S1_6bot[9]}},S1_6bot}; // S2_top = S1_top - S1_bot*2^-3;
wire S2_6top_c1, S2_6top_c2;
assign S2_6top[0] = S1_6bot[0];
FA_Cir_Cin0 S26tpm1 (.iA (~S1_6bot[1]), .iB (~S1_6bot[0]), .oS (S2_6top[1]), .oC (S2_6top_c1));
FA_Cir_Cin0 S26tpm2 (.iA (~S1_6bot[2]), .iB (S2_6top_c1), .oS (S2_6top[2]), .oC (S2_6top_c2));
Ripple_Add_11bit S26tpm3 (
.iA (S1_6top), .iB (~{{(3){S1_6bot[9]}},S1_6bot[9:3]}),
.iC (S2_6top_c2), .oS (S2_6top[13:3]));
//assign S2_6bot = {S1_6bot[9],S1_6bot,3'b0} + {{(4){S1_6top[9]}},S1_6top}; // S2_bot = S1_bot + S1_top*2^-3;
wire S2_6bot_c3;
assign S2_6bot[2:0] = S1_6top[2:0];
FA_Cir_Cin0 S26btm3 (.iA (S1_6bot[0]), .iB (S1_6top[3]), .oS (S2_6bot[3]), .oC (S2_6bot_c3));
Ripple_Add_10bit S26btm4 (
.iA (S1_6bot[9:1]), .iB ({{(3){S1_6top[9]}},S1_6top[9:4]}),
.iC (S2_6bot_c3), .oS (S2_6bot[13:4]));
assign o6a = S2_6top;
assign o6b = S2_6bot;
/* 15pi/64 */
wire /*10.0 */ [9:0] S1_7top, S1_7bot;
wire /*11.4 */ [14:0] S2_7top, S2_7bot;
//assign S1_7top = {iA[8],iA} + {iB[8],iB}; // S1_top = a + b;
wire S1_7top_c0;
FA_Cir_Cin0 S17tpm0 (.iA (iA[0]), .iB (iB[0]), .oS (S1_7top[0]), .oC (S1_7top_c0));
Ripple_Add_9bit S17tpm1 (
.iA (iA[8:1]), .iB (iB[8:1]),
.iC (S1_7top_c0), .oS (S1_7top[9:1]));
//assign S1_7bot = {iB[8],iB} - {iA[8],iA}; // S1_bot = b - a;
wire S1_7bot_c0;
FA_Cir_Cin1 S17btm0 (.iA (iB[0]), .iB (~iA[0]), .oS (S1_7bot[0]), .oC (S1_7bot_c0));
Ripple_Add_9bit S17btm1 (
.iA (iB[8:1]), .iB (~iA[8:1]),
.iC (S1_7bot_c0), .oS (S1_7bot[9:1]));
//assign S2_7top = {S1_7top[9],S1_7top,4'b0} - {{(5){S1_7bot[9]}},S1_7bot}; // S2_top = S1_top - S1_bot*2^-4;
wire S2_7top_c1, S2_7top_c2, S2_7top_c3;
assign S2_7top[0] = S1_7bot[0];
FA_Cir_Cin0 S27tpm1 (.iA (~S1_7bot[1]), .iB (~S1_7bot[0]), .oS (S2_7top[1]), .oC (S2_7top_c1));
FA_Cir_Cin0 S27tpm2 (.iA (~S1_7bot[2]), .iB (S2_7top_c1), .oS (S2_7top[2]), .oC (S2_7top_c2));
FA_Cir_Cin0 S27tpm3 (.iA (~S1_7bot[3]), .iB (S2_7top_c2), .oS (S2_7top[3]), .oC (S2_7top_c3));
Ripple_Add_11bit S27tpm4 (
.iA (S1_7top), .iB (~{{(4){S1_7bot[9]}},S1_7bot[9:4]}),
.iC (S2_7top_c3), .oS (S2_7top[14:4]));
//assign S2_7bot = {S1_7bot[9],S1_7bot,4'b0} + {{(5){S1_7top[9]}},S1_7top}; // S2_bot = S1_bot + S1_top*2^-4;
wire S2_7bot_c4;
assign S2_7bot[3:0] = S1_7top[3:0];
FA_Cir_Cin0 S27btm4 (.iA (S1_7bot[0]), .iB (S1_7top[4]), .oS (S2_7bot[4]), .oC (S2_7bot_c4));
Ripple_Add_10bit S27btm5 (
.iA (S1_7bot[9:1]), .iB ({{(4){S1_7top[9]}},S1_7top[9:5]}),
.iC (S2_7bot_c4), .oS (S2_7bot[14:5]));
assign o7a = S2_7top;
assign o7b = S2_7bot;
endmodule
module Ripple_Add_8bit (
input [6:0] iA, iB,
input iC,
output [7:0] oS
);
wire [5:0] C;
FA_Cir S0 (.iA (iA[0]), .iB (iB[0]), .iC (iC), .oS (oS[0]), .oC (C[0]));
FA_Cir S1 (.iA (iA[1]), .iB (iB[1]), .iC (C[0]), .oS (oS[1]), .oC (C[1]));
FA_Cir S2 (.iA (iA[2]), .iB (iB[2]), .iC (C[1]), .oS (oS[2]), .oC (C[2]));
FA_Cir S3 (.iA (iA[3]), .iB (iB[3]), .iC (C[2]), .oS (oS[3]), .oC (C[3]));
FA_Cir S4 (.iA (iA[4]), .iB (iB[4]), .iC (C[3]), .oS (oS[4]), .oC (C[4]));
FA_Cir S5 (.iA (iA[5]), .iB (iB[5]), .iC (C[4]), .oS (oS[5]), .oC (C[5]));
wire X, V;
assign X = iA[6]^iB[6];
assign V = iA[6]&iB[6];
assign oS[6] = X^C[5];
assign oS[7] = (X) ? ~(V|C[5]) : V;
endmodule
module Ripple_Add_9bit (
input [7:0] iA, iB,
input iC,
output [8:0] oS
);
wire [6:0] C;
FA_Cir S0 (.iA (iA[0]), .iB (iB[0]), .iC (iC), .oS (oS[0]), .oC (C[0]));
FA_Cir S1 (.iA (iA[1]), .iB (iB[1]), .iC (C[0]), .oS (oS[1]), .oC (C[1]));
FA_Cir S2 (.iA (iA[2]), .iB (iB[2]), .iC (C[1]), .oS (oS[2]), .oC (C[2]));
FA_Cir S3 (.iA (iA[3]), .iB (iB[3]), .iC (C[2]), .oS (oS[3]), .oC (C[3]));
FA_Cir S4 (.iA (iA[4]), .iB (iB[4]), .iC (C[3]), .oS (oS[4]), .oC (C[4]));
FA_Cir S5 (.iA (iA[5]), .iB (iB[5]), .iC (C[4]), .oS (oS[5]), .oC (C[5]));
FA_Cir S6 (.iA (iA[6]), .iB (iB[6]), .iC (C[5]), .oS (oS[6]), .oC (C[6]));
wire X, V;
assign X = iA[7]^iB[7];
assign V = iA[7]&iB[7];
assign oS[7] = X^C[6];
assign oS[8] = (X) ? ~(V|C[6]) : V;
endmodule
module Ripple_Add_10bit (
input [8:0] iA, iB,
input iC,
output [9:0] oS
);
wire [7:0] C;
FA_Cir S0 (.iA (iA[0]), .iB (iB[0]), .iC (iC), .oS (oS[0]), .oC (C[0]));
FA_Cir S1 (.iA (iA[1]), .iB (iB[1]), .iC (C[0]), .oS (oS[1]), .oC (C[1]));
FA_Cir S2 (.iA (iA[2]), .iB (iB[2]), .iC (C[1]), .oS (oS[2]), .oC (C[2]));
FA_Cir S3 (.iA (iA[3]), .iB (iB[3]), .iC (C[2]), .oS (oS[3]), .oC (C[3]));
FA_Cir S4 (.iA (iA[4]), .iB (iB[4]), .iC (C[3]), .oS (oS[4]), .oC (C[4]));
FA_Cir S5 (.iA (iA[5]), .iB (iB[5]), .iC (C[4]), .oS (oS[5]), .oC (C[5]));
FA_Cir S6 (.iA (iA[6]), .iB (iB[6]), .iC (C[5]), .oS (oS[6]), .oC (C[6]));
FA_Cir S7 (.iA (iA[7]), .iB (iB[7]), .iC (C[6]), .oS (oS[7]), .oC (C[7]));
wire X, V;
assign X = iA[8]^iB[8];
assign V = iA[8]&iB[8];
assign oS[8] = X^C[7];
assign oS[9] = (X) ? ~(V|C[7]) : V;
endmodule
module Ripple_Add_11bit (
input [9:0] iA, iB,
input iC,
output [10:0] oS
);
wire [8:0] C;
FA_Cir S0 (.iA (iA[0]), .iB (iB[0]), .iC (iC), .oS (oS[0]), .oC (C[0]));
FA_Cir S1 (.iA (iA[1]), .iB (iB[1]), .iC (C[0]), .oS (oS[1]), .oC (C[1]));
FA_Cir S2 (.iA (iA[2]), .iB (iB[2]), .iC (C[1]), .oS (oS[2]), .oC (C[2]));
FA_Cir S3 (.iA (iA[3]), .iB (iB[3]), .iC (C[2]), .oS (oS[3]), .oC (C[3]));
FA_Cir S4 (.iA (iA[4]), .iB (iB[4]), .iC (C[3]), .oS (oS[4]), .oC (C[4]));
FA_Cir S5 (.iA (iA[5]), .iB (iB[5]), .iC (C[4]), .oS (oS[5]), .oC (C[5]));
FA_Cir S6 (.iA (iA[6]), .iB (iB[6]), .iC (C[5]), .oS (oS[6]), .oC (C[6]));
FA_Cir S7 (.iA (iA[7]), .iB (iB[7]), .iC (C[6]), .oS (oS[7]), .oC (C[7]));
FA_Cir S8 (.iA (iA[8]), .iB (iB[8]), .iC (C[7]), .oS (oS[8]), .oC (C[8]));
wire X, V;
assign X = iA[9]^iB[9];
assign V = iA[9]&iB[9];
assign oS[9] = X^C[8];
assign oS[10] = (X) ? ~(V|C[8]) : V;
endmodule
module Ripple_Add_12bit (
input [10:0] iA, iB,
input iC,
output [11:0] oS
);
wire [9:0] C;
FA_Cir S0 (.iA (iA[0]), .iB (iB[0]), .iC (iC), .oS (oS[0]), .oC (C[0]));
FA_Cir S1 (.iA (iA[1]), .iB (iB[1]), .iC (C[0]), .oS (oS[1]), .oC (C[1]));
FA_Cir S2 (.iA (iA[2]), .iB (iB[2]), .iC (C[1]), .oS (oS[2]), .oC (C[2]));
FA_Cir S3 (.iA (iA[3]), .iB (iB[3]), .iC (C[2]), .oS (oS[3]), .oC (C[3]));
FA_Cir S4 (.iA (iA[4]), .iB (iB[4]), .iC (C[3]), .oS (oS[4]), .oC (C[4]));
FA_Cir S5 (.iA (iA[5]), .iB (iB[5]), .iC (C[4]), .oS (oS[5]), .oC (C[5]));
FA_Cir S6 (.iA (iA[6]), .iB (iB[6]), .iC (C[5]), .oS (oS[6]), .oC (C[6]));
FA_Cir S7 (.iA (iA[7]), .iB (iB[7]), .iC (C[6]), .oS (oS[7]), .oC (C[7]));
FA_Cir S8 (.iA (iA[8]), .iB (iB[8]), .iC (C[7]), .oS (oS[8]), .oC (C[8]));
FA_Cir S9 (.iA (iA[9]), .iB (iB[9]), .iC (C[8]), .oS (oS[9]), .oC (C[9]));
wire X, V;
assign X = iA[10]^iB[10];
assign V = iA[10]&iB[10];
assign oS[10] = X^C[9];
assign oS[11] = (X) ? ~(V|C[9]) : V;
endmodule
module Ripple_Add_13bit (
input [11:0] iA, iB,
input iC,
output [12:0] oS
);
wire [10:0] C;
FA_Cir S0 (.iA (iA[0]), .iB (iB[0]), .iC (iC), .oS (oS[0]), .oC (C[0]));
FA_Cir S1 (.iA (iA[1]), .iB (iB[1]), .iC (C[0]), .oS (oS[1]), .oC (C[1]));
FA_Cir S2 (.iA (iA[2]), .iB (iB[2]), .iC (C[1]), .oS (oS[2]), .oC (C[2]));
FA_Cir S3 (.iA (iA[3]), .iB (iB[3]), .iC (C[2]), .oS (oS[3]), .oC (C[3]));
FA_Cir S4 (.iA (iA[4]), .iB (iB[4]), .iC (C[3]), .oS (oS[4]), .oC (C[4]));
FA_Cir S5 (.iA (iA[5]), .iB (iB[5]), .iC (C[4]), .oS (oS[5]), .oC (C[5]));
FA_Cir S6 (.iA (iA[6]), .iB (iB[6]), .iC (C[5]), .oS (oS[6]), .oC (C[6]));
FA_Cir S7 (.iA (iA[7]), .iB (iB[7]), .iC (C[6]), .oS (oS[7]), .oC (C[7]));
FA_Cir S8 (.iA (iA[8]), .iB (iB[8]), .iC (C[7]), .oS (oS[8]), .oC (C[8]));
FA_Cir S9 (.iA (iA[9]), .iB (iB[9]), .iC (C[8]), .oS (oS[9]), .oC (C[9]));
FA_Cir S10 (.iA (iA[10]), .iB (iB[10]), .iC (C[9]), .oS (oS[10]), .oC (C[10]));
wire X, V;
assign X = iA[11]^iB[11];
assign V = iA[11]&iB[11];
assign oS[11] = X^C[10];
assign oS[12] = (X) ? ~(V|C[10]) : V;
endmodule
module Ripple_Add_14bit (
input [12:0] iA, iB,
input iC,
output [13:0] oS
);
wire [11:0] C;
FA_Cir S0 (.iA (iA[0]), .iB (iB[0]), .iC (iC), .oS (oS[0]), .oC (C[0]));
FA_Cir S1 (.iA (iA[1]), .iB (iB[1]), .iC (C[0]), .oS (oS[1]), .oC (C[1]));
FA_Cir S2 (.iA (iA[2]), .iB (iB[2]), .iC (C[1]), .oS (oS[2]), .oC (C[2]));
FA_Cir S3 (.iA (iA[3]), .iB (iB[3]), .iC (C[2]), .oS (oS[3]), .oC (C[3]));
FA_Cir S4 (.iA (iA[4]), .iB (iB[4]), .iC (C[3]), .oS (oS[4]), .oC (C[4]));
FA_Cir S5 (.iA (iA[5]), .iB (iB[5]), .iC (C[4]), .oS (oS[5]), .oC (C[5]));
FA_Cir S6 (.iA (iA[6]), .iB (iB[6]), .iC (C[5]), .oS (oS[6]), .oC (C[6]));
FA_Cir S7 (.iA (iA[7]), .iB (iB[7]), .iC (C[6]), .oS (oS[7]), .oC (C[7]));
FA_Cir S8 (.iA (iA[8]), .iB (iB[8]), .iC (C[7]), .oS (oS[8]), .oC (C[8]));
FA_Cir S9 (.iA (iA[9]), .iB (iB[9]), .iC (C[8]), .oS (oS[9]), .oC (C[9]));
FA_Cir S10 (.iA (iA[10]), .iB (iB[10]), .iC (C[9]), .oS (oS[10]), .oC (C[10]));
FA_Cir S11 (.iA (iA[11]), .iB (iB[11]), .iC (C[10]), .oS (oS[11]), .oC (C[11]));
wire X, V;
assign X = iA[12]^iB[12];
assign V = iA[12]&iB[12];
assign oS[12] = X^C[11];
assign oS[13] = (X) ? ~(V|C[11]) : V;
endmodule
module Ripple_Add_15bit (
input [13:0] iA, iB,
input iC,
output [14:0] oS
);
wire [12:0] C;
FA_Cir S0 (.iA (iA[0]), .iB (iB[0]), .iC (iC), .oS (oS[0]), .oC (C[0]));
FA_Cir S1 (.iA (iA[1]), .iB (iB[1]), .iC (C[0]), .oS (oS[1]), .oC (C[1]));
FA_Cir S2 (.iA (iA[2]), .iB (iB[2]), .iC (C[1]), .oS (oS[2]), .oC (C[2]));
FA_Cir S3 (.iA (iA[3]), .iB (iB[3]), .iC (C[2]), .oS (oS[3]), .oC (C[3]));
FA_Cir S4 (.iA (iA[4]), .iB (iB[4]), .iC (C[3]), .oS (oS[4]), .oC (C[4]));
FA_Cir S5 (.iA (iA[5]), .iB (iB[5]), .iC (C[4]), .oS (oS[5]), .oC (C[5]));
FA_Cir S6 (.iA (iA[6]), .iB (iB[6]), .iC (C[5]), .oS (oS[6]), .oC (C[6]));
FA_Cir S7 (.iA (iA[7]), .iB (iB[7]), .iC (C[6]), .oS (oS[7]), .oC (C[7]));
FA_Cir S8 (.iA (iA[8]), .iB (iB[8]), .iC (C[7]), .oS (oS[8]), .oC (C[8]));
FA_Cir S9 (.iA (iA[9]), .iB (iB[9]), .iC (C[8]), .oS (oS[9]), .oC (C[9]));
FA_Cir S10 (.iA (iA[10]), .iB (iB[10]), .iC (C[9]), .oS (oS[10]), .oC (C[10]));
FA_Cir S11 (.iA (iA[11]), .iB (iB[11]), .iC (C[10]), .oS (oS[11]), .oC (C[11]));
FA_Cir S12 (.iA (iA[12]), .iB (iB[12]), .iC (C[11]), .oS (oS[12]), .oC (C[12]));
wire X, V;
assign X = iA[13]^iB[13];
assign V = iA[13]&iB[13];
assign oS[13] = X^C[12];
assign oS[14] = (X) ? ~(V|C[12]) : V;
endmodule
module Ripple_Add_16bit (
input [14:0] iA, iB,
input iC,
output [15:0] oS
);
wire [13:0] C;
FA_Cir S0 (.iA (iA[0]), .iB (iB[0]), .iC (iC), .oS (oS[0]), .oC (C[0]));
FA_Cir S1 (.iA (iA[1]), .iB (iB[1]), .iC (C[0]), .oS (oS[1]), .oC (C[1]));
FA_Cir S2 (.iA (iA[2]), .iB (iB[2]), .iC (C[1]), .oS (oS[2]), .oC (C[2]));
FA_Cir S3 (.iA (iA[3]), .iB (iB[3]), .iC (C[2]), .oS (oS[3]), .oC (C[3]));
FA_Cir S4 (.iA (iA[4]), .iB (iB[4]), .iC (C[3]), .oS (oS[4]), .oC (C[4]));
FA_Cir S5 (.iA (iA[5]), .iB (iB[5]), .iC (C[4]), .oS (oS[5]), .oC (C[5]));
FA_Cir S6 (.iA (iA[6]), .iB (iB[6]), .iC (C[5]), .oS (oS[6]), .oC (C[6]));
FA_Cir S7 (.iA (iA[7]), .iB (iB[7]), .iC (C[6]), .oS (oS[7]), .oC (C[7]));
FA_Cir S8 (.iA (iA[8]), .iB (iB[8]), .iC (C[7]), .oS (oS[8]), .oC (C[8]));
FA_Cir S9 (.iA (iA[9]), .iB (iB[9]), .iC (C[8]), .oS (oS[9]), .oC (C[9]));
FA_Cir S10 (.iA (iA[10]), .iB (iB[10]), .iC (C[9]), .oS (oS[10]), .oC (C[10]));
FA_Cir S11 (.iA (iA[11]), .iB (iB[11]), .iC (C[10]), .oS (oS[11]), .oC (C[11]));
FA_Cir S12 (.iA (iA[12]), .iB (iB[12]), .iC (C[11]), .oS (oS[12]), .oC (C[12]));
FA_Cir S13 (.iA (iA[13]), .iB (iB[13]), .iC (C[12]), .oS (oS[13]), .oC (C[13]));
wire X, V;
assign X = iA[14]^iB[14];
assign V = iA[14]&iB[14];
assign oS[14] = X^C[13];
assign oS[15] = (X) ? ~(V|C[13]) : V;
endmodule
module Ripple_Add_17bit (
input [15:0] iA, iB,
input iC,
output [16:0] oS
);
wire [14:0] C;
FA_Cir S0 (.iA (iA[0]), .iB (iB[0]), .iC (iC), .oS (oS[0]), .oC (C[0]));
FA_Cir S1 (.iA (iA[1]), .iB (iB[1]), .iC (C[0]), .oS (oS[1]), .oC (C[1]));
FA_Cir S2 (.iA (iA[2]), .iB (iB[2]), .iC (C[1]), .oS (oS[2]), .oC (C[2]));
FA_Cir S3 (.iA (iA[3]), .iB (iB[3]), .iC (C[2]), .oS (oS[3]), .oC (C[3]));
FA_Cir S4 (.iA (iA[4]), .iB (iB[4]), .iC (C[3]), .oS (oS[4]), .oC (C[4]));
FA_Cir S5 (.iA (iA[5]), .iB (iB[5]), .iC (C[4]), .oS (oS[5]), .oC (C[5]));
FA_Cir S6 (.iA (iA[6]), .iB (iB[6]), .iC (C[5]), .oS (oS[6]), .oC (C[6]));
FA_Cir S7 (.iA (iA[7]), .iB (iB[7]), .iC (C[6]), .oS (oS[7]), .oC (C[7]));
FA_Cir S8 (.iA (iA[8]), .iB (iB[8]), .iC (C[7]), .oS (oS[8]), .oC (C[8]));
FA_Cir S9 (.iA (iA[9]), .iB (iB[9]), .iC (C[8]), .oS (oS[9]), .oC (C[9]));
FA_Cir S10 (.iA (iA[10]), .iB (iB[10]), .iC (C[9]), .oS (oS[10]), .oC (C[10]));
FA_Cir S11 (.iA (iA[11]), .iB (iB[11]), .iC (C[10]), .oS (oS[11]), .oC (C[11]));
FA_Cir S12 (.iA (iA[12]), .iB (iB[12]), .iC (C[11]), .oS (oS[12]), .oC (C[12]));
FA_Cir S13 (.iA (iA[13]), .iB (iB[13]), .iC (C[12]), .oS (oS[13]), .oC (C[13]));
FA_Cir S14 (.iA (iA[14]), .iB (iB[14]), .iC (C[13]), .oS (oS[14]), .oC (C[14]));
wire X, V;
assign X = iA[15]^iB[15];
assign V = iA[15]&iB[15];
assign oS[15] = X^C[14];
assign oS[16] = (X) ? ~(V|C[14]) : V;
endmodule
module Ripple_Add_18bit (
input [16:0] iA, iB,
input iC,
output [17:0] oS
);
wire [15:0] C;
FA_Cir S0 (.iA (iA[0]), .iB (iB[0]), .iC (iC), .oS (oS[0]), .oC (C[0]));
FA_Cir S1 (.iA (iA[1]), .iB (iB[1]), .iC (C[0]), .oS (oS[1]), .oC (C[1]));
FA_Cir S2 (.iA (iA[2]), .iB (iB[2]), .iC (C[1]), .oS (oS[2]), .oC (C[2]));
FA_Cir S3 (.iA (iA[3]), .iB (iB[3]), .iC (C[2]), .oS (oS[3]), .oC (C[3]));
FA_Cir S4 (.iA (iA[4]), .iB (iB[4]), .iC (C[3]), .oS (oS[4]), .oC (C[4]));
FA_Cir S5 (.iA (iA[5]), .iB (iB[5]), .iC (C[4]), .oS (oS[5]), .oC (C[5]));
FA_Cir S6 (.iA (iA[6]), .iB (iB[6]), .iC (C[5]), .oS (oS[6]), .oC (C[6]));
FA_Cir S7 (.iA (iA[7]), .iB (iB[7]), .iC (C[6]), .oS (oS[7]), .oC (C[7]));
FA_Cir S8 (.iA (iA[8]), .iB (iB[8]), .iC (C[7]), .oS (oS[8]), .oC (C[8]));
FA_Cir S9 (.iA (iA[9]), .iB (iB[9]), .iC (C[8]), .oS (oS[9]), .oC (C[9]));
FA_Cir S10 (.iA (iA[10]), .iB (iB[10]), .iC (C[9]), .oS (oS[10]), .oC (C[10]));
FA_Cir S11 (.iA (iA[11]), .iB (iB[11]), .iC (C[10]), .oS (oS[11]), .oC (C[11]));
FA_Cir S12 (.iA (iA[12]), .iB (iB[12]), .iC (C[11]), .oS (oS[12]), .oC (C[12]));
FA_Cir S13 (.iA (iA[13]), .iB (iB[13]), .iC (C[12]), .oS (oS[13]), .oC (C[13]));
FA_Cir S14 (.iA (iA[14]), .iB (iB[14]), .iC (C[13]), .oS (oS[14]), .oC (C[14]));
FA_Cir S15 (.iA (iA[15]), .iB (iB[15]), .iC (C[14]), .oS (oS[15]), .oC (C[15]));
wire X, V;
assign X = iA[16]^iB[16];
assign V = iA[16]&iB[16];
assign oS[16] = X^C[15];
assign oS[17] = (X) ? ~(V|C[15]) : V;
endmodule
module Ripple_Add_19bit (
input [17:0] iA, iB,
input iC,
output [18:0] oS
);
wire [16:0] C;
FA_Cir S0 (.iA (iA[0]), .iB (iB[0]), .iC (iC), .oS (oS[0]), .oC (C[0]));
FA_Cir S1 (.iA (iA[1]), .iB (iB[1]), .iC (C[0]), .oS (oS[1]), .oC (C[1]));
FA_Cir S2 (.iA (iA[2]), .iB (iB[2]), .iC (C[1]), .oS (oS[2]), .oC (C[2]));
FA_Cir S3 (.iA (iA[3]), .iB (iB[3]), .iC (C[2]), .oS (oS[3]), .oC (C[3]));
FA_Cir S4 (.iA (iA[4]), .iB (iB[4]), .iC (C[3]), .oS (oS[4]), .oC (C[4]));
FA_Cir S5 (.iA (iA[5]), .iB (iB[5]), .iC (C[4]), .oS (oS[5]), .oC (C[5]));
FA_Cir S6 (.iA (iA[6]), .iB (iB[6]), .iC (C[5]), .oS (oS[6]), .oC (C[6]));
FA_Cir S7 (.iA (iA[7]), .iB (iB[7]), .iC (C[6]), .oS (oS[7]), .oC (C[7]));
FA_Cir S8 (.iA (iA[8]), .iB (iB[8]), .iC (C[7]), .oS (oS[8]), .oC (C[8]));
FA_Cir S9 (.iA (iA[9]), .iB (iB[9]), .iC (C[8]), .oS (oS[9]), .oC (C[9]));
FA_Cir S10 (.iA (iA[10]), .iB (iB[10]), .iC (C[9]), .oS (oS[10]), .oC (C[10]));
FA_Cir S11 (.iA (iA[11]), .iB (iB[11]), .iC (C[10]), .oS (oS[11]), .oC (C[11]));
FA_Cir S12 (.iA (iA[12]), .iB (iB[12]), .iC (C[11]), .oS (oS[12]), .oC (C[12]));
FA_Cir S13 (.iA (iA[13]), .iB (iB[13]), .iC (C[12]), .oS (oS[13]), .oC (C[13]));
FA_Cir S14 (.iA (iA[14]), .iB (iB[14]), .iC (C[13]), .oS (oS[14]), .oC (C[14]));
FA_Cir S15 (.iA (iA[15]), .iB (iB[15]), .iC (C[14]), .oS (oS[15]), .oC (C[15]));
FA_Cir S16 (.iA (iA[16]), .iB (iB[16]), .iC (C[15]), .oS (oS[16]), .oC (C[16]));
wire X, V;
assign X = iA[17]^iB[17];
assign V = iA[17]&iB[17];
assign oS[17] = X^C[16];
assign oS[18] = (X) ? ~(V|C[16]) : V;
endmodule
module Ripple_Add_20bit (
input [18:0] iA, iB,
input iC,
output [19:0] oS
);
wire [17:0] C;
FA_Cir S0 (.iA (iA[0]), .iB (iB[0]), .iC (iC), .oS (oS[0]), .oC (C[0]));
FA_Cir S1 (.iA (iA[1]), .iB (iB[1]), .iC (C[0]), .oS (oS[1]), .oC (C[1]));
FA_Cir S2 (.iA (iA[2]), .iB (iB[2]), .iC (C[1]), .oS (oS[2]), .oC (C[2]));
FA_Cir S3 (.iA (iA[3]), .iB (iB[3]), .iC (C[2]), .oS (oS[3]), .oC (C[3]));
FA_Cir S4 (.iA (iA[4]), .iB (iB[4]), .iC (C[3]), .oS (oS[4]), .oC (C[4]));
FA_Cir S5 (.iA (iA[5]), .iB (iB[5]), .iC (C[4]), .oS (oS[5]), .oC (C[5]));
FA_Cir S6 (.iA (iA[6]), .iB (iB[6]), .iC (C[5]), .oS (oS[6]), .oC (C[6]));
FA_Cir S7 (.iA (iA[7]), .iB (iB[7]), .iC (C[6]), .oS (oS[7]), .oC (C[7]));
FA_Cir S8 (.iA (iA[8]), .iB (iB[8]), .iC (C[7]), .oS (oS[8]), .oC (C[8]));
FA_Cir S9 (.iA (iA[9]), .iB (iB[9]), .iC (C[8]), .oS (oS[9]), .oC (C[9]));
FA_Cir S10 (.iA (iA[10]), .iB (iB[10]), .iC (C[9]), .oS (oS[10]), .oC (C[10]));
FA_Cir S11 (.iA (iA[11]), .iB (iB[11]), .iC (C[10]), .oS (oS[11]), .oC (C[11]));
FA_Cir S12 (.iA (iA[12]), .iB (iB[12]), .iC (C[11]), .oS (oS[12]), .oC (C[12]));
FA_Cir S13 (.iA (iA[13]), .iB (iB[13]), .iC (C[12]), .oS (oS[13]), .oC (C[13]));
FA_Cir S14 (.iA (iA[14]), .iB (iB[14]), .iC (C[13]), .oS (oS[14]), .oC (C[14]));
FA_Cir S15 (.iA (iA[15]), .iB (iB[15]), .iC (C[14]), .oS (oS[15]), .oC (C[15]));
FA_Cir S16 (.iA (iA[16]), .iB (iB[16]), .iC (C[15]), .oS (oS[16]), .oC (C[16]));
FA_Cir S17 (.iA (iA[17]), .iB (iB[17]), .iC (C[16]), .oS (oS[17]), .oC (C[17]));
wire X, V;
assign X = iA[18]^iB[18];
assign V = iA[18]&iB[18];
assign oS[18] = X^C[17];
assign oS[19] = (X) ? ~(V|C[17]) : V;
endmodule
module Ripple_Add_21bit (
input [19:0] iA, iB,
input iC,
output [20:0] oS
);
wire [18:0] C;
FA_Cir S0 (.iA (iA[0]), .iB (iB[0]), .iC (iC), .oS (oS[0]), .oC (C[0]));
FA_Cir S1 (.iA (iA[1]), .iB (iB[1]), .iC (C[0]), .oS (oS[1]), .oC (C[1]));
FA_Cir S2 (.iA (iA[2]), .iB (iB[2]), .iC (C[1]), .oS (oS[2]), .oC (C[2]));
FA_Cir S3 (.iA (iA[3]), .iB (iB[3]), .iC (C[2]), .oS (oS[3]), .oC (C[3]));
FA_Cir S4 (.iA (iA[4]), .iB (iB[4]), .iC (C[3]), .oS (oS[4]), .oC (C[4]));
FA_Cir S5 (.iA (iA[5]), .iB (iB[5]), .iC (C[4]), .oS (oS[5]), .oC (C[5]));
FA_Cir S6 (.iA (iA[6]), .iB (iB[6]), .iC (C[5]), .oS (oS[6]), .oC (C[6]));
FA_Cir S7 (.iA (iA[7]), .iB (iB[7]), .iC (C[6]), .oS (oS[7]), .oC (C[7]));
FA_Cir S8 (.iA (iA[8]), .iB (iB[8]), .iC (C[7]), .oS (oS[8]), .oC (C[8]));
FA_Cir S9 (.iA (iA[9]), .iB (iB[9]), .iC (C[8]), .oS (oS[9]), .oC (C[9]));
FA_Cir S10 (.iA (iA[10]), .iB (iB[10]), .iC (C[9]), .oS (oS[10]), .oC (C[10]));
FA_Cir S11 (.iA (iA[11]), .iB (iB[11]), .iC (C[10]), .oS (oS[11]), .oC (C[11]));
FA_Cir S12 (.iA (iA[12]), .iB (iB[12]), .iC (C[11]), .oS (oS[12]), .oC (C[12]));
FA_Cir S13 (.iA (iA[13]), .iB (iB[13]), .iC (C[12]), .oS (oS[13]), .oC (C[13]));
FA_Cir S14 (.iA (iA[14]), .iB (iB[14]), .iC (C[13]), .oS (oS[14]), .oC (C[14]));
FA_Cir S15 (.iA (iA[15]), .iB (iB[15]), .iC (C[14]), .oS (oS[15]), .oC (C[15]));
FA_Cir S16 (.iA (iA[16]), .iB (iB[16]), .iC (C[15]), .oS (oS[16]), .oC (C[16]));
FA_Cir S17 (.iA (iA[17]), .iB (iB[17]), .iC (C[16]), .oS (oS[17]), .oC (C[17]));
FA_Cir S18 (.iA (iA[18]), .iB (iB[18]), .iC (C[17]), .oS (oS[18]), .oC (C[18]));
wire X, V;
assign X = iA[19]^iB[19];
assign V = iA[19]&iB[19];
assign oS[19] = X^C[18];
assign oS[20] = (X) ? ~(V|C[18]) : V;
endmodule
module Ripple_Add_22bit (
input [20:0] iA, iB,
input iC,
output [21:0] oS
);
wire [19:0] C;
FA_Cir S0 (.iA (iA[0]), .iB (iB[0]), .iC (iC), .oS (oS[0]), .oC (C[0]));
FA_Cir S1 (.iA (iA[1]), .iB (iB[1]), .iC (C[0]), .oS (oS[1]), .oC (C[1]));
FA_Cir S2 (.iA (iA[2]), .iB (iB[2]), .iC (C[1]), .oS (oS[2]), .oC (C[2]));
FA_Cir S3 (.iA (iA[3]), .iB (iB[3]), .iC (C[2]), .oS (oS[3]), .oC (C[3]));
FA_Cir S4 (.iA (iA[4]), .iB (iB[4]), .iC (C[3]), .oS (oS[4]), .oC (C[4]));
FA_Cir S5 (.iA (iA[5]), .iB (iB[5]), .iC (C[4]), .oS (oS[5]), .oC (C[5]));
FA_Cir S6 (.iA (iA[6]), .iB (iB[6]), .iC (C[5]), .oS (oS[6]), .oC (C[6]));
FA_Cir S7 (.iA (iA[7]), .iB (iB[7]), .iC (C[6]), .oS (oS[7]), .oC (C[7]));
FA_Cir S8 (.iA (iA[8]), .iB (iB[8]), .iC (C[7]), .oS (oS[8]), .oC (C[8]));
FA_Cir S9 (.iA (iA[9]), .iB (iB[9]), .iC (C[8]), .oS (oS[9]), .oC (C[9]));
FA_Cir S10 (.iA (iA[10]), .iB (iB[10]), .iC (C[9]), .oS (oS[10]), .oC (C[10]));
FA_Cir S11 (.iA (iA[11]), .iB (iB[11]), .iC (C[10]), .oS (oS[11]), .oC (C[11]));
FA_Cir S12 (.iA (iA[12]), .iB (iB[12]), .iC (C[11]), .oS (oS[12]), .oC (C[12]));
FA_Cir S13 (.iA (iA[13]), .iB (iB[13]), .iC (C[12]), .oS (oS[13]), .oC (C[13]));
FA_Cir S14 (.iA (iA[14]), .iB (iB[14]), .iC (C[13]), .oS (oS[14]), .oC (C[14]));
FA_Cir S15 (.iA (iA[15]), .iB (iB[15]), .iC (C[14]), .oS (oS[15]), .oC (C[15]));
FA_Cir S16 (.iA (iA[16]), .iB (iB[16]), .iC (C[15]), .oS (oS[16]), .oC (C[16]));
FA_Cir S17 (.iA (iA[17]), .iB (iB[17]), .iC (C[16]), .oS (oS[17]), .oC (C[17]));
FA_Cir S18 (.iA (iA[18]), .iB (iB[18]), .iC (C[17]), .oS (oS[18]), .oC (C[18]));
FA_Cir S19 (.iA (iA[19]), .iB (iB[19]), .iC (C[18]), .oS (oS[19]), .oC (C[19]));
wire X, V;
assign X = iA[20]^iB[20];
assign V = iA[20]&iB[20];
assign oS[20] = X^C[19];
assign oS[21] = (X) ? ~(V|C[19]) : V;
endmodule
module Ripple_Add_23bit (
input [21:0] iA, iB,
input iC,
output [22:0] oS
);
wire [20:0] C;
FA_Cir S0 (.iA (iA[0]), .iB (iB[0]), .iC (iC), .oS (oS[0]), .oC (C[0]));
FA_Cir S1 (.iA (iA[1]), .iB (iB[1]), .iC (C[0]), .oS (oS[1]), .oC (C[1]));
FA_Cir S2 (.iA (iA[2]), .iB (iB[2]), .iC (C[1]), .oS (oS[2]), .oC (C[2]));
FA_Cir S3 (.iA (iA[3]), .iB (iB[3]), .iC (C[2]), .oS (oS[3]), .oC (C[3]));
FA_Cir S4 (.iA (iA[4]), .iB (iB[4]), .iC (C[3]), .oS (oS[4]), .oC (C[4]));
FA_Cir S5 (.iA (iA[5]), .iB (iB[5]), .iC (C[4]), .oS (oS[5]), .oC (C[5]));
FA_Cir S6 (.iA (iA[6]), .iB (iB[6]), .iC (C[5]), .oS (oS[6]), .oC (C[6]));
FA_Cir S7 (.iA (iA[7]), .iB (iB[7]), .iC (C[6]), .oS (oS[7]), .oC (C[7]));
FA_Cir S8 (.iA (iA[8]), .iB (iB[8]), .iC (C[7]), .oS (oS[8]), .oC (C[8]));
FA_Cir S9 (.iA (iA[9]), .iB (iB[9]), .iC (C[8]), .oS (oS[9]), .oC (C[9]));
FA_Cir S10 (.iA (iA[10]), .iB (iB[10]), .iC (C[9]), .oS (oS[10]), .oC (C[10]));
FA_Cir S11 (.iA (iA[11]), .iB (iB[11]), .iC (C[10]), .oS (oS[11]), .oC (C[11]));
FA_Cir S12 (.iA (iA[12]), .iB (iB[12]), .iC (C[11]), .oS (oS[12]), .oC (C[12]));
FA_Cir S13 (.iA (iA[13]), .iB (iB[13]), .iC (C[12]), .oS (oS[13]), .oC (C[13]));
FA_Cir S14 (.iA (iA[14]), .iB (iB[14]), .iC (C[13]), .oS (oS[14]), .oC (C[14]));
FA_Cir S15 (.iA (iA[15]), .iB (iB[15]), .iC (C[14]), .oS (oS[15]), .oC (C[15]));
FA_Cir S16 (.iA (iA[16]), .iB (iB[16]), .iC (C[15]), .oS (oS[16]), .oC (C[16]));
FA_Cir S17 (.iA (iA[17]), .iB (iB[17]), .iC (C[16]), .oS (oS[17]), .oC (C[17]));
FA_Cir S18 (.iA (iA[18]), .iB (iB[18]), .iC (C[17]), .oS (oS[18]), .oC (C[18]));
FA_Cir S19 (.iA (iA[19]), .iB (iB[19]), .iC (C[18]), .oS (oS[19]), .oC (C[19]));
FA_Cir S20 (.iA (iA[20]), .iB (iB[20]), .iC (C[19]), .oS (oS[20]), .oC (C[20]));
wire X, V;
assign X = iA[21]^iB[21];
assign V = iA[21]&iB[21];
assign oS[21] = X^C[20];
assign oS[22] = (X) ? ~(V|C[20]) : V;
endmodule
module FA_Cir (
input iA, iB, iC,
output oS, oC
);
wire X;
assign X = iA^iB;
assign oS = iC^X;
assign oC = (iA&iB)|(X&iC);
endmodule
module FA_Cir_Cin0 (
input iA, iB,
output oS, oC
);
assign oS = iA^iB;
assign oC = iA&iB;
endmodule
module FA_Cir_Cin1 (
input iA, iB,
output oS, oC
);
wire X;
assign X = iA^iB;
assign oS = ~X;
assign oC = (iA&iB)|X;
endmodule