--- VHDL generated by LogSynth framework (c) Petr Fiser
Library IEEE;
use IEEE.std_logic_1164.all;

entity alu4_cl is 
  Port (
    pi0,pi1,pi2,pi3,pi4,pi5,pi6,pi7,pi8,pi9: in std_logic;
    po0,po1,po2,po3,po4,po5: inout std_logic
  );
end alu4_cl;

architecture alu4_cl_behav of alu4_cl is
signal 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,n59,n60,n61,n62,n63,n64,n65,n66,n67,n68,n69,n70,n71,n72,n73,n74: std_logic;
begin
    po0 <= ( pi9 and n25 and pi8 )
      or ( pi9 and not n25 and not pi8 )
      or ( pi9 and n23 and not pi7 )
      or ( not pi9 and pi7 and n59 )
      or ( not pi9 and n58 and pi2 and not pi4 )
      or ( not pi9 and not pi4 and not pi5 and n60 )
      or ( not pi9 and pi7 and not pi5 and n62 )
      or ( not pi9 and pi7 and not pi5 and n27 )
      or ( not pi9 and pi7 and not pi5 and n63 )
      or ( not pi9 and pi2 and pi5 and n49 )
      or ( not pi9 and pi7 and pi5 and n51 )
      or ( not pi9 and pi5 and n27 and n51 )
      or ( not pi9 and pi7 and not pi5 and n57 and pi6 )
      or ( not pi9 and pi7 and not pi5 and n45 and n61 )
      or ( not pi9 and not pi4 and pi5 and not n64 and n48 )
      or ( not pi9 and pi4 and pi5 and pi6 and n41 )
      or ( not pi9 and not pi7 and not pi2 and pi4 and not pi5 and pi6 )
      or ( not pi9 and not pi7 and pi4 and not pi5 and not n57 and not pi6 );
    po1 <= ( pi9 and n24 and not n25 )
      or ( pi9 and n24 and pi8 )
      or ( pi9 and n23 and not pi7 )
      or ( not pi9 and n44 and pi3 )
      or ( not pi9 and n44 and not pi5 )
      or ( pi9 and not n24 and n25 and not pi8 )
      or ( not pi9 and pi7 and pi1 and pi6 )
      or ( not pi9 and pi7 and not pi5 and n27 )
      or ( not pi9 and not pi5 and n27 and not n42 )
      or ( not pi9 and pi7 and not pi5 and n46 )
      or ( not pi9 and pi7 and not pi5 and n29 )
      or ( not pi9 and pi3 and pi5 and n49 )
      or ( not pi9 and pi7 and pi5 and po3 )
      or ( not pi9 and pi5 and n27 and po3 )
      or ( not pi9 and pi7 and not pi5 and pi6 and n42 )
      or ( not pi9 and pi7 and not pi5 and n45 and n47 )
      or ( not pi9 and pi5 and pi6 and pi4 and n40 )
      or ( not pi9 and pi5 and not pi4 and n48 and not n35 )
      or ( not pi9 and not pi7 and not pi3 and not pi5 and pi6 and pi4 )
      or ( not pi9 and not pi7 and not pi5 and not pi6 and not n42 and pi4 );
    po2 <= ( not n35 )
      or ( po3 );
    po3 <= ( pi1 and pi3 );
    po4 <= ( pi9 and n22 and n23 )
      or ( pi9 and n23 and not pi7 )
      or ( pi9 and not pi7 and n28 )
      or ( pi9 and n24 and n25 and not pi8 )
      or ( pi9 and pi7 and n32 and n35 )
      or ( pi9 and pi7 and n37 and po3 )
      or ( pi9 and pi7 and n34 and n40 )
      or ( pi9 and n22 and not pi7 and n27 and pi5 )
      or ( pi9 and not pi7 and n26 and n29 and n31 )
      or ( pi9 and pi7 and n36 and not pi0 and not pi1 )
      or ( pi9 and pi7 and n34 and pi1 and n41 )
      or ( pi9 and pi7 and n34 and n41 and n42 )
      or ( pi9 and not pi7 and n26 and n30 and n31 and not pi4 )
      or ( pi9 and not pi7 and n26 and n30 and not pi4 and pi1 )
      or ( pi9 and pi7 and n30 and n33 and not pi6 and n38 )
      or ( pi9 and pi7 and n30 and n33 and not pi6 and n39 )
      or ( pi9 and pi7 and n33 and not pi6 and n38 and n39 )
      or ( pi9 and not pi7 and n26 and pi4 and n38 and n42 )
      or ( pi9 and not pi7 and n26 and pi4 and n38 and n43 )
      or ( pi9 and not pi7 and n26 and pi4 and n42 and n43 );
    po5 <= ( po2 and n51 )
      or ( po2 and not n64 );
    n22 <= ( not n42 and not n57 );
    n23 <= ( not pi6 and n53 );
    n24 <= ( pi9 and n32 and po3 )
      or ( pi9 and n37 and not pi7 and pi3 )
      or ( pi9 and pi6 and not pi7 and n28 )
      or ( pi9 and n32 and pi7 and not n35 )
      or ( pi9 and n37 and not n51 and n47 )
      or ( pi9 and n37 and not n51 and n46 )
      or ( pi9 and n50 and n29 and not pi5 and not pi6 )
      or ( pi9 and n29 and not pi5 and not pi7 and not n52 )
      or ( pi9 and not pi6 and not pi7 and n33 and n42 )
      or ( pi9 and not pi6 and not pi7 and not n53 and pi1 )
      or ( pi9 and pi6 and not pi7 and n33 and n22 )
      or ( pi9 and not pi6 and pi7 and n53 and n22 )
      or ( pi9 and not pi7 and n33 and n42 and n57 )
      or ( pi9 and n50 and pi7 and pi1 and n34 )
      or ( pi9 and not n50 and pi7 and not pi1 and n34 )
      or ( pi9 and pi7 and n53 and n42 and n58 )
      or ( pi9 and pi7 and n53 and pi1 and n59 )
      or ( pi9 and pi6 and not pi7 and n52 and not pi1 and n54 )
      or ( pi9 and pi6 and not pi7 and n53 and n56 and n30 )
      or ( pi9 and pi6 and pi7 and n53 and not pi1 and not pi0 )
      or ( pi9 and pi6 and not pi7 and n42 and n55 and n38 and n43 )
      or ( pi9 and pi6 and not pi7 and not n42 and n55 and not n38 and n43 )
      or ( pi9 and pi6 and not pi7 and not n42 and n55 and n38 and not n43 )
      or ( pi9 and pi6 and not pi7 and n42 and n55 and not n38 and not n43 )
      or ( pi9 and not pi6 and pi7 and n33 and n30 and n38 and n39 )
      or ( pi9 and not pi6 and pi7 and n33 and not n30 and not n38 and n39 )
      or ( pi9 and not pi6 and pi7 and n33 and not n30 and n38 and not n39 )
      or ( pi9 and not pi6 and pi7 and n33 and n30 and not n38 and not n39 );
    n25 <= ( pi9 and pi7 and not pi0 and n36 )
      or ( pi9 and not pi7 and n33 and n60 )
      or ( pi9 and not pi7 and n36 and not n56 )
      or ( pi9 and not pi6 and pi7 and n53 and not n57 )
      or ( pi9 and pi7 and n59 and not n53 and not n57 )
      or ( pi9 and not pi6 and not pi7 and not n53 and pi0 )
      or ( pi9 and pi6 and pi7 and n57 and not pi0 )
      or ( pi9 and not pi5 and not pi6 and not n57 and n63 )
      or ( pi9 and not pi5 and not pi7 and not n56 and n63 )
      or ( pi9 and not pi5 and not pi6 and pi4 and n62 )
      or ( pi9 and not pi5 and not pi6 and pi4 and n61 )
      or ( pi9 and pi7 and n57 and not pi0 and n54 )
      or ( pi9 and not pi7 and not pi0 and n26 and n56 and not pi4 )
      or ( pi9 and not pi6 and pi7 and n33 and not n56 and n65 )
      or ( pi9 and not pi7 and not n57 and n26 and pi4 and n65 )
      or ( pi9 and not pi6 and pi7 and n33 and n56 and not n65 )
      or ( pi9 and not pi7 and n57 and n26 and pi4 and not n65 );
    n26 <= ( not pi5 and pi6 );
    n27 <= ( not pi4 and pi6 );
    n28 <= ( not n30 and not n56 and n53 );
    n29 <= ( pi1 and not pi4 );
    n30 <= ( n66 and n42 )
      or ( n66 and pi1 )
      or ( n68 and n40 and n53 )
      or ( n68 and not n42 and n54 )
      or ( n68 and n55 and po3 );
    n31 <= ( pi0 and n56 );
    n32 <= ( n37 and n51 );
    n33 <= ( not pi4 and pi5 );
    n34 <= ( n26 )
      or ( n27 )
      or ( n54 );
    n35 <= ( pi1 )
      or ( pi3 );
    n36 <= ( pi6 and n53 );
    n37 <= ( not pi5 and n45 );
    n38 <= ( n66 and n67 )
      or ( not n30 and n68 and n55 );
    n39 <= ( n65 and n56 );
    n40 <= ( pi1 and n42 );
    n41 <= ( pi0 and n57 );
    n42 <= ( n71 and not pi3 )
      or ( n69 and pi9 )
      or ( n69 and not pi4 )
      or ( n70 and n35 and n55 )
      or ( not pi4 and n73 and not pi1 )
      or ( n67 and n72 and pi4 and pi7 )
      or ( pi9 and not pi4 and n74 and n61 and po3 )
      or ( not n35 and pi9 and not pi4 and n61 and pi5 )
      or ( n67 and pi9 and not pi4 and pi7 and not pi5 )
      or ( pi9 and not pi4 and pi7 and not pi5 and n59 )
      or ( pi9 and not pi4 and not n61 and pi5 and n46 )
      or ( pi9 and not pi4 and n74 and not n61 and pi5 and n47 );
    n43 <= ( n65 and n57 );
    n44 <= ( not pi4 and not pi6 and n42 );
    n45 <= ( pi4 and not pi6 );
    n46 <= ( pi1 and not pi3 );
    n47 <= ( not pi1 and pi3 );
    n48 <= ( pi6 and not pi7 );
    n49 <= ( not pi4 and pi7 );
    n50 <= ( n42 and n41 )
      or ( not n42 and not n41 );
    n51 <= ( pi0 and pi2 );
    n52 <= ( not n30 and n31 )
      or ( n30 and not n31 );
    n53 <= ( pi4 and pi5 );
    n54 <= ( not pi4 and not pi5 );
    n55 <= ( pi4 and not pi5 );
    n56 <= ( n66 and n57 )
      or ( n66 and pi0 )
      or ( n68 and n41 and n53 )
      or ( n68 and n55 and n51 )
      or ( n68 and not n57 and n54 );
    n57 <= ( n71 and not pi2 )
      or ( n64 and n70 and n55 )
      or ( not pi4 and n72 and n62 )
      or ( not pi4 and n73 and not pi0 )
      or ( not pi4 and n48 and n72 and n61 )
      or ( n51 and not pi4 and n48 and not pi5 )
      or ( n51 and pi9 and not pi6 and pi7 and n53 )
      or ( n51 and pi9 and not pi6 and pi7 and n54 );
    n58 <= ( not pi6 and n57 );
    n59 <= ( pi0 and pi6 );
    n60 <= ( n58 )
      or ( pi6 and not n57 );
    n61 <= ( not pi0 and pi2 );
    n62 <= ( pi0 and not pi2 );
    n63 <= ( pi0 and not pi4 );
    n64 <= ( pi0 )
      or ( pi2 );
    n65 <= ( not n56 and n68 and n55 )
      or ( n66 and not pi6 and n51 );
    n66 <= ( n72 and n49 );
    n67 <= ( not pi6 and po3 );
    n68 <= ( pi9 and n48 );
    n69 <= ( po3 and not pi5 and n74 );
    n70 <= ( pi6 and pi9 )
      or ( not pi6 and not pi7 and not pi9 );
    n71 <= ( n53 and n48 )
      or ( not pi4 and n72 and not n48 )
      or ( pi4 and not pi9 and n26 and pi7 );
    n72 <= ( pi5 and pi9 );
    n73 <= ( not pi9 and not pi6 and not pi5 )
      or ( not pi9 and not pi6 and not pi7 );
    n74 <= ( pi6 and not pi7 );
end alu4_cl_behav;
