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

entity Cookbook__pipeline_add_msb 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,pi33,pi34,pi35,pi36,pi37,pi38,pi39,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,lo32,lo33,lo34,lo35,lo36,lo37,lo38,lo39,lo40,lo41,lo42,lo43,lo44,lo45,lo46,lo47,lo48,lo49,lo50: in std_logic;
    po00,po01,po02,po03,po04,po05,po06,po07,po08,po09,po10,po11,po12,po13,po14,po15,po16,po17,po18,po19,po20,n123,n128,n133,n138,n143,n148,n153,n158,n163,n168,n173,n178,n183,n188,n193,n198,n203,n208,n213,n218,n223_1,n228,n233,n238,n243_1,n248,n253,n258,n263,n268,n273,n278,n283,n288,n293,n298,n303,n308,n313,n318,n323,n328,n333,n338,n343,n348,n353,n358,n363,n368,n373: inout std_logic
  );
end Cookbook__pipeline_add_msb;

architecture Cookbook__pipeline_add_msb_behav of Cookbook__pipeline_add_msb is
signal n215,n217,n219,n221,n223,n225,n227,n229,n231,n235,n237,n239,n241,n243,n245,n247,n249,n251: std_logic;
begin
    n323 <= ( not pi19 and pi39 )
      or ( pi19 and not pi39 );
    n215 <= ( pi19 and pi39 );
    n328 <= ( not n215 and not pi18 and pi38 )
      or ( not n215 and pi18 and not pi38 )
      or ( n215 and not pi18 and not pi38 )
      or ( n215 and pi18 and pi38 );
    n217 <= ( n215 and pi18 )
      or ( n215 and pi38 )
      or ( pi18 and pi38 );
    n333 <= ( not n217 and not pi17 and pi37 )
      or ( not n217 and pi17 and not pi37 )
      or ( n217 and not pi17 and not pi37 )
      or ( n217 and pi17 and pi37 );
    n219 <= ( n217 and pi17 )
      or ( n217 and pi37 )
      or ( pi17 and pi37 );
    n338 <= ( not n219 and not pi16 and pi36 )
      or ( not n219 and pi16 and not pi36 )
      or ( n219 and not pi16 and not pi36 )
      or ( n219 and pi16 and pi36 );
    n221 <= ( n219 and pi16 )
      or ( n219 and pi36 )
      or ( pi16 and pi36 );
    n343 <= ( not n221 and not pi15 and pi35 )
      or ( not n221 and pi15 and not pi35 )
      or ( n221 and not pi15 and not pi35 )
      or ( n221 and pi15 and pi35 );
    n223 <= ( n221 and pi15 )
      or ( n221 and pi35 )
      or ( pi15 and pi35 );
    n348 <= ( not n223 and not pi14 and pi34 )
      or ( not n223 and pi14 and not pi34 )
      or ( n223 and not pi14 and not pi34 )
      or ( n223 and pi14 and pi34 );
    n225 <= ( n223 and pi14 )
      or ( n223 and pi34 )
      or ( pi14 and pi34 );
    n353 <= ( not n225 and not pi13 and pi33 )
      or ( not n225 and pi13 and not pi33 )
      or ( n225 and not pi13 and not pi33 )
      or ( n225 and pi13 and pi33 );
    n227 <= ( n225 and pi13 )
      or ( n225 and pi33 )
      or ( pi13 and pi33 );
    n358 <= ( not n227 and not pi12 and pi32 )
      or ( not n227 and pi12 and not pi32 )
      or ( n227 and not pi12 and not pi32 )
      or ( n227 and pi12 and pi32 );
    n229 <= ( n227 and pi12 )
      or ( n227 and pi32 )
      or ( pi12 and pi32 );
    n363 <= ( not n229 and not pi11 and pi31 )
      or ( not n229 and pi11 and not pi31 )
      or ( n229 and not pi11 and not pi31 )
      or ( n229 and pi11 and pi31 );
    n231 <= ( n229 and pi11 )
      or ( n229 and pi31 )
      or ( pi11 and pi31 );
    n368 <= ( not n231 and not pi10 and pi30 )
      or ( not n231 and pi10 and not pi30 )
      or ( n231 and not pi10 and not pi30 )
      or ( n231 and pi10 and pi30 );
    n373 <= ( n231 and pi10 )
      or ( n231 and pi30 )
      or ( pi10 and pi30 );
    n273 <= ( not lo50 and not lo00 and lo10 )
      or ( not lo50 and lo00 and not lo10 )
      or ( lo50 and not lo00 and not lo10 )
      or ( lo50 and lo00 and lo10 );
    n235 <= ( lo50 and lo00 )
      or ( lo50 and lo10 )
      or ( lo00 and lo10 );
    n278 <= ( not n235 and not lo01 and lo11 )
      or ( not n235 and lo01 and not lo11 )
      or ( n235 and not lo01 and not lo11 )
      or ( n235 and lo01 and lo11 );
    n237 <= ( n235 and lo01 )
      or ( n235 and lo11 )
      or ( lo01 and lo11 );
    n283 <= ( not n237 and not lo02 and lo12 )
      or ( not n237 and lo02 and not lo12 )
      or ( n237 and not lo02 and not lo12 )
      or ( n237 and lo02 and lo12 );
    n239 <= ( n237 and lo02 )
      or ( n237 and lo12 )
      or ( lo02 and lo12 );
    n288 <= ( not n239 and not lo03 and lo13 )
      or ( not n239 and lo03 and not lo13 )
      or ( n239 and not lo03 and not lo13 )
      or ( n239 and lo03 and lo13 );
    n241 <= ( n239 and lo03 )
      or ( n239 and lo13 )
      or ( lo03 and lo13 );
    n293 <= ( not n241 and not lo04 and lo14 )
      or ( not n241 and lo04 and not lo14 )
      or ( n241 and not lo04 and not lo14 )
      or ( n241 and lo04 and lo14 );
    n243 <= ( n241 and lo04 )
      or ( n241 and lo14 )
      or ( lo04 and lo14 );
    n298 <= ( not n243 and not lo05 and lo15 )
      or ( not n243 and lo05 and not lo15 )
      or ( n243 and not lo05 and not lo15 )
      or ( n243 and lo05 and lo15 );
    n245 <= ( n243 and lo05 )
      or ( n243 and lo15 )
      or ( lo05 and lo15 );
    n303 <= ( not n245 and not lo06 and lo16 )
      or ( not n245 and lo06 and not lo16 )
      or ( n245 and not lo06 and not lo16 )
      or ( n245 and lo06 and lo16 );
    n247 <= ( n245 and lo06 )
      or ( n245 and lo16 )
      or ( lo06 and lo16 );
    n308 <= ( not n247 and not lo07 and lo17 )
      or ( not n247 and lo07 and not lo17 )
      or ( n247 and not lo07 and not lo17 )
      or ( n247 and lo07 and lo17 );
    n249 <= ( n247 and lo07 )
      or ( n247 and lo17 )
      or ( lo07 and lo17 );
    n313 <= ( not n249 and not lo08 and lo18 )
      or ( not n249 and lo08 and not lo18 )
      or ( n249 and not lo08 and not lo18 )
      or ( n249 and lo08 and lo18 );
    n251 <= ( n249 and lo08 )
      or ( n249 and lo18 )
      or ( lo08 and lo18 );
    po20 <= ( not n251 and not lo09 and lo19 )
      or ( not n251 and lo09 and not lo19 )
      or ( n251 and not lo09 and not lo19 )
      or ( n251 and lo09 and lo19 );
    n123 <= ( pi09 );
    n128 <= ( pi08 );
    n133 <= ( pi07 );
    n138 <= ( pi06 );
    n143 <= ( pi05 );
    n148 <= ( pi04 );
    n153 <= ( pi03 );
    n158 <= ( pi02 );
    n163 <= ( pi01 );
    n168 <= ( pi00 );
    n173 <= ( pi29 );
    n178 <= ( pi28 );
    n183 <= ( pi27 );
    n188 <= ( pi26 );
    n193 <= ( pi25 );
    n198 <= ( pi24 );
    n203 <= ( pi23 );
    n208 <= ( pi22 );
    n213 <= ( pi21 );
    n218 <= ( pi20 );
    n223_1 <= ( lo40 );
    n228 <= ( lo41 );
    n233 <= ( lo42 );
    n238 <= ( lo43 );
    n243_1 <= ( lo44 );
    n248 <= ( lo45 );
    n253 <= ( lo46 );
    n258 <= ( lo47 );
    n263 <= ( lo48 );
    n268 <= ( lo49 );
    n318 <= ( po20 );
    po00 <= ( lo39 );
    po01 <= ( lo38 );
    po02 <= ( lo37 );
    po03 <= ( lo36 );
    po04 <= ( lo35 );
    po05 <= ( lo34 );
    po06 <= ( lo33 );
    po07 <= ( lo32 );
    po08 <= ( lo31 );
    po09 <= ( lo30 );
    po10 <= ( lo29 );
    po11 <= ( lo28 );
    po12 <= ( lo27 );
    po13 <= ( lo26 );
    po14 <= ( lo25 );
    po15 <= ( lo24 );
    po16 <= ( lo23 );
    po17 <= ( lo22 );
    po18 <= ( lo21 );
    po19 <= ( lo20 );
end Cookbook__pipeline_add_msb_behav;
