--- 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 Cookbook__lc_mult_signed__part0 is 
  Port (
    pi16,pi29,pi15,pi14,pi13,pi12,pi11,pi10,pi09,pi08,pi07,pi06,pi05,pi04,pi03,pi02,pi01,pi00, CLK: in std_logic;
    po000,po001,po002,po003,po004,po005,po006,po007,po008,po009,po010,po011,po012,po013,po014,po015,po016: inout std_logic
  );
end Cookbook__lc_mult_signed__part0;

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

signal lo013,lo014,lo015,lo016,lo017,lo018,lo019,lo020,lo021,lo022,lo023,lo024,lo025,lo026,lo027,lo028,lo029,li013,n1012,li014,n1014,li015,n1016,li016,n1018,li017,n1020,li018,n1022,li019,n1024,li020,n1026,li021,n1028,li022,n1030,li023,n1032,li024,n1034,li025,n1036,li026,n1038,li027,n1040,li028,n1042,li029: std_logic;
begin
    DFF0: DFF port map (li013, CLK, lo013);
    DFF1: DFF port map (li014, CLK, lo014);
    DFF2: DFF port map (li015, CLK, lo015);
    DFF3: DFF port map (li016, CLK, lo016);
    DFF4: DFF port map (li017, CLK, lo017);
    DFF5: DFF port map (li018, CLK, lo018);
    DFF6: DFF port map (li019, CLK, lo019);
    DFF7: DFF port map (li020, CLK, lo020);
    DFF8: DFF port map (li021, CLK, lo021);
    DFF9: DFF port map (li022, CLK, lo022);
    DFF10: DFF port map (li023, CLK, lo023);
    DFF11: DFF port map (li024, CLK, lo024);
    DFF12: DFF port map (li025, CLK, lo025);
    DFF13: DFF port map (li026, CLK, lo026);
    DFF14: DFF port map (li027, CLK, lo027);
    DFF15: DFF port map (li028, CLK, lo028);
    DFF16: DFF port map (li029, CLK, lo029);
    li013 <= ( not pi16 and pi29 )
      or ( pi16 and not pi29 );
    n1012 <= ( pi16 and pi29 );
    li014 <= ( not n1012 and pi15 )
      or ( n1012 and not pi15 );
    n1014 <= ( n1012 and pi15 );
    li015 <= ( not n1014 and pi14 )
      or ( n1014 and not pi14 );
    n1016 <= ( n1014 and pi14 );
    li016 <= ( not n1016 and pi13 )
      or ( n1016 and not pi13 );
    n1018 <= ( n1016 and pi13 );
    li017 <= ( not n1018 and pi12 )
      or ( n1018 and not pi12 );
    n1020 <= ( n1018 and pi12 );
    li018 <= ( not n1020 and pi11 )
      or ( n1020 and not pi11 );
    n1022 <= ( n1020 and pi11 );
    li019 <= ( not n1022 and pi10 )
      or ( n1022 and not pi10 );
    n1024 <= ( n1022 and pi10 );
    li020 <= ( not n1024 and pi09 )
      or ( n1024 and not pi09 );
    n1026 <= ( n1024 and pi09 );
    li021 <= ( not n1026 and pi08 )
      or ( n1026 and not pi08 );
    n1028 <= ( n1026 and pi08 );
    li022 <= ( not n1028 and pi07 )
      or ( n1028 and not pi07 );
    n1030 <= ( n1028 and pi07 );
    li023 <= ( not n1030 and pi06 )
      or ( n1030 and not pi06 );
    n1032 <= ( n1030 and pi06 );
    li024 <= ( not n1032 and pi05 )
      or ( n1032 and not pi05 );
    n1034 <= ( n1032 and pi05 );
    li025 <= ( not n1034 and pi04 )
      or ( n1034 and not pi04 );
    n1036 <= ( n1034 and pi04 );
    li026 <= ( not n1036 and pi03 )
      or ( n1036 and not pi03 );
    n1038 <= ( n1036 and pi03 );
    li027 <= ( not n1038 and pi02 )
      or ( n1038 and not pi02 );
    n1040 <= ( n1038 and pi02 );
    li028 <= ( not n1040 and pi01 )
      or ( n1040 and not pi01 );
    n1042 <= ( n1040 and pi01 );
    li029 <= ( not n1042 and pi00 )
      or ( n1042 and not pi00 );
    po000 <= ( lo029 );
    po001 <= ( lo028 );
    po002 <= ( lo027 );
    po003 <= ( lo026 );
    po004 <= ( lo025 );
    po005 <= ( lo024 );
    po006 <= ( lo023 );
    po007 <= ( lo022 );
    po008 <= ( lo021 );
    po009 <= ( lo020 );
    po010 <= ( lo019 );
    po011 <= ( lo018 );
    po012 <= ( lo017 );
    po013 <= ( lo016 );
    po014 <= ( lo015 );
    po015 <= ( lo014 );
    po016 <= ( lo013 );
end Cookbook__lc_mult_signed__part0_behav;
