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

entity DFF is
  Port ( D, CLK: in std_logic;
     Q: out std_logic);
end DFF;

architecture Behavior of DFF is
begin
  process(CLK)
  begin
    if CLK'event and CLK = '1' then
      Q <= D;
    end if;
  end process;
end Behavior;

Library IEEE;
use IEEE.std_logic_1164.all;

entity LGSynth91__mult32a is 
  Port (
    pi00,pi01,pi02,pi03,pi04,pi05,pi06,pi07,pi08,pi09,pi10,pi11,pi12,pi13,pi14,pi15,pi16,pi17,pi18,pi19,pi20,pi21,pi22,pi23,pi24,pi25,pi26,pi27,pi28,pi29,pi30,pi31,pi32, CLK: in std_logic;
    po0: inout std_logic
  );
end LGSynth91__mult32a;

architecture LGSynth91__mult32a_behav of LGSynth91__mult32a is
component DFF
  Port ( D, CLK: in std_logic;
     Q: out std_logic);
end component;

signal lo00,lo01,lo02,lo03,lo04,lo05,lo06,lo07,lo08,lo09,lo10,lo11,lo12,lo13,lo14,lo15,lo16,lo17,lo18,lo19,lo20,lo21,lo22,lo23,lo24,lo25,lo26,lo27,lo28,lo29,lo30,lo31,n130,n131,n133,li01,n135,li02,n137,li03,n139,li04,n141,li05,n143,li06,n145,li07,n147,li08,n149,li09,n151,li10,n153,li11,n155,li12,n157,li13,n159,li14,n161,li15,n163,li16,n165,li17,n167,li18,n169,li19,n171,li20,n173,li21,n175,li22,n177,li23,n179,li24,n181,li25,n183,li26,n185,li27,n187,li28,n189,li29,li30,n192,li31,n194,n195,n196,n197,n198,n199,n200,n201,n202,n203,li00,n205,n206,n207,n208,n209,n210,n211,n212,n213,n214,n215,n216,n217,n218,n219,n220,n221,n222,n223,n224,n225,n226,n227,n228,n229,n230,n231,n232,n233,n234,n235,n236: std_logic;
begin
    DFF0: DFF port map (li00, CLK, lo00);
    DFF1: DFF port map (li01, CLK, lo01);
    DFF2: DFF port map (li02, CLK, lo02);
    DFF3: DFF port map (li03, CLK, lo03);
    DFF4: DFF port map (li04, CLK, lo04);
    DFF5: DFF port map (li05, CLK, lo05);
    DFF6: DFF port map (li06, CLK, lo06);
    DFF7: DFF port map (li07, CLK, lo07);
    DFF8: DFF port map (li08, CLK, lo08);
    DFF9: DFF port map (li09, CLK, lo09);
    DFF10: DFF port map (li10, CLK, lo10);
    DFF11: DFF port map (li11, CLK, lo11);
    DFF12: DFF port map (li12, CLK, lo12);
    DFF13: DFF port map (li13, CLK, lo13);
    DFF14: DFF port map (li14, CLK, lo14);
    DFF15: DFF port map (li15, CLK, lo15);
    DFF16: DFF port map (li16, CLK, lo16);
    DFF17: DFF port map (li17, CLK, lo17);
    DFF18: DFF port map (li18, CLK, lo18);
    DFF19: DFF port map (li19, CLK, lo19);
    DFF20: DFF port map (li20, CLK, lo20);
    DFF21: DFF port map (li21, CLK, lo21);
    DFF22: DFF port map (li22, CLK, lo22);
    DFF23: DFF port map (li23, CLK, lo23);
    DFF24: DFF port map (li24, CLK, lo24);
    DFF25: DFF port map (li25, CLK, lo25);
    DFF26: DFF port map (li26, CLK, lo26);
    DFF27: DFF port map (li27, CLK, lo27);
    DFF28: DFF port map (li28, CLK, lo28);
    DFF29: DFF port map (li29, CLK, lo29);
    DFF30: DFF port map (li30, CLK, lo30);
    DFF31: DFF port map (li31, CLK, lo31);
    n130 <= ( lo30 and n189 )
      or ( lo30 and n234 )
      or ( n189 and n234 );
    n131 <= ( lo31 and n130 )
      or ( lo31 and n235 )
      or ( n130 and n235 );
    po0 <= ( not lo01 and n205 )
      or ( lo01 and not n205 );
    n133 <= ( lo01 and n205 );
    li01 <= ( lo02 and n133 and n206 )
      or ( not lo02 and not n133 and n206 )
      or ( not lo02 and n133 and not n206 )
      or ( lo02 and not n133 and not n206 );
    n135 <= ( lo02 and n133 )
      or ( lo02 and n206 )
      or ( n133 and n206 );
    li02 <= ( lo03 and n135 and n207 )
      or ( not lo03 and not n135 and n207 )
      or ( not lo03 and n135 and not n207 )
      or ( lo03 and not n135 and not n207 );
    n137 <= ( lo03 and n135 )
      or ( lo03 and n207 )
      or ( n135 and n207 );
    li03 <= ( lo04 and n137 and n208 )
      or ( not lo04 and not n137 and n208 )
      or ( not lo04 and n137 and not n208 )
      or ( lo04 and not n137 and not n208 );
    n139 <= ( lo04 and n137 )
      or ( lo04 and n208 )
      or ( n137 and n208 );
    li04 <= ( lo05 and n139 and n209 )
      or ( not lo05 and not n139 and n209 )
      or ( not lo05 and n139 and not n209 )
      or ( lo05 and not n139 and not n209 );
    n141 <= ( lo05 and n139 )
      or ( lo05 and n209 )
      or ( n139 and n209 );
    li05 <= ( lo06 and n141 and n210 )
      or ( not lo06 and not n141 and n210 )
      or ( not lo06 and n141 and not n210 )
      or ( lo06 and not n141 and not n210 );
    n143 <= ( lo06 and n141 )
      or ( lo06 and n210 )
      or ( n141 and n210 );
    li06 <= ( lo07 and n143 and n211 )
      or ( not lo07 and not n143 and n211 )
      or ( not lo07 and n143 and not n211 )
      or ( lo07 and not n143 and not n211 );
    n145 <= ( lo07 and n143 )
      or ( lo07 and n211 )
      or ( n143 and n211 );
    li07 <= ( lo08 and n145 and n212 )
      or ( not lo08 and not n145 and n212 )
      or ( not lo08 and n145 and not n212 )
      or ( lo08 and not n145 and not n212 );
    n147 <= ( lo08 and n145 )
      or ( lo08 and n212 )
      or ( n145 and n212 );
    li08 <= ( lo09 and n147 and n213 )
      or ( not lo09 and not n147 and n213 )
      or ( not lo09 and n147 and not n213 )
      or ( lo09 and not n147 and not n213 );
    n149 <= ( lo09 and n147 )
      or ( lo09 and n213 )
      or ( n147 and n213 );
    li09 <= ( lo10 and n149 and n214 )
      or ( not lo10 and not n149 and n214 )
      or ( not lo10 and n149 and not n214 )
      or ( lo10 and not n149 and not n214 );
    n151 <= ( lo10 and n149 )
      or ( lo10 and n214 )
      or ( n149 and n214 );
    li10 <= ( lo11 and n151 and n215 )
      or ( not lo11 and not n151 and n215 )
      or ( not lo11 and n151 and not n215 )
      or ( lo11 and not n151 and not n215 );
    n153 <= ( lo11 and n151 )
      or ( lo11 and n215 )
      or ( n151 and n215 );
    li11 <= ( lo12 and n153 and n216 )
      or ( not lo12 and not n153 and n216 )
      or ( not lo12 and n153 and not n216 )
      or ( lo12 and not n153 and not n216 );
    n155 <= ( lo12 and n153 )
      or ( lo12 and n216 )
      or ( n153 and n216 );
    li12 <= ( lo13 and n155 and n217 )
      or ( not lo13 and not n155 and n217 )
      or ( not lo13 and n155 and not n217 )
      or ( lo13 and not n155 and not n217 );
    n157 <= ( lo13 and n155 )
      or ( lo13 and n217 )
      or ( n155 and n217 );
    li13 <= ( lo14 and n157 and n218 )
      or ( not lo14 and not n157 and n218 )
      or ( not lo14 and n157 and not n218 )
      or ( lo14 and not n157 and not n218 );
    n159 <= ( lo14 and n157 )
      or ( lo14 and n218 )
      or ( n157 and n218 );
    li14 <= ( lo15 and n159 and n219 )
      or ( not lo15 and not n159 and n219 )
      or ( not lo15 and n159 and not n219 )
      or ( lo15 and not n159 and not n219 );
    n161 <= ( lo15 and n159 )
      or ( lo15 and n219 )
      or ( n159 and n219 );
    li15 <= ( lo16 and n161 and n220 )
      or ( not lo16 and not n161 and n220 )
      or ( not lo16 and n161 and not n220 )
      or ( lo16 and not n161 and not n220 );
    n163 <= ( lo16 and n161 )
      or ( lo16 and n220 )
      or ( n161 and n220 );
    li16 <= ( lo17 and n163 and n221 )
      or ( not lo17 and not n163 and n221 )
      or ( not lo17 and n163 and not n221 )
      or ( lo17 and not n163 and not n221 );
    n165 <= ( lo17 and n163 )
      or ( lo17 and n221 )
      or ( n163 and n221 );
    li17 <= ( lo18 and n165 and n222 )
      or ( not lo18 and not n165 and n222 )
      or ( not lo18 and n165 and not n222 )
      or ( lo18 and not n165 and not n222 );
    n167 <= ( lo18 and n165 )
      or ( lo18 and n222 )
      or ( n165 and n222 );
    li18 <= ( lo19 and n167 and n223 )
      or ( not lo19 and not n167 and n223 )
      or ( not lo19 and n167 and not n223 )
      or ( lo19 and not n167 and not n223 );
    n169 <= ( lo19 and n167 )
      or ( lo19 and n223 )
      or ( n167 and n223 );
    li19 <= ( lo20 and n169 and n224 )
      or ( not lo20 and not n169 and n224 )
      or ( not lo20 and n169 and not n224 )
      or ( lo20 and not n169 and not n224 );
    n171 <= ( lo20 and n169 )
      or ( lo20 and n224 )
      or ( n169 and n224 );
    li20 <= ( lo21 and n171 and n225 )
      or ( not lo21 and not n171 and n225 )
      or ( not lo21 and n171 and not n225 )
      or ( lo21 and not n171 and not n225 );
    n173 <= ( lo21 and n171 )
      or ( lo21 and n225 )
      or ( n171 and n225 );
    li21 <= ( lo22 and n173 and n226 )
      or ( not lo22 and not n173 and n226 )
      or ( not lo22 and n173 and not n226 )
      or ( lo22 and not n173 and not n226 );
    n175 <= ( lo22 and n173 )
      or ( lo22 and n226 )
      or ( n173 and n226 );
    li22 <= ( lo23 and n175 and n227 )
      or ( not lo23 and not n175 and n227 )
      or ( not lo23 and n175 and not n227 )
      or ( lo23 and not n175 and not n227 );
    n177 <= ( lo23 and n175 )
      or ( lo23 and n227 )
      or ( n175 and n227 );
    li23 <= ( lo24 and n177 and n228 )
      or ( not lo24 and not n177 and n228 )
      or ( not lo24 and n177 and not n228 )
      or ( lo24 and not n177 and not n228 );
    n179 <= ( lo24 and n177 )
      or ( lo24 and n228 )
      or ( n177 and n228 );
    li24 <= ( lo25 and n179 and n229 )
      or ( not lo25 and not n179 and n229 )
      or ( not lo25 and n179 and not n229 )
      or ( lo25 and not n179 and not n229 );
    n181 <= ( lo25 and n179 )
      or ( lo25 and n229 )
      or ( n179 and n229 );
    li25 <= ( lo26 and n181 and n230 )
      or ( not lo26 and not n181 and n230 )
      or ( not lo26 and n181 and not n230 )
      or ( lo26 and not n181 and not n230 );
    n183 <= ( lo26 and n181 )
      or ( lo26 and n230 )
      or ( n181 and n230 );
    li26 <= ( lo27 and n183 and n231 )
      or ( not lo27 and not n183 and n231 )
      or ( not lo27 and n183 and not n231 )
      or ( lo27 and not n183 and not n231 );
    n185 <= ( lo27 and n183 )
      or ( lo27 and n231 )
      or ( n183 and n231 );
    li27 <= ( lo28 and n185 and n232 )
      or ( not lo28 and not n185 and n232 )
      or ( not lo28 and n185 and not n232 )
      or ( lo28 and not n185 and not n232 );
    n187 <= ( lo28 and n185 )
      or ( lo28 and n232 )
      or ( n185 and n232 );
    li28 <= ( lo29 and n187 and n233 )
      or ( not lo29 and not n187 and n233 )
      or ( not lo29 and n187 and not n233 )
      or ( lo29 and not n187 and not n233 );
    n189 <= ( lo29 and n187 )
      or ( lo29 and n233 )
      or ( n187 and n233 );
    li29 <= ( lo30 and n189 and n234 )
      or ( not lo30 and not n189 and n234 )
      or ( not lo30 and n189 and not n234 )
      or ( lo30 and not n189 and not n234 );
    li30 <= ( lo31 and n130 and n235 )
      or ( not lo31 and not n130 and n235 )
      or ( not lo31 and n130 and not n235 )
      or ( lo31 and not n130 and not n235 );
    n192 <= ( not n131 and n236 )
      or ( n131 and not n236 );
    li31 <= ( not lo00 and n192 )
      or ( lo00 and not n192 );
    n194 <= ( lo00 and n236 );
    n195 <= ( not n131 and n194 );
    n196 <= ( lo00 and not n236 );
    n197 <= ( n131 and n196 );
    n198 <= ( not lo00 and n236 );
    n199 <= ( n131 and n198 );
    n200 <= ( lo00 and n236 );
    n201 <= ( n131 and n200 );
    n202 <= ( n195 )
      or ( n197 );
    n203 <= ( n199 )
      or ( n201 );
    li00 <= ( n202 )
      or ( n203 );
    n205 <= ( pi00 and pi01 );
    n206 <= ( pi00 and pi02 );
    n207 <= ( pi00 and pi03 );
    n208 <= ( pi00 and pi04 );
    n209 <= ( pi00 and pi05 );
    n210 <= ( pi00 and pi06 );
    n211 <= ( pi00 and pi07 );
    n212 <= ( pi00 and pi08 );
    n213 <= ( pi00 and pi09 );
    n214 <= ( pi00 and pi10 );
    n215 <= ( pi00 and pi11 );
    n216 <= ( pi00 and pi12 );
    n217 <= ( pi00 and pi13 );
    n218 <= ( pi00 and pi14 );
    n219 <= ( pi00 and pi15 );
    n220 <= ( pi00 and pi16 );
    n221 <= ( pi00 and pi17 );
    n222 <= ( pi00 and pi18 );
    n223 <= ( pi00 and pi19 );
    n224 <= ( pi00 and pi20 );
    n225 <= ( pi00 and pi21 );
    n226 <= ( pi00 and pi22 );
    n227 <= ( pi00 and pi23 );
    n228 <= ( pi00 and pi24 );
    n229 <= ( pi00 and pi25 );
    n230 <= ( pi00 and pi26 );
    n231 <= ( pi00 and pi27 );
    n232 <= ( pi00 and pi28 );
    n233 <= ( pi00 and pi29 );
    n234 <= ( pi00 and pi30 );
    n235 <= ( pi00 and pi31 );
    n236 <= ( pi00 and pi32 );
end LGSynth91__mult32a_behav;
