| (* whitebox *) |
| module CARRY4_VPR(O0, O1, O2, O3, CO_CHAIN, CO_FABRIC0, CO_FABRIC1, CO_FABRIC2, CO_FABRIC3, CYINIT, CIN, DI0, DI1, DI2, DI3, S0, S1, S2, S3); |
| parameter CYINIT_AX = 1'b0; |
| parameter CYINIT_C0 = 1'b0; |
| parameter CYINIT_C1 = 1'b0; |
| |
| (* DELAY_CONST_CYINIT="0.491e-9" *) |
| (* DELAY_CONST_CIN="0.235e-9" *) |
| (* DELAY_CONST_S0="0.223e-9" *) |
| output wire O0; |
| |
| (* DELAY_CONST_CYINIT="0.613e-9" *) |
| (* DELAY_CONST_CIN="0.348e-9" *) |
| (* DELAY_CONST_S0="0.400e-9" *) |
| (* DELAY_CONST_S1="0.205e-9" *) |
| (* DELAY_CONST_DI0="0.337e-9" *) |
| output wire O1; |
| |
| (* DELAY_CONST_CYINIT="0.600e-9" *) |
| (* DELAY_CONST_CIN="0.256e-9" *) |
| (* DELAY_CONST_S0="0.523e-9" *) |
| (* DELAY_CONST_S1="0.558e-9" *) |
| (* DELAY_CONST_S2="0.226e-9" *) |
| (* DELAY_CONST_DI0="0.486e-9" *) |
| (* DELAY_CONST_DI1="0.471e-9" *) |
| output wire O2; |
| |
| (* DELAY_CONST_CYINIT="0.657e-9" *) |
| (* DELAY_CONST_CIN="0.329e-9" *) |
| (* DELAY_CONST_S0="0.582e-9" *) |
| (* DELAY_CONST_S1="0.618e-9" *) |
| (* DELAY_CONST_S2="0.330e-9" *) |
| (* DELAY_CONST_S3="0.227e-9" *) |
| (* DELAY_CONST_DI0="0.545e-9" *) |
| (* DELAY_CONST_DI1="0.532e-9" *) |
| (* DELAY_CONST_DI2="0.372e-9" *) |
| output wire O3; |
| |
| (* DELAY_CONST_CYINIT="0.578e-9" *) |
| (* DELAY_CONST_CIN="0.293e-9" *) |
| (* DELAY_CONST_S0="0.340e-9" *) |
| (* DELAY_CONST_DI0="0.329e-9" *) |
| output wire CO_FABRIC0; |
| |
| (* DELAY_CONST_CYINIT="0.529e-9" *) |
| (* DELAY_CONST_CIN="0.178e-9" *) |
| (* DELAY_CONST_S0="0.433e-9" *) |
| (* DELAY_CONST_S1="0.469e-9" *) |
| (* DELAY_CONST_DI0="0.396e-9" *) |
| (* DELAY_CONST_DI1="0.376e-9" *) |
| output wire CO_FABRIC1; |
| |
| (* DELAY_CONST_CYINIT="0.617e-9" *) |
| (* DELAY_CONST_CIN="0.250e-9" *) |
| (* DELAY_CONST_S0="0.512e-9" *) |
| (* DELAY_CONST_S1="0.548e-9" *) |
| (* DELAY_CONST_S2="0.292e-9" *) |
| (* DELAY_CONST_DI0="0.474e-9" *) |
| (* DELAY_CONST_DI1="0.459e-9" *) |
| (* DELAY_CONST_DI2="0.289e-9" *) |
| output wire CO_FABRIC2; |
| |
| (* DELAY_CONST_CYINIT="0.580e-9" *) |
| (* DELAY_CONST_CIN="0.114e-9" *) |
| (* DELAY_CONST_S0="0.508e-9" *) |
| (* DELAY_CONST_S1="0.528e-9" *) |
| (* DELAY_CONST_S2="0.376e-9" *) |
| (* DELAY_CONST_S3="0.380e-9" *) |
| (* DELAY_CONST_DI0="0.456e-9" *) |
| (* DELAY_CONST_DI1="0.443e-9" *) |
| (* DELAY_CONST_DI2="0.324e-9" *) |
| (* DELAY_CONST_DI3="0.327e-9" *) |
| output wire CO_FABRIC3; |
| |
| (* DELAY_CONST_CYINIT="0.580e-9" *) |
| (* DELAY_CONST_CIN="0.114e-9" *) |
| (* DELAY_CONST_S0="0.508e-9" *) |
| (* DELAY_CONST_S1="0.528e-9" *) |
| (* DELAY_CONST_S2="0.376e-9" *) |
| (* DELAY_CONST_S3="0.380e-9" *) |
| (* DELAY_CONST_DI0="0.456e-9" *) |
| (* DELAY_CONST_DI1="0.443e-9" *) |
| (* DELAY_CONST_DI2="0.324e-9" *) |
| (* DELAY_CONST_DI3="0.327e-9" *) |
| output wire CO_CHAIN; |
| |
| input wire DI0, DI1, DI2, DI3; |
| input wire S0, S1, S2, S3; |
| |
| input wire CYINIT; |
| input wire CIN; |
| |
| wire CI0; |
| wire CI1; |
| wire CI2; |
| wire CI3; |
| wire CI4; |
| |
| assign CI0 = (CYINIT & CYINIT_AX) | CYINIT_C1 | (CIN & (!CYINIT_AX && !CYINIT_C0 && !CYINIT_C1)); |
| assign CI1 = S0 ? CI0 : DI0; |
| assign CI2 = S1 ? CI1 : DI1; |
| assign CI3 = S2 ? CI2 : DI2; |
| assign CI4 = S3 ? CI3 : DI3; |
| |
| assign CO_FABRIC0 = CI1; |
| assign CO_FABRIC1 = CI2; |
| assign CO_FABRIC2 = CI3; |
| assign CO_FABRIC3 = CI4; |
| |
| assign O0 = CI0 ^ S0; |
| assign O1 = CI1 ^ S1; |
| assign O2 = CI2 ^ S2; |
| assign O3 = CI3 ^ S3; |
| |
| assign CO_CHAIN = CO_FABRIC3; |
| endmodule |