URL
https://opencores.org/ocsvn/trigonometric_functions_in_double_fpu/trigonometric_functions_in_double_fpu/trunk
Subversion Repositories trigonometric_functions_in_double_fpu
Compare Revisions
- This comparison shows the changes necessary to convert path
/trigonometric_functions_in_double_fpu/trunk
- from Rev 16 to Rev 17
- ↔ Reverse comparison
Rev 16 → Rev 17
/verilog/netlist_fpu.v
0,0 → 1,1955
|
module top_DW01_sub_0 ( A, B, CI, DIFF, CO ); |
input [31:0] A; |
input [31:0] B; |
output [31:0] DIFF; |
input CI; |
output CO; |
wire \B[0] , n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11, n12, n13, n14, |
n15, n16, n17, n18, n19, n20, n21, n22, n23, n24, n25, n26, n27, n28, |
n29, n30, n31, n32, n33, n34, n35, n36, n37, n38, n39, n40, n41, n42, |
n43, n44, n45, n46, n47, n48, n49, n50, n51, n52, n53, n54, n55, n56, |
n57, n58; |
wire [32:0] carry; |
assign DIFF[0] = \B[0] ; |
assign \B[0] = B[0]; |
|
NAND2X1 U1 ( .IN1(n52), .IN2(carry[6]), .QN(n1) ); |
NAND2X1 U2 ( .IN1(n57), .IN2(n58), .QN(n2) ); |
NAND2X1 U3 ( .IN1(n55), .IN2(carry[3]), .QN(n3) ); |
NAND2X1 U4 ( .IN1(B[5]), .IN2(n4), .QN(carry[6]) ); |
NAND2X1 U5 ( .IN1(B[2]), .IN2(n2), .QN(carry[3]) ); |
NAND2X1 U6 ( .IN1(B[7]), .IN2(n1), .QN(carry[8]) ); |
AND2X1 U7 ( .IN1(B[4]), .IN2(n3), .Q(n4) ); |
AND2X1 U8 ( .IN1(n50), .IN2(carry[8]), .Q(n5) ); |
AND2X1 U9 ( .IN1(n49), .IN2(n5), .Q(n6) ); |
AND2X1 U10 ( .IN1(n48), .IN2(n6), .Q(n7) ); |
AND2X1 U11 ( .IN1(n47), .IN2(n7), .Q(n8) ); |
AND2X1 U12 ( .IN1(n46), .IN2(n8), .Q(n9) ); |
AND2X1 U13 ( .IN1(n45), .IN2(n9), .Q(n10) ); |
AND2X1 U14 ( .IN1(n44), .IN2(n10), .Q(n11) ); |
AND2X1 U15 ( .IN1(n43), .IN2(n11), .Q(n12) ); |
AND2X1 U16 ( .IN1(n42), .IN2(n12), .Q(n13) ); |
AND2X1 U17 ( .IN1(n41), .IN2(n13), .Q(n14) ); |
AND2X1 U18 ( .IN1(n40), .IN2(n14), .Q(n15) ); |
AND2X1 U19 ( .IN1(n39), .IN2(n15), .Q(n16) ); |
AND2X1 U20 ( .IN1(n38), .IN2(n16), .Q(n17) ); |
AND2X1 U21 ( .IN1(n37), .IN2(n17), .Q(n18) ); |
AND2X1 U22 ( .IN1(n36), .IN2(n18), .Q(n19) ); |
AND2X1 U23 ( .IN1(n35), .IN2(n19), .Q(n20) ); |
AND2X1 U24 ( .IN1(n34), .IN2(n20), .Q(n21) ); |
AND2X1 U25 ( .IN1(n33), .IN2(n21), .Q(n22) ); |
AND2X1 U26 ( .IN1(n32), .IN2(n22), .Q(n23) ); |
AND2X1 U27 ( .IN1(n31), .IN2(n23), .Q(n24) ); |
AND2X1 U28 ( .IN1(n30), .IN2(n24), .Q(n25) ); |
AND2X1 U29 ( .IN1(n29), .IN2(n25), .Q(n26) ); |
INVX0 U30 ( .INP(B[1]), .ZN(n57) ); |
INVX0 U31 ( .INP(B[3]), .ZN(n55) ); |
INVX0 U32 ( .INP(B[6]), .ZN(n52) ); |
INVX0 U33 ( .INP(B[8]), .ZN(n50) ); |
INVX0 U34 ( .INP(B[9]), .ZN(n49) ); |
INVX0 U35 ( .INP(B[10]), .ZN(n48) ); |
INVX0 U36 ( .INP(B[11]), .ZN(n47) ); |
INVX0 U37 ( .INP(B[12]), .ZN(n46) ); |
INVX0 U38 ( .INP(B[13]), .ZN(n45) ); |
INVX0 U39 ( .INP(B[14]), .ZN(n44) ); |
INVX0 U40 ( .INP(B[15]), .ZN(n43) ); |
INVX0 U41 ( .INP(B[16]), .ZN(n42) ); |
INVX0 U42 ( .INP(B[17]), .ZN(n41) ); |
INVX0 U43 ( .INP(B[18]), .ZN(n40) ); |
INVX0 U44 ( .INP(B[19]), .ZN(n39) ); |
INVX0 U45 ( .INP(B[20]), .ZN(n38) ); |
INVX0 U46 ( .INP(B[21]), .ZN(n37) ); |
INVX0 U47 ( .INP(B[22]), .ZN(n36) ); |
INVX0 U48 ( .INP(B[23]), .ZN(n35) ); |
INVX0 U49 ( .INP(B[24]), .ZN(n34) ); |
INVX0 U50 ( .INP(B[25]), .ZN(n33) ); |
INVX0 U51 ( .INP(B[26]), .ZN(n32) ); |
INVX0 U52 ( .INP(B[27]), .ZN(n31) ); |
INVX0 U53 ( .INP(B[28]), .ZN(n30) ); |
INVX0 U54 ( .INP(B[29]), .ZN(n29) ); |
INVX0 U55 ( .INP(B[30]), .ZN(n28) ); |
INVX0 U56 ( .INP(\B[0] ), .ZN(n58) ); |
XOR2X1 U57 ( .IN1(B[31]), .IN2(n27), .Q(DIFF[31]) ); |
NAND2X1 U58 ( .IN1(n28), .IN2(n26), .QN(n27) ); |
INVX0 U59 ( .INP(B[2]), .ZN(n56) ); |
INVX0 U60 ( .INP(B[4]), .ZN(n54) ); |
INVX0 U61 ( .INP(B[5]), .ZN(n53) ); |
INVX0 U62 ( .INP(B[7]), .ZN(n51) ); |
XOR2X1 U63 ( .IN1(n1), .IN2(n51), .Q(DIFF[7]) ); |
XOR2X1 U64 ( .IN1(n4), .IN2(n53), .Q(DIFF[5]) ); |
XOR2X1 U65 ( .IN1(n3), .IN2(n54), .Q(DIFF[4]) ); |
XOR2X1 U66 ( .IN1(n2), .IN2(n56), .Q(DIFF[2]) ); |
XOR2X1 U67 ( .IN1(n28), .IN2(n26), .Q(DIFF[30]) ); |
XOR2X1 U68 ( .IN1(n29), .IN2(n25), .Q(DIFF[29]) ); |
XOR2X1 U69 ( .IN1(n30), .IN2(n24), .Q(DIFF[28]) ); |
XOR2X1 U70 ( .IN1(n31), .IN2(n23), .Q(DIFF[27]) ); |
XOR2X1 U71 ( .IN1(n32), .IN2(n22), .Q(DIFF[26]) ); |
XOR2X1 U72 ( .IN1(n33), .IN2(n21), .Q(DIFF[25]) ); |
XOR2X1 U73 ( .IN1(n34), .IN2(n20), .Q(DIFF[24]) ); |
XOR2X1 U74 ( .IN1(n35), .IN2(n19), .Q(DIFF[23]) ); |
XOR2X1 U75 ( .IN1(n36), .IN2(n18), .Q(DIFF[22]) ); |
XOR2X1 U76 ( .IN1(n37), .IN2(n17), .Q(DIFF[21]) ); |
XOR2X1 U77 ( .IN1(n38), .IN2(n16), .Q(DIFF[20]) ); |
XOR2X1 U78 ( .IN1(n39), .IN2(n15), .Q(DIFF[19]) ); |
XOR2X1 U79 ( .IN1(n40), .IN2(n14), .Q(DIFF[18]) ); |
XOR2X1 U80 ( .IN1(n41), .IN2(n13), .Q(DIFF[17]) ); |
XOR2X1 U81 ( .IN1(n42), .IN2(n12), .Q(DIFF[16]) ); |
XOR2X1 U82 ( .IN1(n43), .IN2(n11), .Q(DIFF[15]) ); |
XOR2X1 U83 ( .IN1(n44), .IN2(n10), .Q(DIFF[14]) ); |
XOR2X1 U84 ( .IN1(n45), .IN2(n9), .Q(DIFF[13]) ); |
XOR2X1 U85 ( .IN1(n46), .IN2(n8), .Q(DIFF[12]) ); |
XOR2X1 U86 ( .IN1(n47), .IN2(n7), .Q(DIFF[11]) ); |
XOR2X1 U87 ( .IN1(n48), .IN2(n6), .Q(DIFF[10]) ); |
XOR2X1 U88 ( .IN1(n49), .IN2(n5), .Q(DIFF[9]) ); |
XOR2X1 U89 ( .IN1(n50), .IN2(carry[8]), .Q(DIFF[8]) ); |
XOR2X1 U90 ( .IN1(n52), .IN2(carry[6]), .Q(DIFF[6]) ); |
XOR2X1 U91 ( .IN1(n55), .IN2(carry[3]), .Q(DIFF[3]) ); |
XOR2X1 U92 ( .IN1(n57), .IN2(n58), .Q(DIFF[1]) ); |
endmodule |
|
|
module top_DW01_sub_1 ( A, B, CI, DIFF, CO ); |
input [31:0] A; |
input [31:0] B; |
output [31:0] DIFF; |
input CI; |
output CO; |
wire \B[0] , n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11, n12, n13, n14, |
n15, n16, n17, n18, n19, n20, n21, n22, n23, n24, n25, n26, n27, n28, |
n29, n30, n31, n32, n33, n34, n35, n36, n37, n38, n39, n40, n41, n42, |
n43, n44, n45, n46, n47, n48, n49, n50, n51, n52, n53, n54, n55, n56, |
n57, n58; |
wire [32:0] carry; |
assign DIFF[0] = \B[0] ; |
assign \B[0] = B[0]; |
|
NAND2X1 U1 ( .IN1(n52), .IN2(carry[6]), .QN(n1) ); |
NAND2X1 U2 ( .IN1(n55), .IN2(carry[3]), .QN(n2) ); |
NAND2X1 U3 ( .IN1(n57), .IN2(n58), .QN(n3) ); |
NAND2X1 U4 ( .IN1(B[5]), .IN2(n26), .QN(carry[6]) ); |
NAND2X1 U5 ( .IN1(B[2]), .IN2(n3), .QN(carry[3]) ); |
NAND2X1 U6 ( .IN1(B[7]), .IN2(n1), .QN(carry[8]) ); |
AND2X1 U7 ( .IN1(n50), .IN2(carry[8]), .Q(n4) ); |
AND2X1 U8 ( .IN1(n45), .IN2(n9), .Q(n5) ); |
AND2X1 U9 ( .IN1(n39), .IN2(n10), .Q(n6) ); |
AND2X1 U10 ( .IN1(n33), .IN2(n11), .Q(n7) ); |
AND2X1 U11 ( .IN1(n49), .IN2(n4), .Q(n8) ); |
AND2X1 U12 ( .IN1(n46), .IN2(n19), .Q(n9) ); |
AND2X1 U13 ( .IN1(n40), .IN2(n21), .Q(n10) ); |
AND2X1 U14 ( .IN1(n34), .IN2(n23), .Q(n11) ); |
AND2X1 U15 ( .IN1(n44), .IN2(n5), .Q(n12) ); |
AND2X1 U16 ( .IN1(n38), .IN2(n6), .Q(n13) ); |
AND2X1 U17 ( .IN1(n32), .IN2(n7), .Q(n14) ); |
AND2X1 U18 ( .IN1(n43), .IN2(n12), .Q(n15) ); |
AND2X1 U19 ( .IN1(n37), .IN2(n13), .Q(n16) ); |
AND2X1 U20 ( .IN1(n31), .IN2(n14), .Q(n17) ); |
AND2X1 U21 ( .IN1(n48), .IN2(n8), .Q(n18) ); |
AND2X1 U22 ( .IN1(n47), .IN2(n18), .Q(n19) ); |
AND2X1 U23 ( .IN1(n42), .IN2(n15), .Q(n20) ); |
AND2X1 U24 ( .IN1(n41), .IN2(n20), .Q(n21) ); |
AND2X1 U25 ( .IN1(n36), .IN2(n16), .Q(n22) ); |
AND2X1 U26 ( .IN1(n35), .IN2(n22), .Q(n23) ); |
AND2X1 U27 ( .IN1(n30), .IN2(n17), .Q(n24) ); |
AND2X1 U28 ( .IN1(n29), .IN2(n24), .Q(n25) ); |
AND2X1 U29 ( .IN1(B[4]), .IN2(n2), .Q(n26) ); |
INVX0 U30 ( .INP(B[3]), .ZN(n55) ); |
INVX0 U31 ( .INP(\B[0] ), .ZN(n58) ); |
INVX0 U32 ( .INP(B[2]), .ZN(n56) ); |
XOR2X1 U33 ( .IN1(B[31]), .IN2(n27), .Q(DIFF[31]) ); |
NAND2X1 U34 ( .IN1(n28), .IN2(n25), .QN(n27) ); |
INVX0 U35 ( .INP(B[6]), .ZN(n52) ); |
INVX0 U36 ( .INP(B[5]), .ZN(n53) ); |
INVX0 U37 ( .INP(B[7]), .ZN(n51) ); |
INVX0 U38 ( .INP(B[4]), .ZN(n54) ); |
INVX0 U39 ( .INP(B[8]), .ZN(n50) ); |
INVX0 U40 ( .INP(B[9]), .ZN(n49) ); |
INVX0 U41 ( .INP(B[10]), .ZN(n48) ); |
INVX0 U42 ( .INP(B[13]), .ZN(n45) ); |
INVX0 U43 ( .INP(B[12]), .ZN(n46) ); |
INVX0 U44 ( .INP(B[11]), .ZN(n47) ); |
INVX0 U45 ( .INP(B[14]), .ZN(n44) ); |
INVX0 U46 ( .INP(B[15]), .ZN(n43) ); |
INVX0 U47 ( .INP(B[16]), .ZN(n42) ); |
INVX0 U48 ( .INP(B[17]), .ZN(n41) ); |
INVX0 U49 ( .INP(B[19]), .ZN(n39) ); |
INVX0 U50 ( .INP(B[18]), .ZN(n40) ); |
INVX0 U51 ( .INP(B[20]), .ZN(n38) ); |
INVX0 U52 ( .INP(B[24]), .ZN(n34) ); |
INVX0 U53 ( .INP(B[21]), .ZN(n37) ); |
INVX0 U54 ( .INP(B[22]), .ZN(n36) ); |
INVX0 U55 ( .INP(B[23]), .ZN(n35) ); |
INVX0 U56 ( .INP(B[25]), .ZN(n33) ); |
INVX0 U57 ( .INP(B[26]), .ZN(n32) ); |
INVX0 U58 ( .INP(B[27]), .ZN(n31) ); |
INVX0 U59 ( .INP(B[30]), .ZN(n28) ); |
INVX0 U60 ( .INP(B[28]), .ZN(n30) ); |
INVX0 U61 ( .INP(B[29]), .ZN(n29) ); |
XOR2X1 U62 ( .IN1(n1), .IN2(n51), .Q(DIFF[7]) ); |
XOR2X1 U63 ( .IN1(n26), .IN2(n53), .Q(DIFF[5]) ); |
XOR2X1 U64 ( .IN1(n2), .IN2(n54), .Q(DIFF[4]) ); |
XOR2X1 U65 ( .IN1(n3), .IN2(n56), .Q(DIFF[2]) ); |
XOR2X1 U66 ( .IN1(n28), .IN2(n25), .Q(DIFF[30]) ); |
XOR2X1 U67 ( .IN1(n29), .IN2(n24), .Q(DIFF[29]) ); |
XOR2X1 U68 ( .IN1(n30), .IN2(n17), .Q(DIFF[28]) ); |
XOR2X1 U69 ( .IN1(n31), .IN2(n14), .Q(DIFF[27]) ); |
XOR2X1 U70 ( .IN1(n32), .IN2(n7), .Q(DIFF[26]) ); |
XOR2X1 U71 ( .IN1(n33), .IN2(n11), .Q(DIFF[25]) ); |
XOR2X1 U72 ( .IN1(n34), .IN2(n23), .Q(DIFF[24]) ); |
XOR2X1 U73 ( .IN1(n35), .IN2(n22), .Q(DIFF[23]) ); |
XOR2X1 U74 ( .IN1(n36), .IN2(n16), .Q(DIFF[22]) ); |
XOR2X1 U75 ( .IN1(n37), .IN2(n13), .Q(DIFF[21]) ); |
XOR2X1 U76 ( .IN1(n38), .IN2(n6), .Q(DIFF[20]) ); |
XOR2X1 U77 ( .IN1(n39), .IN2(n10), .Q(DIFF[19]) ); |
XOR2X1 U78 ( .IN1(n40), .IN2(n21), .Q(DIFF[18]) ); |
XOR2X1 U79 ( .IN1(n41), .IN2(n20), .Q(DIFF[17]) ); |
XOR2X1 U80 ( .IN1(n42), .IN2(n15), .Q(DIFF[16]) ); |
XOR2X1 U81 ( .IN1(n43), .IN2(n12), .Q(DIFF[15]) ); |
XOR2X1 U82 ( .IN1(n44), .IN2(n5), .Q(DIFF[14]) ); |
XOR2X1 U83 ( .IN1(n45), .IN2(n9), .Q(DIFF[13]) ); |
XOR2X1 U84 ( .IN1(n46), .IN2(n19), .Q(DIFF[12]) ); |
XOR2X1 U85 ( .IN1(n47), .IN2(n18), .Q(DIFF[11]) ); |
XOR2X1 U86 ( .IN1(n48), .IN2(n8), .Q(DIFF[10]) ); |
XOR2X1 U87 ( .IN1(n49), .IN2(n4), .Q(DIFF[9]) ); |
XOR2X1 U88 ( .IN1(n50), .IN2(carry[8]), .Q(DIFF[8]) ); |
XOR2X1 U89 ( .IN1(n52), .IN2(carry[6]), .Q(DIFF[6]) ); |
XOR2X1 U90 ( .IN1(n55), .IN2(carry[3]), .Q(DIFF[3]) ); |
XOR2X1 U91 ( .IN1(n57), .IN2(n58), .Q(DIFF[1]) ); |
INVX0 U92 ( .INP(B[1]), .ZN(n57) ); |
endmodule |
|
|
module top_DW01_sub_2 ( A, B, CI, DIFF, CO ); |
input [31:0] A; |
input [31:0] B; |
output [31:0] DIFF; |
input CI; |
output CO; |
wire \A[0] , n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11, n12, n13, n14, |
n15, n16, n17, n18, n19, n20, n21, n22, n23, n24, n25, n26, n27, n28, |
n29, n30, n31, n32, n33, n34, n35, n36, n37, n38, n39, n40, n41, n42, |
n43, n44, n45, n46, n48, n49, n50, n51, n52, n53, n54; |
wire [32:0] carry; |
assign DIFF[1] = A[1]; |
assign DIFF[0] = \A[0] ; |
assign \A[0] = A[0]; |
|
INVX0 U1 ( .INP(carry[30]), .ZN(n45) ); |
NAND2X1 U2 ( .IN1(n49), .IN2(n50), .QN(carry[7]) ); |
INVX0 U3 ( .INP(n3), .ZN(n49) ); |
NAND2X1 U4 ( .IN1(n51), .IN2(n52), .QN(carry[9]) ); |
INVX0 U5 ( .INP(n4), .ZN(n51) ); |
NAND2X1 U6 ( .IN1(n53), .IN2(n54), .QN(carry[10]) ); |
INVX0 U7 ( .INP(carry[9]), .ZN(n53) ); |
NAND2X1 U8 ( .IN1(n5), .IN2(n6), .QN(carry[11]) ); |
INVX0 U9 ( .INP(carry[10]), .ZN(n5) ); |
NAND2X1 U10 ( .IN1(n7), .IN2(n8), .QN(carry[12]) ); |
INVX0 U11 ( .INP(carry[11]), .ZN(n7) ); |
NAND2X1 U12 ( .IN1(n9), .IN2(n10), .QN(carry[13]) ); |
INVX0 U13 ( .INP(carry[12]), .ZN(n9) ); |
NAND2X1 U14 ( .IN1(n11), .IN2(n12), .QN(carry[14]) ); |
INVX0 U15 ( .INP(carry[13]), .ZN(n11) ); |
NAND2X1 U16 ( .IN1(n13), .IN2(n14), .QN(carry[15]) ); |
INVX0 U17 ( .INP(carry[14]), .ZN(n13) ); |
NAND2X1 U18 ( .IN1(n15), .IN2(n16), .QN(carry[16]) ); |
INVX0 U19 ( .INP(carry[15]), .ZN(n15) ); |
NAND2X1 U20 ( .IN1(n17), .IN2(n18), .QN(carry[17]) ); |
INVX0 U21 ( .INP(carry[16]), .ZN(n17) ); |
NAND2X1 U22 ( .IN1(n19), .IN2(n20), .QN(carry[18]) ); |
INVX0 U23 ( .INP(carry[17]), .ZN(n19) ); |
NAND2X1 U24 ( .IN1(n21), .IN2(n22), .QN(carry[19]) ); |
INVX0 U25 ( .INP(carry[18]), .ZN(n21) ); |
NAND2X1 U26 ( .IN1(n23), .IN2(n24), .QN(carry[20]) ); |
INVX0 U27 ( .INP(carry[19]), .ZN(n23) ); |
NAND2X1 U28 ( .IN1(n25), .IN2(n26), .QN(carry[21]) ); |
INVX0 U29 ( .INP(carry[20]), .ZN(n25) ); |
NAND2X1 U30 ( .IN1(n27), .IN2(n28), .QN(carry[22]) ); |
INVX0 U31 ( .INP(carry[21]), .ZN(n27) ); |
NAND2X1 U32 ( .IN1(n29), .IN2(n30), .QN(carry[23]) ); |
INVX0 U33 ( .INP(carry[22]), .ZN(n29) ); |
NAND2X1 U34 ( .IN1(n31), .IN2(n32), .QN(carry[24]) ); |
INVX0 U35 ( .INP(carry[23]), .ZN(n31) ); |
NAND2X1 U36 ( .IN1(n33), .IN2(n34), .QN(carry[25]) ); |
INVX0 U37 ( .INP(carry[24]), .ZN(n33) ); |
NAND2X1 U38 ( .IN1(n35), .IN2(n36), .QN(carry[26]) ); |
INVX0 U39 ( .INP(carry[25]), .ZN(n35) ); |
NAND2X1 U40 ( .IN1(n37), .IN2(n38), .QN(carry[27]) ); |
INVX0 U41 ( .INP(carry[26]), .ZN(n37) ); |
NAND2X1 U42 ( .IN1(n39), .IN2(n40), .QN(carry[28]) ); |
INVX0 U43 ( .INP(carry[27]), .ZN(n39) ); |
NAND2X1 U44 ( .IN1(n41), .IN2(n42), .QN(carry[29]) ); |
INVX0 U45 ( .INP(carry[28]), .ZN(n41) ); |
NAND2X1 U46 ( .IN1(n43), .IN2(n44), .QN(carry[30]) ); |
INVX0 U47 ( .INP(carry[29]), .ZN(n43) ); |
XOR2X1 U48 ( .IN1(A[31]), .IN2(n1), .Q(DIFF[31]) ); |
AND2X1 U49 ( .IN1(n45), .IN2(n46), .Q(n1) ); |
AND2X1 U50 ( .IN1(carry[4]), .IN2(A[4]), .Q(n2) ); |
NAND2X1 U51 ( .IN1(DIFF[2]), .IN2(n48), .QN(carry[4]) ); |
INVX0 U52 ( .INP(A[2]), .ZN(DIFF[2]) ); |
INVX0 U53 ( .INP(A[3]), .ZN(n48) ); |
INVX0 U54 ( .INP(A[6]), .ZN(n50) ); |
INVX0 U55 ( .INP(A[8]), .ZN(n52) ); |
INVX0 U56 ( .INP(A[9]), .ZN(n54) ); |
INVX0 U57 ( .INP(A[10]), .ZN(n6) ); |
INVX0 U58 ( .INP(A[11]), .ZN(n8) ); |
INVX0 U59 ( .INP(A[12]), .ZN(n10) ); |
INVX0 U60 ( .INP(A[13]), .ZN(n12) ); |
INVX0 U61 ( .INP(A[14]), .ZN(n14) ); |
INVX0 U62 ( .INP(A[15]), .ZN(n16) ); |
INVX0 U63 ( .INP(A[16]), .ZN(n18) ); |
INVX0 U64 ( .INP(A[17]), .ZN(n20) ); |
INVX0 U65 ( .INP(A[18]), .ZN(n22) ); |
INVX0 U66 ( .INP(A[19]), .ZN(n24) ); |
INVX0 U67 ( .INP(A[20]), .ZN(n26) ); |
INVX0 U68 ( .INP(A[21]), .ZN(n28) ); |
INVX0 U69 ( .INP(A[22]), .ZN(n30) ); |
INVX0 U70 ( .INP(A[23]), .ZN(n32) ); |
INVX0 U71 ( .INP(A[24]), .ZN(n34) ); |
INVX0 U72 ( .INP(A[25]), .ZN(n36) ); |
INVX0 U73 ( .INP(A[26]), .ZN(n38) ); |
INVX0 U74 ( .INP(A[27]), .ZN(n40) ); |
INVX0 U75 ( .INP(A[28]), .ZN(n42) ); |
INVX0 U76 ( .INP(A[29]), .ZN(n44) ); |
INVX0 U77 ( .INP(A[30]), .ZN(n46) ); |
AND2X1 U78 ( .IN1(n2), .IN2(A[5]), .Q(n3) ); |
AND2X1 U79 ( .IN1(carry[7]), .IN2(A[7]), .Q(n4) ); |
XOR2X1 U80 ( .IN1(n6), .IN2(carry[10]), .Q(DIFF[10]) ); |
XOR2X1 U81 ( .IN1(n8), .IN2(carry[11]), .Q(DIFF[11]) ); |
XOR2X1 U82 ( .IN1(n10), .IN2(carry[12]), .Q(DIFF[12]) ); |
XOR2X1 U83 ( .IN1(n12), .IN2(carry[13]), .Q(DIFF[13]) ); |
XOR2X1 U84 ( .IN1(n14), .IN2(carry[14]), .Q(DIFF[14]) ); |
XOR2X1 U85 ( .IN1(n16), .IN2(carry[15]), .Q(DIFF[15]) ); |
XOR2X1 U86 ( .IN1(n18), .IN2(carry[16]), .Q(DIFF[16]) ); |
XOR2X1 U87 ( .IN1(n20), .IN2(carry[17]), .Q(DIFF[17]) ); |
XOR2X1 U88 ( .IN1(n22), .IN2(carry[18]), .Q(DIFF[18]) ); |
XOR2X1 U89 ( .IN1(n24), .IN2(carry[19]), .Q(DIFF[19]) ); |
XOR2X1 U90 ( .IN1(n26), .IN2(carry[20]), .Q(DIFF[20]) ); |
XOR2X1 U91 ( .IN1(n28), .IN2(carry[21]), .Q(DIFF[21]) ); |
XOR2X1 U92 ( .IN1(n30), .IN2(carry[22]), .Q(DIFF[22]) ); |
XOR2X1 U93 ( .IN1(n32), .IN2(carry[23]), .Q(DIFF[23]) ); |
XOR2X1 U94 ( .IN1(n34), .IN2(carry[24]), .Q(DIFF[24]) ); |
XOR2X1 U95 ( .IN1(n36), .IN2(carry[25]), .Q(DIFF[25]) ); |
XOR2X1 U96 ( .IN1(n38), .IN2(carry[26]), .Q(DIFF[26]) ); |
XOR2X1 U97 ( .IN1(n40), .IN2(carry[27]), .Q(DIFF[27]) ); |
XOR2X1 U98 ( .IN1(n42), .IN2(carry[28]), .Q(DIFF[28]) ); |
XOR2X1 U99 ( .IN1(n44), .IN2(carry[29]), .Q(DIFF[29]) ); |
XOR2X1 U100 ( .IN1(n46), .IN2(carry[30]), .Q(DIFF[30]) ); |
XOR2X1 U101 ( .IN1(n48), .IN2(A[2]), .Q(DIFF[3]) ); |
XOR2X1 U102 ( .IN1(n50), .IN2(n3), .Q(DIFF[6]) ); |
XOR2X1 U103 ( .IN1(n52), .IN2(n4), .Q(DIFF[8]) ); |
XOR2X1 U104 ( .IN1(n54), .IN2(carry[9]), .Q(DIFF[9]) ); |
XOR2X1 U105 ( .IN1(carry[4]), .IN2(A[4]), .Q(DIFF[4]) ); |
XOR2X1 U106 ( .IN1(n2), .IN2(A[5]), .Q(DIFF[5]) ); |
XOR2X1 U107 ( .IN1(carry[7]), .IN2(A[7]), .Q(DIFF[7]) ); |
endmodule |
|
|
module top_DW01_sub_3 ( A, B, CI, DIFF, CO ); |
input [31:0] A; |
input [31:0] B; |
output [31:0] DIFF; |
input CI; |
output CO; |
wire \B[0] , n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11, n12, n13, n14, |
n15, n16, n17, n18, n19, n20, n21, n22, n23, n24, n25, n26, n27, n28, |
n29, n30, n31, n32, n33, n34, n35, n36, n37, n38, n39, n40, n41, n42, |
n43, n44, n45, n46, n47, n48, n49, n50, n51, n52, n53, n54, n55, n56, |
n57, n58; |
wire [32:0] carry; |
assign DIFF[0] = \B[0] ; |
assign \B[0] = B[0]; |
|
NAND2X1 U1 ( .IN1(n55), .IN2(carry[3]), .QN(n1) ); |
NAND2X1 U2 ( .IN1(n57), .IN2(n58), .QN(n2) ); |
NAND2X1 U3 ( .IN1(n52), .IN2(carry[6]), .QN(n3) ); |
NAND2X1 U4 ( .IN1(B[7]), .IN2(n3), .QN(carry[8]) ); |
INVX0 U5 ( .INP(B[3]), .ZN(n55) ); |
NAND2X1 U6 ( .IN1(B[5]), .IN2(n26), .QN(carry[6]) ); |
NAND2X1 U7 ( .IN1(B[2]), .IN2(n2), .QN(carry[3]) ); |
AND2X1 U8 ( .IN1(n50), .IN2(carry[8]), .Q(n4) ); |
AND2X1 U9 ( .IN1(n49), .IN2(n4), .Q(n5) ); |
AND2X1 U10 ( .IN1(n38), .IN2(n9), .Q(n6) ); |
AND2X1 U11 ( .IN1(n34), .IN2(n14), .Q(n7) ); |
AND2X1 U12 ( .IN1(n31), .IN2(n11), .Q(n8) ); |
AND2X1 U13 ( .IN1(n39), .IN2(n13), .Q(n9) ); |
AND2X1 U14 ( .IN1(n33), .IN2(n7), .Q(n10) ); |
AND2X1 U15 ( .IN1(n32), .IN2(n10), .Q(n11) ); |
AND2X1 U16 ( .IN1(n30), .IN2(n8), .Q(n12) ); |
AND2X1 U17 ( .IN1(n40), .IN2(n18), .Q(n13) ); |
AND2X1 U18 ( .IN1(n35), .IN2(n16), .Q(n14) ); |
AND2X1 U19 ( .IN1(n37), .IN2(n6), .Q(n15) ); |
AND2X1 U20 ( .IN1(n36), .IN2(n15), .Q(n16) ); |
AND2X1 U21 ( .IN1(n29), .IN2(n12), .Q(n17) ); |
AND2X1 U22 ( .IN1(n41), .IN2(n23), .Q(n18) ); |
AND2X1 U23 ( .IN1(n46), .IN2(n25), .Q(n19) ); |
AND2X1 U24 ( .IN1(n45), .IN2(n19), .Q(n20) ); |
AND2X1 U25 ( .IN1(n44), .IN2(n20), .Q(n21) ); |
AND2X1 U26 ( .IN1(n43), .IN2(n21), .Q(n22) ); |
AND2X1 U27 ( .IN1(n42), .IN2(n22), .Q(n23) ); |
AND2X1 U28 ( .IN1(n48), .IN2(n5), .Q(n24) ); |
AND2X1 U29 ( .IN1(n47), .IN2(n24), .Q(n25) ); |
AND2X1 U30 ( .IN1(B[4]), .IN2(n1), .Q(n26) ); |
INVX0 U31 ( .INP(B[7]), .ZN(n51) ); |
INVX0 U32 ( .INP(B[2]), .ZN(n56) ); |
XOR2X1 U33 ( .IN1(B[31]), .IN2(n27), .Q(DIFF[31]) ); |
NAND2X1 U34 ( .IN1(n28), .IN2(n17), .QN(n27) ); |
INVX0 U35 ( .INP(B[6]), .ZN(n52) ); |
INVX0 U36 ( .INP(B[5]), .ZN(n53) ); |
INVX0 U37 ( .INP(B[4]), .ZN(n54) ); |
INVX0 U38 ( .INP(B[8]), .ZN(n50) ); |
INVX0 U39 ( .INP(B[9]), .ZN(n49) ); |
INVX0 U40 ( .INP(B[10]), .ZN(n48) ); |
INVX0 U41 ( .INP(B[12]), .ZN(n46) ); |
INVX0 U42 ( .INP(B[13]), .ZN(n45) ); |
INVX0 U43 ( .INP(B[14]), .ZN(n44) ); |
INVX0 U44 ( .INP(B[11]), .ZN(n47) ); |
INVX0 U45 ( .INP(B[17]), .ZN(n41) ); |
INVX0 U46 ( .INP(B[15]), .ZN(n43) ); |
INVX0 U47 ( .INP(B[16]), .ZN(n42) ); |
INVX0 U48 ( .INP(B[20]), .ZN(n38) ); |
INVX0 U49 ( .INP(B[19]), .ZN(n39) ); |
INVX0 U50 ( .INP(B[18]), .ZN(n40) ); |
INVX0 U51 ( .INP(B[21]), .ZN(n37) ); |
INVX0 U52 ( .INP(B[24]), .ZN(n34) ); |
INVX0 U53 ( .INP(B[23]), .ZN(n35) ); |
INVX0 U54 ( .INP(B[22]), .ZN(n36) ); |
INVX0 U55 ( .INP(B[27]), .ZN(n31) ); |
INVX0 U56 ( .INP(B[25]), .ZN(n33) ); |
INVX0 U57 ( .INP(B[26]), .ZN(n32) ); |
INVX0 U58 ( .INP(B[28]), .ZN(n30) ); |
INVX0 U59 ( .INP(B[30]), .ZN(n28) ); |
INVX0 U60 ( .INP(B[29]), .ZN(n29) ); |
XOR2X1 U61 ( .IN1(n3), .IN2(n51), .Q(DIFF[7]) ); |
XOR2X1 U62 ( .IN1(n26), .IN2(n53), .Q(DIFF[5]) ); |
XOR2X1 U63 ( .IN1(n1), .IN2(n54), .Q(DIFF[4]) ); |
XOR2X1 U64 ( .IN1(n2), .IN2(n56), .Q(DIFF[2]) ); |
XOR2X1 U65 ( .IN1(n28), .IN2(n17), .Q(DIFF[30]) ); |
XOR2X1 U66 ( .IN1(n29), .IN2(n12), .Q(DIFF[29]) ); |
XOR2X1 U67 ( .IN1(n30), .IN2(n8), .Q(DIFF[28]) ); |
XOR2X1 U68 ( .IN1(n31), .IN2(n11), .Q(DIFF[27]) ); |
XOR2X1 U69 ( .IN1(n32), .IN2(n10), .Q(DIFF[26]) ); |
XOR2X1 U70 ( .IN1(n33), .IN2(n7), .Q(DIFF[25]) ); |
XOR2X1 U71 ( .IN1(n34), .IN2(n14), .Q(DIFF[24]) ); |
XOR2X1 U72 ( .IN1(n35), .IN2(n16), .Q(DIFF[23]) ); |
XOR2X1 U73 ( .IN1(n36), .IN2(n15), .Q(DIFF[22]) ); |
XOR2X1 U74 ( .IN1(n37), .IN2(n6), .Q(DIFF[21]) ); |
XOR2X1 U75 ( .IN1(n38), .IN2(n9), .Q(DIFF[20]) ); |
XOR2X1 U76 ( .IN1(n39), .IN2(n13), .Q(DIFF[19]) ); |
XOR2X1 U77 ( .IN1(n40), .IN2(n18), .Q(DIFF[18]) ); |
XOR2X1 U78 ( .IN1(n41), .IN2(n23), .Q(DIFF[17]) ); |
XOR2X1 U79 ( .IN1(n42), .IN2(n22), .Q(DIFF[16]) ); |
XOR2X1 U80 ( .IN1(n43), .IN2(n21), .Q(DIFF[15]) ); |
XOR2X1 U81 ( .IN1(n44), .IN2(n20), .Q(DIFF[14]) ); |
XOR2X1 U82 ( .IN1(n45), .IN2(n19), .Q(DIFF[13]) ); |
XOR2X1 U83 ( .IN1(n46), .IN2(n25), .Q(DIFF[12]) ); |
XOR2X1 U84 ( .IN1(n47), .IN2(n24), .Q(DIFF[11]) ); |
XOR2X1 U85 ( .IN1(n48), .IN2(n5), .Q(DIFF[10]) ); |
XOR2X1 U86 ( .IN1(n49), .IN2(n4), .Q(DIFF[9]) ); |
XOR2X1 U87 ( .IN1(n50), .IN2(carry[8]), .Q(DIFF[8]) ); |
XOR2X1 U88 ( .IN1(n52), .IN2(carry[6]), .Q(DIFF[6]) ); |
XOR2X1 U89 ( .IN1(n55), .IN2(carry[3]), .Q(DIFF[3]) ); |
XOR2X1 U90 ( .IN1(n57), .IN2(n58), .Q(DIFF[1]) ); |
INVX0 U91 ( .INP(\B[0] ), .ZN(n58) ); |
INVX0 U92 ( .INP(B[1]), .ZN(n57) ); |
endmodule |
|
|
module top_DW01_sub_4 ( A, B, CI, DIFF, CO ); |
input [31:0] A; |
input [31:0] B; |
output [31:0] DIFF; |
input CI; |
output CO; |
wire \A[0] , n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11, n12, n13, n14, |
n15, n16, n17, n18, n19, n20, n21, n22, n23, n24, n25, n26, n27, n28, |
n29, n30, n31, n32, n33, n34, n35, n36, n37, n38, n39, n40, n41, n42, |
n43, n44, n45, n46, n47, n48, n49, n50, n51; |
wire [32:0] carry; |
assign DIFF[1] = A[1]; |
assign DIFF[0] = \A[0] ; |
assign \A[0] = A[0]; |
|
FADDX1 U2_3 ( .A(A[3]), .B(1'b1), .CI(A[2]), .CO(carry[4]), .S(DIFF[3]) ); |
NAND2X1 U1 ( .IN1(n46), .IN2(n47), .QN(carry[7]) ); |
INVX0 U2 ( .INP(n3), .ZN(n46) ); |
NAND2X1 U3 ( .IN1(n48), .IN2(n49), .QN(carry[9]) ); |
INVX0 U4 ( .INP(n1), .ZN(n48) ); |
NAND2X1 U5 ( .IN1(n50), .IN2(n51), .QN(carry[10]) ); |
INVX0 U6 ( .INP(carry[9]), .ZN(n50) ); |
NAND2X1 U7 ( .IN1(n24), .IN2(n25), .QN(carry[21]) ); |
INVX0 U8 ( .INP(carry[20]), .ZN(n24) ); |
NAND2X1 U9 ( .IN1(n32), .IN2(n33), .QN(carry[25]) ); |
INVX0 U10 ( .INP(carry[24]), .ZN(n32) ); |
NAND2X1 U11 ( .IN1(n38), .IN2(n39), .QN(carry[28]) ); |
INVX0 U12 ( .INP(carry[27]), .ZN(n38) ); |
NAND2X1 U13 ( .IN1(n22), .IN2(n23), .QN(carry[20]) ); |
INVX0 U14 ( .INP(carry[19]), .ZN(n22) ); |
NAND2X1 U15 ( .IN1(n34), .IN2(n35), .QN(carry[26]) ); |
INVX0 U16 ( .INP(carry[25]), .ZN(n34) ); |
NAND2X1 U17 ( .IN1(n40), .IN2(n41), .QN(carry[29]) ); |
INVX0 U18 ( .INP(carry[28]), .ZN(n40) ); |
NAND2X1 U19 ( .IN1(n30), .IN2(n31), .QN(carry[24]) ); |
INVX0 U20 ( .INP(carry[23]), .ZN(n30) ); |
NAND2X1 U21 ( .IN1(n20), .IN2(n21), .QN(carry[19]) ); |
INVX0 U22 ( .INP(carry[18]), .ZN(n20) ); |
NAND2X1 U23 ( .IN1(n26), .IN2(n27), .QN(carry[22]) ); |
INVX0 U24 ( .INP(carry[21]), .ZN(n26) ); |
NAND2X1 U25 ( .IN1(n28), .IN2(n29), .QN(carry[23]) ); |
INVX0 U26 ( .INP(carry[22]), .ZN(n28) ); |
NAND2X1 U27 ( .IN1(n42), .IN2(n43), .QN(carry[30]) ); |
INVX0 U28 ( .INP(carry[29]), .ZN(n42) ); |
NAND2X1 U29 ( .IN1(n18), .IN2(n19), .QN(carry[18]) ); |
INVX0 U30 ( .INP(carry[17]), .ZN(n18) ); |
NAND2X1 U31 ( .IN1(n12), .IN2(n13), .QN(carry[15]) ); |
INVX0 U32 ( .INP(carry[14]), .ZN(n12) ); |
NAND2X1 U33 ( .IN1(n14), .IN2(n15), .QN(carry[16]) ); |
INVX0 U34 ( .INP(carry[15]), .ZN(n14) ); |
NAND2X1 U35 ( .IN1(n16), .IN2(n17), .QN(carry[17]) ); |
INVX0 U36 ( .INP(carry[16]), .ZN(n16) ); |
NAND2X1 U37 ( .IN1(n4), .IN2(n5), .QN(carry[11]) ); |
INVX0 U38 ( .INP(carry[10]), .ZN(n4) ); |
NAND2X1 U39 ( .IN1(n6), .IN2(n7), .QN(carry[12]) ); |
INVX0 U40 ( .INP(carry[11]), .ZN(n6) ); |
NAND2X1 U41 ( .IN1(n44), .IN2(n45), .QN(carry[31]) ); |
INVX0 U42 ( .INP(carry[30]), .ZN(n44) ); |
AND2X1 U43 ( .IN1(carry[7]), .IN2(A[7]), .Q(n1) ); |
NAND2X1 U44 ( .IN1(n36), .IN2(n37), .QN(carry[27]) ); |
INVX0 U45 ( .INP(carry[26]), .ZN(n36) ); |
NAND2X1 U46 ( .IN1(n10), .IN2(n11), .QN(carry[14]) ); |
INVX0 U47 ( .INP(carry[13]), .ZN(n10) ); |
NAND2X1 U48 ( .IN1(n8), .IN2(n9), .QN(carry[13]) ); |
INVX0 U49 ( .INP(carry[12]), .ZN(n8) ); |
AND2X1 U50 ( .IN1(carry[4]), .IN2(A[4]), .Q(n2) ); |
AND2X1 U51 ( .IN1(n2), .IN2(A[5]), .Q(n3) ); |
XNOR2X1 U52 ( .IN1(A[31]), .IN2(carry[31]), .Q(DIFF[31]) ); |
INVX0 U53 ( .INP(A[6]), .ZN(n47) ); |
INVX0 U54 ( .INP(A[8]), .ZN(n49) ); |
INVX0 U55 ( .INP(A[9]), .ZN(n51) ); |
INVX0 U56 ( .INP(A[12]), .ZN(n9) ); |
INVX0 U57 ( .INP(A[13]), .ZN(n11) ); |
INVX0 U58 ( .INP(A[10]), .ZN(n5) ); |
INVX0 U59 ( .INP(A[11]), .ZN(n7) ); |
INVX0 U60 ( .INP(A[17]), .ZN(n19) ); |
INVX0 U61 ( .INP(A[14]), .ZN(n13) ); |
INVX0 U62 ( .INP(A[15]), .ZN(n15) ); |
INVX0 U63 ( .INP(A[16]), .ZN(n17) ); |
INVX0 U64 ( .INP(A[20]), .ZN(n25) ); |
INVX0 U65 ( .INP(A[19]), .ZN(n23) ); |
INVX0 U66 ( .INP(A[18]), .ZN(n21) ); |
INVX0 U67 ( .INP(A[24]), .ZN(n33) ); |
INVX0 U68 ( .INP(A[23]), .ZN(n31) ); |
INVX0 U69 ( .INP(A[21]), .ZN(n27) ); |
INVX0 U70 ( .INP(A[22]), .ZN(n29) ); |
INVX0 U71 ( .INP(A[27]), .ZN(n39) ); |
INVX0 U72 ( .INP(A[25]), .ZN(n35) ); |
INVX0 U73 ( .INP(A[26]), .ZN(n37) ); |
INVX0 U74 ( .INP(A[28]), .ZN(n41) ); |
INVX0 U75 ( .INP(A[30]), .ZN(n45) ); |
INVX0 U76 ( .INP(A[29]), .ZN(n43) ); |
INVX0 U77 ( .INP(A[2]), .ZN(DIFF[2]) ); |
XOR2X1 U78 ( .IN1(n5), .IN2(carry[10]), .Q(DIFF[10]) ); |
XOR2X1 U79 ( .IN1(n7), .IN2(carry[11]), .Q(DIFF[11]) ); |
XOR2X1 U80 ( .IN1(n9), .IN2(carry[12]), .Q(DIFF[12]) ); |
XOR2X1 U81 ( .IN1(n11), .IN2(carry[13]), .Q(DIFF[13]) ); |
XOR2X1 U82 ( .IN1(n13), .IN2(carry[14]), .Q(DIFF[14]) ); |
XOR2X1 U83 ( .IN1(n15), .IN2(carry[15]), .Q(DIFF[15]) ); |
XOR2X1 U84 ( .IN1(n17), .IN2(carry[16]), .Q(DIFF[16]) ); |
XOR2X1 U85 ( .IN1(n19), .IN2(carry[17]), .Q(DIFF[17]) ); |
XOR2X1 U86 ( .IN1(n21), .IN2(carry[18]), .Q(DIFF[18]) ); |
XOR2X1 U87 ( .IN1(n23), .IN2(carry[19]), .Q(DIFF[19]) ); |
XOR2X1 U88 ( .IN1(n25), .IN2(carry[20]), .Q(DIFF[20]) ); |
XOR2X1 U89 ( .IN1(n27), .IN2(carry[21]), .Q(DIFF[21]) ); |
XOR2X1 U90 ( .IN1(n29), .IN2(carry[22]), .Q(DIFF[22]) ); |
XOR2X1 U91 ( .IN1(n31), .IN2(carry[23]), .Q(DIFF[23]) ); |
XOR2X1 U92 ( .IN1(n33), .IN2(carry[24]), .Q(DIFF[24]) ); |
XOR2X1 U93 ( .IN1(n35), .IN2(carry[25]), .Q(DIFF[25]) ); |
XOR2X1 U94 ( .IN1(n37), .IN2(carry[26]), .Q(DIFF[26]) ); |
XOR2X1 U95 ( .IN1(n39), .IN2(carry[27]), .Q(DIFF[27]) ); |
XOR2X1 U96 ( .IN1(n41), .IN2(carry[28]), .Q(DIFF[28]) ); |
XOR2X1 U97 ( .IN1(n43), .IN2(carry[29]), .Q(DIFF[29]) ); |
XOR2X1 U98 ( .IN1(n45), .IN2(carry[30]), .Q(DIFF[30]) ); |
XOR2X1 U99 ( .IN1(n47), .IN2(n3), .Q(DIFF[6]) ); |
XOR2X1 U100 ( .IN1(n49), .IN2(n1), .Q(DIFF[8]) ); |
XOR2X1 U101 ( .IN1(n51), .IN2(carry[9]), .Q(DIFF[9]) ); |
XOR2X1 U102 ( .IN1(carry[4]), .IN2(A[4]), .Q(DIFF[4]) ); |
XOR2X1 U103 ( .IN1(n2), .IN2(A[5]), .Q(DIFF[5]) ); |
XOR2X1 U104 ( .IN1(carry[7]), .IN2(A[7]), .Q(DIFF[7]) ); |
endmodule |
|
|
module top_DW01_sub_5 ( A, B, CI, DIFF, CO ); |
input [31:0] A; |
input [31:0] B; |
output [31:0] DIFF; |
input CI; |
output CO; |
wire \A[0] , n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11, n12, n13, n14, |
n15, n16, n17, n18, n19, n20, n21, n22, n23, n24, n25, n26, n27, n28, |
n29, n30, n31, n32, n33, n34, n35, n36, n37, n38, n39, n40, n41, n42, |
n43, n44, n45, n46, n47, n48, n49, n50, n51, n52, n53, n54, n55, n56; |
wire [32:0] carry; |
assign DIFF[0] = \A[0] ; |
assign \A[0] = A[0]; |
|
XOR2X1 U1 ( .IN1(n1), .IN2(carry[31]), .Q(DIFF[31]) ); |
INVX1 U2 ( .INP(A[31]), .ZN(n1) ); |
NAND2X1 U3 ( .IN1(n53), .IN2(n54), .QN(carry[8]) ); |
INVX0 U4 ( .INP(carry[7]), .ZN(n53) ); |
NAND2X1 U5 ( .IN1(n49), .IN2(n50), .QN(carry[6]) ); |
INVX0 U6 ( .INP(carry[5]), .ZN(n49) ); |
NAND2X1 U7 ( .IN1(n47), .IN2(n48), .QN(carry[5]) ); |
INVX0 U8 ( .INP(n2), .ZN(n47) ); |
NAND2X1 U9 ( .IN1(n55), .IN2(n56), .QN(carry[10]) ); |
INVX0 U10 ( .INP(n4), .ZN(n55) ); |
NAND2X1 U11 ( .IN1(n25), .IN2(n26), .QN(carry[21]) ); |
INVX0 U12 ( .INP(carry[20]), .ZN(n25) ); |
NAND2X1 U13 ( .IN1(n33), .IN2(n34), .QN(carry[25]) ); |
INVX0 U14 ( .INP(carry[24]), .ZN(n33) ); |
NAND2X1 U15 ( .IN1(n39), .IN2(n40), .QN(carry[28]) ); |
INVX0 U16 ( .INP(carry[27]), .ZN(n39) ); |
NAND2X1 U17 ( .IN1(n23), .IN2(n24), .QN(carry[20]) ); |
INVX0 U18 ( .INP(carry[19]), .ZN(n23) ); |
NAND2X1 U19 ( .IN1(n35), .IN2(n36), .QN(carry[26]) ); |
INVX0 U20 ( .INP(carry[25]), .ZN(n35) ); |
NAND2X1 U21 ( .IN1(n31), .IN2(n32), .QN(carry[24]) ); |
INVX0 U22 ( .INP(carry[23]), .ZN(n31) ); |
NAND2X1 U23 ( .IN1(n21), .IN2(n22), .QN(carry[19]) ); |
INVX0 U24 ( .INP(carry[18]), .ZN(n21) ); |
NAND2X1 U25 ( .IN1(n27), .IN2(n28), .QN(carry[22]) ); |
INVX0 U26 ( .INP(carry[21]), .ZN(n27) ); |
NAND2X1 U27 ( .IN1(n29), .IN2(n30), .QN(carry[23]) ); |
INVX0 U28 ( .INP(carry[22]), .ZN(n29) ); |
NAND2X1 U29 ( .IN1(n43), .IN2(n44), .QN(carry[30]) ); |
INVX0 U30 ( .INP(carry[29]), .ZN(n43) ); |
NAND2X1 U31 ( .IN1(n19), .IN2(n20), .QN(carry[18]) ); |
INVX0 U32 ( .INP(carry[17]), .ZN(n19) ); |
NAND2X1 U33 ( .IN1(n51), .IN2(n52), .QN(carry[7]) ); |
INVX0 U34 ( .INP(carry[6]), .ZN(n51) ); |
NAND2X1 U35 ( .IN1(n13), .IN2(n14), .QN(carry[15]) ); |
INVX0 U36 ( .INP(carry[14]), .ZN(n13) ); |
NAND2X1 U37 ( .IN1(n15), .IN2(n16), .QN(carry[16]) ); |
INVX0 U38 ( .INP(carry[15]), .ZN(n15) ); |
NAND2X1 U39 ( .IN1(n17), .IN2(n18), .QN(carry[17]) ); |
INVX0 U40 ( .INP(carry[16]), .ZN(n17) ); |
NAND2X1 U41 ( .IN1(n5), .IN2(n6), .QN(carry[11]) ); |
INVX0 U42 ( .INP(carry[10]), .ZN(n5) ); |
NAND2X1 U43 ( .IN1(n7), .IN2(n8), .QN(carry[12]) ); |
INVX0 U44 ( .INP(carry[11]), .ZN(n7) ); |
NAND2X1 U45 ( .IN1(n45), .IN2(n46), .QN(carry[31]) ); |
INVX0 U46 ( .INP(carry[30]), .ZN(n45) ); |
AND2X1 U47 ( .IN1(n3), .IN2(A[3]), .Q(n2) ); |
NAND2X1 U48 ( .IN1(n41), .IN2(n42), .QN(carry[29]) ); |
INVX0 U49 ( .INP(carry[28]), .ZN(n41) ); |
NAND2X1 U50 ( .IN1(n37), .IN2(n38), .QN(carry[27]) ); |
INVX0 U51 ( .INP(carry[26]), .ZN(n37) ); |
NAND2X1 U52 ( .IN1(n11), .IN2(n12), .QN(carry[14]) ); |
INVX0 U53 ( .INP(carry[13]), .ZN(n11) ); |
NAND2X1 U54 ( .IN1(n9), .IN2(n10), .QN(carry[13]) ); |
INVX0 U55 ( .INP(carry[12]), .ZN(n9) ); |
INVX0 U56 ( .INP(A[7]), .ZN(n54) ); |
INVX0 U57 ( .INP(A[1]), .ZN(DIFF[1]) ); |
AND2X1 U58 ( .IN1(A[1]), .IN2(A[2]), .Q(n3) ); |
AND2X1 U59 ( .IN1(carry[8]), .IN2(A[8]), .Q(n4) ); |
INVX0 U60 ( .INP(A[5]), .ZN(n50) ); |
INVX0 U61 ( .INP(A[4]), .ZN(n48) ); |
INVX0 U62 ( .INP(A[6]), .ZN(n52) ); |
INVX0 U63 ( .INP(A[9]), .ZN(n56) ); |
INVX0 U64 ( .INP(A[12]), .ZN(n10) ); |
INVX0 U65 ( .INP(A[13]), .ZN(n12) ); |
INVX0 U66 ( .INP(A[10]), .ZN(n6) ); |
INVX0 U67 ( .INP(A[11]), .ZN(n8) ); |
INVX0 U68 ( .INP(A[17]), .ZN(n20) ); |
INVX0 U69 ( .INP(A[14]), .ZN(n14) ); |
INVX0 U70 ( .INP(A[15]), .ZN(n16) ); |
INVX0 U71 ( .INP(A[16]), .ZN(n18) ); |
INVX0 U72 ( .INP(A[20]), .ZN(n26) ); |
INVX0 U73 ( .INP(A[19]), .ZN(n24) ); |
INVX0 U74 ( .INP(A[18]), .ZN(n22) ); |
INVX0 U75 ( .INP(A[24]), .ZN(n34) ); |
INVX0 U76 ( .INP(A[23]), .ZN(n32) ); |
INVX0 U77 ( .INP(A[21]), .ZN(n28) ); |
INVX0 U78 ( .INP(A[22]), .ZN(n30) ); |
INVX0 U79 ( .INP(A[27]), .ZN(n40) ); |
INVX0 U80 ( .INP(A[25]), .ZN(n36) ); |
INVX0 U81 ( .INP(A[26]), .ZN(n38) ); |
INVX0 U82 ( .INP(A[28]), .ZN(n42) ); |
INVX0 U83 ( .INP(A[30]), .ZN(n46) ); |
INVX0 U84 ( .INP(A[29]), .ZN(n44) ); |
XOR2X1 U85 ( .IN1(n6), .IN2(carry[10]), .Q(DIFF[10]) ); |
XOR2X1 U86 ( .IN1(n8), .IN2(carry[11]), .Q(DIFF[11]) ); |
XOR2X1 U87 ( .IN1(n10), .IN2(carry[12]), .Q(DIFF[12]) ); |
XOR2X1 U88 ( .IN1(n12), .IN2(carry[13]), .Q(DIFF[13]) ); |
XOR2X1 U89 ( .IN1(n14), .IN2(carry[14]), .Q(DIFF[14]) ); |
XOR2X1 U90 ( .IN1(n16), .IN2(carry[15]), .Q(DIFF[15]) ); |
XOR2X1 U91 ( .IN1(n18), .IN2(carry[16]), .Q(DIFF[16]) ); |
XOR2X1 U92 ( .IN1(n20), .IN2(carry[17]), .Q(DIFF[17]) ); |
XOR2X1 U93 ( .IN1(n22), .IN2(carry[18]), .Q(DIFF[18]) ); |
XOR2X1 U94 ( .IN1(n24), .IN2(carry[19]), .Q(DIFF[19]) ); |
XOR2X1 U95 ( .IN1(n26), .IN2(carry[20]), .Q(DIFF[20]) ); |
XOR2X1 U96 ( .IN1(n28), .IN2(carry[21]), .Q(DIFF[21]) ); |
XOR2X1 U97 ( .IN1(n30), .IN2(carry[22]), .Q(DIFF[22]) ); |
XOR2X1 U98 ( .IN1(n32), .IN2(carry[23]), .Q(DIFF[23]) ); |
XOR2X1 U99 ( .IN1(n34), .IN2(carry[24]), .Q(DIFF[24]) ); |
XOR2X1 U100 ( .IN1(n36), .IN2(carry[25]), .Q(DIFF[25]) ); |
XOR2X1 U101 ( .IN1(n38), .IN2(carry[26]), .Q(DIFF[26]) ); |
XOR2X1 U102 ( .IN1(n40), .IN2(carry[27]), .Q(DIFF[27]) ); |
XOR2X1 U103 ( .IN1(n42), .IN2(carry[28]), .Q(DIFF[28]) ); |
XOR2X1 U104 ( .IN1(n44), .IN2(carry[29]), .Q(DIFF[29]) ); |
XOR2X1 U105 ( .IN1(n46), .IN2(carry[30]), .Q(DIFF[30]) ); |
XOR2X1 U106 ( .IN1(n48), .IN2(n2), .Q(DIFF[4]) ); |
XOR2X1 U107 ( .IN1(n50), .IN2(carry[5]), .Q(DIFF[5]) ); |
XOR2X1 U108 ( .IN1(n52), .IN2(carry[6]), .Q(DIFF[6]) ); |
XOR2X1 U109 ( .IN1(n54), .IN2(carry[7]), .Q(DIFF[7]) ); |
XOR2X1 U110 ( .IN1(n56), .IN2(n4), .Q(DIFF[9]) ); |
XOR2X1 U111 ( .IN1(n3), .IN2(A[3]), .Q(DIFF[3]) ); |
XOR2X1 U112 ( .IN1(carry[8]), .IN2(A[8]), .Q(DIFF[8]) ); |
XOR2X1 U113 ( .IN1(A[1]), .IN2(A[2]), .Q(DIFF[2]) ); |
endmodule |
|
|
module top ( enable, degrees, data1, rst, actv, clk ); |
input [31:0] degrees; |
output [63:0] data1; |
input [2:0] actv; |
input enable, rst, clk; |
wire sin_enable, cos_enable, tan_enable, csc_enable, sec_enable, |
cot_enable, N33, N34, N35, N36, N37, N38, N39, N40, N41, N43, N44, |
N50, N51, N52, N54, N55, N60, N61, N62, N63, N64, N65, N66, N67, N68, |
N69, N70, N71, N72, N73, N74, N75, N76, N77, N78, N79, N80, N81, N82, |
N83, N84, N85, N86, N87, N88, N89, N90, N91, N93, N94, N95, N96, N97, |
N98, N99, N100, N101, N102, N103, N104, N105, N106, N107, N108, N109, |
N110, N111, N112, N113, N114, N115, N116, N117, N118, N119, N120, |
N121, N122, N123, N124, N126, N127, N128, N129, N130, N131, N132, |
N133, N134, N135, N136, N137, N138, N139, N140, N141, N142, N143, |
N144, N145, N146, N147, N148, N149, N150, N151, N152, N153, N154, |
N155, N156, N157, N193, N194, N195, N196, N197, N198, N199, N200, |
N201, N202, N203, N204, N205, N206, N207, N208, N209, N210, N211, |
N212, N213, N214, N215, N216, N217, N218, N219, N220, N221, N222, |
N223, N224, N225, N227, N228, N229, N230, N231, N232, N233, N234, |
N235, N236, N237, N238, N239, N240, N241, N242, N243, N244, N245, |
N246, N247, N248, N249, N250, N251, N252, N253, N254, N255, N256, |
N257, N258, N292, N293, N294, N295, N296, N297, N298, N299, N300, |
N301, N302, N303, N304, N305, N306, N307, N308, N309, N310, N311, |
N312, N313, N314, N315, N316, N317, N318, N319, N320, N321, N322, |
N323, N324, N325, N326, N327, N328, N329, N330, N331, N332, N333, |
N334, N335, N336, N337, N338, N339, N340, N341, N342, N343, N344, |
N345, N346, N347, N348, N349, N350, N351, N352, N353, N354, N355, |
N356, N357, N384, N385, N386, N387, N388, N389, N390, N391, N392, |
N393, N394, N395, N396, N397, N398, N399, N400, N401, N402, N403, |
N404, N405, N406, N407, N408, N409, N410, N411, N412, N413, N414, |
N415, N416, N417, N418, N419, N420, N421, N422, N423, N424, N425, |
N426, N427, N428, N429, N430, N431, N432, N433, N434, N435, N436, |
N437, N438, N439, N440, N441, N442, N443, N444, N445, N446, N447, |
n224, n225, n226, n227, n228, n229, n230, n231, n232, n233, n234, |
n235, n236, n237, n238, n239, n240, n241, n242, n243, n244, n245, |
n246, n247, n248, n249, n250, n251, n252, n253, n254, n255, n256, |
n257, n258, n259, n260, n261, n262, n263, n264, n265, n266, n267, |
n268, n269, n270, n271, n272, n273, n274, n275, n276, n277, n278, |
n279, n280, n281, n282, n283, n284, n285, n286, n287, n288, n289, |
n290, n291, n292, n293, n294, n295, n296, n297, n298, n299, n300, |
n301, n302, n303, n304, n305, n306, n307, n308, n309, n310, n311, |
n312, n313, n314, n315, n316, n317, n318, n319, n320, n321, n322, |
n323, n324, n325, n326, n327, n328, n329, n330, n331, n332, n333, |
n334, n335, n336, n337, n338, n339, n340, n341, n342, n343, n344, |
n345, n346, n347, n348, n349, n350, n351, n352, n353, n354, n355, |
n356, n357, n358, n359, n368, n371, n372, n373, n374, n375, n376, |
n377, n378, n379, n380, n381, n382, n383, n384, n385, n386, n387, |
n388, n389, n390, n391, n392, n393, n394, n395, n396, n397, n398, |
n399, n400, n401, n402, n403, n404, n405, n406, n407, n408, n409, |
n410, n411, n412, n413, n414, n415, n416, n417, n418, n419, n420, |
n421, n422, n423, n424, n425, n426, n427, n428, n429, n430, n431, |
n432, n433, n434, n435, n436, n437, n438, n439, n440, n441, n442, |
n443, n444, n445, n446, n447, n448, n449, n450, n451, n452, n453, |
n454, n455, n456, n457, n458, n459, n460, n461, n462, n463, n464, |
n465, n466, n467, n468, n469, n470, n471, n472, n473, n474, n475, |
n476, n477, n478, n479, n480, n481, n482, n483, n484, n485, n486, |
n487, n488, n489, n490, n491, n492, n493, n494, n495, n496, n497, |
n498, n499, n500, n501, n502, n503, n504, n505, n506, n507, n508, |
n509, n510, n511, n512, n513, n514, n515, n516, n517, n518, n519, |
n520, n521, n522, n523, n524, n525, n526, n527, n528, n529, n530, |
n531, n532, n533, n534, n535, n536, n537, n538, n539, n540, n541, |
n542, n543, n544, n545, n546, n547, n548, n549, n550, n551, n552, |
n553, n554, n555, n556, n557, n558, n559, n560, n561, n562, n563, |
n564, n565, n566, n567, n568, n631, n632, n633, n634, n635, n636, |
n637, n638, n639, n640, n641, n642, n643, n644, n645, n646, n647, |
n648, n649, n650, n651, n652, n653, n654, n655, n656, n657, n658, |
n659, n660, n661, n662, n663, n664, n665, n666, n667, n668, n669, |
n670, n671, n672, n673, n674, n675, n676, n677, n678, n679, n680, |
n681, n682, n683, n684, n685, n686, n687, n688, n689, n690, n691, |
n692, n693, n694, n695, n696, n697, n698, n699, n700, n701, n702, |
n703, n704, n705, n706, n707, n708, n709, n710, n711, n712, n713, |
n714, n715, n716, n717, n718, n719, n720, n721, n722, n723, n724, |
n725, n726, n727, n728, n729, n730, n731, n732, n733, n734, n735, |
n736, n737, n738, n739, n740, n741, n742, n743, n744, n745, n746, |
n747, n748, n749, n750, n751, n752, n753, n754, n755, n756, n757, |
n758, n759, n760, n761, n762, n763, n764, n765, n766, n767, n768, |
n769, n770, n771, n772, n773, n774, n775, n776, n777, n778, n779, |
n780, n781, n782, n783, n784, n785, n786, n787, n788, n789, n790, |
n791, n792, n793, n794, n795, n796, n797, n798, n799, n800, n801, |
n802, n803, n804, n805, n806, n807, n808, n809, n810, n811, n812, |
n813, n814, n815, n816, n817, n818, n819, n820, n821, n822, n823, |
n824; |
wire [1:0] quad; |
wire [31:0] degrees_tmp2; |
wire [63:0] data_sin; |
wire [63:0] data_cos; |
wire [63:0] data_tan; |
wire [63:0] data_csc; |
wire [63:0] data_sec; |
wire [63:0] data_cot; |
wire [31:0] divider_out; |
wire [31:0] degrees_tmp1; |
wire SYNOPSYS_UNCONNECTED__0, SYNOPSYS_UNCONNECTED__1; |
|
DFFX1 tan_enable_reg ( .D(N35), .CLK(clk), .Q(tan_enable) ); |
DFFX1 sec_enable_reg ( .D(N37), .CLK(clk), .Q(sec_enable) ); |
DFFX1 csc_enable_reg ( .D(N36), .CLK(clk), .Q(csc_enable) ); |
DFFX1 cot_enable_reg ( .D(N38), .CLK(clk), .Q(cot_enable) ); |
DFFX1 sin_enable_reg ( .D(N33), .CLK(clk), .Q(sin_enable) ); |
DFFX1 cos_enable_reg ( .D(N34), .CLK(clk), .Q(cos_enable) ); |
DFFX1 \quad_reg[1] ( .D(N357), .CLK(clk), .Q(quad[1]) ); |
DFFX1 \degrees_tmp1_reg[1] ( .D(n538), .CLK(clk), .Q(n639) ); |
DFFX1 \quad_reg[0] ( .D(N356), .CLK(clk), .Q(quad[0]) ); |
DFFX1 \degrees_tmp2_reg[1] ( .D(N325), .CLK(clk), .Q(degrees_tmp2[1]) ); |
DFFX1 \degrees_tmp2_reg[2] ( .D(N326), .CLK(clk), .Q(degrees_tmp2[2]) ); |
DFFX1 \degrees_tmp2_reg[3] ( .D(N327), .CLK(clk), .Q(degrees_tmp2[3]) ); |
DFFX1 \degrees_tmp2_reg[4] ( .D(N328), .CLK(clk), .Q(degrees_tmp2[4]) ); |
DFFX1 \degrees_tmp2_reg[5] ( .D(N329), .CLK(clk), .Q(degrees_tmp2[5]) ); |
DFFX1 \degrees_tmp2_reg[6] ( .D(N330), .CLK(clk), .Q(degrees_tmp2[6]) ); |
DFFX1 \degrees_tmp2_reg[7] ( .D(N331), .CLK(clk), .Q(degrees_tmp2[7]) ); |
DFFX1 \degrees_tmp2_reg[8] ( .D(N332), .CLK(clk), .Q(degrees_tmp2[8]) ); |
DFFX1 \degrees_tmp2_reg[9] ( .D(N333), .CLK(clk), .Q(degrees_tmp2[9]) ); |
DFFX1 \degrees_tmp2_reg[10] ( .D(N334), .CLK(clk), .Q(degrees_tmp2[10]) ); |
DFFX1 \degrees_tmp2_reg[11] ( .D(N335), .CLK(clk), .Q(degrees_tmp2[11]) ); |
DFFX1 \degrees_tmp2_reg[12] ( .D(N336), .CLK(clk), .Q(degrees_tmp2[12]) ); |
DFFX1 \degrees_tmp2_reg[13] ( .D(N337), .CLK(clk), .Q(degrees_tmp2[13]) ); |
DFFX1 \degrees_tmp2_reg[14] ( .D(N338), .CLK(clk), .Q(degrees_tmp2[14]) ); |
DFFX1 \degrees_tmp2_reg[15] ( .D(N339), .CLK(clk), .Q(degrees_tmp2[15]) ); |
DFFX1 \degrees_tmp2_reg[16] ( .D(N340), .CLK(clk), .Q(degrees_tmp2[16]) ); |
DFFX1 \degrees_tmp2_reg[17] ( .D(N341), .CLK(clk), .Q(degrees_tmp2[17]) ); |
DFFX1 \degrees_tmp2_reg[18] ( .D(N342), .CLK(clk), .Q(degrees_tmp2[18]) ); |
DFFX1 \degrees_tmp2_reg[19] ( .D(N343), .CLK(clk), .Q(degrees_tmp2[19]) ); |
DFFX1 \degrees_tmp2_reg[20] ( .D(N344), .CLK(clk), .Q(degrees_tmp2[20]) ); |
DFFX1 \degrees_tmp2_reg[21] ( .D(N345), .CLK(clk), .Q(degrees_tmp2[21]) ); |
DFFX1 \degrees_tmp2_reg[22] ( .D(N346), .CLK(clk), .Q(degrees_tmp2[22]) ); |
DFFX1 \degrees_tmp2_reg[23] ( .D(N347), .CLK(clk), .Q(degrees_tmp2[23]) ); |
DFFX1 \degrees_tmp2_reg[24] ( .D(N348), .CLK(clk), .Q(degrees_tmp2[24]) ); |
DFFX1 \degrees_tmp2_reg[25] ( .D(N349), .CLK(clk), .Q(degrees_tmp2[25]) ); |
DFFX1 \degrees_tmp2_reg[26] ( .D(N350), .CLK(clk), .Q(degrees_tmp2[26]) ); |
DFFX1 \degrees_tmp2_reg[27] ( .D(N351), .CLK(clk), .Q(degrees_tmp2[27]) ); |
DFFX1 \degrees_tmp2_reg[28] ( .D(N352), .CLK(clk), .Q(degrees_tmp2[28]) ); |
DFFX1 \degrees_tmp2_reg[29] ( .D(N353), .CLK(clk), .Q(degrees_tmp2[29]) ); |
DFFX1 \degrees_tmp2_reg[30] ( .D(N354), .CLK(clk), .Q(degrees_tmp2[30]) ); |
DFFX1 \degrees_tmp2_reg[31] ( .D(N355), .CLK(clk), .Q(degrees_tmp2[31]) ); |
DFFX1 \degrees_tmp2_reg[0] ( .D(N324), .CLK(clk), .Q(degrees_tmp2[0]) ); |
DFFX1 \data1_reg[63] ( .D(N447), .CLK(clk), .Q(data1[63]) ); |
DFFX1 \data1_reg[62] ( .D(N446), .CLK(clk), .Q(data1[62]) ); |
DFFX1 \data1_reg[52] ( .D(N436), .CLK(clk), .Q(data1[52]) ); |
DFFX1 \data1_reg[51] ( .D(N435), .CLK(clk), .Q(data1[51]) ); |
DFFX1 \data1_reg[26] ( .D(N410), .CLK(clk), .Q(data1[26]) ); |
DFFX1 \data1_reg[25] ( .D(N409), .CLK(clk), .Q(data1[25]) ); |
DFFX1 \data1_reg[24] ( .D(N408), .CLK(clk), .Q(data1[24]) ); |
DFFX1 \data1_reg[23] ( .D(N407), .CLK(clk), .Q(data1[23]) ); |
DFFX1 \data1_reg[22] ( .D(N406), .CLK(clk), .Q(data1[22]) ); |
DFFX1 \data1_reg[21] ( .D(N405), .CLK(clk), .Q(data1[21]) ); |
DFFX1 \data1_reg[20] ( .D(N404), .CLK(clk), .Q(data1[20]) ); |
DFFX1 \data1_reg[19] ( .D(N403), .CLK(clk), .Q(data1[19]) ); |
DFFX1 \data1_reg[18] ( .D(N402), .CLK(clk), .Q(data1[18]) ); |
DFFX1 \data1_reg[17] ( .D(N401), .CLK(clk), .Q(data1[17]) ); |
DFFX1 \data1_reg[16] ( .D(N400), .CLK(clk), .Q(data1[16]) ); |
DFFX1 \data1_reg[15] ( .D(N399), .CLK(clk), .Q(data1[15]) ); |
DFFX1 \data1_reg[14] ( .D(N398), .CLK(clk), .Q(data1[14]) ); |
DFFX1 \data1_reg[13] ( .D(N397), .CLK(clk), .Q(data1[13]) ); |
DFFX1 \data1_reg[12] ( .D(N396), .CLK(clk), .Q(data1[12]) ); |
DFFX1 \data1_reg[11] ( .D(N395), .CLK(clk), .Q(data1[11]) ); |
DFFX1 \data1_reg[10] ( .D(N394), .CLK(clk), .Q(data1[10]) ); |
DFFX1 \data1_reg[9] ( .D(N393), .CLK(clk), .Q(data1[9]) ); |
DFFX1 \data1_reg[8] ( .D(N392), .CLK(clk), .Q(data1[8]) ); |
DFFX1 \data1_reg[7] ( .D(N391), .CLK(clk), .Q(data1[7]) ); |
DFFX1 \data1_reg[6] ( .D(N390), .CLK(clk), .Q(data1[6]) ); |
DFFX1 \data1_reg[5] ( .D(N389), .CLK(clk), .Q(data1[5]) ); |
DFFX1 \data1_reg[4] ( .D(N388), .CLK(clk), .Q(data1[4]) ); |
DFFX1 \data1_reg[3] ( .D(N387), .CLK(clk), .Q(data1[3]) ); |
DFFX1 \data1_reg[2] ( .D(N386), .CLK(clk), .Q(data1[2]) ); |
DFFX1 \data1_reg[1] ( .D(N385), .CLK(clk), .Q(data1[1]) ); |
DFFX1 \data1_reg[0] ( .D(N384), .CLK(clk), .Q(data1[0]) ); |
AO22X1 U149 ( .IN1(N193), .IN2(n678), .IN3(degrees_tmp1[0]), .IN4(n679), .Q( |
n537) ); |
AO22X1 U151 ( .IN1(N195), .IN2(n678), .IN3(degrees_tmp1[2]), .IN4(n679), .Q( |
n539) ); |
AO22X1 U152 ( .IN1(N196), .IN2(n678), .IN3(degrees_tmp1[3]), .IN4(n679), .Q( |
n540) ); |
AO22X1 U153 ( .IN1(N197), .IN2(n678), .IN3(degrees_tmp1[4]), .IN4(n679), .Q( |
n541) ); |
AO22X1 U154 ( .IN1(N198), .IN2(n678), .IN3(degrees_tmp1[5]), .IN4(n679), .Q( |
n542) ); |
AO22X1 U155 ( .IN1(N199), .IN2(n678), .IN3(degrees_tmp1[6]), .IN4(n679), .Q( |
n543) ); |
AO22X1 U156 ( .IN1(N200), .IN2(n678), .IN3(degrees_tmp1[7]), .IN4(n679), .Q( |
n544) ); |
AO22X1 U157 ( .IN1(N201), .IN2(n678), .IN3(degrees_tmp1[8]), .IN4(n679), .Q( |
n545) ); |
AO22X1 U158 ( .IN1(N202), .IN2(n678), .IN3(degrees_tmp1[9]), .IN4(n679), .Q( |
n546) ); |
AO22X1 U159 ( .IN1(N203), .IN2(n678), .IN3(degrees_tmp1[10]), .IN4(n679), |
.Q(n547) ); |
AO22X1 U160 ( .IN1(N204), .IN2(n678), .IN3(degrees_tmp1[11]), .IN4(n679), |
.Q(n548) ); |
AO22X1 U161 ( .IN1(N205), .IN2(n678), .IN3(degrees_tmp1[12]), .IN4(n679), |
.Q(n549) ); |
AO22X1 U162 ( .IN1(N206), .IN2(n678), .IN3(degrees_tmp1[13]), .IN4(n679), |
.Q(n550) ); |
AO22X1 U163 ( .IN1(N207), .IN2(n678), .IN3(degrees_tmp1[14]), .IN4(n679), |
.Q(n551) ); |
AO22X1 U164 ( .IN1(N208), .IN2(n224), .IN3(degrees_tmp1[15]), .IN4(n679), |
.Q(n552) ); |
AO22X1 U165 ( .IN1(N209), .IN2(n224), .IN3(degrees_tmp1[16]), .IN4(n679), |
.Q(n553) ); |
AO22X1 U166 ( .IN1(N210), .IN2(n224), .IN3(degrees_tmp1[17]), .IN4(n679), |
.Q(n554) ); |
AO22X1 U167 ( .IN1(N211), .IN2(n224), .IN3(degrees_tmp1[18]), .IN4(n679), |
.Q(n555) ); |
AO22X1 U168 ( .IN1(N212), .IN2(n224), .IN3(degrees_tmp1[19]), .IN4(n679), |
.Q(n556) ); |
AO22X1 U169 ( .IN1(N213), .IN2(n224), .IN3(degrees_tmp1[20]), .IN4(n679), |
.Q(n557) ); |
AO22X1 U170 ( .IN1(N214), .IN2(n224), .IN3(degrees_tmp1[21]), .IN4(n679), |
.Q(n558) ); |
AO22X1 U171 ( .IN1(N215), .IN2(n224), .IN3(degrees_tmp1[22]), .IN4(n679), |
.Q(n559) ); |
AO22X1 U172 ( .IN1(N216), .IN2(n678), .IN3(degrees_tmp1[23]), .IN4(n679), |
.Q(n560) ); |
AO22X1 U173 ( .IN1(N217), .IN2(n224), .IN3(degrees_tmp1[24]), .IN4(n679), |
.Q(n561) ); |
AO22X1 U174 ( .IN1(N218), .IN2(n678), .IN3(degrees_tmp1[25]), .IN4(n679), |
.Q(n562) ); |
AO22X1 U175 ( .IN1(N219), .IN2(n224), .IN3(degrees_tmp1[26]), .IN4(n679), |
.Q(n563) ); |
AO22X1 U176 ( .IN1(N220), .IN2(n224), .IN3(degrees_tmp1[27]), .IN4(n679), |
.Q(n564) ); |
AO22X1 U177 ( .IN1(N221), .IN2(n678), .IN3(degrees_tmp1[28]), .IN4(n679), |
.Q(n565) ); |
AO22X1 U178 ( .IN1(N222), .IN2(n224), .IN3(degrees_tmp1[29]), .IN4(n679), |
.Q(n566) ); |
AO22X1 U179 ( .IN1(N223), .IN2(n678), .IN3(degrees_tmp1[30]), .IN4(n679), |
.Q(n567) ); |
AO22X1 U180 ( .IN1(N224), .IN2(n224), .IN3(degrees_tmp1[31]), .IN4(n679), |
.Q(n568) ); |
AOI222X1 U181 ( .IN1(data_csc[63]), .IN2(n821), .IN3(data_cot[63]), .IN4( |
n654), .IN5(data_sec[63]), .IN6(n658), .QN(n226) ); |
AOI222X1 U182 ( .IN1(data_sin[63]), .IN2(n820), .IN3(data_tan[63]), .IN4( |
n649), .IN5(data_cos[63]), .IN6(n645), .QN(n225) ); |
AOI222X1 U183 ( .IN1(data_csc[62]), .IN2(n821), .IN3(data_cot[62]), .IN4( |
n655), .IN5(data_sec[62]), .IN6(n659), .QN(n228) ); |
AOI222X1 U185 ( .IN1(data_csc[61]), .IN2(n821), .IN3(data_cot[61]), .IN4( |
n656), .IN5(data_sec[61]), .IN6(n660), .QN(n230) ); |
AOI222X1 U186 ( .IN1(data_sin[61]), .IN2(n820), .IN3(data_tan[61]), .IN4( |
n649), .IN5(data_cos[61]), .IN6(n646), .QN(n229) ); |
AOI222X1 U187 ( .IN1(data_csc[60]), .IN2(n821), .IN3(data_cot[60]), .IN4( |
n657), .IN5(data_sec[60]), .IN6(n661), .QN(n232) ); |
AOI222X1 U188 ( .IN1(data_sin[60]), .IN2(n820), .IN3(data_tan[60]), .IN4( |
n649), .IN5(data_cos[60]), .IN6(n647), .QN(n231) ); |
AOI222X1 U189 ( .IN1(data_csc[59]), .IN2(n821), .IN3(data_cot[59]), .IN4( |
n657), .IN5(data_sec[59]), .IN6(n658), .QN(n234) ); |
AOI222X1 U190 ( .IN1(data_sin[59]), .IN2(n820), .IN3(data_tan[59]), .IN4( |
n649), .IN5(data_cos[59]), .IN6(n648), .QN(n233) ); |
AOI222X1 U191 ( .IN1(data_csc[58]), .IN2(n821), .IN3(data_cot[58]), .IN4( |
n657), .IN5(data_sec[58]), .IN6(n659), .QN(n236) ); |
AOI222X1 U192 ( .IN1(data_sin[58]), .IN2(n820), .IN3(data_tan[58]), .IN4( |
n649), .IN5(data_cos[58]), .IN6(n648), .QN(n235) ); |
AOI222X1 U193 ( .IN1(data_csc[57]), .IN2(n821), .IN3(data_cot[57]), .IN4( |
n657), .IN5(data_sec[57]), .IN6(n660), .QN(n238) ); |
AOI222X1 U194 ( .IN1(data_sin[57]), .IN2(n820), .IN3(data_tan[57]), .IN4( |
n649), .IN5(data_cos[57]), .IN6(n648), .QN(n237) ); |
AOI222X1 U195 ( .IN1(data_csc[56]), .IN2(n821), .IN3(data_cot[56]), .IN4( |
n657), .IN5(data_sec[56]), .IN6(n661), .QN(n240) ); |
AOI222X1 U196 ( .IN1(data_sin[56]), .IN2(n820), .IN3(data_tan[56]), .IN4( |
n649), .IN5(data_cos[56]), .IN6(n648), .QN(n239) ); |
AOI222X1 U197 ( .IN1(data_csc[55]), .IN2(n821), .IN3(data_cot[55]), .IN4( |
n657), .IN5(data_sec[55]), .IN6(n658), .QN(n242) ); |
AOI222X1 U198 ( .IN1(data_sin[55]), .IN2(n820), .IN3(data_tan[55]), .IN4( |
n649), .IN5(data_cos[55]), .IN6(n648), .QN(n241) ); |
AOI222X1 U199 ( .IN1(data_csc[54]), .IN2(n821), .IN3(data_cot[54]), .IN4( |
n657), .IN5(data_sec[54]), .IN6(n659), .QN(n244) ); |
AOI222X1 U200 ( .IN1(data_sin[54]), .IN2(n820), .IN3(data_tan[54]), .IN4( |
n649), .IN5(data_cos[54]), .IN6(n648), .QN(n243) ); |
AOI222X1 U201 ( .IN1(data_csc[53]), .IN2(n821), .IN3(data_cot[53]), .IN4( |
n657), .IN5(data_sec[53]), .IN6(n660), .QN(n246) ); |
AOI222X1 U202 ( .IN1(data_sin[53]), .IN2(n820), .IN3(data_tan[53]), .IN4( |
n649), .IN5(data_cos[53]), .IN6(n648), .QN(n245) ); |
AOI222X1 U203 ( .IN1(data_csc[52]), .IN2(n821), .IN3(data_cot[52]), .IN4( |
n657), .IN5(data_sec[52]), .IN6(n661), .QN(n248) ); |
AOI222X1 U204 ( .IN1(data_sin[52]), .IN2(n820), .IN3(data_tan[52]), .IN4( |
n649), .IN5(data_cos[52]), .IN6(n648), .QN(n247) ); |
AOI222X1 U205 ( .IN1(data_csc[51]), .IN2(n651), .IN3(data_cot[51]), .IN4( |
n657), .IN5(data_sec[51]), .IN6(n658), .QN(n250) ); |
AOI222X1 U206 ( .IN1(data_sin[51]), .IN2(n820), .IN3(data_tan[51]), .IN4( |
n649), .IN5(data_cos[51]), .IN6(n648), .QN(n249) ); |
AOI222X1 U207 ( .IN1(data_csc[50]), .IN2(n652), .IN3(data_cot[50]), .IN4( |
n657), .IN5(data_sec[50]), .IN6(n659), .QN(n252) ); |
AOI222X1 U208 ( .IN1(data_sin[50]), .IN2(n642), .IN3(data_tan[50]), .IN4( |
n649), .IN5(data_cos[50]), .IN6(n648), .QN(n251) ); |
AOI222X1 U209 ( .IN1(data_csc[49]), .IN2(n653), .IN3(data_cot[49]), .IN4( |
n657), .IN5(data_sec[49]), .IN6(n660), .QN(n254) ); |
AOI222X1 U210 ( .IN1(data_sin[49]), .IN2(n643), .IN3(data_tan[49]), .IN4( |
n649), .IN5(data_cos[49]), .IN6(n648), .QN(n253) ); |
AOI222X1 U211 ( .IN1(data_csc[48]), .IN2(n821), .IN3(data_cot[48]), .IN4( |
n657), .IN5(data_sec[48]), .IN6(n661), .QN(n256) ); |
AOI222X1 U212 ( .IN1(data_sin[48]), .IN2(n644), .IN3(data_tan[48]), .IN4( |
n649), .IN5(data_cos[48]), .IN6(n648), .QN(n255) ); |
AOI222X1 U213 ( .IN1(data_csc[47]), .IN2(n651), .IN3(data_cot[47]), .IN4( |
n654), .IN5(data_sec[47]), .IN6(n661), .QN(n258) ); |
AOI222X1 U214 ( .IN1(data_sin[47]), .IN2(n820), .IN3(data_tan[47]), .IN4( |
n649), .IN5(data_cos[47]), .IN6(n648), .QN(n257) ); |
AOI222X1 U215 ( .IN1(data_csc[46]), .IN2(n652), .IN3(data_cot[46]), .IN4( |
n655), .IN5(data_sec[46]), .IN6(n661), .QN(n260) ); |
AOI222X1 U216 ( .IN1(data_sin[46]), .IN2(n642), .IN3(data_tan[46]), .IN4( |
n649), .IN5(data_cos[46]), .IN6(n645), .QN(n259) ); |
AOI222X1 U217 ( .IN1(data_csc[45]), .IN2(n653), .IN3(data_cot[45]), .IN4( |
n656), .IN5(data_sec[45]), .IN6(n661), .QN(n262) ); |
AOI222X1 U218 ( .IN1(data_sin[45]), .IN2(n643), .IN3(data_tan[45]), .IN4( |
n649), .IN5(data_cos[45]), .IN6(n646), .QN(n261) ); |
AOI222X1 U219 ( .IN1(data_csc[44]), .IN2(n821), .IN3(data_cot[44]), .IN4( |
n657), .IN5(data_sec[44]), .IN6(n661), .QN(n264) ); |
AOI222X1 U220 ( .IN1(data_sin[44]), .IN2(n644), .IN3(data_tan[44]), .IN4( |
n649), .IN5(data_cos[44]), .IN6(n647), .QN(n263) ); |
AOI222X1 U221 ( .IN1(data_csc[43]), .IN2(n651), .IN3(data_cot[43]), .IN4( |
n654), .IN5(data_sec[43]), .IN6(n661), .QN(n266) ); |
AOI222X1 U222 ( .IN1(data_sin[43]), .IN2(n820), .IN3(data_tan[43]), .IN4( |
n649), .IN5(data_cos[43]), .IN6(n648), .QN(n265) ); |
AOI222X1 U223 ( .IN1(data_csc[42]), .IN2(n652), .IN3(data_cot[42]), .IN4( |
n655), .IN5(data_sec[42]), .IN6(n661), .QN(n268) ); |
AOI222X1 U224 ( .IN1(data_sin[42]), .IN2(n642), .IN3(data_tan[42]), .IN4( |
n649), .IN5(data_cos[42]), .IN6(n645), .QN(n267) ); |
AOI222X1 U225 ( .IN1(data_csc[41]), .IN2(n653), .IN3(data_cot[41]), .IN4( |
n656), .IN5(data_sec[41]), .IN6(n661), .QN(n270) ); |
AOI222X1 U226 ( .IN1(data_sin[41]), .IN2(n643), .IN3(data_tan[41]), .IN4( |
n649), .IN5(data_cos[41]), .IN6(n646), .QN(n269) ); |
AOI222X1 U227 ( .IN1(data_csc[40]), .IN2(n821), .IN3(data_cot[40]), .IN4( |
n657), .IN5(data_sec[40]), .IN6(n661), .QN(n272) ); |
AOI222X1 U228 ( .IN1(data_sin[40]), .IN2(n644), .IN3(data_tan[40]), .IN4( |
n649), .IN5(data_cos[40]), .IN6(n647), .QN(n271) ); |
AOI222X1 U229 ( .IN1(data_csc[39]), .IN2(n651), .IN3(data_cot[39]), .IN4( |
n654), .IN5(data_sec[39]), .IN6(n661), .QN(n274) ); |
AOI222X1 U230 ( .IN1(data_sin[39]), .IN2(n820), .IN3(data_tan[39]), .IN4( |
n649), .IN5(data_cos[39]), .IN6(n648), .QN(n273) ); |
AOI222X1 U231 ( .IN1(data_csc[38]), .IN2(n652), .IN3(data_cot[38]), .IN4( |
n655), .IN5(data_sec[38]), .IN6(n661), .QN(n276) ); |
AOI222X1 U232 ( .IN1(data_sin[38]), .IN2(n642), .IN3(data_tan[38]), .IN4( |
n649), .IN5(data_cos[38]), .IN6(n645), .QN(n275) ); |
AOI222X1 U233 ( .IN1(data_csc[37]), .IN2(n653), .IN3(data_cot[37]), .IN4( |
n656), .IN5(data_sec[37]), .IN6(n661), .QN(n278) ); |
AOI222X1 U234 ( .IN1(data_sin[37]), .IN2(n643), .IN3(data_tan[37]), .IN4( |
n649), .IN5(data_cos[37]), .IN6(n646), .QN(n277) ); |
AOI222X1 U235 ( .IN1(data_csc[36]), .IN2(n821), .IN3(data_cot[36]), .IN4( |
n657), .IN5(data_sec[36]), .IN6(n661), .QN(n280) ); |
AOI222X1 U236 ( .IN1(data_sin[36]), .IN2(n644), .IN3(data_tan[36]), .IN4( |
n649), .IN5(data_cos[36]), .IN6(n647), .QN(n279) ); |
AOI222X1 U237 ( .IN1(data_csc[35]), .IN2(n653), .IN3(data_cot[35]), .IN4( |
n656), .IN5(data_sec[35]), .IN6(n660), .QN(n282) ); |
AOI222X1 U238 ( .IN1(data_sin[35]), .IN2(n644), .IN3(data_tan[35]), .IN4( |
n649), .IN5(data_cos[35]), .IN6(n647), .QN(n281) ); |
AOI222X1 U239 ( .IN1(data_csc[34]), .IN2(n653), .IN3(data_cot[34]), .IN4( |
n656), .IN5(data_sec[34]), .IN6(n660), .QN(n284) ); |
AOI222X1 U240 ( .IN1(data_sin[34]), .IN2(n644), .IN3(data_tan[34]), .IN4( |
n649), .IN5(data_cos[34]), .IN6(n647), .QN(n283) ); |
AOI222X1 U241 ( .IN1(data_csc[33]), .IN2(n653), .IN3(data_cot[33]), .IN4( |
n656), .IN5(data_sec[33]), .IN6(n660), .QN(n286) ); |
AOI222X1 U242 ( .IN1(data_sin[33]), .IN2(n644), .IN3(data_tan[33]), .IN4( |
n649), .IN5(data_cos[33]), .IN6(n647), .QN(n285) ); |
AOI222X1 U243 ( .IN1(data_csc[32]), .IN2(n653), .IN3(data_cot[32]), .IN4( |
n656), .IN5(data_sec[32]), .IN6(n660), .QN(n288) ); |
AOI222X1 U244 ( .IN1(data_sin[32]), .IN2(n644), .IN3(data_tan[32]), .IN4( |
n649), .IN5(data_cos[32]), .IN6(n647), .QN(n287) ); |
AOI222X1 U245 ( .IN1(data_csc[31]), .IN2(n653), .IN3(data_cot[31]), .IN4( |
n656), .IN5(data_sec[31]), .IN6(n660), .QN(n290) ); |
AOI222X1 U246 ( .IN1(data_sin[31]), .IN2(n644), .IN3(data_tan[31]), .IN4( |
n649), .IN5(data_cos[31]), .IN6(n647), .QN(n289) ); |
AOI222X1 U247 ( .IN1(data_csc[30]), .IN2(n653), .IN3(data_cot[30]), .IN4( |
n656), .IN5(data_sec[30]), .IN6(n660), .QN(n292) ); |
AOI222X1 U248 ( .IN1(data_sin[30]), .IN2(n644), .IN3(data_tan[30]), .IN4( |
n649), .IN5(data_cos[30]), .IN6(n647), .QN(n291) ); |
AOI222X1 U249 ( .IN1(data_csc[29]), .IN2(n653), .IN3(data_cot[29]), .IN4( |
n656), .IN5(data_sec[29]), .IN6(n660), .QN(n294) ); |
AOI222X1 U250 ( .IN1(data_sin[29]), .IN2(n644), .IN3(data_tan[29]), .IN4( |
n650), .IN5(data_cos[29]), .IN6(n647), .QN(n293) ); |
AOI222X1 U251 ( .IN1(data_csc[28]), .IN2(n653), .IN3(data_cot[28]), .IN4( |
n656), .IN5(data_sec[28]), .IN6(n660), .QN(n296) ); |
AOI222X1 U252 ( .IN1(data_sin[28]), .IN2(n644), .IN3(data_tan[28]), .IN4( |
n650), .IN5(data_cos[28]), .IN6(n647), .QN(n295) ); |
AOI222X1 U253 ( .IN1(data_csc[27]), .IN2(n653), .IN3(data_cot[27]), .IN4( |
n656), .IN5(data_sec[27]), .IN6(n660), .QN(n298) ); |
AOI222X1 U254 ( .IN1(data_sin[27]), .IN2(n644), .IN3(data_tan[27]), .IN4( |
n650), .IN5(data_cos[27]), .IN6(n647), .QN(n297) ); |
AOI222X1 U255 ( .IN1(data_csc[26]), .IN2(n653), .IN3(data_cot[26]), .IN4( |
n656), .IN5(data_sec[26]), .IN6(n660), .QN(n300) ); |
AOI222X1 U256 ( .IN1(data_sin[26]), .IN2(n644), .IN3(data_tan[26]), .IN4( |
n650), .IN5(data_cos[26]), .IN6(n647), .QN(n299) ); |
AOI222X1 U257 ( .IN1(data_csc[25]), .IN2(n653), .IN3(data_cot[25]), .IN4( |
n656), .IN5(data_sec[25]), .IN6(n660), .QN(n302) ); |
AOI222X1 U258 ( .IN1(data_sin[25]), .IN2(n644), .IN3(data_tan[25]), .IN4( |
n650), .IN5(data_cos[25]), .IN6(n647), .QN(n301) ); |
AOI222X1 U259 ( .IN1(data_csc[24]), .IN2(n653), .IN3(data_cot[24]), .IN4( |
n656), .IN5(data_sec[24]), .IN6(n660), .QN(n304) ); |
AOI222X1 U260 ( .IN1(data_sin[24]), .IN2(n644), .IN3(data_tan[24]), .IN4( |
n650), .IN5(data_cos[24]), .IN6(n647), .QN(n303) ); |
AOI222X1 U261 ( .IN1(data_csc[23]), .IN2(n652), .IN3(data_cot[23]), .IN4( |
n655), .IN5(data_sec[23]), .IN6(n659), .QN(n306) ); |
AOI222X1 U262 ( .IN1(data_sin[23]), .IN2(n643), .IN3(data_tan[23]), .IN4( |
n650), .IN5(data_cos[23]), .IN6(n646), .QN(n305) ); |
AOI222X1 U263 ( .IN1(data_csc[22]), .IN2(n652), .IN3(data_cot[22]), .IN4( |
n655), .IN5(data_sec[22]), .IN6(n659), .QN(n308) ); |
AOI222X1 U264 ( .IN1(data_sin[22]), .IN2(n643), .IN3(data_tan[22]), .IN4( |
n650), .IN5(data_cos[22]), .IN6(n646), .QN(n307) ); |
AOI222X1 U265 ( .IN1(data_csc[21]), .IN2(n652), .IN3(data_cot[21]), .IN4( |
n655), .IN5(data_sec[21]), .IN6(n659), .QN(n310) ); |
AOI222X1 U266 ( .IN1(data_sin[21]), .IN2(n643), .IN3(data_tan[21]), .IN4( |
n650), .IN5(data_cos[21]), .IN6(n646), .QN(n309) ); |
AOI222X1 U267 ( .IN1(data_csc[20]), .IN2(n652), .IN3(data_cot[20]), .IN4( |
n655), .IN5(data_sec[20]), .IN6(n659), .QN(n312) ); |
AOI222X1 U268 ( .IN1(data_sin[20]), .IN2(n643), .IN3(data_tan[20]), .IN4( |
n650), .IN5(data_cos[20]), .IN6(n646), .QN(n311) ); |
AOI222X1 U269 ( .IN1(data_csc[19]), .IN2(n652), .IN3(data_cot[19]), .IN4( |
n655), .IN5(data_sec[19]), .IN6(n659), .QN(n314) ); |
AOI222X1 U270 ( .IN1(data_sin[19]), .IN2(n643), .IN3(data_tan[19]), .IN4( |
n650), .IN5(data_cos[19]), .IN6(n646), .QN(n313) ); |
AOI222X1 U271 ( .IN1(data_csc[18]), .IN2(n652), .IN3(data_cot[18]), .IN4( |
n655), .IN5(data_sec[18]), .IN6(n659), .QN(n316) ); |
AOI222X1 U272 ( .IN1(data_sin[18]), .IN2(n643), .IN3(data_tan[18]), .IN4( |
n650), .IN5(data_cos[18]), .IN6(n646), .QN(n315) ); |
AOI222X1 U273 ( .IN1(data_csc[17]), .IN2(n652), .IN3(data_cot[17]), .IN4( |
n655), .IN5(data_sec[17]), .IN6(n659), .QN(n318) ); |
AOI222X1 U274 ( .IN1(data_sin[17]), .IN2(n643), .IN3(data_tan[17]), .IN4( |
n650), .IN5(data_cos[17]), .IN6(n646), .QN(n317) ); |
AOI222X1 U275 ( .IN1(data_csc[16]), .IN2(n652), .IN3(data_cot[16]), .IN4( |
n655), .IN5(data_sec[16]), .IN6(n659), .QN(n320) ); |
AOI222X1 U276 ( .IN1(data_sin[16]), .IN2(n643), .IN3(data_tan[16]), .IN4( |
n650), .IN5(data_cos[16]), .IN6(n646), .QN(n319) ); |
AOI222X1 U277 ( .IN1(data_csc[15]), .IN2(n652), .IN3(data_cot[15]), .IN4( |
n655), .IN5(data_sec[15]), .IN6(n659), .QN(n322) ); |
AOI222X1 U278 ( .IN1(data_sin[15]), .IN2(n643), .IN3(data_tan[15]), .IN4( |
n650), .IN5(data_cos[15]), .IN6(n646), .QN(n321) ); |
AOI222X1 U279 ( .IN1(data_csc[14]), .IN2(n652), .IN3(data_cot[14]), .IN4( |
n655), .IN5(data_sec[14]), .IN6(n659), .QN(n324) ); |
AOI222X1 U280 ( .IN1(data_sin[14]), .IN2(n643), .IN3(data_tan[14]), .IN4( |
n650), .IN5(data_cos[14]), .IN6(n646), .QN(n323) ); |
AOI222X1 U281 ( .IN1(data_csc[13]), .IN2(n652), .IN3(data_cot[13]), .IN4( |
n655), .IN5(data_sec[13]), .IN6(n659), .QN(n326) ); |
AOI222X1 U282 ( .IN1(data_sin[13]), .IN2(n643), .IN3(data_tan[13]), .IN4( |
n650), .IN5(data_cos[13]), .IN6(n646), .QN(n325) ); |
AOI222X1 U283 ( .IN1(data_csc[12]), .IN2(n652), .IN3(data_cot[12]), .IN4( |
n655), .IN5(data_sec[12]), .IN6(n659), .QN(n328) ); |
AOI222X1 U284 ( .IN1(data_sin[12]), .IN2(n643), .IN3(data_tan[12]), .IN4( |
n650), .IN5(data_cos[12]), .IN6(n646), .QN(n327) ); |
AOI222X1 U285 ( .IN1(data_csc[11]), .IN2(n651), .IN3(data_cot[11]), .IN4( |
n654), .IN5(data_sec[11]), .IN6(n658), .QN(n330) ); |
AOI222X1 U286 ( .IN1(data_sin[11]), .IN2(n642), .IN3(data_tan[11]), .IN4( |
n650), .IN5(data_cos[11]), .IN6(n645), .QN(n329) ); |
AOI222X1 U287 ( .IN1(data_csc[10]), .IN2(n651), .IN3(data_cot[10]), .IN4( |
n654), .IN5(data_sec[10]), .IN6(n658), .QN(n332) ); |
AOI222X1 U288 ( .IN1(data_sin[10]), .IN2(n642), .IN3(data_tan[10]), .IN4( |
n650), .IN5(data_cos[10]), .IN6(n645), .QN(n331) ); |
AOI222X1 U289 ( .IN1(data_csc[9]), .IN2(n651), .IN3(data_cot[9]), .IN4(n654), |
.IN5(data_sec[9]), .IN6(n658), .QN(n334) ); |
AOI222X1 U290 ( .IN1(data_sin[9]), .IN2(n642), .IN3(data_tan[9]), .IN4(n650), |
.IN5(data_cos[9]), .IN6(n645), .QN(n333) ); |
AOI222X1 U291 ( .IN1(data_csc[8]), .IN2(n651), .IN3(data_cot[8]), .IN4(n654), |
.IN5(data_sec[8]), .IN6(n658), .QN(n336) ); |
AOI222X1 U292 ( .IN1(data_sin[8]), .IN2(n642), .IN3(data_tan[8]), .IN4(n650), |
.IN5(data_cos[8]), .IN6(n645), .QN(n335) ); |
AOI222X1 U293 ( .IN1(data_csc[7]), .IN2(n651), .IN3(data_cot[7]), .IN4(n654), |
.IN5(data_sec[7]), .IN6(n658), .QN(n338) ); |
AOI222X1 U294 ( .IN1(data_sin[7]), .IN2(n642), .IN3(data_tan[7]), .IN4(n650), |
.IN5(data_cos[7]), .IN6(n645), .QN(n337) ); |
AOI222X1 U295 ( .IN1(data_csc[6]), .IN2(n651), .IN3(data_cot[6]), .IN4(n654), |
.IN5(data_sec[6]), .IN6(n658), .QN(n340) ); |
AOI222X1 U296 ( .IN1(data_sin[6]), .IN2(n642), .IN3(data_tan[6]), .IN4(n650), |
.IN5(data_cos[6]), .IN6(n645), .QN(n339) ); |
AOI222X1 U297 ( .IN1(data_csc[5]), .IN2(n651), .IN3(data_cot[5]), .IN4(n654), |
.IN5(data_sec[5]), .IN6(n658), .QN(n342) ); |
AOI222X1 U298 ( .IN1(data_sin[5]), .IN2(n642), .IN3(data_tan[5]), .IN4(n650), |
.IN5(data_cos[5]), .IN6(n645), .QN(n341) ); |
AOI222X1 U299 ( .IN1(data_csc[4]), .IN2(n651), .IN3(data_cot[4]), .IN4(n654), |
.IN5(data_sec[4]), .IN6(n658), .QN(n344) ); |
AOI222X1 U300 ( .IN1(data_sin[4]), .IN2(n642), .IN3(data_tan[4]), .IN4(n650), |
.IN5(data_cos[4]), .IN6(n645), .QN(n343) ); |
AOI222X1 U301 ( .IN1(data_csc[3]), .IN2(n651), .IN3(data_cot[3]), .IN4(n654), |
.IN5(data_sec[3]), .IN6(n658), .QN(n346) ); |
AOI222X1 U302 ( .IN1(data_sin[3]), .IN2(n642), .IN3(data_tan[3]), .IN4(n650), |
.IN5(data_cos[3]), .IN6(n645), .QN(n345) ); |
AOI222X1 U303 ( .IN1(data_csc[2]), .IN2(n651), .IN3(data_cot[2]), .IN4(n654), |
.IN5(data_sec[2]), .IN6(n658), .QN(n348) ); |
AOI222X1 U304 ( .IN1(data_sin[2]), .IN2(n642), .IN3(data_tan[2]), .IN4(n650), |
.IN5(data_cos[2]), .IN6(n645), .QN(n347) ); |
AOI222X1 U305 ( .IN1(data_csc[1]), .IN2(n651), .IN3(data_cot[1]), .IN4(n654), |
.IN5(data_sec[1]), .IN6(n658), .QN(n350) ); |
AOI222X1 U306 ( .IN1(data_sin[1]), .IN2(n642), .IN3(data_tan[1]), .IN4(n650), |
.IN5(data_cos[1]), .IN6(n645), .QN(n349) ); |
AOI222X1 U307 ( .IN1(data_csc[0]), .IN2(n651), .IN3(data_cot[0]), .IN4(n654), |
.IN5(data_sec[0]), .IN6(n658), .QN(n352) ); |
AOI222X1 U308 ( .IN1(data_sin[0]), .IN2(n642), .IN3(data_tan[0]), .IN4(n650), |
.IN5(data_cos[0]), .IN6(n645), .QN(n351) ); |
NAND3X0 U309 ( .IN1(actv[0]), .IN2(n823), .IN3(actv[2]), .QN(n354) ); |
NAND3X0 U310 ( .IN1(n824), .IN2(n823), .IN3(actv[2]), .QN(n353) ); |
NAND3X0 U311 ( .IN1(actv[0]), .IN2(n822), .IN3(actv[1]), .QN(n355) ); |
OR3X1 U312 ( .IN1(n676), .IN2(n224), .IN3(n674), .Q(N357) ); |
OR4X1 U313 ( .IN1(n672), .IN2(n676), .IN3(n670), .IN4(n668), .Q(N356) ); |
AO22X1 U316 ( .IN1(N323), .IN2(n668), .IN3(degrees[31]), .IN4(n665), .Q(n368) ); |
AO22X1 U318 ( .IN1(N91), .IN2(n676), .IN3(N124), .IN4(n674), .Q(n371) ); |
OR2X1 U319 ( .IN1(n372), .IN2(n373), .Q(N354) ); |
AO221X1 U320 ( .IN1(n666), .IN2(degrees_tmp1[30]), .IN3(N257), .IN4(n670), |
.IN5(n374), .Q(n373) ); |
AO22X1 U321 ( .IN1(N322), .IN2(n668), .IN3(degrees[30]), .IN4(n665), .Q(n374) ); |
AO221X1 U322 ( .IN1(divider_out[30]), .IN2(n663), .IN3(N156), .IN4(n673), |
.IN5(n375), .Q(n372) ); |
AO22X1 U323 ( .IN1(N90), .IN2(n677), .IN3(N123), .IN4(n675), .Q(n375) ); |
OR2X1 U324 ( .IN1(n376), .IN2(n377), .Q(N353) ); |
AO221X1 U325 ( .IN1(n666), .IN2(degrees_tmp1[29]), .IN3(N256), .IN4(n670), |
.IN5(n378), .Q(n377) ); |
AO22X1 U326 ( .IN1(N321), .IN2(n668), .IN3(degrees[29]), .IN4(n665), .Q(n378) ); |
AO221X1 U327 ( .IN1(divider_out[29]), .IN2(n663), .IN3(N155), .IN4(n673), |
.IN5(n379), .Q(n376) ); |
AO22X1 U328 ( .IN1(N89), .IN2(n677), .IN3(N122), .IN4(n675), .Q(n379) ); |
OR2X1 U329 ( .IN1(n380), .IN2(n381), .Q(N352) ); |
AO221X1 U330 ( .IN1(n666), .IN2(degrees_tmp1[28]), .IN3(N255), .IN4(n670), |
.IN5(n382), .Q(n381) ); |
AO22X1 U331 ( .IN1(N320), .IN2(n668), .IN3(degrees[28]), .IN4(n665), .Q(n382) ); |
AO221X1 U332 ( .IN1(divider_out[28]), .IN2(n663), .IN3(N154), .IN4(n673), |
.IN5(n383), .Q(n380) ); |
AO22X1 U333 ( .IN1(N88), .IN2(n677), .IN3(N121), .IN4(n675), .Q(n383) ); |
OR2X1 U334 ( .IN1(n384), .IN2(n385), .Q(N351) ); |
AO221X1 U335 ( .IN1(n666), .IN2(degrees_tmp1[27]), .IN3(N254), .IN4(n670), |
.IN5(n386), .Q(n385) ); |
AO22X1 U336 ( .IN1(N319), .IN2(n668), .IN3(degrees[27]), .IN4(n665), .Q(n386) ); |
AO221X1 U337 ( .IN1(divider_out[27]), .IN2(n663), .IN3(N153), .IN4(n673), |
.IN5(n387), .Q(n384) ); |
AO22X1 U338 ( .IN1(N87), .IN2(n677), .IN3(N120), .IN4(n675), .Q(n387) ); |
OR2X1 U339 ( .IN1(n388), .IN2(n389), .Q(N350) ); |
AO221X1 U340 ( .IN1(n666), .IN2(degrees_tmp1[26]), .IN3(N253), .IN4(n670), |
.IN5(n390), .Q(n389) ); |
AO22X1 U341 ( .IN1(N318), .IN2(n668), .IN3(degrees[26]), .IN4(n665), .Q(n390) ); |
AO221X1 U342 ( .IN1(divider_out[26]), .IN2(n663), .IN3(N152), .IN4(n673), |
.IN5(n391), .Q(n388) ); |
AO22X1 U343 ( .IN1(N86), .IN2(n677), .IN3(N119), .IN4(n675), .Q(n391) ); |
NAND3X0 U344 ( .IN1(n824), .IN2(n822), .IN3(actv[1]), .QN(n357) ); |
OR2X1 U345 ( .IN1(n392), .IN2(n393), .Q(N349) ); |
AO221X1 U346 ( .IN1(n666), .IN2(degrees_tmp1[25]), .IN3(N252), .IN4(n670), |
.IN5(n394), .Q(n393) ); |
AO22X1 U347 ( .IN1(N317), .IN2(n668), .IN3(degrees[25]), .IN4(n665), .Q(n394) ); |
AO221X1 U348 ( .IN1(divider_out[25]), .IN2(n663), .IN3(N151), .IN4(n673), |
.IN5(n395), .Q(n392) ); |
AO22X1 U349 ( .IN1(N85), .IN2(n677), .IN3(N118), .IN4(n675), .Q(n395) ); |
OR2X1 U350 ( .IN1(n396), .IN2(n397), .Q(N348) ); |
AO221X1 U351 ( .IN1(n666), .IN2(degrees_tmp1[24]), .IN3(N251), .IN4(n670), |
.IN5(n398), .Q(n397) ); |
AO22X1 U352 ( .IN1(N316), .IN2(n668), .IN3(degrees[24]), .IN4(n665), .Q(n398) ); |
AO221X1 U353 ( .IN1(divider_out[24]), .IN2(n663), .IN3(N150), .IN4(n672), |
.IN5(n399), .Q(n396) ); |
AO22X1 U354 ( .IN1(N84), .IN2(n677), .IN3(N117), .IN4(n674), .Q(n399) ); |
OR2X1 U355 ( .IN1(n400), .IN2(n401), .Q(N347) ); |
AO221X1 U356 ( .IN1(n666), .IN2(degrees_tmp1[23]), .IN3(N250), .IN4(n670), |
.IN5(n402), .Q(n401) ); |
AO22X1 U357 ( .IN1(N315), .IN2(n668), .IN3(degrees[23]), .IN4(n665), .Q(n402) ); |
AO221X1 U358 ( .IN1(divider_out[23]), .IN2(n663), .IN3(N149), .IN4(n673), |
.IN5(n403), .Q(n400) ); |
AO22X1 U359 ( .IN1(N83), .IN2(n677), .IN3(N116), .IN4(n674), .Q(n403) ); |
OR2X1 U360 ( .IN1(n404), .IN2(n405), .Q(N346) ); |
AO221X1 U361 ( .IN1(n666), .IN2(degrees_tmp1[22]), .IN3(N249), .IN4(n670), |
.IN5(n406), .Q(n405) ); |
AO22X1 U362 ( .IN1(N314), .IN2(n668), .IN3(degrees[22]), .IN4(n665), .Q(n406) ); |
AO221X1 U363 ( .IN1(divider_out[22]), .IN2(n663), .IN3(N148), .IN4(n673), |
.IN5(n407), .Q(n404) ); |
AO22X1 U364 ( .IN1(N82), .IN2(n677), .IN3(N115), .IN4(n674), .Q(n407) ); |
OR2X1 U365 ( .IN1(n408), .IN2(n409), .Q(N345) ); |
AO221X1 U366 ( .IN1(n666), .IN2(degrees_tmp1[21]), .IN3(N248), .IN4(n670), |
.IN5(n410), .Q(n409) ); |
AO22X1 U367 ( .IN1(N313), .IN2(n668), .IN3(degrees[21]), .IN4(n665), .Q(n410) ); |
AO221X1 U368 ( .IN1(divider_out[21]), .IN2(n663), .IN3(N147), .IN4(n673), |
.IN5(n411), .Q(n408) ); |
AO22X1 U369 ( .IN1(N81), .IN2(n677), .IN3(N114), .IN4(n674), .Q(n411) ); |
OR2X1 U370 ( .IN1(n412), .IN2(n413), .Q(N344) ); |
AO221X1 U371 ( .IN1(n666), .IN2(degrees_tmp1[20]), .IN3(N247), .IN4(n670), |
.IN5(n414), .Q(n413) ); |
AO22X1 U372 ( .IN1(N312), .IN2(n668), .IN3(degrees[20]), .IN4(n665), .Q(n414) ); |
AO221X1 U373 ( .IN1(divider_out[20]), .IN2(n663), .IN3(N146), .IN4(n672), |
.IN5(n415), .Q(n412) ); |
AO22X1 U374 ( .IN1(N80), .IN2(n677), .IN3(N113), .IN4(n674), .Q(n415) ); |
OR2X1 U375 ( .IN1(n416), .IN2(n417), .Q(N343) ); |
AO221X1 U376 ( .IN1(n667), .IN2(degrees_tmp1[19]), .IN3(N246), .IN4(n670), |
.IN5(n418), .Q(n417) ); |
AO22X1 U377 ( .IN1(N311), .IN2(n668), .IN3(degrees[19]), .IN4(n665), .Q(n418) ); |
AO221X1 U378 ( .IN1(divider_out[19]), .IN2(n663), .IN3(N145), .IN4(n672), |
.IN5(n419), .Q(n416) ); |
AO22X1 U379 ( .IN1(N79), .IN2(n677), .IN3(N112), .IN4(n674), .Q(n419) ); |
OR2X1 U380 ( .IN1(n420), .IN2(n421), .Q(N342) ); |
AO221X1 U381 ( .IN1(n667), .IN2(degrees_tmp1[18]), .IN3(N245), .IN4(n670), |
.IN5(n422), .Q(n421) ); |
AO22X1 U382 ( .IN1(N310), .IN2(n668), .IN3(degrees[18]), .IN4(n664), .Q(n422) ); |
AO221X1 U383 ( .IN1(divider_out[18]), .IN2(n663), .IN3(N144), .IN4(n672), |
.IN5(n423), .Q(n420) ); |
AO22X1 U384 ( .IN1(N78), .IN2(n677), .IN3(N111), .IN4(n674), .Q(n423) ); |
OR2X1 U385 ( .IN1(n424), .IN2(n425), .Q(N341) ); |
AO221X1 U386 ( .IN1(n667), .IN2(degrees_tmp1[17]), .IN3(N244), .IN4(n670), |
.IN5(n426), .Q(n425) ); |
AO22X1 U387 ( .IN1(N309), .IN2(n668), .IN3(degrees[17]), .IN4(n664), .Q(n426) ); |
AO221X1 U388 ( .IN1(divider_out[17]), .IN2(n663), .IN3(N143), .IN4(n672), |
.IN5(n427), .Q(n424) ); |
AO22X1 U389 ( .IN1(N77), .IN2(n677), .IN3(N110), .IN4(n674), .Q(n427) ); |
OR2X1 U390 ( .IN1(n428), .IN2(n429), .Q(N340) ); |
AO221X1 U391 ( .IN1(n667), .IN2(degrees_tmp1[16]), .IN3(N243), .IN4(n670), |
.IN5(n430), .Q(n429) ); |
AO22X1 U392 ( .IN1(N308), .IN2(n668), .IN3(degrees[16]), .IN4(n664), .Q(n430) ); |
AO221X1 U393 ( .IN1(divider_out[16]), .IN2(n663), .IN3(N142), .IN4(n672), |
.IN5(n431), .Q(n428) ); |
AO22X1 U394 ( .IN1(N76), .IN2(n677), .IN3(N109), .IN4(n674), .Q(n431) ); |
NAND3X0 U395 ( .IN1(n823), .IN2(n822), .IN3(actv[0]), .QN(n356) ); |
OR2X1 U396 ( .IN1(n432), .IN2(n433), .Q(N339) ); |
AO221X1 U397 ( .IN1(n667), .IN2(degrees_tmp1[15]), .IN3(N242), .IN4(n671), |
.IN5(n434), .Q(n433) ); |
AO22X1 U398 ( .IN1(N307), .IN2(n668), .IN3(degrees[15]), .IN4(n664), .Q(n434) ); |
AO221X1 U399 ( .IN1(divider_out[15]), .IN2(n663), .IN3(N141), .IN4(n672), |
.IN5(n435), .Q(n432) ); |
AO22X1 U400 ( .IN1(N75), .IN2(n676), .IN3(N108), .IN4(n674), .Q(n435) ); |
OR2X1 U401 ( .IN1(n436), .IN2(n437), .Q(N338) ); |
AO221X1 U402 ( .IN1(n667), .IN2(degrees_tmp1[14]), .IN3(N241), .IN4(n671), |
.IN5(n438), .Q(n437) ); |
AO22X1 U403 ( .IN1(N306), .IN2(n668), .IN3(degrees[14]), .IN4(n664), .Q(n438) ); |
AO221X1 U404 ( .IN1(divider_out[14]), .IN2(n663), .IN3(N140), .IN4(n672), |
.IN5(n439), .Q(n436) ); |
AO22X1 U405 ( .IN1(N74), .IN2(n676), .IN3(N107), .IN4(n674), .Q(n439) ); |
OR2X1 U406 ( .IN1(n440), .IN2(n441), .Q(N337) ); |
AO221X1 U407 ( .IN1(n667), .IN2(degrees_tmp1[13]), .IN3(N240), .IN4(n671), |
.IN5(n442), .Q(n441) ); |
AO22X1 U408 ( .IN1(N305), .IN2(n668), .IN3(degrees[13]), .IN4(n664), .Q(n442) ); |
AO221X1 U409 ( .IN1(divider_out[13]), .IN2(n663), .IN3(N139), .IN4(n672), |
.IN5(n443), .Q(n440) ); |
AO22X1 U410 ( .IN1(N73), .IN2(n676), .IN3(N106), .IN4(n674), .Q(n443) ); |
OR2X1 U411 ( .IN1(n444), .IN2(n445), .Q(N336) ); |
AO221X1 U412 ( .IN1(n667), .IN2(degrees_tmp1[12]), .IN3(N239), .IN4(n671), |
.IN5(n446), .Q(n445) ); |
AO22X1 U413 ( .IN1(N304), .IN2(n668), .IN3(degrees[12]), .IN4(n664), .Q(n446) ); |
AO221X1 U414 ( .IN1(divider_out[12]), .IN2(n662), .IN3(N138), .IN4(n672), |
.IN5(n447), .Q(n444) ); |
AO22X1 U415 ( .IN1(N72), .IN2(n676), .IN3(N105), .IN4(n674), .Q(n447) ); |
OR2X1 U416 ( .IN1(n448), .IN2(n449), .Q(N335) ); |
AO221X1 U417 ( .IN1(n667), .IN2(degrees_tmp1[11]), .IN3(N238), .IN4(n671), |
.IN5(n450), .Q(n449) ); |
AO22X1 U418 ( .IN1(N303), .IN2(n669), .IN3(degrees[11]), .IN4(n664), .Q(n450) ); |
AO221X1 U419 ( .IN1(divider_out[11]), .IN2(n662), .IN3(N137), .IN4(n672), |
.IN5(n451), .Q(n448) ); |
AO22X1 U420 ( .IN1(N71), .IN2(n676), .IN3(N104), .IN4(n674), .Q(n451) ); |
OR2X1 U421 ( .IN1(n452), .IN2(n453), .Q(N334) ); |
AO221X1 U422 ( .IN1(n667), .IN2(degrees_tmp1[10]), .IN3(N237), .IN4(n671), |
.IN5(n454), .Q(n453) ); |
AO22X1 U423 ( .IN1(N302), .IN2(n669), .IN3(degrees[10]), .IN4(n664), .Q(n454) ); |
AO221X1 U424 ( .IN1(divider_out[10]), .IN2(n662), .IN3(N136), .IN4(n672), |
.IN5(n455), .Q(n452) ); |
AO22X1 U425 ( .IN1(N70), .IN2(n676), .IN3(N103), .IN4(n674), .Q(n455) ); |
OR2X1 U426 ( .IN1(n456), .IN2(n457), .Q(N333) ); |
AO221X1 U427 ( .IN1(n667), .IN2(degrees_tmp1[9]), .IN3(N236), .IN4(n671), |
.IN5(n458), .Q(n457) ); |
AO22X1 U428 ( .IN1(N301), .IN2(n669), .IN3(degrees[9]), .IN4(n664), .Q(n458) |
); |
AO221X1 U429 ( .IN1(divider_out[9]), .IN2(n662), .IN3(N135), .IN4(n672), |
.IN5(n459), .Q(n456) ); |
AO22X1 U430 ( .IN1(N69), .IN2(n676), .IN3(N102), .IN4(n674), .Q(n459) ); |
OR2X1 U431 ( .IN1(n460), .IN2(n461), .Q(N332) ); |
AO221X1 U432 ( .IN1(n667), .IN2(degrees_tmp1[8]), .IN3(N235), .IN4(n671), |
.IN5(n462), .Q(n461) ); |
AO22X1 U433 ( .IN1(N300), .IN2(n669), .IN3(n664), .IN4(degrees[8]), .Q(n462) |
); |
AO221X1 U434 ( .IN1(N101), .IN2(n675), .IN3(N68), .IN4(n676), .IN5(n463), |
.Q(n460) ); |
AO22X1 U435 ( .IN1(N134), .IN2(n673), .IN3(n662), .IN4(divider_out[8]), .Q( |
n463) ); |
OR2X1 U436 ( .IN1(n464), .IN2(n465), .Q(N331) ); |
AO221X1 U437 ( .IN1(n667), .IN2(degrees_tmp1[7]), .IN3(N234), .IN4(n671), |
.IN5(n466), .Q(n465) ); |
AO22X1 U438 ( .IN1(N299), .IN2(n669), .IN3(n665), .IN4(degrees[7]), .Q(n466) |
); |
AO221X1 U439 ( .IN1(N100), .IN2(n675), .IN3(N67), .IN4(n676), .IN5(n467), |
.Q(n464) ); |
AO22X1 U440 ( .IN1(N133), .IN2(n673), .IN3(n662), .IN4(divider_out[7]), .Q( |
n467) ); |
OR2X1 U441 ( .IN1(n468), .IN2(n469), .Q(N330) ); |
AO221X1 U442 ( .IN1(n666), .IN2(degrees_tmp1[6]), .IN3(N233), .IN4(n671), |
.IN5(n470), .Q(n469) ); |
AO22X1 U443 ( .IN1(N298), .IN2(n669), .IN3(n664), .IN4(degrees[6]), .Q(n470) |
); |
AO221X1 U444 ( .IN1(divider_out[6]), .IN2(n662), .IN3(N132), .IN4(n672), |
.IN5(n471), .Q(n468) ); |
AO22X1 U445 ( .IN1(N66), .IN2(n676), .IN3(N99), .IN4(n674), .Q(n471) ); |
NAND3X0 U446 ( .IN1(n823), .IN2(n822), .IN3(n824), .QN(n358) ); |
OR2X1 U447 ( .IN1(n472), .IN2(n473), .Q(N329) ); |
AO221X1 U448 ( .IN1(n667), .IN2(degrees_tmp1[5]), .IN3(N232), .IN4(n671), |
.IN5(n474), .Q(n473) ); |
AO22X1 U449 ( .IN1(N297), .IN2(n669), .IN3(n665), .IN4(degrees[5]), .Q(n474) |
); |
AO221X1 U450 ( .IN1(N98), .IN2(n675), .IN3(N65), .IN4(n676), .IN5(n475), .Q( |
n472) ); |
AO22X1 U451 ( .IN1(N131), .IN2(n673), .IN3(n662), .IN4(divider_out[5]), .Q( |
n475) ); |
OR2X1 U452 ( .IN1(n476), .IN2(n477), .Q(N328) ); |
AO221X1 U453 ( .IN1(n666), .IN2(degrees_tmp1[4]), .IN3(N231), .IN4(n671), |
.IN5(n478), .Q(n477) ); |
AO22X1 U454 ( .IN1(N296), .IN2(n669), .IN3(n664), .IN4(degrees[4]), .Q(n478) |
); |
AO221X1 U455 ( .IN1(N97), .IN2(n675), .IN3(N64), .IN4(n676), .IN5(n479), .Q( |
n476) ); |
AO22X1 U456 ( .IN1(N130), .IN2(n673), .IN3(n662), .IN4(divider_out[4]), .Q( |
n479) ); |
OR2X1 U457 ( .IN1(n480), .IN2(n481), .Q(N327) ); |
AO221X1 U458 ( .IN1(n667), .IN2(degrees_tmp1[3]), .IN3(N230), .IN4(n671), |
.IN5(n482), .Q(n481) ); |
AO22X1 U459 ( .IN1(N295), .IN2(n669), .IN3(n665), .IN4(degrees[3]), .Q(n482) |
); |
AO221X1 U460 ( .IN1(N96), .IN2(n675), .IN3(N63), .IN4(n676), .IN5(n483), .Q( |
n480) ); |
AO22X1 U461 ( .IN1(N129), .IN2(n673), .IN3(n662), .IN4(divider_out[3]), .Q( |
n483) ); |
OR2X1 U462 ( .IN1(n484), .IN2(n485), .Q(N326) ); |
AO221X1 U463 ( .IN1(n666), .IN2(degrees_tmp1[2]), .IN3(N229), .IN4(n671), |
.IN5(n486), .Q(n485) ); |
AO22X1 U464 ( .IN1(N294), .IN2(n669), .IN3(n664), .IN4(degrees[2]), .Q(n486) |
); |
AO221X1 U465 ( .IN1(N95), .IN2(n675), .IN3(N62), .IN4(n676), .IN5(n487), .Q( |
n484) ); |
OR2X1 U467 ( .IN1(n488), .IN2(n489), .Q(N325) ); |
AO221X1 U468 ( .IN1(n667), .IN2(n639), .IN3(N228), .IN4(n671), .IN5(n490), |
.Q(n489) ); |
AO22X1 U469 ( .IN1(N293), .IN2(n669), .IN3(degrees[1]), .IN4(n664), .Q(n490) |
); |
AO221X1 U470 ( .IN1(N94), .IN2(n675), .IN3(N61), .IN4(n676), .IN5(n491), .Q( |
n488) ); |
OR2X1 U472 ( .IN1(n492), .IN2(n493), .Q(N324) ); |
AO221X1 U473 ( .IN1(n666), .IN2(degrees_tmp1[0]), .IN3(N227), .IN4(n671), |
.IN5(n494), .Q(n493) ); |
AO22X1 U474 ( .IN1(N292), .IN2(n669), .IN3(degrees[0]), .IN4(n664), .Q(n494) |
); |
AO21X1 U477 ( .IN1(n498), .IN2(n499), .IN3(N44), .Q(n497) ); |
OR4X1 U478 ( .IN1(degrees[28]), .IN2(degrees[29]), .IN3(degrees[30]), .IN4( |
degrees[31]), .Q(n501) ); |
OR4X1 U479 ( .IN1(degrees[3]), .IN2(degrees[6]), .IN3(degrees[8]), .IN4( |
degrees[9]), .Q(n500) ); |
NAND4X0 U480 ( .IN1(degrees[7]), .IN2(degrees[4]), .IN3(degrees[2]), .IN4( |
degrees[5]), .QN(n507) ); |
AO21X1 U482 ( .IN1(n509), .IN2(n510), .IN3(N41), .Q(n508) ); |
NAND4X0 U483 ( .IN1(n806), .IN2(n805), .IN3(n804), .IN4(n803), .QN(n503) ); |
NAND4X0 U484 ( .IN1(n802), .IN2(n801), .IN3(n800), .IN4(n799), .QN(n502) ); |
OR4X1 U485 ( .IN1(degrees[28]), .IN2(degrees[29]), .IN3(degrees[2]), .IN4( |
degrees[30]), .Q(n512) ); |
OR4X1 U486 ( .IN1(degrees[31]), .IN2(degrees[4]), .IN3(degrees[7]), .IN4( |
degrees[9]), .Q(n511) ); |
NAND4X0 U487 ( .IN1(degrees[8]), .IN2(degrees[6]), .IN3(degrees[5]), .IN4( |
degrees[3]), .QN(n513) ); |
NAND4X0 U488 ( .IN1(n818), .IN2(n816), .IN3(n815), .IN4(n814), .QN(n506) ); |
NAND4X0 U489 ( .IN1(n813), .IN2(n812), .IN3(n811), .IN4(n810), .QN(n505) ); |
NAND4X0 U490 ( .IN1(n809), .IN2(n808), .IN3(n807), .IN4(n817), .QN(n504) ); |
AO221X1 U491 ( .IN1(divider_out[0]), .IN2(n662), .IN3(N126), .IN4(n673), |
.IN5(n514), .Q(n492) ); |
AO21X1 U495 ( .IN1(n518), .IN2(n519), .IN3(N52), .Q(n517) ); |
OR4X1 U496 ( .IN1(divider_out[21]), .IN2(divider_out[22]), .IN3( |
divider_out[23]), .IN4(divider_out[24]), .Q(n523) ); |
OR4X1 U497 ( .IN1(divider_out[25]), .IN2(divider_out[26]), .IN3( |
divider_out[27]), .IN4(divider_out[28]), .Q(n522) ); |
OR4X1 U498 ( .IN1(divider_out[29]), .IN2(divider_out[30]), .IN3( |
divider_out[31]), .IN4(divider_out[4]), .Q(n521) ); |
OR4X1 U499 ( .IN1(divider_out[5]), .IN2(divider_out[6]), .IN3(divider_out[7]), .IN4(divider_out[9]), .Q(n520) ); |
OR4X1 U501 ( .IN1(divider_out[17]), .IN2(divider_out[18]), .IN3( |
divider_out[19]), .IN4(divider_out[20]), .Q(n524) ); |
AO21X1 U502 ( .IN1(n529), .IN2(n530), .IN3(N55), .Q(n528) ); |
OR4X1 U503 ( .IN1(divider_out[20]), .IN2(divider_out[21]), .IN3( |
divider_out[22]), .IN4(divider_out[23]), .Q(n534) ); |
OR4X1 U504 ( .IN1(divider_out[24]), .IN2(divider_out[25]), .IN3( |
divider_out[26]), .IN4(divider_out[27]), .Q(n533) ); |
OR4X1 U505 ( .IN1(divider_out[28]), .IN2(divider_out[29]), .IN3( |
divider_out[30]), .IN4(divider_out[31]), .Q(n532) ); |
OR4X1 U506 ( .IN1(divider_out[3]), .IN2(divider_out[6]), .IN3(divider_out[8]), .IN4(divider_out[9]), .Q(n531) ); |
NAND4X0 U507 ( .IN1(divider_out[7]), .IN2(divider_out[5]), .IN3( |
divider_out[4]), .IN4(divider_out[2]), .QN(n536) ); |
NAND4X0 U508 ( .IN1(n796), .IN2(n795), .IN3(n794), .IN4(n793), .QN(n526) ); |
NAND4X0 U509 ( .IN1(n792), .IN2(n791), .IN3(n790), .IN4(n789), .QN(n525) ); |
sine_lut a1 ( .quad(quad), .enable(sin_enable), .degrees(degrees_tmp2), |
.data({data_sin[63], SYNOPSYS_UNCONNECTED__0, data_sin[61:0]}), .rst( |
rst), .clk(clk) ); |
cosine_lut a2 ( .quad(quad), .enable(cos_enable), .degrees(degrees_tmp2), |
.data({data_cos[63], SYNOPSYS_UNCONNECTED__1, data_cos[61:0]}), .rst( |
rst), .clk(clk) ); |
tangent_lut a3 ( .quad(quad), .enable(tan_enable), .degrees(degrees_tmp2), |
.data(data_tan), .rst(rst), .clk(clk) ); |
cosecant_lut a4 ( .quad(quad), .enable(csc_enable), .degrees(degrees_tmp2), |
.data(data_csc), .rst(rst), .clk(clk) ); |
secant_lut a5 ( .quad(quad), .enable(sec_enable), .degrees(degrees_tmp2), |
.data(data_sec), .rst(rst), .clk(clk) ); |
cotangent_lut a6 ( .quad(quad), .enable(cot_enable), .degrees(degrees_tmp2), |
.data(data_cot), .rst(rst), .clk(clk) ); |
dividor a7 ( .clk(clk), .inp(degrees), .rst(rst), .out(divider_out) ); |
top_DW01_sub_0 sub_187 ( .A({1'b0, 1'b0, 1'b0, 1'b0, 1'b0, 1'b0, 1'b0, 1'b0, |
1'b0, 1'b0, 1'b0, 1'b0, 1'b0, 1'b0, 1'b0, 1'b0, 1'b0, 1'b0, 1'b0, 1'b0, |
1'b0, 1'b0, 1'b0, 1'b0, 1'b1, 1'b0, 1'b1, 1'b1, 1'b0, 1'b1, 1'b0, 1'b0}), .B(degrees), .CI(1'b0), .DIFF({N323, N322, N321, N320, N319, N318, N317, |
N316, N315, N314, N313, N312, N311, N310, N309, N308, N307, N306, N305, |
N304, N303, N302, N301, N300, N299, N298, N297, N296, N295, N294, N293, |
N292}) ); |
top_DW01_sub_1 sub_168 ( .A({1'b0, 1'b0, 1'b0, 1'b0, 1'b0, 1'b0, 1'b0, 1'b0, |
1'b0, 1'b0, 1'b0, 1'b0, 1'b0, 1'b0, 1'b0, 1'b0, 1'b0, 1'b0, 1'b0, 1'b0, |
1'b0, 1'b0, 1'b0, 1'b0, 1'b1, 1'b0, 1'b1, 1'b1, 1'b0, 1'b1, 1'b0, 1'b0}), .B({degrees_tmp1[31:2], n639, degrees_tmp1[0]}), .CI(1'b0), .DIFF({N258, |
N257, N256, N255, N254, N253, N252, N251, N250, N249, N248, N247, N246, |
N245, N244, N243, N242, N241, N240, N239, N238, N237, N236, N235, N234, |
N233, N232, N231, N230, N229, N228, N227}) ); |
top_DW01_sub_2 sub_162 ( .A(degrees), .B({1'b0, 1'b0, 1'b0, 1'b0, 1'b0, 1'b0, |
1'b0, 1'b0, 1'b0, 1'b0, 1'b0, 1'b0, 1'b0, 1'b0, 1'b0, 1'b0, 1'b0, 1'b0, |
1'b0, 1'b0, 1'b0, 1'b0, 1'b0, 1'b0, 1'b1, 1'b0, 1'b1, 1'b1, 1'b0, 1'b1, |
1'b0, 1'b0}), .CI(1'b0), .DIFF({N224, N223, N222, N221, N220, N219, |
N218, N217, N216, N215, N214, N213, N212, N211, N210, N209, N208, N207, |
N206, N205, N204, N203, N202, N201, N200, N199, N198, N197, N196, N195, |
N194, N193}) ); |
top_DW01_sub_3 sub_144 ( .A({1'b0, 1'b0, 1'b0, 1'b0, 1'b0, 1'b0, 1'b0, 1'b0, |
1'b0, 1'b0, 1'b0, 1'b0, 1'b0, 1'b0, 1'b0, 1'b0, 1'b0, 1'b0, 1'b0, 1'b0, |
1'b0, 1'b0, 1'b0, 1'b0, 1'b1, 1'b0, 1'b1, 1'b1, 1'b0, 1'b1, 1'b0, 1'b0}), .B(divider_out), .CI(1'b0), .DIFF({N157, N156, N155, N154, N153, N152, N151, |
N150, N149, N148, N147, N146, N145, N144, N143, N142, N141, N140, N139, |
N138, N137, N136, N135, N134, N133, N132, N131, N130, N129, N128, N127, |
N126}) ); |
top_DW01_sub_4 sub_138 ( .A(divider_out), .B({1'b0, 1'b0, 1'b0, 1'b0, 1'b0, |
1'b0, 1'b0, 1'b0, 1'b0, 1'b0, 1'b0, 1'b0, 1'b0, 1'b0, 1'b0, 1'b0, 1'b0, |
1'b0, 1'b0, 1'b0, 1'b0, 1'b0, 1'b0, 1'b0, 1'b1, 1'b0, 1'b1, 1'b1, 1'b0, |
1'b1, 1'b0, 1'b0}), .CI(1'b0), .DIFF({N124, N123, N122, N121, N120, |
N119, N118, N117, N116, N115, N114, N113, N112, N111, N110, N109, N108, |
N107, N106, N105, N104, N103, N102, N101, N100, N99, N98, N97, N96, |
N95, N94, N93}) ); |
top_DW01_sub_5 sub_131 ( .A(divider_out), .B({1'b0, 1'b0, 1'b0, 1'b0, 1'b0, |
1'b0, 1'b0, 1'b0, 1'b0, 1'b0, 1'b0, 1'b0, 1'b0, 1'b0, 1'b0, 1'b0, 1'b0, |
1'b0, 1'b0, 1'b0, 1'b0, 1'b0, 1'b0, 1'b1, 1'b0, 1'b0, 1'b0, 1'b0, 1'b1, |
1'b1, 1'b1, 1'b0}), .CI(1'b0), .DIFF({N91, N90, N89, N88, N87, N86, |
N85, N84, N83, N82, N81, N80, N79, N78, N77, N76, N75, N74, N73, N72, |
N71, N70, N69, N68, N67, N66, N65, N64, N63, N62, N61, N60}) ); |
DFFX1 \degrees_tmp1_reg[6] ( .D(n543), .CLK(clk), .Q(degrees_tmp1[6]) ); |
DFFX1 \degrees_tmp1_reg[4] ( .D(n541), .CLK(clk), .Q(degrees_tmp1[4]) ); |
DFFX1 \degrees_tmp1_reg[2] ( .D(n539), .CLK(clk), .Q(degrees_tmp1[2]) ); |
DFFX1 \degrees_tmp1_reg[29] ( .D(n566), .CLK(clk), .Q(degrees_tmp1[29]) ); |
DFFX1 \degrees_tmp1_reg[23] ( .D(n560), .CLK(clk), .Q(degrees_tmp1[23]) ); |
DFFX1 \degrees_tmp1_reg[17] ( .D(n554), .CLK(clk), .Q(degrees_tmp1[17]) ); |
DFFX1 \degrees_tmp1_reg[11] ( .D(n548), .CLK(clk), .Q(degrees_tmp1[11]) ); |
DFFX1 \degrees_tmp1_reg[28] ( .D(n565), .CLK(clk), .Q(degrees_tmp1[28]) ); |
DFFX1 \degrees_tmp1_reg[22] ( .D(n559), .CLK(clk), .Q(degrees_tmp1[22]) ); |
DFFX1 \degrees_tmp1_reg[16] ( .D(n553), .CLK(clk), .Q(degrees_tmp1[16]) ); |
DFFX1 \degrees_tmp1_reg[10] ( .D(n547), .CLK(clk), .Q(degrees_tmp1[10]) ); |
DFFX1 \degrees_tmp1_reg[27] ( .D(n564), .CLK(clk), .Q(degrees_tmp1[27]) ); |
DFFX1 \degrees_tmp1_reg[21] ( .D(n558), .CLK(clk), .Q(degrees_tmp1[21]) ); |
DFFX1 \degrees_tmp1_reg[15] ( .D(n552), .CLK(clk), .Q(degrees_tmp1[15]) ); |
DFFX1 \degrees_tmp1_reg[30] ( .D(n567), .CLK(clk), .Q(degrees_tmp1[30]) ); |
DFFX1 \degrees_tmp1_reg[26] ( .D(n563), .CLK(clk), .Q(degrees_tmp1[26]) ); |
DFFX1 \degrees_tmp1_reg[20] ( .D(n557), .CLK(clk), .Q(degrees_tmp1[20]) ); |
DFFX1 \degrees_tmp1_reg[14] ( .D(n551), .CLK(clk), .Q(degrees_tmp1[14]) ); |
DFFX1 \degrees_tmp1_reg[24] ( .D(n561), .CLK(clk), .Q(degrees_tmp1[24]) ); |
DFFX1 \degrees_tmp1_reg[18] ( .D(n555), .CLK(clk), .Q(degrees_tmp1[18]) ); |
DFFX1 \degrees_tmp1_reg[12] ( .D(n549), .CLK(clk), .Q(degrees_tmp1[12]) ); |
DFFX1 \degrees_tmp1_reg[9] ( .D(n546), .CLK(clk), .Q(degrees_tmp1[9]) ); |
DFFX1 \degrees_tmp1_reg[8] ( .D(n545), .CLK(clk), .Q(degrees_tmp1[8]) ); |
DFFX1 \degrees_tmp1_reg[25] ( .D(n562), .CLK(clk), .Q(degrees_tmp1[25]) ); |
DFFX1 \degrees_tmp1_reg[19] ( .D(n556), .CLK(clk), .Q(degrees_tmp1[19]) ); |
DFFX1 \degrees_tmp1_reg[13] ( .D(n550), .CLK(clk), .Q(degrees_tmp1[13]) ); |
DFFX1 \degrees_tmp1_reg[7] ( .D(n544), .CLK(clk), .Q(degrees_tmp1[7]), .QN( |
n694) ); |
DFFX1 \degrees_tmp1_reg[5] ( .D(n542), .CLK(clk), .Q(degrees_tmp1[5]), .QN( |
n693) ); |
DFFX1 \degrees_tmp1_reg[31] ( .D(n568), .CLK(clk), .Q(degrees_tmp1[31]) ); |
DFFX1 \degrees_tmp1_reg[3] ( .D(n540), .CLK(clk), .Q(degrees_tmp1[3]) ); |
DFFX1 \degrees_tmp1_reg[0] ( .D(n537), .CLK(clk), .Q(degrees_tmp1[0]) ); |
DFFX1 \data1_reg[61] ( .D(N445), .CLK(clk), .Q(data1[61]) ); |
DFFX1 \data1_reg[60] ( .D(N444), .CLK(clk), .Q(data1[60]) ); |
DFFX1 \data1_reg[59] ( .D(N443), .CLK(clk), .Q(data1[59]) ); |
DFFX1 \data1_reg[58] ( .D(N442), .CLK(clk), .Q(data1[58]) ); |
DFFX1 \data1_reg[57] ( .D(N441), .CLK(clk), .Q(data1[57]) ); |
DFFX1 \data1_reg[56] ( .D(N440), .CLK(clk), .Q(data1[56]) ); |
DFFX1 \data1_reg[55] ( .D(N439), .CLK(clk), .Q(data1[55]) ); |
DFFX1 \data1_reg[54] ( .D(N438), .CLK(clk), .Q(data1[54]) ); |
DFFX1 \data1_reg[53] ( .D(N437), .CLK(clk), .Q(data1[53]) ); |
DFFX1 \data1_reg[50] ( .D(N434), .CLK(clk), .Q(data1[50]) ); |
DFFX1 \data1_reg[49] ( .D(N433), .CLK(clk), .Q(data1[49]) ); |
DFFX1 \data1_reg[48] ( .D(N432), .CLK(clk), .Q(data1[48]) ); |
DFFX1 \data1_reg[47] ( .D(N431), .CLK(clk), .Q(data1[47]) ); |
DFFX1 \data1_reg[46] ( .D(N430), .CLK(clk), .Q(data1[46]) ); |
DFFX1 \data1_reg[45] ( .D(N429), .CLK(clk), .Q(data1[45]) ); |
DFFX1 \data1_reg[44] ( .D(N428), .CLK(clk), .Q(data1[44]) ); |
DFFX1 \data1_reg[43] ( .D(N427), .CLK(clk), .Q(data1[43]) ); |
DFFX1 \data1_reg[42] ( .D(N426), .CLK(clk), .Q(data1[42]) ); |
DFFX1 \data1_reg[41] ( .D(N425), .CLK(clk), .Q(data1[41]) ); |
DFFX1 \data1_reg[40] ( .D(N424), .CLK(clk), .Q(data1[40]) ); |
DFFX1 \data1_reg[39] ( .D(N423), .CLK(clk), .Q(data1[39]) ); |
DFFX1 \data1_reg[38] ( .D(N422), .CLK(clk), .Q(data1[38]) ); |
DFFX1 \data1_reg[37] ( .D(N421), .CLK(clk), .Q(data1[37]) ); |
DFFX1 \data1_reg[36] ( .D(N420), .CLK(clk), .Q(data1[36]) ); |
DFFX1 \data1_reg[35] ( .D(N419), .CLK(clk), .Q(data1[35]) ); |
DFFX1 \data1_reg[34] ( .D(N418), .CLK(clk), .Q(data1[34]) ); |
DFFX1 \data1_reg[33] ( .D(N417), .CLK(clk), .Q(data1[33]) ); |
DFFX1 \data1_reg[32] ( .D(N416), .CLK(clk), .Q(data1[32]) ); |
DFFX1 \data1_reg[31] ( .D(N415), .CLK(clk), .Q(data1[31]) ); |
DFFX1 \data1_reg[30] ( .D(N414), .CLK(clk), .Q(data1[30]) ); |
DFFX1 \data1_reg[29] ( .D(N413), .CLK(clk), .Q(data1[29]) ); |
DFFX1 \data1_reg[28] ( .D(N412), .CLK(clk), .Q(data1[28]) ); |
DFFX1 \data1_reg[27] ( .D(N411), .CLK(clk), .Q(data1[27]) ); |
INVX0 U511 ( .INP(n496), .ZN(n798) ); |
INVX0 U512 ( .INP(n631), .ZN(n676) ); |
INVX0 U513 ( .INP(n631), .ZN(n677) ); |
INVX0 U514 ( .INP(n224), .ZN(n679) ); |
INVX0 U515 ( .INP(n633), .ZN(n668) ); |
INVX0 U516 ( .INP(n632), .ZN(n665) ); |
INVX0 U517 ( .INP(n632), .ZN(n664) ); |
INVX0 U518 ( .INP(n633), .ZN(n669) ); |
INVX0 U519 ( .INP(n358), .ZN(n642) ); |
INVX0 U520 ( .INP(n358), .ZN(n643) ); |
INVX0 U521 ( .INP(n358), .ZN(n644) ); |
INVX0 U522 ( .INP(n634), .ZN(n674) ); |
INVX0 U523 ( .INP(n636), .ZN(n673) ); |
INVX0 U524 ( .INP(n634), .ZN(n675) ); |
INVX0 U525 ( .INP(n635), .ZN(n662) ); |
INVX0 U526 ( .INP(n516), .ZN(n788) ); |
INVX0 U527 ( .INP(n638), .ZN(n670) ); |
INVX0 U528 ( .INP(n636), .ZN(n672) ); |
INVX0 U529 ( .INP(n638), .ZN(n671) ); |
INVX0 U530 ( .INP(n637), .ZN(n667) ); |
INVX0 U531 ( .INP(n637), .ZN(n666) ); |
INVX0 U532 ( .INP(n635), .ZN(n663) ); |
OR2X1 U533 ( .IN1(n787), .IN2(n797), .Q(n631) ); |
INVX0 U534 ( .INP(n357), .ZN(n649) ); |
INVX0 U535 ( .INP(n357), .ZN(n650) ); |
INVX0 U536 ( .INP(n353), .ZN(n658) ); |
INVX0 U537 ( .INP(n356), .ZN(n645) ); |
INVX0 U538 ( .INP(n353), .ZN(n659) ); |
INVX0 U539 ( .INP(n356), .ZN(n646) ); |
INVX0 U540 ( .INP(n353), .ZN(n660) ); |
INVX0 U541 ( .INP(n356), .ZN(n647) ); |
INVX0 U542 ( .INP(n353), .ZN(n661) ); |
INVX0 U543 ( .INP(n356), .ZN(n648) ); |
INVX0 U544 ( .INP(n354), .ZN(n654) ); |
INVX0 U545 ( .INP(n354), .ZN(n655) ); |
INVX0 U546 ( .INP(n354), .ZN(n656) ); |
INVX0 U547 ( .INP(n354), .ZN(n657) ); |
INVX0 U548 ( .INP(n355), .ZN(n651) ); |
INVX0 U549 ( .INP(n355), .ZN(n652) ); |
INVX0 U550 ( .INP(n355), .ZN(n653) ); |
NAND3X0 U551 ( .IN1(n495), .IN2(n797), .IN3(n496), .QN(n632) ); |
NAND3X0 U552 ( .IN1(n495), .IN2(n797), .IN3(n798), .QN(n633) ); |
INVX0 U553 ( .INP(n358), .ZN(n820) ); |
NBUFFX2 U554 ( .INP(n224), .Z(n678) ); |
INVX0 U555 ( .INP(n732), .ZN(n741) ); |
INVX0 U556 ( .INP(n735), .ZN(n740) ); |
NAND2X1 U557 ( .IN1(N51), .IN2(n517), .QN(n516) ); |
NOR4X0 U558 ( .IN1(n524), .IN2(n525), .IN3(n526), .IN4(n527), .QN(n518) ); |
NAND3X0 U559 ( .IN1(N39), .IN2(n787), .IN3(n788), .QN(n634) ); |
AO22X1 U560 ( .IN1(N127), .IN2(n673), .IN3(n662), .IN4(divider_out[1]), .Q( |
n491) ); |
NAND4X0 U561 ( .IN1(N39), .IN2(n515), .IN3(n516), .IN4(n787), .QN(n635) ); |
OR4X1 U562 ( .IN1(n515), .IN2(n797), .IN3(n788), .IN4(N50), .Q(n636) ); |
OR2X1 U563 ( .IN1(n679), .IN2(N225), .Q(n637) ); |
INVX0 U564 ( .INP(N50), .ZN(n787) ); |
NAND2X1 U565 ( .IN1(N225), .IN2(n224), .QN(n638) ); |
INVX0 U566 ( .INP(N39), .ZN(n797) ); |
NAND2X1 U567 ( .IN1(N40), .IN2(n508), .QN(n495) ); |
NOR4X0 U568 ( .IN1(n511), .IN2(n512), .IN3(n502), .IN4(n503), .QN(n510) ); |
NOR2X0 U569 ( .IN1(n495), .IN2(N39), .QN(n224) ); |
NOR2X0 U570 ( .IN1(n356), .IN2(n359), .QN(N34) ); |
NOR2X0 U571 ( .IN1(n358), .IN2(n359), .QN(N33) ); |
NOR2X0 U572 ( .IN1(n354), .IN2(n359), .QN(N38) ); |
NOR2X0 U573 ( .IN1(n355), .IN2(n359), .QN(N36) ); |
NOR2X0 U574 ( .IN1(n353), .IN2(n359), .QN(N37) ); |
NOR2X0 U575 ( .IN1(n357), .IN2(n359), .QN(N35) ); |
NAND2X1 U576 ( .IN1(N43), .IN2(n497), .QN(n496) ); |
NOR4X0 U577 ( .IN1(n500), .IN2(n501), .IN3(n502), .IN4(n503), .QN(n499) ); |
INVX0 U578 ( .INP(n355), .ZN(n821) ); |
AND3X1 U579 ( .IN1(divider_out[2]), .IN2(divider_out[1]), .IN3( |
divider_out[3]), .Q(n752) ); |
INVX0 U580 ( .INP(divider_out[7]), .ZN(n708) ); |
NAND3X0 U581 ( .IN1(divider_out[1]), .IN2(divider_out[0]), .IN3( |
divider_out[3]), .QN(n695) ); |
AO22X1 U582 ( .IN1(N60), .IN2(n677), .IN3(N93), .IN4(n675), .Q(n514) ); |
AO22X1 U583 ( .IN1(N128), .IN2(n673), .IN3(n662), .IN4(divider_out[2]), .Q( |
n487) ); |
NAND2X1 U584 ( .IN1(N54), .IN2(n528), .QN(n515) ); |
INVX0 U585 ( .INP(divider_out[10]), .ZN(n795) ); |
INVX0 U586 ( .INP(divider_out[11]), .ZN(n794) ); |
INVX0 U587 ( .INP(divider_out[13]), .ZN(n792) ); |
INVX0 U588 ( .INP(divider_out[14]), .ZN(n791) ); |
INVX0 U589 ( .INP(divider_out[15]), .ZN(n790) ); |
NAND3X0 U590 ( .IN1(n639), .IN2(degrees_tmp1[0]), .IN3(degrees_tmp1[3]), |
.QN(n680) ); |
INVX0 U591 ( .INP(divider_out[5]), .ZN(n739) ); |
INVX0 U592 ( .INP(divider_out[4]), .ZN(n738) ); |
INVX0 U593 ( .INP(divider_out[12]), .ZN(n793) ); |
INVX0 U594 ( .INP(divider_out[16]), .ZN(n789) ); |
NOR4X0 U595 ( .IN1(n535), .IN2(n525), .IN3(n526), .IN4(n536), .QN(n529) ); |
OR4X1 U596 ( .IN1(divider_out[17]), .IN2(divider_out[18]), .IN3( |
divider_out[19]), .IN4(divider_out[1]), .Q(n535) ); |
NOR4X0 U597 ( .IN1(n520), .IN2(n521), .IN3(n522), .IN4(n523), .QN(n519) ); |
NOR4X0 U598 ( .IN1(n531), .IN2(n532), .IN3(n533), .IN4(n534), .QN(n530) ); |
NAND4X0 U599 ( .IN1(divider_out[8]), .IN2(divider_out[3]), .IN3( |
divider_out[2]), .IN4(divider_out[1]), .QN(n527) ); |
NAND2X1 U600 ( .IN1(n249), .IN2(n250), .QN(N435) ); |
NAND2X1 U601 ( .IN1(n351), .IN2(n352), .QN(N384) ); |
NAND2X1 U602 ( .IN1(n349), .IN2(n350), .QN(N385) ); |
NAND2X1 U603 ( .IN1(n347), .IN2(n348), .QN(N386) ); |
NAND2X1 U604 ( .IN1(n345), .IN2(n346), .QN(N387) ); |
NAND2X1 U605 ( .IN1(n343), .IN2(n344), .QN(N388) ); |
NAND2X1 U606 ( .IN1(n341), .IN2(n342), .QN(N389) ); |
NAND2X1 U607 ( .IN1(n339), .IN2(n340), .QN(N390) ); |
NAND2X1 U608 ( .IN1(n337), .IN2(n338), .QN(N391) ); |
NAND2X1 U609 ( .IN1(n335), .IN2(n336), .QN(N392) ); |
NAND2X1 U610 ( .IN1(n333), .IN2(n334), .QN(N393) ); |
NAND2X1 U611 ( .IN1(n331), .IN2(n332), .QN(N394) ); |
NAND2X1 U612 ( .IN1(n329), .IN2(n330), .QN(N395) ); |
NAND2X1 U613 ( .IN1(n327), .IN2(n328), .QN(N396) ); |
NAND2X1 U614 ( .IN1(n325), .IN2(n326), .QN(N397) ); |
NAND2X1 U615 ( .IN1(n323), .IN2(n324), .QN(N398) ); |
NAND2X1 U616 ( .IN1(n321), .IN2(n322), .QN(N399) ); |
NAND2X1 U617 ( .IN1(n319), .IN2(n320), .QN(N400) ); |
NAND2X1 U618 ( .IN1(n317), .IN2(n318), .QN(N401) ); |
NAND2X1 U619 ( .IN1(n315), .IN2(n316), .QN(N402) ); |
NAND2X1 U620 ( .IN1(n313), .IN2(n314), .QN(N403) ); |
NAND2X1 U621 ( .IN1(n311), .IN2(n312), .QN(N404) ); |
NAND2X1 U622 ( .IN1(n309), .IN2(n310), .QN(N405) ); |
NAND2X1 U623 ( .IN1(n307), .IN2(n308), .QN(N406) ); |
NAND2X1 U624 ( .IN1(n305), .IN2(n306), .QN(N407) ); |
NAND2X1 U625 ( .IN1(n303), .IN2(n304), .QN(N408) ); |
NAND2X1 U626 ( .IN1(n301), .IN2(n302), .QN(N409) ); |
NAND2X1 U627 ( .IN1(n299), .IN2(n300), .QN(N410) ); |
NAND2X1 U628 ( .IN1(n297), .IN2(n298), .QN(N411) ); |
NAND2X1 U629 ( .IN1(n295), .IN2(n296), .QN(N412) ); |
NAND2X1 U630 ( .IN1(n293), .IN2(n294), .QN(N413) ); |
NAND2X1 U631 ( .IN1(n291), .IN2(n292), .QN(N414) ); |
NAND2X1 U632 ( .IN1(n289), .IN2(n290), .QN(N415) ); |
NAND2X1 U633 ( .IN1(n287), .IN2(n288), .QN(N416) ); |
NAND2X1 U634 ( .IN1(n285), .IN2(n286), .QN(N417) ); |
NAND2X1 U635 ( .IN1(n283), .IN2(n284), .QN(N418) ); |
NAND2X1 U636 ( .IN1(n281), .IN2(n282), .QN(N419) ); |
NAND2X1 U637 ( .IN1(n279), .IN2(n280), .QN(N420) ); |
NAND2X1 U638 ( .IN1(n277), .IN2(n278), .QN(N421) ); |
NAND2X1 U639 ( .IN1(n275), .IN2(n276), .QN(N422) ); |
NAND2X1 U640 ( .IN1(n273), .IN2(n274), .QN(N423) ); |
NAND2X1 U641 ( .IN1(n271), .IN2(n272), .QN(N424) ); |
NAND2X1 U642 ( .IN1(n269), .IN2(n270), .QN(N425) ); |
NAND2X1 U643 ( .IN1(n267), .IN2(n268), .QN(N426) ); |
NAND2X1 U644 ( .IN1(n265), .IN2(n266), .QN(N427) ); |
NAND2X1 U645 ( .IN1(n263), .IN2(n264), .QN(N428) ); |
NAND2X1 U646 ( .IN1(n261), .IN2(n262), .QN(N429) ); |
NAND2X1 U647 ( .IN1(n259), .IN2(n260), .QN(N430) ); |
NAND2X1 U648 ( .IN1(n257), .IN2(n258), .QN(N431) ); |
NAND2X1 U649 ( .IN1(n255), .IN2(n256), .QN(N432) ); |
NAND2X1 U650 ( .IN1(n253), .IN2(n254), .QN(N433) ); |
NAND2X1 U651 ( .IN1(n251), .IN2(n252), .QN(N434) ); |
NAND2X1 U652 ( .IN1(n247), .IN2(n248), .QN(N436) ); |
NAND2X1 U653 ( .IN1(n245), .IN2(n246), .QN(N437) ); |
NAND2X1 U654 ( .IN1(n243), .IN2(n244), .QN(N438) ); |
NAND2X1 U655 ( .IN1(n241), .IN2(n242), .QN(N439) ); |
NAND2X1 U656 ( .IN1(n239), .IN2(n240), .QN(N440) ); |
NAND2X1 U657 ( .IN1(n237), .IN2(n238), .QN(N441) ); |
NAND2X1 U658 ( .IN1(n235), .IN2(n236), .QN(N442) ); |
NAND2X1 U659 ( .IN1(n233), .IN2(n234), .QN(N443) ); |
NAND2X1 U660 ( .IN1(n231), .IN2(n232), .QN(N444) ); |
NAND2X1 U661 ( .IN1(n229), .IN2(n230), .QN(N445) ); |
NAND2X1 U662 ( .IN1(n227), .IN2(n228), .QN(N446) ); |
NAND2X1 U663 ( .IN1(data_tan[62]), .IN2(n649), .QN(n227) ); |
NAND2X1 U664 ( .IN1(n225), .IN2(n226), .QN(N447) ); |
INVX0 U665 ( .INP(n767), .ZN(n772) ); |
INVX0 U666 ( .INP(n764), .ZN(n773) ); |
NAND2X1 U667 ( .IN1(enable), .IN2(n819), .QN(n359) ); |
INVX0 U668 ( .INP(rst), .ZN(n819) ); |
INVX0 U669 ( .INP(degrees[20]), .ZN(n806) ); |
INVX0 U670 ( .INP(degrees[23]), .ZN(n803) ); |
INVX0 U671 ( .INP(degrees[21]), .ZN(n805) ); |
INVX0 U672 ( .INP(degrees[17]), .ZN(n809) ); |
INVX0 U673 ( .INP(degrees[1]), .ZN(n817) ); |
INVX0 U674 ( .INP(degrees[18]), .ZN(n808) ); |
INVX0 U675 ( .INP(degrees[0]), .ZN(n818) ); |
INVX0 U676 ( .INP(degrees[12]), .ZN(n814) ); |
INVX0 U677 ( .INP(degrees[10]), .ZN(n816) ); |
INVX0 U678 ( .INP(degrees[24]), .ZN(n802) ); |
INVX0 U679 ( .INP(degrees[27]), .ZN(n799) ); |
INVX0 U680 ( .INP(degrees[25]), .ZN(n801) ); |
INVX0 U681 ( .INP(degrees[13]), .ZN(n813) ); |
INVX0 U682 ( .INP(degrees[16]), .ZN(n810) ); |
INVX0 U683 ( .INP(degrees[14]), .ZN(n812) ); |
INVX0 U684 ( .INP(degrees[7]), .ZN(n722) ); |
INVX0 U685 ( .INP(actv[2]), .ZN(n822) ); |
INVX0 U686 ( .INP(actv[1]), .ZN(n823) ); |
INVX0 U687 ( .INP(actv[0]), .ZN(n824) ); |
NOR4X0 U688 ( .IN1(n504), .IN2(n505), .IN3(n506), .IN4(n507), .QN(n498) ); |
NOR4X0 U689 ( .IN1(n504), .IN2(n505), .IN3(n506), .IN4(n513), .QN(n509) ); |
INVX0 U690 ( .INP(degrees[4]), .ZN(n770) ); |
INVX0 U691 ( .INP(degrees[5]), .ZN(n771) ); |
INVX0 U692 ( .INP(degrees[19]), .ZN(n807) ); |
INVX0 U693 ( .INP(degrees[11]), .ZN(n815) ); |
INVX0 U694 ( .INP(degrees[15]), .ZN(n811) ); |
INVX0 U695 ( .INP(degrees[22]), .ZN(n804) ); |
INVX0 U696 ( .INP(degrees[26]), .ZN(n800) ); |
AO22X1 U697 ( .IN1(N194), .IN2(n678), .IN3(n639), .IN4(n679), .Q(n538) ); |
INVX0 U698 ( .INP(divider_out[0]), .ZN(n796) ); |
NAND2X0 U699 ( .IN1(n640), .IN2(n641), .QN(N355) ); |
AOI221X1 U700 ( .IN1(divider_out[31]), .IN2(n663), .IN3(N157), .IN4(n672), |
.IN5(n371), .QN(n640) ); |
AOI221X1 U701 ( .IN1(n666), .IN2(degrees_tmp1[31]), .IN3(N258), .IN4(n670), |
.IN5(n368), .QN(n641) ); |
OR3X1 U702 ( .IN1(degrees_tmp1[14]), .IN2(degrees_tmp1[13]), .IN3( |
degrees_tmp1[12]), .Q(n685) ); |
OA21X1 U703 ( .IN1(degrees_tmp1[5]), .IN2(degrees_tmp1[4]), .IN3( |
degrees_tmp1[6]), .Q(n683) ); |
NAND2X0 U704 ( .IN1(degrees_tmp1[2]), .IN2(degrees_tmp1[3]), .QN(n681) ); |
NAND4X0 U705 ( .IN1(n681), .IN2(n680), .IN3(n693), .IN4(n694), .QN(n682) ); |
OA21X1 U706 ( .IN1(degrees_tmp1[7]), .IN2(n683), .IN3(n682), .Q(n684) ); |
NOR4X0 U707 ( .IN1(n685), .IN2(n684), .IN3(degrees_tmp1[11]), .IN4( |
degrees_tmp1[10]), .QN(n692) ); |
OR3X1 U708 ( .IN1(degrees_tmp1[20]), .IN2(degrees_tmp1[19]), .IN3( |
degrees_tmp1[18]), .Q(n686) ); |
NOR4X0 U709 ( .IN1(n686), .IN2(degrees_tmp1[15]), .IN3(degrees_tmp1[17]), |
.IN4(degrees_tmp1[16]), .QN(n691) ); |
OR3X1 U710 ( .IN1(degrees_tmp1[26]), .IN2(degrees_tmp1[25]), .IN3( |
degrees_tmp1[24]), .Q(n687) ); |
NOR4X0 U711 ( .IN1(n687), .IN2(degrees_tmp1[21]), .IN3(degrees_tmp1[23]), |
.IN4(degrees_tmp1[22]), .QN(n690) ); |
OR4X1 U712 ( .IN1(degrees_tmp1[31]), .IN2(degrees_tmp1[30]), .IN3( |
degrees_tmp1[9]), .IN4(degrees_tmp1[8]), .Q(n688) ); |
NOR4X0 U713 ( .IN1(n688), .IN2(degrees_tmp1[27]), .IN3(degrees_tmp1[29]), |
.IN4(degrees_tmp1[28]), .QN(n689) ); |
NAND4X0 U714 ( .IN1(n692), .IN2(n691), .IN3(n690), .IN4(n689), .QN(N225) ); |
OR3X1 U715 ( .IN1(divider_out[14]), .IN2(divider_out[13]), .IN3( |
divider_out[12]), .Q(n700) ); |
OA21X1 U716 ( .IN1(divider_out[5]), .IN2(divider_out[4]), .IN3( |
divider_out[6]), .Q(n698) ); |
NAND2X0 U717 ( .IN1(divider_out[2]), .IN2(divider_out[3]), .QN(n696) ); |
NAND4X0 U718 ( .IN1(n696), .IN2(n695), .IN3(n739), .IN4(n708), .QN(n697) ); |
OA21X1 U719 ( .IN1(divider_out[7]), .IN2(n698), .IN3(n697), .Q(n699) ); |
NOR4X0 U720 ( .IN1(n700), .IN2(n699), .IN3(divider_out[11]), .IN4( |
divider_out[10]), .QN(n707) ); |
OR3X1 U721 ( .IN1(divider_out[20]), .IN2(divider_out[19]), .IN3( |
divider_out[18]), .Q(n701) ); |
NOR4X0 U722 ( .IN1(n701), .IN2(divider_out[15]), .IN3(divider_out[17]), |
.IN4(divider_out[16]), .QN(n706) ); |
OR3X1 U723 ( .IN1(divider_out[26]), .IN2(divider_out[25]), .IN3( |
divider_out[24]), .Q(n702) ); |
NOR4X0 U724 ( .IN1(n702), .IN2(divider_out[21]), .IN3(divider_out[23]), |
.IN4(divider_out[22]), .QN(n705) ); |
OR4X1 U725 ( .IN1(divider_out[31]), .IN2(divider_out[30]), .IN3( |
divider_out[9]), .IN4(divider_out[8]), .Q(n703) ); |
NOR4X0 U726 ( .IN1(n703), .IN2(divider_out[27]), .IN3(divider_out[29]), |
.IN4(divider_out[28]), .QN(n704) ); |
NAND4X0 U727 ( .IN1(n707), .IN2(n706), .IN3(n705), .IN4(n704), .QN(N54) ); |
OR3X1 U728 ( .IN1(degrees[14]), .IN2(degrees[13]), .IN3(degrees[12]), .Q( |
n714) ); |
OA21X1 U729 ( .IN1(degrees[5]), .IN2(degrees[4]), .IN3(degrees[6]), .Q(n712) |
); |
NAND2X0 U730 ( .IN1(degrees[2]), .IN2(degrees[3]), .QN(n710) ); |
NAND3X0 U731 ( .IN1(degrees[1]), .IN2(degrees[0]), .IN3(degrees[3]), .QN( |
n709) ); |
NAND4X0 U732 ( .IN1(n710), .IN2(n709), .IN3(n771), .IN4(n722), .QN(n711) ); |
OA21X1 U733 ( .IN1(degrees[7]), .IN2(n712), .IN3(n711), .Q(n713) ); |
NOR4X0 U734 ( .IN1(n714), .IN2(n713), .IN3(degrees[11]), .IN4(degrees[10]), |
.QN(n721) ); |
OR3X1 U735 ( .IN1(degrees[20]), .IN2(degrees[19]), .IN3(degrees[18]), .Q( |
n715) ); |
NOR4X0 U736 ( .IN1(n715), .IN2(degrees[15]), .IN3(degrees[17]), .IN4( |
degrees[16]), .QN(n720) ); |
OR3X1 U737 ( .IN1(degrees[26]), .IN2(degrees[25]), .IN3(degrees[24]), .Q( |
n716) ); |
NOR4X0 U738 ( .IN1(n716), .IN2(degrees[21]), .IN3(degrees[23]), .IN4( |
degrees[22]), .QN(n719) ); |
OR4X1 U739 ( .IN1(degrees[31]), .IN2(degrees[30]), .IN3(degrees[9]), .IN4( |
degrees[8]), .Q(n717) ); |
NOR4X0 U740 ( .IN1(n717), .IN2(degrees[27]), .IN3(degrees[29]), .IN4( |
degrees[28]), .QN(n718) ); |
NAND4X0 U741 ( .IN1(n721), .IN2(n720), .IN3(n719), .IN4(n718), .QN(N43) ); |
NOR3X0 U742 ( .IN1(divider_out[31]), .IN2(divider_out[30]), .IN3( |
divider_out[29]), .QN(n731) ); |
OR4X1 U743 ( .IN1(divider_out[14]), .IN2(divider_out[13]), .IN3( |
divider_out[9]), .IN4(divider_out[8]), .Q(n723) ); |
NOR4X0 U744 ( .IN1(divider_out[12]), .IN2(divider_out[11]), .IN3( |
divider_out[10]), .IN4(n723), .QN(n730) ); |
NOR2X0 U745 ( .IN1(divider_out[2]), .IN2(divider_out[3]), .QN(n733) ); |
NOR3X0 U746 ( .IN1(divider_out[0]), .IN2(divider_out[3]), .IN3( |
divider_out[1]), .QN(n724) ); |
NOR4X0 U747 ( .IN1(n733), .IN2(n724), .IN3(n738), .IN4(n739), .QN(n725) ); |
NOR2X0 U748 ( .IN1(divider_out[6]), .IN2(n725), .QN(n727) ); |
OR4X1 U749 ( .IN1(divider_out[19]), .IN2(divider_out[18]), .IN3( |
divider_out[21]), .IN4(divider_out[20]), .Q(n726) ); |
NOR4X0 U750 ( .IN1(divider_out[17]), .IN2(divider_out[16]), .IN3( |
divider_out[15]), .IN4(n726), .QN(n735) ); |
OA21X1 U751 ( .IN1(n727), .IN2(n708), .IN3(n735), .Q(n729) ); |
OR4X1 U752 ( .IN1(divider_out[26]), .IN2(divider_out[25]), .IN3( |
divider_out[28]), .IN4(divider_out[27]), .Q(n728) ); |
NOR4X0 U753 ( .IN1(divider_out[24]), .IN2(divider_out[23]), .IN3( |
divider_out[22]), .IN4(n728), .QN(n732) ); |
NAND4X0 U754 ( .IN1(n731), .IN2(n730), .IN3(n729), .IN4(n732), .QN(N51) ); |
NAND2X0 U755 ( .IN1(n731), .IN2(n730), .QN(n737) ); |
NOR3X0 U756 ( .IN1(n739), .IN2(n733), .IN3(n738), .QN(n734) ); |
OA21X1 U757 ( .IN1(n734), .IN2(divider_out[6]), .IN3(divider_out[7]), .Q( |
n736) ); |
NOR4X0 U758 ( .IN1(n737), .IN2(n741), .IN3(n736), .IN4(n740), .QN(N55) ); |
OR4X1 U759 ( .IN1(divider_out[5]), .IN2(divider_out[4]), .IN3(divider_out[7]), .IN4(divider_out[6]), .Q(n751) ); |
AO21X1 U760 ( .IN1(divider_out[0]), .IN2(n752), .IN3(n751), .Q(n750) ); |
OR2X1 U761 ( .IN1(divider_out[11]), .IN2(divider_out[10]), .Q(n742) ); |
NOR4X0 U762 ( .IN1(n742), .IN2(divider_out[12]), .IN3(divider_out[14]), |
.IN4(divider_out[13]), .QN(n749) ); |
OR3X1 U763 ( .IN1(divider_out[20]), .IN2(divider_out[19]), .IN3( |
divider_out[18]), .Q(n743) ); |
NOR4X0 U764 ( .IN1(n743), .IN2(divider_out[15]), .IN3(divider_out[17]), |
.IN4(divider_out[16]), .QN(n748) ); |
OR3X1 U765 ( .IN1(divider_out[26]), .IN2(divider_out[25]), .IN3( |
divider_out[24]), .Q(n744) ); |
NOR4X0 U766 ( .IN1(n744), .IN2(divider_out[21]), .IN3(divider_out[23]), |
.IN4(divider_out[22]), .QN(n747) ); |
OR3X1 U767 ( .IN1(divider_out[9]), .IN2(divider_out[31]), .IN3( |
divider_out[30]), .Q(n745) ); |
NOR4X0 U768 ( .IN1(n745), .IN2(divider_out[27]), .IN3(divider_out[29]), |
.IN4(divider_out[28]), .QN(n746) ); |
NAND4X0 U769 ( .IN1(n749), .IN2(n748), .IN3(n747), .IN4(n746), .QN(n753) ); |
AO21X1 U770 ( .IN1(divider_out[8]), .IN2(n750), .IN3(n753), .Q(N50) ); |
OA21X1 U771 ( .IN1(n752), .IN2(n751), .IN3(divider_out[8]), .Q(n754) ); |
NOR2X0 U772 ( .IN1(n754), .IN2(n753), .QN(N52) ); |
NOR3X0 U773 ( .IN1(degrees[31]), .IN2(degrees[30]), .IN3(degrees[29]), .QN( |
n763) ); |
OR4X1 U774 ( .IN1(degrees[14]), .IN2(degrees[13]), .IN3(degrees[9]), .IN4( |
degrees[8]), .Q(n755) ); |
NOR4X0 U775 ( .IN1(degrees[12]), .IN2(degrees[11]), .IN3(degrees[10]), .IN4( |
n755), .QN(n762) ); |
NOR2X0 U776 ( .IN1(degrees[2]), .IN2(degrees[3]), .QN(n765) ); |
NOR3X0 U777 ( .IN1(degrees[0]), .IN2(degrees[3]), .IN3(degrees[1]), .QN(n756) ); |
NOR4X0 U778 ( .IN1(n765), .IN2(n756), .IN3(n770), .IN4(n771), .QN(n757) ); |
NOR2X0 U779 ( .IN1(degrees[6]), .IN2(n757), .QN(n759) ); |
OR4X1 U780 ( .IN1(degrees[19]), .IN2(degrees[18]), .IN3(degrees[21]), .IN4( |
degrees[20]), .Q(n758) ); |
NOR4X0 U781 ( .IN1(degrees[17]), .IN2(degrees[16]), .IN3(degrees[15]), .IN4( |
n758), .QN(n767) ); |
OA21X1 U782 ( .IN1(n759), .IN2(n722), .IN3(n767), .Q(n761) ); |
OR4X1 U783 ( .IN1(degrees[26]), .IN2(degrees[25]), .IN3(degrees[28]), .IN4( |
degrees[27]), .Q(n760) ); |
NOR4X0 U784 ( .IN1(degrees[24]), .IN2(degrees[23]), .IN3(degrees[22]), .IN4( |
n760), .QN(n764) ); |
NAND4X0 U785 ( .IN1(n763), .IN2(n762), .IN3(n761), .IN4(n764), .QN(N40) ); |
NAND2X0 U786 ( .IN1(n763), .IN2(n762), .QN(n769) ); |
NOR3X0 U787 ( .IN1(n771), .IN2(n765), .IN3(n770), .QN(n766) ); |
OA21X1 U788 ( .IN1(n766), .IN2(degrees[6]), .IN3(degrees[7]), .Q(n768) ); |
NOR4X0 U789 ( .IN1(n769), .IN2(n773), .IN3(n768), .IN4(n772), .QN(N44) ); |
OR2X1 U790 ( .IN1(degrees[3]), .IN2(degrees[4]), .Q(n774) ); |
AND4X1 U791 ( .IN1(degrees[6]), .IN2(degrees[5]), .IN3(degrees[8]), .IN4( |
n774), .Q(n786) ); |
OR4X1 U792 ( .IN1(degrees[1]), .IN2(degrees[0]), .IN3(degrees[4]), .IN4( |
degrees[2]), .Q(n784) ); |
OR3X1 U793 ( .IN1(degrees[14]), .IN2(degrees[13]), .IN3(degrees[12]), .Q( |
n776) ); |
AND2X1 U794 ( .IN1(degrees[8]), .IN2(degrees[7]), .Q(n775) ); |
NOR4X0 U795 ( .IN1(n776), .IN2(n775), .IN3(degrees[11]), .IN4(degrees[10]), |
.QN(n783) ); |
OR3X1 U796 ( .IN1(degrees[20]), .IN2(degrees[19]), .IN3(degrees[18]), .Q( |
n777) ); |
NOR4X0 U797 ( .IN1(n777), .IN2(degrees[15]), .IN3(degrees[17]), .IN4( |
degrees[16]), .QN(n782) ); |
OR3X1 U798 ( .IN1(degrees[26]), .IN2(degrees[25]), .IN3(degrees[24]), .Q( |
n778) ); |
NOR4X0 U799 ( .IN1(n778), .IN2(degrees[21]), .IN3(degrees[23]), .IN4( |
degrees[22]), .QN(n781) ); |
OR3X1 U800 ( .IN1(degrees[9]), .IN2(degrees[31]), .IN3(degrees[30]), .Q(n779) ); |
NOR4X0 U801 ( .IN1(n779), .IN2(degrees[27]), .IN3(degrees[29]), .IN4( |
degrees[28]), .QN(n780) ); |
NAND4X0 U802 ( .IN1(n783), .IN2(n782), .IN3(n781), .IN4(n780), .QN(n785) ); |
AO21X1 U803 ( .IN1(n786), .IN2(n784), .IN3(n785), .Q(N39) ); |
NOR2X0 U804 ( .IN1(n786), .IN2(n785), .QN(N41) ); |
endmodule |
|
/verilog/secant.v
0,0 → 1,178
///////////////////////////////////////////////////////////////////// |
//// //// |
//// //// |
//// Trigonometric functions using double precision Floating Point Unit //// |
//// //// |
//// Author: Muni Aditya //// |
//// muni_aditya@yahoo.com //// |
//// //// |
///////////////////////////////////////////////////////////////////// |
//// //// |
//// Copyright (C) 2013 Muni Aditya //// |
//// muni_aditya@yahoo.com //// |
//// //// |
//// This source file may be used and distributed without //// |
//// restriction provided that this copyright statement is not //// |
//// removed from the file and that any derivative work contains //// |
//// the original copyright notice and the associated disclaimer.//// |
//// //// |
//// THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY //// |
//// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED //// |
//// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS //// |
//// FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL THE AUTHOR //// |
//// OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, //// |
//// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES //// |
//// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE //// |
//// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR //// |
//// BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF //// |
//// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT //// |
//// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT //// |
//// OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE //// |
//// POSSIBILITY OF SUCH DAMAGE. //// |
//// //// |
///////////////////////////////////////////////////////////////////// |
|
`timescale 1ns / 100ps |
|
`define INPUT_WIDTH 32 |
|
module secant_lut (quad, enable, degrees, data, rst, clk); |
|
input [1:0] quad; |
input enable; |
input rst; |
input [`INPUT_WIDTH-1:0] degrees ; |
input clk; |
|
//////////////inputs///////////////// |
|
output reg [63:0] data; |
|
//////////////output///////////////// |
|
|
always@(posedge clk ) |
|
//needs to be positive in first and fourth quadrants |
|
begin |
if (quad == 2'b01 || quad == 2'b10) |
begin |
data[63] <= 1'b1; |
end |
|
else |
begin |
data[63] <= 1'b0; |
end |
|
if(enable) |
case (degrees) |
|
// look up table |
|
`INPUT_WIDTH'd0 : data[62:0] <= 64'h3ff0000000000000; |
`INPUT_WIDTH'd1 : data[62:0] <= 64'h3ff0009fba3f7835; |
`INPUT_WIDTH'd2 : data[62:0] <= 64'h3ff0027f274d432f; |
`INPUT_WIDTH'd3 : data[62:0] <= 64'h3ff0059f0252e0bc; |
`INPUT_WIDTH'd4 : data[62:0] <= 64'h3ff00a008406617c; |
`INPUT_WIDTH'd5 : data[62:0] <= 64'h3ff00fa563d53203; |
`INPUT_WIDTH'd6 : data[62:0] <= 64'h3ff0168fd9895209; |
`INPUT_WIDTH'd7 : data[62:0] <= 64'h3ff01ec29f6be927; |
`INPUT_WIDTH'd8 : data[62:0] <= 64'h3ff02840f4e91085; |
`INPUT_WIDTH'd9 : data[62:0] <= 64'h3ff0330ea1b99998; |
`INPUT_WIDTH'd10 : data[62:0] <= 64'h3ff03f2ff9989907; |
`INPUT_WIDTH'd11 : data[62:0] <= 64'h3ff04ca9e08b8cb6; |
`INPUT_WIDTH'd12 : data[62:0] <= 64'h3ff05b81cfc51885; |
`INPUT_WIDTH'd13 : data[62:0] <= 64'h3ff06bbddb2b91b8; |
`INPUT_WIDTH'd14 : data[62:0] <= 64'h3ff07d64b78dea34; |
`INPUT_WIDTH'd15 : data[62:0] <= 64'h3ff0907dc1930690; |
`INPUT_WIDTH'd16 : data[62:0] <= 64'h3ff0a51105712a50; |
`INPUT_WIDTH'd17 : data[62:0] <= 64'h3ff0bb27477cf20f; |
`INPUT_WIDTH'd18 : data[62:0] <= 64'h3ff0d2ca0da1530d; |
`INPUT_WIDTH'd19 : data[62:0] <= 64'h3ff0ec03a9d451e4; |
`INPUT_WIDTH'd20 : data[62:0] <= 64'h3ff106df459ea072; |
`INPUT_WIDTH'd21 : data[62:0] <= 64'h3ff12368eecf1f68; |
`INPUT_WIDTH'd22 : data[62:0] <= 64'h3ff141ada5766662; |
`INPUT_WIDTH'd23 : data[62:0] <= 64'h3ff161bb6b4a03f3; |
`INPUT_WIDTH'd24 : data[62:0] <= 64'h3ff183a154932d8b; |
`INPUT_WIDTH'd25 : data[62:0] <= 64'h3ff1a76f9ad128b7; |
`INPUT_WIDTH'd26 : data[62:0] <= 64'h3ff1cd37b13ce9c7; |
`INPUT_WIDTH'd27 : data[62:0] <= 64'h3ff1f50c5b61511e; |
`INPUT_WIDTH'd28 : data[62:0] <= 64'h3ff21f01c602373c; |
`INPUT_WIDTH'd29 : data[62:0] <= 64'h3ff24b2da2943b49; |
`INPUT_WIDTH'd30 : data[62:0] <= 64'h3ff279a74590331c; |
`INPUT_WIDTH'd31 : data[62:0] <= 64'h3ff2aa87c7f7612a; |
`INPUT_WIDTH'd32 : data[62:0] <= 64'h3ff2ddea2c696f6a; |
`INPUT_WIDTH'd33 : data[62:0] <= 64'h3ff313eb883ae676; |
`INPUT_WIDTH'd34 : data[62:0] <= 64'h3ff34cab310ac280; |
`INPUT_WIDTH'd35 : data[62:0] <= 64'h3ff3884aef684af8; |
`INPUT_WIDTH'd36 : data[62:0] <= 64'h3ff3c6ef372fe94f; |
`INPUT_WIDTH'd37 : data[62:0] <= 64'h3ff408bf665efb99; |
`INPUT_WIDTH'd38 : data[62:0] <= 64'h3ff44de60b3c3d86; |
`INPUT_WIDTH'd39 : data[62:0] <= 64'h3ff4969132d53891; |
`INPUT_WIDTH'd40 : data[62:0] <= 64'h3ff4e2f2c0fa463b; |
`INPUT_WIDTH'd41 : data[62:0] <= 64'h3ff53340d31354d4; |
`INPUT_WIDTH'd42 : data[62:0] <= 64'h3ff587b62f6162b3; |
`INPUT_WIDTH'd43 : data[62:0] <= 64'h3ff5e092c2857578; |
`INPUT_WIDTH'd44 : data[62:0] <= 64'h3ff63e1c2d781ad9; |
`INPUT_WIDTH'd45 : data[62:0] <= 64'h3ff6a09e667f3bcc; |
`INPUT_WIDTH'd46 : data[62:0] <= 64'h3ff7086c7026f77d; |
`INPUT_WIDTH'd47 : data[62:0] <= 64'h3ff775e129d20b11; |
`INPUT_WIDTH'd48 : data[62:0] <= 64'h3ff7e9603e24eb24; |
`INPUT_WIDTH'd49 : data[62:0] <= 64'h3ff863573463a808; |
`INPUT_WIDTH'd50 : data[62:0] <= 64'h3ff8e43eaadf9333; |
`INPUT_WIDTH'd51 : data[62:0] <= 64'h3ff96c9bc1d2abfe; |
`INPUT_WIDTH'd52 : data[62:0] <= 64'h3ff9fd01bf93f3a3; |
`INPUT_WIDTH'd53 : data[62:0] <= 64'h3ffa9613f8fd7861; |
`INPUT_WIDTH'd54 : data[62:0] <= 64'h3ffb38880b4603e4; |
`INPUT_WIDTH'd55 : data[62:0] <= 64'h3ffbe52877982345; |
`INPUT_WIDTH'd56 : data[62:0] <= 64'h3ffc9cd7b485648a; |
`INPUT_WIDTH'd57 : data[62:0] <= 64'h3ffd6093ce555fa5; |
`INPUT_WIDTH'd58 : data[62:0] <= 64'h3ffe317ab5700fce; |
`INPUT_WIDTH'd59 : data[62:0] <= 64'h3fff10cf62336e2d; |
`INPUT_WIDTH'd60 : data[62:0] <= 64'h3ffffffffffffffe; |
`INPUT_WIDTH'd61 : data[62:0] <= 64'h40008056af82561c; |
`INPUT_WIDTH'd62 : data[62:0] <= 64'h40010a59ff3c94be; |
`INPUT_WIDTH'd63 : data[62:0] <= 64'h40019f1b8c9526ef; |
`INPUT_WIDTH'd64 : data[62:0] <= 64'h40023fd71f682340; |
`INPUT_WIDTH'd65 : data[62:0] <= 64'h4002edfb187b1137; |
`INPUT_WIDTH'd66 : data[62:0] <= 64'h4003ab32fb93a3a4; |
`INPUT_WIDTH'd67 : data[62:0] <= 64'h40047974b96de77f; |
`INPUT_WIDTH'd68 : data[62:0] <= 64'h40055b11998752bf; |
`INPUT_WIDTH'd69 : data[62:0] <= 64'h400652cbf905707c; |
`INPUT_WIDTH'd70 : data[62:0] <= 64'h400763f38fb4cf92; |
`INPUT_WIDTH'd71 : data[62:0] <= 64'h4008928aa26c4c06; |
`INPUT_WIDTH'd72 : data[62:0] <= 64'h4009e3779b97f4a7; |
`INPUT_WIDTH'd73 : data[62:0] <= 64'h400b5cc824ec982d; |
`INPUT_WIDTH'd74 : data[62:0] <= 64'h400d060d6ac58d68; |
`INPUT_WIDTH'd75 : data[62:0] <= 64'h400ee8dd4748bf16; |
`INPUT_WIDTH'd76 : data[62:0] <= 64'h401088c56499f43a; |
`INPUT_WIDTH'd77 : data[62:0] <= 64'h4011c819f29be021; |
`INPUT_WIDTH'd78 : data[62:0] <= 64'h40133d2b00047f05; |
`INPUT_WIDTH'd79 : data[62:0] <= 64'h4014f69f907046fe; |
`INPUT_WIDTH'd80 : data[62:0] <= 64'h401708fb2129168b; |
`INPUT_WIDTH'd81 : data[62:0] <= 64'h401991df41de341a; |
`INPUT_WIDTH'd82 : data[62:0] <= 64'h401cbdbe5febffaf; |
`INPUT_WIDTH'd83 : data[62:0] <= 64'h402069387b617567; |
`INPUT_WIDTH'd84 : data[62:0] <= 64'h4023222ff85e6006; |
`INPUT_WIDTH'd85 : data[62:0] <= 64'h4026f28a8ae3aafa; |
`INPUT_WIDTH'd86 : data[62:0] <= 64'h402cabd2100d0374; |
`INPUT_WIDTH'd87 : data[62:0] <= 64'h40331b797e990db2; |
`INPUT_WIDTH'd88 : data[62:0] <= 64'h403ca7596e271c6c; |
`INPUT_WIDTH'd89 : data[62:0] <= 64'h404ca63b6cba7b49; |
`INPUT_WIDTH'd90 : data[62:0] <= 64'h7ff0000000000000; |
|
|
default:data <= 64'h0; |
|
endcase |
|
else |
data <= 64'hxxxxxxxxxxxxxxx; |
|
|
|
end |
|
endmodule |
/verilog/sine.v
0,0 → 1,180
///////////////////////////////////////////////////////////////////// |
//// //// |
//// //// |
//// Trigonometric functions using double precision Floating Point Unit //// |
//// //// |
//// Author: Muni Aditya //// |
//// muni_aditya@yahoo.com //// |
//// //// |
///////////////////////////////////////////////////////////////////// |
//// //// |
//// Copyright (C) 2013 Muni Aditya //// |
//// muni_aditya@yahoo.com //// |
//// //// |
//// This source file may be used and distributed without //// |
//// restriction provided that this copyright statement is not //// |
//// removed from the file and that any derivative work contains //// |
//// the original copyright notice and the associated disclaimer.//// |
//// //// |
//// THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY //// |
//// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED //// |
//// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS //// |
//// FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL THE AUTHOR //// |
//// OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, //// |
//// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES //// |
//// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE //// |
//// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR //// |
//// BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF //// |
//// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT //// |
//// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT //// |
//// OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE //// |
//// POSSIBILITY OF SUCH DAMAGE. //// |
//// //// |
///////////////////////////////////////////////////////////////////// |
|
|
`timescale 1ns / 100ps |
|
`define INPUT_WIDTH 32 |
|
module sine_lut (quad, enable, degrees, data, rst, clk); |
|
input [1:0] quad; |
input enable; |
input rst; |
input [`INPUT_WIDTH-1:0] degrees ; |
input clk; |
|
//////////////inputs///////////////// |
|
output reg [63:0] data; |
|
//////////////output///////////////// |
|
|
always@(posedge clk ) |
|
// needs to be positive in first and second quadrants |
|
|
begin |
if (quad == 2'b10 || quad == 2'b11) |
begin |
data[63] <= 1'b1; |
end |
|
else |
begin |
data[63] <= 1'b0; |
end |
|
if(enable) |
case (degrees) |
|
//look up table |
|
`INPUT_WIDTH'd0 : data[62:0] <= 64'h0000000000000000; |
`INPUT_WIDTH'd1 : data[62:0] <= 64'h3f91df0b2b89dd1e; |
`INPUT_WIDTH'd2 : data[62:0] <= 64'h3fa1de58c9f7dc27; |
`INPUT_WIDTH'd3 : data[62:0] <= 64'h3faacbc748efc90d; |
`INPUT_WIDTH'd4 : data[62:0] <= 64'h3fb1db8f6d6a5128; |
`INPUT_WIDTH'd5 : data[62:0] <= 64'h3fb64fd6b8c28102; |
`INPUT_WIDTH'd6 : data[62:0] <= 64'h3fbac2609b3c576b; |
`INPUT_WIDTH'd7 : data[62:0] <= 64'h3fbf32d44c4f62d3; |
`INPUT_WIDTH'd8 : data[62:0] <= 64'h3fc1d06c968d9e19; |
`INPUT_WIDTH'd9 : data[62:0] <= 64'h3fc4060b67a85375; |
`INPUT_WIDTH'd10 : data[62:0] <= 64'h3fc63a1a7e0b7389; |
`INPUT_WIDTH'd11 : data[62:0] <= 64'h3fc86c6ddd76624f; |
`INPUT_WIDTH'd12 : data[62:0] <= 64'h3fca9cd9ac4258f5; |
`INPUT_WIDTH'd13 : data[62:0] <= 64'h3fcccb3236cdc674; |
`INPUT_WIDTH'd14 : data[62:0] <= 64'h3fcef74bf2e4b91d; |
`INPUT_WIDTH'd15 : data[62:0] <= 64'h3fd0907dc1930690; |
`INPUT_WIDTH'd16 : data[62:0] <= 64'h3fd1a40add328e29; |
`INPUT_WIDTH'd17 : data[62:0] <= 64'h3fd2b637cf83d5c7; |
`INPUT_WIDTH'd18 : data[62:0] <= 64'h3fd3c6ef372fe94f; |
`INPUT_WIDTH'd19 : data[62:0] <= 64'h3fd4d61bd000cddc; |
`INPUT_WIDTH'd20 : data[62:0] <= 64'h3fd5e3a8748a0bf5; |
`INPUT_WIDTH'd21 : data[62:0] <= 64'h3fd6ef801fced33c; |
`INPUT_WIDTH'd22 : data[62:0] <= 64'h3fd7f98deee59681; |
`INPUT_WIDTH'd23 : data[62:0] <= 64'h3fd901bd2298ffaa; |
`INPUT_WIDTH'd24 : data[62:0] <= 64'h3fda07f921061ad0; |
`INPUT_WIDTH'd25 : data[62:0] <= 64'h3fdb0c2d77379853; |
`INPUT_WIDTH'd26 : data[62:0] <= 64'h3fdc0e45dabe05c8; |
`INPUT_WIDTH'd27 : data[62:0] <= 64'h3fdd0e2e2b44de00; |
`INPUT_WIDTH'd28 : data[62:0] <= 64'h3fde0bd274245079; |
`INPUT_WIDTH'd29 : data[62:0] <= 64'h3fdf071eedefa0ed; |
`INPUT_WIDTH'd30 : data[62:0] <= 64'h3fdfffffffffffff; |
`INPUT_WIDTH'd31 : data[62:0] <= 64'h3fe07b3120fddf13; |
`INPUT_WIDTH'd32 : data[62:0] <= 64'h3fe0f5193eacdd2a; |
`INPUT_WIDTH'd33 : data[62:0] <= 64'h3fe16daed770771c; |
`INPUT_WIDTH'd34 : data[62:0] <= 64'h3fe1e4e88411fd12; |
`INPUT_WIDTH'd35 : data[62:0] <= 64'h3fe25abcf87c4978; |
`INPUT_WIDTH'd36 : data[62:0] <= 64'h3fe2cf2304755a5e; |
`INPUT_WIDTH'd37 : data[62:0] <= 64'h3fe342119455beb6; |
`INPUT_WIDTH'd38 : data[62:0] <= 64'h3fe3b37fb1bdc939; |
`INPUT_WIDTH'd39 : data[62:0] <= 64'h3fe4236484487abe; |
`INPUT_WIDTH'd40 : data[62:0] <= 64'h3fe491b7523c161c; |
`INPUT_WIDTH'd41 : data[62:0] <= 64'h3fe4fe6f81384fd4; |
`INPUT_WIDTH'd42 : data[62:0] <= 64'h3fe5698496e20bd8; |
`INPUT_WIDTH'd43 : data[62:0] <= 64'h3fe5d2ee398c9c2b; |
`INPUT_WIDTH'd44 : data[62:0] <= 64'h3fe63aa430e07310; |
`INPUT_WIDTH'd45 : data[62:0] <= 64'h3fe6a09e667f3bcc; |
`INPUT_WIDTH'd46 : data[62:0] <= 64'h3fe704d4e6a54d38; |
`INPUT_WIDTH'd47 : data[62:0] <= 64'h3fe7673fe0c86982; |
`INPUT_WIDTH'd48 : data[62:0] <= 64'h3fe7c7d7a833bec1; |
`INPUT_WIDTH'd49 : data[62:0] <= 64'h3fe82694b4a11c36; |
`INPUT_WIDTH'd50 : data[62:0] <= 64'h3fe8836fa2cf5039; |
`INPUT_WIDTH'd51 : data[62:0] <= 64'h3fe8de613515a327; |
`INPUT_WIDTH'd52 : data[62:0] <= 64'h3fe9376253f463d1; |
`INPUT_WIDTH'd53 : data[62:0] <= 64'h3fe98e6c0ea27a14; |
`INPUT_WIDTH'd54 : data[62:0] <= 64'h3fe9e3779b97f4a8; |
`INPUT_WIDTH'd55 : data[62:0] <= 64'h3fea367e59158747; |
`INPUT_WIDTH'd56 : data[62:0] <= 64'h3fea8779cda8eea5; |
`INPUT_WIDTH'd57 : data[62:0] <= 64'h3fead663a8ae2fdb; |
`INPUT_WIDTH'd58 : data[62:0] <= 64'h3feb2335c2cda945; |
`INPUT_WIDTH'd59 : data[62:0] <= 64'h3feb6dea1e76eadd; |
`INPUT_WIDTH'd60 : data[62:0] <= 64'h3febb67ae8584caa; |
`INPUT_WIDTH'd61 : data[62:0] <= 64'h3febfce277d339c6; |
`INPUT_WIDTH'd62 : data[62:0] <= 64'h3fec411b4f6d2707; |
`INPUT_WIDTH'd63 : data[62:0] <= 64'h3fec83201d3d2c6c; |
`INPUT_WIDTH'd64 : data[62:0] <= 64'h3fecc2ebbb5638ca; |
`INPUT_WIDTH'd65 : data[62:0] <= 64'h3fed0079302dd767; |
`INPUT_WIDTH'd66 : data[62:0] <= 64'h3fed3bc3aeff7f95; |
`INPUT_WIDTH'd67 : data[62:0] <= 64'h3fed74c6982c666f; |
`INPUT_WIDTH'd68 : data[62:0] <= 64'h3fedab7d7997cb57; |
`INPUT_WIDTH'd69 : data[62:0] <= 64'h3feddfe40effb805; |
`INPUT_WIDTH'd70 : data[62:0] <= 64'h3fee11f642522d1b; |
`INPUT_WIDTH'd71 : data[62:0] <= 64'h3fee41b02bfeb4ca; |
`INPUT_WIDTH'd72 : data[62:0] <= 64'h3fee6f0e134454ff; |
`INPUT_WIDTH'd73 : data[62:0] <= 64'h3fee9a0c6e7bdb1f; |
`INPUT_WIDTH'd74 : data[62:0] <= 64'h3feec2a7e35e7b80; |
`INPUT_WIDTH'd75 : data[62:0] <= 64'h3feee8dd4748bf15; |
`INPUT_WIDTH'd76 : data[62:0] <= 64'h3fef0ca99f79ba25; |
`INPUT_WIDTH'd77 : data[62:0] <= 64'h3fef2e0a214e870f; |
`INPUT_WIDTH'd78 : data[62:0] <= 64'h3fef4cfc327a0080; |
`INPUT_WIDTH'd79 : data[62:0] <= 64'h3fef697d6938b6c2; |
`INPUT_WIDTH'd80 : data[62:0] <= 64'h3fef838b8c811c17; |
`INPUT_WIDTH'd81 : data[62:0] <= 64'h3fef9b24942fe45c; |
`INPUT_WIDTH'd82 : data[62:0] <= 64'h3fefb046a930947a; |
`INPUT_WIDTH'd83 : data[62:0] <= 64'h3fefc2f025a23e8b; |
`INPUT_WIDTH'd84 : data[62:0] <= 64'h3fefd31f94f867c6; |
`INPUT_WIDTH'd85 : data[62:0] <= 64'h3fefe0d3b41815a2; |
`INPUT_WIDTH'd86 : data[62:0] <= 64'h3fefec0b7170fff6; |
`INPUT_WIDTH'd87 : data[62:0] <= 64'h3feff4c5ed12e61d; |
`INPUT_WIDTH'd88 : data[62:0] <= 64'h3feffb0278bf0567; |
`INPUT_WIDTH'd89 : data[62:0] <= 64'h3feffec097f5af8a; |
`INPUT_WIDTH'd90 : data[62:0] <= 64'h3ff0000000000000; |
|
default:data <= 64'h0; |
|
endcase |
|
else |
data <= 64'hxxxxxxxxxxxxxxx; |
|
|
|
end |
|
|
endmodule |
/verilog/cosecant.v
0,0 → 1,180
///////////////////////////////////////////////////////////////////// |
//// //// |
//// //// |
//// Trigonometric functions using double precision Floating Point Unit //// |
//// //// |
//// Author: Muni Aditya //// |
//// muni_aditya@yahoo.com //// |
//// //// |
///////////////////////////////////////////////////////////////////// |
//// //// |
//// Copyright (C) 2013 Muni Aditya //// |
//// muni_aditya@yahoo.com //// |
//// //// |
//// This source file may be used and distributed without //// |
//// restriction provided that this copyright statement is not //// |
//// removed from the file and that any derivative work contains //// |
//// the original copyright notice and the associated disclaimer.//// |
//// //// |
//// THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY //// |
//// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED //// |
//// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS //// |
//// FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL THE AUTHOR //// |
//// OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, //// |
//// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES //// |
//// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE //// |
//// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR //// |
//// BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF //// |
//// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT //// |
//// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT //// |
//// OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE //// |
//// POSSIBILITY OF SUCH DAMAGE. //// |
//// //// |
///////////////////////////////////////////////////////////////////// |
|
|
`timescale 1ns / 100ps |
|
`define INPUT_WIDTH 32 |
|
module cosecant_lut (quad, enable, degrees, data, rst, clk); |
|
input [1:0] quad; |
input enable; |
input rst; |
input [`INPUT_WIDTH-1:0] degrees ; |
input clk; |
|
//////////////inputs///////////////// |
|
output reg [63:0] data; |
|
//////////////output///////////////// |
|
|
always@(posedge clk ) |
|
// needs to be positive in first and second quadrants |
|
|
begin |
if (quad == 2'b10 || quad == 2'b11) |
begin |
data[63] <= 1'b1; |
end |
|
else |
begin |
data[63] <= 1'b0; |
end |
|
if(enable) |
case (degrees) |
|
// look up table |
|
`INPUT_WIDTH'd0 : data[62:0] <= 64'h7ff0000000000000; |
`INPUT_WIDTH'd1 : data[62:0] <= 64'h404ca63b6cba7b71; |
`INPUT_WIDTH'd2 : data[62:0] <= 64'h403ca7596e271c86; |
`INPUT_WIDTH'd3 : data[62:0] <= 64'h40331b797e990dc0; |
`INPUT_WIDTH'd4 : data[62:0] <= 64'h402cabd2100d036c; |
`INPUT_WIDTH'd5 : data[62:0] <= 64'h4026f28a8ae3ab08; |
`INPUT_WIDTH'd6 : data[62:0] <= 64'h4023222ff85e6006; |
`INPUT_WIDTH'd7 : data[62:0] <= 64'h402069387b617567; |
`INPUT_WIDTH'd8 : data[62:0] <= 64'h401cbdbe5febffb0; |
`INPUT_WIDTH'd9 : data[62:0] <= 64'h401991df41de341d; |
`INPUT_WIDTH'd10 : data[62:0] <= 64'h401708fb2129168e; |
`INPUT_WIDTH'd11 : data[62:0] <= 64'h4014f69f90704701; |
`INPUT_WIDTH'd12 : data[62:0] <= 64'h40133d2b00047f03; |
`INPUT_WIDTH'd13 : data[62:0] <= 64'h4011c819f29be025; |
`INPUT_WIDTH'd14 : data[62:0] <= 64'h401088c56499f439; |
`INPUT_WIDTH'd15 : data[62:0] <= 64'h400ee8dd4748bf16; |
`INPUT_WIDTH'd16 : data[62:0] <= 64'h400d060d6ac58d68; |
`INPUT_WIDTH'd17 : data[62:0] <= 64'h400b5cc824ec982e; |
`INPUT_WIDTH'd18 : data[62:0] <= 64'h4009e3779b97f4a8; |
`INPUT_WIDTH'd19 : data[62:0] <= 64'h4008928aa26c4c08; |
`INPUT_WIDTH'd20 : data[62:0] <= 64'h400763f38fb4cf95; |
`INPUT_WIDTH'd21 : data[62:0] <= 64'h400652cbf905707a; |
`INPUT_WIDTH'd22 : data[62:0] <= 64'h40055b11998752c1; |
`INPUT_WIDTH'd23 : data[62:0] <= 64'h40047974b96de77f; |
`INPUT_WIDTH'd24 : data[62:0] <= 64'h4003ab32fb93a3a7; |
`INPUT_WIDTH'd25 : data[62:0] <= 64'h4002edfb187b1137; |
`INPUT_WIDTH'd26 : data[62:0] <= 64'h40023fd71f682341; |
`INPUT_WIDTH'd27 : data[62:0] <= 64'h40019f1b8c9526f0; |
`INPUT_WIDTH'd28 : data[62:0] <= 64'h40010a59ff3c94be; |
`INPUT_WIDTH'd29 : data[62:0] <= 64'h40008056af82561d; |
`INPUT_WIDTH'd30 : data[62:0] <= 64'h4000000000000001; |
`INPUT_WIDTH'd31 : data[62:0] <= 64'h3fff10cf62336e31; |
`INPUT_WIDTH'd32 : data[62:0] <= 64'h3ffe317ab5700fce; |
`INPUT_WIDTH'd33 : data[62:0] <= 64'h3ffd6093ce555fa8; |
`INPUT_WIDTH'd34 : data[62:0] <= 64'h3ffc9cd7b485648a; |
`INPUT_WIDTH'd35 : data[62:0] <= 64'h3ffbe52877982347; |
`INPUT_WIDTH'd36 : data[62:0] <= 64'h3ffb38880b4603e4; |
`INPUT_WIDTH'd37 : data[62:0] <= 64'h3ffa9613f8fd7862; |
`INPUT_WIDTH'd38 : data[62:0] <= 64'h3ff9fd01bf93f3a3; |
`INPUT_WIDTH'd39 : data[62:0] <= 64'h3ff96c9bc1d2abfe; |
`INPUT_WIDTH'd40 : data[62:0] <= 64'h3ff8e43eaadf9334; |
`INPUT_WIDTH'd41 : data[62:0] <= 64'h3ff863573463a809; |
`INPUT_WIDTH'd42 : data[62:0] <= 64'h3ff7e9603e24eb24; |
`INPUT_WIDTH'd43 : data[62:0] <= 64'h3ff775e129d20b11; |
`INPUT_WIDTH'd44 : data[62:0] <= 64'h3ff7086c7026f77e; |
`INPUT_WIDTH'd45 : data[62:0] <= 64'h3ff6a09e667f3bcd; |
`INPUT_WIDTH'd46 : data[62:0] <= 64'h3ff63e1c2d781ada; |
`INPUT_WIDTH'd47 : data[62:0] <= 64'h3ff5e092c2857578; |
`INPUT_WIDTH'd48 : data[62:0] <= 64'h3ff587b62f6162b4; |
`INPUT_WIDTH'd49 : data[62:0] <= 64'h3ff53340d31354d5; |
`INPUT_WIDTH'd50 : data[62:0] <= 64'h3ff4e2f2c0fa463b; |
`INPUT_WIDTH'd51 : data[62:0] <= 64'h3ff4969132d53892; |
`INPUT_WIDTH'd52 : data[62:0] <= 64'h3ff44de60b3c3d86; |
`INPUT_WIDTH'd53 : data[62:0] <= 64'h3ff408bf665efb99; |
`INPUT_WIDTH'd54 : data[62:0] <= 64'h3ff3c6ef372fe94f; |
`INPUT_WIDTH'd55 : data[62:0] <= 64'h3ff3884aef684af8; |
`INPUT_WIDTH'd56 : data[62:0] <= 64'h3ff34cab310ac280; |
`INPUT_WIDTH'd57 : data[62:0] <= 64'h3ff313eb883ae677; |
`INPUT_WIDTH'd58 : data[62:0] <= 64'h3ff2ddea2c696f6a; |
`INPUT_WIDTH'd59 : data[62:0] <= 64'h3ff2aa87c7f7612b; |
`INPUT_WIDTH'd60 : data[62:0] <= 64'h3ff279a74590331d; |
`INPUT_WIDTH'd61 : data[62:0] <= 64'h3ff24b2da2943b49; |
`INPUT_WIDTH'd62 : data[62:0] <= 64'h3ff21f01c602373d; |
`INPUT_WIDTH'd63 : data[62:0] <= 64'h3ff1f50c5b61511e; |
`INPUT_WIDTH'd64 : data[62:0] <= 64'h3ff1cd37b13ce9c7; |
`INPUT_WIDTH'd65 : data[62:0] <= 64'h3ff1a76f9ad128b7; |
`INPUT_WIDTH'd66 : data[62:0] <= 64'h3ff183a154932d8b; |
`INPUT_WIDTH'd67 : data[62:0] <= 64'h3ff161bb6b4a03f3; |
`INPUT_WIDTH'd68 : data[62:0] <= 64'h3ff141ada5766663; |
`INPUT_WIDTH'd69 : data[62:0] <= 64'h3ff12368eecf1f68; |
`INPUT_WIDTH'd70 : data[62:0] <= 64'h3ff106df459ea073; |
`INPUT_WIDTH'd71 : data[62:0] <= 64'h3ff0ec03a9d451e4; |
`INPUT_WIDTH'd72 : data[62:0] <= 64'h3ff0d2ca0da1530d; |
`INPUT_WIDTH'd73 : data[62:0] <= 64'h3ff0bb27477cf20f; |
`INPUT_WIDTH'd74 : data[62:0] <= 64'h3ff0a51105712a50; |
`INPUT_WIDTH'd75 : data[62:0] <= 64'h3ff0907dc1930690; |
`INPUT_WIDTH'd76 : data[62:0] <= 64'h3ff07d64b78dea34; |
`INPUT_WIDTH'd77 : data[62:0] <= 64'h3ff06bbddb2b91b8; |
`INPUT_WIDTH'd78 : data[62:0] <= 64'h3ff05b81cfc51885; |
`INPUT_WIDTH'd79 : data[62:0] <= 64'h3ff04ca9e08b8cb6; |
`INPUT_WIDTH'd80 : data[62:0] <= 64'h3ff03f2ff9989907; |
`INPUT_WIDTH'd81 : data[62:0] <= 64'h3ff0330ea1b99998; |
`INPUT_WIDTH'd82 : data[62:0] <= 64'h3ff02840f4e91085; |
`INPUT_WIDTH'd83 : data[62:0] <= 64'h3ff01ec29f6be927; |
`INPUT_WIDTH'd84 : data[62:0] <= 64'h3ff0168fd9895209; |
`INPUT_WIDTH'd85 : data[62:0] <= 64'h3ff00fa563d53203; |
`INPUT_WIDTH'd86 : data[62:0] <= 64'h3ff00a008406617c; |
`INPUT_WIDTH'd87 : data[62:0] <= 64'h3ff0059f0252e0bc; |
`INPUT_WIDTH'd88 : data[62:0] <= 64'h3ff0027f274d432f; |
`INPUT_WIDTH'd89 : data[62:0] <= 64'h3ff0009fba3f7835; |
`INPUT_WIDTH'd90 : data[62:0] <= 64'h3ff0000000000000; |
|
|
default:data <= 64'h0; |
|
endcase |
|
else |
data <= 64'hxxxxxxxxxxxxxxx; |
|
|
|
end |
|
endmodule |
/verilog/cosine.v
0,0 → 1,178
///////////////////////////////////////////////////////////////////// |
//// //// |
//// //// |
//// Trigonometric functions using double precision Floating Point Unit //// |
//// //// |
//// Author: Muni Aditya //// |
//// muni_aditya@yahoo.com //// |
//// //// |
///////////////////////////////////////////////////////////////////// |
//// //// |
//// Copyright (C) 2013 Muni Aditya //// |
//// muni_aditya@yahoo.com //// |
//// //// |
//// This source file may be used and distributed without //// |
//// restriction provided that this copyright statement is not //// |
//// removed from the file and that any derivative work contains //// |
//// the original copyright notice and the associated disclaimer.//// |
//// //// |
//// THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY //// |
//// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED //// |
//// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS //// |
//// FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL THE AUTHOR //// |
//// OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, //// |
//// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES //// |
//// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE //// |
//// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR //// |
//// BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF //// |
//// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT //// |
//// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT //// |
//// OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE //// |
//// POSSIBILITY OF SUCH DAMAGE. //// |
//// //// |
///////////////////////////////////////////////////////////////////// |
|
`timescale 1ns / 100ps |
|
`define INPUT_WIDTH 32 |
|
module cosine_lut (quad, enable, degrees, data, rst, clk); |
|
input [1:0] quad; |
input enable; |
input rst; |
input [`INPUT_WIDTH-1:0] degrees ; |
input clk; |
|
//////////////inputs///////////////// |
|
output reg [63:0] data; |
|
//////////////output///////////////// |
|
|
always@(posedge clk ) |
|
//needs to be positive in first and fourth quadrants |
|
begin |
if (quad == 2'b01 || quad == 2'b10) |
begin |
data[63] <= 1'b1; |
end |
|
else |
begin |
data[63] <= 1'b0; |
end |
|
if(enable) |
case (degrees) |
|
//look up table |
|
`INPUT_WIDTH'd0 : data[62:0] <= 64'h3ff0000000000000; |
`INPUT_WIDTH'd1 : data[62:0] <= 64'h3feffec097f5af8a; |
`INPUT_WIDTH'd2 : data[62:0] <= 64'h3feffb0278bf0567; |
`INPUT_WIDTH'd3 : data[62:0] <= 64'h3feff4c5ed12e61d; |
`INPUT_WIDTH'd4 : data[62:0] <= 64'h3fefec0b7170fff6; |
`INPUT_WIDTH'd5 : data[62:0] <= 64'h3fefe0d3b41815a2; |
`INPUT_WIDTH'd6 : data[62:0] <= 64'h3fefd31f94f867c6; |
`INPUT_WIDTH'd7 : data[62:0] <= 64'h3fefc2f025a23e8b; |
`INPUT_WIDTH'd8 : data[62:0] <= 64'h3fefb046a930947a; |
`INPUT_WIDTH'd9 : data[62:0] <= 64'h3fef9b24942fe45c; |
`INPUT_WIDTH'd10 : data[62:0] <= 64'h3fef838b8c811c17; |
`INPUT_WIDTH'd11 : data[62:0] <= 64'h3fef697d6938b6c2; |
`INPUT_WIDTH'd12 : data[62:0] <= 64'h3fef4cfc327a0080; |
`INPUT_WIDTH'd13 : data[62:0] <= 64'h3fef2e0a214e870f; |
`INPUT_WIDTH'd14 : data[62:0] <= 64'h3fef0ca99f79ba25; |
`INPUT_WIDTH'd15 : data[62:0] <= 64'h3feee8dd4748bf15; |
`INPUT_WIDTH'd16 : data[62:0] <= 64'h3feec2a7e35e7b80; |
`INPUT_WIDTH'd17 : data[62:0] <= 64'h3fee9a0c6e7bdb20; |
`INPUT_WIDTH'd18 : data[62:0] <= 64'h3fee6f0e134454ff; |
`INPUT_WIDTH'd19 : data[62:0] <= 64'h3fee41b02bfeb4cb; |
`INPUT_WIDTH'd20 : data[62:0] <= 64'h3fee11f642522d1c; |
`INPUT_WIDTH'd21 : data[62:0] <= 64'h3feddfe40effb805; |
`INPUT_WIDTH'd22 : data[62:0] <= 64'h3fedab7d7997cb58; |
`INPUT_WIDTH'd23 : data[62:0] <= 64'h3fed74c6982c666f; |
`INPUT_WIDTH'd24 : data[62:0] <= 64'h3fed3bc3aeff7f95; |
`INPUT_WIDTH'd25 : data[62:0] <= 64'h3fed0079302dd767; |
`INPUT_WIDTH'd26 : data[62:0] <= 64'h3fecc2ebbb5638ca; |
`INPUT_WIDTH'd27 : data[62:0] <= 64'h3fec83201d3d2c6d; |
`INPUT_WIDTH'd28 : data[62:0] <= 64'h3fec411b4f6d2708; |
`INPUT_WIDTH'd29 : data[62:0] <= 64'h3febfce277d339c6; |
`INPUT_WIDTH'd30 : data[62:0] <= 64'h3febb67ae8584cab; |
`INPUT_WIDTH'd31 : data[62:0] <= 64'h3feb6dea1e76eade; |
`INPUT_WIDTH'd32 : data[62:0] <= 64'h3feb2335c2cda945; |
`INPUT_WIDTH'd33 : data[62:0] <= 64'h3fead663a8ae2fdc; |
`INPUT_WIDTH'd34 : data[62:0] <= 64'h3fea8779cda8eea5; |
`INPUT_WIDTH'd35 : data[62:0] <= 64'h3fea367e59158747; |
`INPUT_WIDTH'd36 : data[62:0] <= 64'h3fe9e3779b97f4a8; |
`INPUT_WIDTH'd37 : data[62:0] <= 64'h3fe98e6c0ea27a14; |
`INPUT_WIDTH'd38 : data[62:0] <= 64'h3fe9376253f463d1; |
`INPUT_WIDTH'd39 : data[62:0] <= 64'h3fe8de613515a328; |
`INPUT_WIDTH'd40 : data[62:0] <= 64'h3fe8836fa2cf5039; |
`INPUT_WIDTH'd41 : data[62:0] <= 64'h3fe82694b4a11c37; |
`INPUT_WIDTH'd42 : data[62:0] <= 64'h3fe7c7d7a833bec2; |
`INPUT_WIDTH'd43 : data[62:0] <= 64'h3fe7673fe0c86982; |
`INPUT_WIDTH'd44 : data[62:0] <= 64'h3fe704d4e6a54d39; |
`INPUT_WIDTH'd45 : data[62:0] <= 64'h3fe6a09e667f3bcd; |
`INPUT_WIDTH'd46 : data[62:0] <= 64'h3fe63aa430e07311; |
`INPUT_WIDTH'd47 : data[62:0] <= 64'h3fe5d2ee398c9c2b; |
`INPUT_WIDTH'd48 : data[62:0] <= 64'h3fe5698496e20bd8; |
`INPUT_WIDTH'd49 : data[62:0] <= 64'h3fe4fe6f81384fd5; |
`INPUT_WIDTH'd50 : data[62:0] <= 64'h3fe491b7523c161d; |
`INPUT_WIDTH'd51 : data[62:0] <= 64'h3fe4236484487abe; |
`INPUT_WIDTH'd52 : data[62:0] <= 64'h3fe3b37fb1bdc939; |
`INPUT_WIDTH'd53 : data[62:0] <= 64'h3fe342119455beb7; |
`INPUT_WIDTH'd54 : data[62:0] <= 64'h3fe2cf2304755a5e; |
`INPUT_WIDTH'd55 : data[62:0] <= 64'h3fe25abcf87c4979; |
`INPUT_WIDTH'd56 : data[62:0] <= 64'h3fe1e4e88411fd12; |
`INPUT_WIDTH'd57 : data[62:0] <= 64'h3fe16daed770771e; |
`INPUT_WIDTH'd58 : data[62:0] <= 64'h3fe0f5193eacdd2a; |
`INPUT_WIDTH'd59 : data[62:0] <= 64'h3fe07b3120fddf15; |
`INPUT_WIDTH'd60 : data[62:0] <= 64'h3fe0000000000001; |
`INPUT_WIDTH'd61 : data[62:0] <= 64'h3fdf071eedefa0ee; |
`INPUT_WIDTH'd62 : data[62:0] <= 64'h3fde0bd27424507a; |
`INPUT_WIDTH'd63 : data[62:0] <= 64'h3fdd0e2e2b44de01; |
`INPUT_WIDTH'd64 : data[62:0] <= 64'h3fdc0e45dabe05c9; |
`INPUT_WIDTH'd65 : data[62:0] <= 64'h3fdb0c2d77379853; |
`INPUT_WIDTH'd66 : data[62:0] <= 64'h3fda07f921061ad4; |
`INPUT_WIDTH'd67 : data[62:0] <= 64'h3fd901bd2298ffaa; |
`INPUT_WIDTH'd68 : data[62:0] <= 64'h3fd7f98deee59684; |
`INPUT_WIDTH'd69 : data[62:0] <= 64'h3fd6ef801fced33a; |
`INPUT_WIDTH'd70 : data[62:0] <= 64'h3fd5e3a8748a0bf7; |
`INPUT_WIDTH'd71 : data[62:0] <= 64'h3fd4d61bd000cddd; |
`INPUT_WIDTH'd72 : data[62:0] <= 64'h3fd3c6ef372fe950; |
`INPUT_WIDTH'd73 : data[62:0] <= 64'h3fd2b637cf83d5c8; |
`INPUT_WIDTH'd74 : data[62:0] <= 64'h3fd1a40add328e29; |
`INPUT_WIDTH'd75 : data[62:0] <= 64'h3fd0907dc1930690; |
`INPUT_WIDTH'd76 : data[62:0] <= 64'h3fcef74bf2e4b91b; |
`INPUT_WIDTH'd77 : data[62:0] <= 64'h3fcccb3236cdc67a; |
`INPUT_WIDTH'd78 : data[62:0] <= 64'h3fca9cd9ac4258f2; |
`INPUT_WIDTH'd79 : data[62:0] <= 64'h3fc86c6ddd766253; |
`INPUT_WIDTH'd80 : data[62:0] <= 64'h3fc63a1a7e0b738c; |
`INPUT_WIDTH'd81 : data[62:0] <= 64'h3fc4060b67a85377; |
`INPUT_WIDTH'd82 : data[62:0] <= 64'h3fc1d06c968d9e1a; |
`INPUT_WIDTH'd83 : data[62:0] <= 64'h3fbf32d44c4f62d4; |
`INPUT_WIDTH'd84 : data[62:0] <= 64'h3fbac2609b3c576b; |
`INPUT_WIDTH'd85 : data[62:0] <= 64'h3fb64fd6b8c28110; |
`INPUT_WIDTH'd86 : data[62:0] <= 64'h3fb1db8f6d6a5123; |
`INPUT_WIDTH'd87 : data[62:0] <= 64'h3faacbc748efc921; |
`INPUT_WIDTH'd88 : data[62:0] <= 64'h3fa1de58c9f7dc37; |
`INPUT_WIDTH'd89 : data[62:0] <= 64'h3f91df0b2b89dd37; |
`INPUT_WIDTH'd90 : data[62:0] <= 64'h0000000000000000; |
|
default:data <= 64'h0; |
|
endcase |
|
else |
data <= 64'hxxxxxxxxxxxxxxx; |
|
|
|
|
end |
|
endmodule |
/verilog/tangent.v
0,0 → 1,178
///////////////////////////////////////////////////////////////////// |
//// //// |
//// //// |
//// Trigonometric functions using double precision Floating Point Unit //// |
//// //// |
//// Author: Muni Aditya //// |
//// muni_aditya@yahoo.com //// |
//// //// |
///////////////////////////////////////////////////////////////////// |
//// //// |
//// Copyright (C) 2013 Muni Aditya //// |
//// muni_aditya@yahoo.com //// |
//// //// |
//// This source file may be used and distributed without //// |
//// restriction provided that this copyright statement is not //// |
//// removed from the file and that any derivative work contains //// |
//// the original copyright notice and the associated disclaimer.//// |
//// //// |
//// THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY //// |
//// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED //// |
//// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS //// |
//// FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL THE AUTHOR //// |
//// OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, //// |
//// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES //// |
//// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE //// |
//// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR //// |
//// BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF //// |
//// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT //// |
//// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT //// |
//// OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE //// |
//// POSSIBILITY OF SUCH DAMAGE. //// |
//// //// |
///////////////////////////////////////////////////////////////////// |
|
`timescale 1ns / 100ps |
|
`define INPUT_WIDTH 32 |
|
module tangent_lut (quad, enable, degrees, data, rst, clk); |
|
input [1:0] quad; |
input enable; |
input rst; |
input clk; |
input [`INPUT_WIDTH-1:0] degrees ; |
|
//////////////inputs///////////////// |
|
output reg [63:0] data; |
|
//////////////output///////////////// |
|
|
always@(posedge clk ) |
|
// needs to be positive in first and third quadrants |
|
begin |
if (quad == 2'b01 || quad == 2'b11) |
begin |
data[63] <= 1'b1; |
end |
|
else |
begin |
data[63] <= 1'b0; |
end |
|
if(enable) |
case (degrees) |
|
// look up table |
|
`INPUT_WIDTH'd0 : data[62:0] <= 64'h0000000000000000; |
`INPUT_WIDTH'd1 : data[62:0] <= 64'h3f91dfbd9410a422; |
`INPUT_WIDTH'd2 : data[62:0] <= 64'h3fa1e12295d61fc2; |
`INPUT_WIDTH'd3 : data[62:0] <= 64'h3faad53144273e71; |
`INPUT_WIDTH'd4 : data[62:0] <= 64'h3fb1e6b93a693204; |
`INPUT_WIDTH'd5 : data[62:0] <= 64'h3fb665a8349d55e1; |
`INPUT_WIDTH'd6 : data[62:0] <= 64'h3fbae81c75231d97; |
`INPUT_WIDTH'd7 : data[62:0] <= 64'h3fbf6ecf19881d32; |
`INPUT_WIDTH'd8 : data[62:0] <= 64'h3fc1fd3df8664fe5; |
`INPUT_WIDTH'd9 : data[62:0] <= 64'h3fc445f0fbb1cf91; |
`INPUT_WIDTH'd10 : data[62:0] <= 64'h3fc691e1ebc5cbbc; |
`INPUT_WIDTH'd11 : data[62:0] <= 64'h3fc8e174375dceb6; |
`INPUT_WIDTH'd12 : data[62:0] <= 64'h3fcb350dac76234b; |
`INPUT_WIDTH'd13 : data[62:0] <= 64'h3fcd8d16c1491593; |
`INPUT_WIDTH'd14 : data[62:0] <= 64'h3fcfe9fae1181f54; |
`INPUT_WIDTH'd15 : data[62:0] <= 64'h3fd126145e9ecd56; |
`INPUT_WIDTH'd16 : data[62:0] <= 64'h3fd25a0951873b22; |
`INPUT_WIDTH'd17 : data[62:0] <= 64'h3fd391176b8feb5a; |
`INPUT_WIDTH'd18 : data[62:0] <= 64'h3fd4cb7bfb4961ae; |
`INPUT_WIDTH'd19 : data[62:0] <= 64'h3fd60976af8c1613; |
`INPUT_WIDTH'd20 : data[62:0] <= 64'h3fd74b49cf3902d4; |
`INPUT_WIDTH'd21 : data[62:0] <= 64'h3fd8913a75259d06; |
`INPUT_WIDTH'd22 : data[62:0] <= 64'h3fd9db90d0ac0d40; |
`INPUT_WIDTH'd23 : data[62:0] <= 64'h3fdb2a986b66229e; |
`INPUT_WIDTH'd24 : data[62:0] <= 64'h3fdc7ea074a90a0c; |
`INPUT_WIDTH'd25 : data[62:0] <= 64'h3fddd7fc13699ab1; |
`INPUT_WIDTH'd26 : data[62:0] <= 64'h3fdf3702bf455cf3; |
`INPUT_WIDTH'd27 : data[62:0] <= 64'h3fe04e0850c1dd5c; |
`INPUT_WIDTH'd28 : data[62:0] <= 64'h3fe103c37f7ebedc; |
`INPUT_WIDTH'd29 : data[62:0] <= 64'h3fe1bce655fbb9bf; |
`INPUT_WIDTH'd30 : data[62:0] <= 64'h3fe279a74590331c; |
`INPUT_WIDTH'd31 : data[62:0] <= 64'h3fe33a400c85af9d; |
`INPUT_WIDTH'd32 : data[62:0] <= 64'h3fe3feee02d72515; |
`INPUT_WIDTH'd33 : data[62:0] <= 64'h3fe4c7f26ed1d60d; |
`INPUT_WIDTH'd34 : data[62:0] <= 64'h3fe59592e296c624; |
`INPUT_WIDTH'd35 : data[62:0] <= 64'h3fe66819a3a0bf7a; |
`INPUT_WIDTH'd36 : data[62:0] <= 64'h3fe73fd61d9df543; |
`INPUT_WIDTH'd37 : data[62:0] <= 64'h3fe81d1d621eb710; |
`INPUT_WIDTH'd38 : data[62:0] <= 64'h3fe9004ab6d5cc92; |
`INPUT_WIDTH'd39 : data[62:0] <= 64'h3fe9e9c0346ca838; |
`INPUT_WIDTH'd40 : data[62:0] <= 64'h3fead9e7783fbf1d; |
`INPUT_WIDTH'd41 : data[62:0] <= 64'h3febd1326bb88d11; |
`INPUT_WIDTH'd42 : data[62:0] <= 64'h3fecd01c246e405f; |
`INPUT_WIDTH'd43 : data[62:0] <= 64'h3fedd729e0bf9cb7; |
`INPUT_WIDTH'd44 : data[62:0] <= 64'h3feee6ec253d2462; |
`INPUT_WIDTH'd45 : data[62:0] <= 64'h3fefffffffffffff; |
`INPUT_WIDTH'd46 : data[62:0] <= 64'h3ff091883bfbf42d; |
`INPUT_WIDTH'd47 : data[62:0] <= 64'h3ff1286c17acf49c; |
`INPUT_WIDTH'd48 : data[62:0] <= 64'h3ff1c511a0db83e2; |
`INPUT_WIDTH'd49 : data[62:0] <= 64'h3ff267e8b3f5da80; |
`INPUT_WIDTH'd50 : data[62:0] <= 64'h3ff3116c3711527e; |
`INPUT_WIDTH'd51 : data[62:0] <= 64'h3ff3c2238553dced; |
`INPUT_WIDTH'd52 : data[62:0] <= 64'h3ff47aa413b0ee1d; |
`INPUT_WIDTH'd53 : data[62:0] <= 64'h3ff53b9359d2f918; |
`INPUT_WIDTH'd54 : data[62:0] <= 64'h3ff605a90c73ab78; |
`INPUT_WIDTH'd55 : data[62:0] <= 64'h3ff6d9b1b96ce127; |
`INPUT_WIDTH'd56 : data[62:0] <= 64'h3ff7b891d9a169b3; |
`INPUT_WIDTH'd57 : data[62:0] <= 64'h3ff8a34971bd700d; |
`INPUT_WIDTH'd58 : data[62:0] <= 64'h3ff99af8610e4106; |
`INPUT_WIDTH'd59 : data[62:0] <= 64'h3ffaa0e385c196a8; |
`INPUT_WIDTH'd60 : data[62:0] <= 64'h3ffbb67ae8584ca8; |
`INPUT_WIDTH'd61 : data[62:0] <= 64'h3ffcdd612dd501f3; |
`INPUT_WIDTH'd62 : data[62:0] <= 64'h3ffe1774a2562592; |
`INPUT_WIDTH'd63 : data[62:0] <= 64'h3fff66da45fee3f0; |
`INPUT_WIDTH'd64 : data[62:0] <= 64'h40006705b35391e7; |
`INPUT_WIDTH'd65 : data[62:0] <= 64'h400127f33e8d12e5; |
`INPUT_WIDTH'd66 : data[62:0] <= 64'h4001f7e220cc416f; |
`INPUT_WIDTH'd67 : data[62:0] <= 64'h4002d8c9200b5686; |
`INPUT_WIDTH'd68 : data[62:0] <= 64'h4003ccfa561175d3; |
`INPUT_WIDTH'd69 : data[62:0] <= 64'h4004d738ef803785; |
`INPUT_WIDTH'd70 : data[62:0] <= 64'h4005fad570f872d7; |
`INPUT_WIDTH'd71 : data[62:0] <= 64'h40073bd2e9a270df; |
`INPUT_WIDTH'd72 : data[62:0] <= 64'h40089f188bdcd7ad; |
`INPUT_WIDTH'd73 : data[62:0] <= 64'h400a2ab4c713671d; |
`INPUT_WIDTH'd74 : data[62:0] <= 64'h400be6398b3f2869; |
`INPUT_WIDTH'd75 : data[62:0] <= 64'h400ddb3d742c2656; |
`INPUT_WIDTH'd76 : data[62:0] <= 64'h40100b0a2833d3c5; |
`INPUT_WIDTH'd77 : data[62:0] <= 64'h4011536e695dda91; |
`INPUT_WIDTH'd78 : data[62:0] <= 64'h4012d18a8e2ff28e; |
`INPUT_WIDTH'd79 : data[62:0] <= 64'h40149405f7cc6448; |
`INPUT_WIDTH'd80 : data[62:0] <= 64'h4016af648056a133; |
`INPUT_WIDTH'd81 : data[62:0] <= 64'h4019414813ba6629; |
`INPUT_WIDTH'd82 : data[62:0] <= 64'h401c76237b025ae6; |
`INPUT_WIDTH'd83 : data[62:0] <= 64'h402049e7c666e3fe; |
`INPUT_WIDTH'd84 : data[62:0] <= 64'h4023075ac71a38c8; |
`INPUT_WIDTH'd85 : data[62:0] <= 64'h4026dc2fd0bfdbd5; |
`INPUT_WIDTH'd86 : data[62:0] <= 64'h402c99f0ed772d54; |
`INPUT_WIDTH'd87 : data[62:0] <= 64'h403314c55fbc4c58; |
`INPUT_WIDTH'd88 : data[62:0] <= 64'h403ca2e17ec21843; |
`INPUT_WIDTH'd89 : data[62:0] <= 64'h404ca51d76749a49; |
`INPUT_WIDTH'd90 : data[62:0] <= 64'h7ff0000000000000; |
|
default:data <= 64'h0; |
|
endcase |
|
|
else |
data <= 64'hxxxxxxxxxxxxxxx; |
|
|
|
end |
|
endmodule |
/verilog/netlist_fpu.ddc
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
verilog/netlist_fpu.ddc
Property changes :
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: verilog/cotangent.v
===================================================================
--- verilog/cotangent.v (nonexistent)
+++ verilog/cotangent.v (revision 17)
@@ -0,0 +1,180 @@
+/////////////////////////////////////////////////////////////////////
+//// ////
+//// ////
+//// Trigonometric functions using double precision Floating Point Unit ////
+//// ////
+//// Author: Muni Aditya ////
+//// muni_aditya@yahoo.com ////
+//// ////
+/////////////////////////////////////////////////////////////////////
+//// ////
+//// Copyright (C) 2013 Muni Aditya ////
+//// muni_aditya@yahoo.com ////
+//// ////
+//// This source file may be used and distributed without ////
+//// restriction provided that this copyright statement is not ////
+//// removed from the file and that any derivative work contains ////
+//// the original copyright notice and the associated disclaimer.////
+//// ////
+//// THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY ////
+//// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED ////
+//// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS ////
+//// FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL THE AUTHOR ////
+//// OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, ////
+//// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES ////
+//// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE ////
+//// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR ////
+//// BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF ////
+//// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ////
+//// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT ////
+//// OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE ////
+//// POSSIBILITY OF SUCH DAMAGE. ////
+//// ////
+/////////////////////////////////////////////////////////////////////
+
+`timescale 1ns / 100ps
+
+`define INPUT_WIDTH 32
+
+module cotangent_lut (quad, enable, degrees, data, rst, clk);
+
+input [1:0] quad;
+input enable;
+input rst;
+input [`INPUT_WIDTH-1:0] degrees ;
+input clk;
+
+//////////////inputs/////////////////
+
+output reg [63:0] data;
+
+//////////////output/////////////////
+
+always@(posedge clk )
+
+// needs to be positive in first and third quadrants
+
+ begin
+ if (quad == 2'b01 || quad == 2'b11)
+ begin
+ data[63] <= 1'b1;
+ end
+
+ else
+ begin
+ data[63] <= 1'b0;
+ end
+
+
+
+ if(enable)
+ case (degrees)
+
+//look up table
+
+`INPUT_WIDTH'd0 : data[62:0] <= 64'h7ff0000000000000;
+`INPUT_WIDTH'd1 : data[62:0] <= 64'h404ca51d76749a71;
+`INPUT_WIDTH'd2 : data[62:0] <= 64'h403ca2e17ec2185c;
+`INPUT_WIDTH'd3 : data[62:0] <= 64'h403314c55fbc4c67;
+`INPUT_WIDTH'd4 : data[62:0] <= 64'h402c99f0ed772d4c;
+`INPUT_WIDTH'd5 : data[62:0] <= 64'h4026dc2fd0bfdbe2;
+`INPUT_WIDTH'd6 : data[62:0] <= 64'h4023075ac71a38c7;
+`INPUT_WIDTH'd7 : data[62:0] <= 64'h402049e7c666e3fe;
+`INPUT_WIDTH'd8 : data[62:0] <= 64'h401c76237b025ae8;
+`INPUT_WIDTH'd9 : data[62:0] <= 64'h4019414813ba662c;
+`INPUT_WIDTH'd10 : data[62:0] <= 64'h4016af648056a136;
+`INPUT_WIDTH'd11 : data[62:0] <= 64'h40149405f7cc644c;
+`INPUT_WIDTH'd12 : data[62:0] <= 64'h4012d18a8e2ff28c;
+`INPUT_WIDTH'd13 : data[62:0] <= 64'h4011536e695dda95;
+`INPUT_WIDTH'd14 : data[62:0] <= 64'h40100b0a2833d3c4;
+`INPUT_WIDTH'd15 : data[62:0] <= 64'h400ddb3d742c2656;
+`INPUT_WIDTH'd16 : data[62:0] <= 64'h400be6398b3f2869;
+`INPUT_WIDTH'd17 : data[62:0] <= 64'h400a2ab4c713671e;
+`INPUT_WIDTH'd18 : data[62:0] <= 64'h40089f188bdcd7b0;
+`INPUT_WIDTH'd19 : data[62:0] <= 64'h40073bd2e9a270e0;
+`INPUT_WIDTH'd20 : data[62:0] <= 64'h4005fad570f872d9;
+`INPUT_WIDTH'd21 : data[62:0] <= 64'h4004d738ef803784;
+`INPUT_WIDTH'd22 : data[62:0] <= 64'h4003ccfa561175d6;
+`INPUT_WIDTH'd23 : data[62:0] <= 64'h4002d8c9200b5686;
+`INPUT_WIDTH'd24 : data[62:0] <= 64'h4001f7e220cc4172;
+`INPUT_WIDTH'd25 : data[62:0] <= 64'h400127f33e8d12e5;
+`INPUT_WIDTH'd26 : data[62:0] <= 64'h40006705b35391e8;
+`INPUT_WIDTH'd27 : data[62:0] <= 64'h3fff66da45fee3f1;
+`INPUT_WIDTH'd28 : data[62:0] <= 64'h3ffe1774a2562593;
+`INPUT_WIDTH'd29 : data[62:0] <= 64'h3ffcdd612dd501f4;
+`INPUT_WIDTH'd30 : data[62:0] <= 64'h3ffbb67ae8584cab;
+`INPUT_WIDTH'd31 : data[62:0] <= 64'h3ffaa0e385c196ab;
+`INPUT_WIDTH'd32 : data[62:0] <= 64'h3ff99af8610e4105;
+`INPUT_WIDTH'd33 : data[62:0] <= 64'h3ff8a34971bd7010;
+`INPUT_WIDTH'd34 : data[62:0] <= 64'h3ff7b891d9a169b4;
+`INPUT_WIDTH'd35 : data[62:0] <= 64'h3ff6d9b1b96ce128;
+`INPUT_WIDTH'd36 : data[62:0] <= 64'h3ff605a90c73ab79;
+`INPUT_WIDTH'd37 : data[62:0] <= 64'h3ff53b9359d2f919;
+`INPUT_WIDTH'd38 : data[62:0] <= 64'h3ff47aa413b0ee1e;
+`INPUT_WIDTH'd39 : data[62:0] <= 64'h3ff3c2238553dcee;
+`INPUT_WIDTH'd40 : data[62:0] <= 64'h3ff3116c3711527e;
+`INPUT_WIDTH'd41 : data[62:0] <= 64'h3ff267e8b3f5da82;
+`INPUT_WIDTH'd42 : data[62:0] <= 64'h3ff1c511a0db83e3;
+`INPUT_WIDTH'd43 : data[62:0] <= 64'h3ff1286c17acf49b;
+`INPUT_WIDTH'd44 : data[62:0] <= 64'h3ff091883bfbf42e;
+`INPUT_WIDTH'd45 : data[62:0] <= 64'h3ff0000000000001;
+`INPUT_WIDTH'd46 : data[62:0] <= 64'h3feee6ec253d2464;
+`INPUT_WIDTH'd47 : data[62:0] <= 64'h3fedd729e0bf9cb6;
+`INPUT_WIDTH'd48 : data[62:0] <= 64'h3fecd01c246e4060;
+`INPUT_WIDTH'd49 : data[62:0] <= 64'h3febd1326bb88d13;
+`INPUT_WIDTH'd50 : data[62:0] <= 64'h3fead9e7783fbf1e;
+`INPUT_WIDTH'd51 : data[62:0] <= 64'h3fe9e9c0346ca839;
+`INPUT_WIDTH'd52 : data[62:0] <= 64'h3fe9004ab6d5cc93;
+`INPUT_WIDTH'd53 : data[62:0] <= 64'h3fe81d1d621eb711;
+`INPUT_WIDTH'd54 : data[62:0] <= 64'h3fe73fd61d9df544;
+`INPUT_WIDTH'd55 : data[62:0] <= 64'h3fe66819a3a0bf7b;
+`INPUT_WIDTH'd56 : data[62:0] <= 64'h3fe59592e296c625;
+`INPUT_WIDTH'd57 : data[62:0] <= 64'h3fe4c7f26ed1d60f;
+`INPUT_WIDTH'd58 : data[62:0] <= 64'h3fe3feee02d72514;
+`INPUT_WIDTH'd59 : data[62:0] <= 64'h3fe33a400c85af9f;
+`INPUT_WIDTH'd60 : data[62:0] <= 64'h3fe279a74590331e;
+`INPUT_WIDTH'd61 : data[62:0] <= 64'h3fe1bce655fbb9bf;
+`INPUT_WIDTH'd62 : data[62:0] <= 64'h3fe103c37f7ebedc;
+`INPUT_WIDTH'd63 : data[62:0] <= 64'h3fe04e0850c1dd5d;
+`INPUT_WIDTH'd64 : data[62:0] <= 64'h3fdf3702bf455cf5;
+`INPUT_WIDTH'd65 : data[62:0] <= 64'h3fddd7fc13699ab1;
+`INPUT_WIDTH'd66 : data[62:0] <= 64'h3fdc7ea074a90a11;
+`INPUT_WIDTH'd67 : data[62:0] <= 64'h3fdb2a986b66229e;
+`INPUT_WIDTH'd68 : data[62:0] <= 64'h3fd9db90d0ac0d44;
+`INPUT_WIDTH'd69 : data[62:0] <= 64'h3fd8913a75259d04;
+`INPUT_WIDTH'd70 : data[62:0] <= 64'h3fd74b49cf3902d6;
+`INPUT_WIDTH'd71 : data[62:0] <= 64'h3fd60976af8c1614;
+`INPUT_WIDTH'd72 : data[62:0] <= 64'h3fd4cb7bfb4961b0;
+`INPUT_WIDTH'd73 : data[62:0] <= 64'h3fd391176b8feb5b;
+`INPUT_WIDTH'd74 : data[62:0] <= 64'h3fd25a0951873b22;
+`INPUT_WIDTH'd75 : data[62:0] <= 64'h3fd126145e9ecd56;
+`INPUT_WIDTH'd76 : data[62:0] <= 64'h3fcfe9fae1181f52;
+`INPUT_WIDTH'd77 : data[62:0] <= 64'h3fcd8d16c1491599;
+`INPUT_WIDTH'd78 : data[62:0] <= 64'h3fcb350dac762348;
+`INPUT_WIDTH'd79 : data[62:0] <= 64'h3fc8e174375dceba;
+`INPUT_WIDTH'd80 : data[62:0] <= 64'h3fc691e1ebc5cbbf;
+`INPUT_WIDTH'd81 : data[62:0] <= 64'h3fc445f0fbb1cf93;
+`INPUT_WIDTH'd82 : data[62:0] <= 64'h3fc1fd3df8664fe6;
+`INPUT_WIDTH'd83 : data[62:0] <= 64'h3fbf6ecf19881d32;
+`INPUT_WIDTH'd84 : data[62:0] <= 64'h3fbae81c75231d96;
+`INPUT_WIDTH'd85 : data[62:0] <= 64'h3fb665a8349d55ee;
+`INPUT_WIDTH'd86 : data[62:0] <= 64'h3fb1e6b93a6931ff;
+`INPUT_WIDTH'd87 : data[62:0] <= 64'h3faad53144273e86;
+`INPUT_WIDTH'd88 : data[62:0] <= 64'h3fa1e12295d61fd2;
+`INPUT_WIDTH'd89 : data[62:0] <= 64'h3f91dfbd9410a43b;
+`INPUT_WIDTH'd90 : data[62:0] <= 64'h0000000000000000;
+
+
+default:data <= 64'h0;
+
+endcase
+
+else
+ data <= 64'hxxxxxxxxxxxxxxx;
+
+
+
+end
+
+
+endmodule
Index: verilog/top.v
===================================================================
--- verilog/top.v (nonexistent)
+++ verilog/top.v (revision 17)
@@ -0,0 +1,215 @@
+/////////////////////////////////////////////////////////////////////
+//// ////
+//// ////
+//// Trigonometric functions using double precision Floating Point Unit ////
+//// ////
+//// Author: Muni Aditya ////
+//// muni_aditya@yahoo.com ////
+//// ////
+/////////////////////////////////////////////////////////////////////
+//// ////
+//// Copyright (C) 2013 Muni Aditya ////
+//// muni_aditya@yahoo.com ////
+//// ////
+//// This source file may be used and distributed without ////
+//// restriction provided that this copyright statement is not ////
+//// removed from the file and that any derivative work contains ////
+//// the original copyright notice and the associated disclaimer.////
+//// ////
+//// THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY ////
+//// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED ////
+//// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS ////
+//// FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL THE AUTHOR ////
+//// OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, ////
+//// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES ////
+//// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE ////
+//// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR ////
+//// BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF ////
+//// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ////
+//// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT ////
+//// OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE ////
+//// POSSIBILITY OF SUCH DAMAGE. ////
+//// ////
+/////////////////////////////////////////////////////////////////////
+
+`timescale 1ns / 100ps
+
+`define INPUT_WIDTH 32
+
+module top( enable, degrees, data1, rst, actv, clk) ;
+
+
+input enable;
+input [`INPUT_WIDTH-1:0] degrees ;
+input rst;
+input [2:0] actv;
+input clk;
+
+//////////////inputs/////////////////
+
+output reg [63:0] data1;
+
+//////////////output/////////////////
+
+
+reg [63:0] data;
+reg [`INPUT_WIDTH-1:0] half_wave;
+reg [`INPUT_WIDTH-1:0] full_wave;
+reg [63:0] data_tmp;
+reg [`INPUT_WIDTH-1:0] degrees_tmp1;
+reg [`INPUT_WIDTH-1:0] degrees_tmp2;
+reg [1:0] quad;
+reg sin_enable, cos_enable, tan_enable, csc_enable, sec_enable, cot_enable;
+
+//////////////registers/////////////////
+
+wire [63:0] data_sin, data_cos, data_tan, data_csc, data_sec, data_cot;
+wire [`INPUT_WIDTH-1:0] divider_out;
+
+//////////////wires/////////////////
+
+
+sine_lut a1 (.quad(quad), .enable(sin_enable) , .degrees(degrees_tmp2) , .data(data_sin), .rst(rst), .clk(clk));
+
+cosine_lut a2 (.quad(quad), .enable(cos_enable) , .degrees(degrees_tmp2) , .data(data_cos), .rst(rst), .clk(clk));
+
+tangent_lut a3 (.quad(quad), .enable(tan_enable) , .degrees(degrees_tmp2) , .data(data_tan), .rst(rst), .clk(clk));
+
+cosecant_lut a4 (.quad(quad), .enable(csc_enable) , .degrees(degrees_tmp2) , .data(data_csc), .rst(rst), .clk(clk));
+
+secant_lut a5 (.quad(quad), .enable(sec_enable) , .degrees(degrees_tmp2) , .data(data_sec), .rst(rst), .clk(clk));
+
+cotangent_lut a6 (.quad(quad), .enable(cot_enable) , .degrees(degrees_tmp2) , .data(data_cot), .rst(rst), .clk(clk));
+
+dividor a7 (.clk(clk), .inp(degrees), .rst(rst), .out(divider_out));
+
+
+
+
+
+always@(posedge clk)
+
+begin
+
+ if (rst)
+ begin
+
+ sin_enable <= 0;
+ cos_enable <= 0;
+ tan_enable <= 0;
+ csc_enable <= 0;
+ sec_enable <= 0;
+ cot_enable <= 0;
+
+ end
+
+ else
+ begin
+ sin_enable <= (actv == 3'b000) ? enable : 1'b0 ;
+ cos_enable <= (actv == 3'b001) ? enable : 1'b0 ;
+ tan_enable <= (actv == 3'b010) ? enable : 1'b0 ;
+ csc_enable <= (actv == 3'b011) ? enable : 1'b0 ;
+ sec_enable <= (actv == 3'b100) ? enable : 1'b0 ;
+ cot_enable <= (actv == 3'b101) ? enable : 1'b0 ;
+ end
+end
+
+
+
+ /////////// degress calculation////////////
+
+ always@(posedge clk)
+ begin
+ if( degrees > `INPUT_WIDTH'd360)
+ begin
+
+//////////////// If input value greater than 360 ///////////////
+
+ if (divider_out > `INPUT_WIDTH'd270)
+ begin
+ quad <= 2'b11;
+ degrees_tmp2 <= divider_out - `INPUT_WIDTH'd270;
+ end
+ else
+
+ if (divider_out > `INPUT_WIDTH'd180 && (divider_out < `INPUT_WIDTH'd270 || divider_out == `INPUT_WIDTH'd270))
+ begin
+ quad <= 2'b10;
+ degrees_tmp2 <= divider_out - `INPUT_WIDTH'd180;
+ end
+ else
+
+ if (divider_out > `INPUT_WIDTH'd90 && (divider_out < `INPUT_WIDTH'd180 || divider_out == `INPUT_WIDTH'd180))
+ begin
+ degrees_tmp2 <= `INPUT_WIDTH'd180 - divider_out;
+ quad <= 2'b01;
+ end
+ else
+ begin
+ degrees_tmp2 <= divider_out;
+ quad <= 2'b00;
+ end
+ end // >360
+ ////////////////////////end of divider///////////////////
+ else
+
+
+
+////////////// If input value is between 181 and 360//////////
+
+ if (degrees > `INPUT_WIDTH'd180 && (degrees < `INPUT_WIDTH'd360 || degrees == `INPUT_WIDTH'd360))
+ begin
+ degrees_tmp1 <= degrees - `INPUT_WIDTH'd180;
+
+ begin
+ if(degrees_tmp1 >`INPUT_WIDTH'd90)
+ begin
+ quad <= 2'b11;
+ degrees_tmp2 <= `INPUT_WIDTH'd180 - degrees_tmp1;
+ end
+
+ else
+ begin
+ quad <= 2'b10;
+ degrees_tmp2 <= degrees_tmp1;
+ end
+
+ end
+
+ end
+ else
+
+//////////// If input value is between 91 and 180//////////////
+
+ if (degrees > `INPUT_WIDTH'd90 && (degrees < `INPUT_WIDTH'd180 || degrees == `INPUT_WIDTH'd180))
+ begin
+ quad <= 2'b01;
+ degrees_tmp2 <= `INPUT_WIDTH'd180 - degrees;
+ end
+ else
+
+ begin
+ quad <= 2'b00;
+ degrees_tmp2 <= degrees;
+ end
+
+end
+
+ always@(posedge clk)
+
+ begin
+ case (actv)
+3'b000: data1 <= data_sin;
+3'b001: data1 <= data_cos;
+3'b010: data1 <= data_tan;
+3'b011: data1 <= data_csc;
+3'b100: data1 <= data_sec;
+3'b101: data1 <= data_cot;
+default: data1 <= 0;
+endcase
+
+
+end
+
+
+endmodule
Index: verilog/divider.v
===================================================================
--- verilog/divider.v (nonexistent)
+++ verilog/divider.v (revision 17)
@@ -0,0 +1,70 @@
+/////////////////////////////////////////////////////////////////////
+//// ////
+//// ////
+//// Trigonometric functions using double precision Floating Point Unit ////
+//// ////
+//// Author: Muni Aditya ////
+//// muni_aditya@yahoo.com ////
+//// ////
+/////////////////////////////////////////////////////////////////////
+//// ////
+//// Copyright (C) 2013 Muni Aditya ////
+//// muni_aditya@yahoo.com ////
+//// ////
+//// This source file may be used and distributed without ////
+//// restriction provided that this copyright statement is not ////
+//// removed from the file and that any derivative work contains ////
+//// the original copyright notice and the associated disclaimer.////
+//// ////
+//// THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY ////
+//// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED ////
+//// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS ////
+//// FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL THE AUTHOR ////
+//// OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, ////
+//// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES ////
+//// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE ////
+//// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR ////
+//// BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF ////
+//// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ////
+//// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT ////
+//// OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE ////
+//// POSSIBILITY OF SUCH DAMAGE. ////
+//// ////
+/////////////////////////////////////////////////////////////////////
+
+`timescale 1ns / 100ps
+
+`define INPUT_WIDTH 32
+
+
+
+module dividor (clk, inp, rst, out);
+
+ input clk;
+ input [`INPUT_WIDTH-1:0] inp;
+ input rst;
+
+//////////////inputs/////////////////
+
+ output reg [`INPUT_WIDTH-1:0] out;
+
+//////////////output/////////////////
+
+ wire [`INPUT_WIDTH-1:0]DIVISOR = `INPUT_WIDTH'd360 ;
+
+
+ always @ (posedge clk)
+
+// modulo division
+
+ if(rst)
+ out <= 8'd0 ;
+ else
+ out <= inp % DIVISOR ;
+
+
+
+
+
+ endmodule
+