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

entity QUIP__barrel16 is 
  Port (
    lo16,lo17,lo18,lo19,lo20,lo21,lo22,lo23,lo24,lo25,lo26,lo27,lo28,lo29,lo30,lo31,lo32,lo33,lo34,lo35,lo36: in std_logic;
    n75,n80,n85,n90,n95,n100,n105,n110,n115,n120,n125,n130,n135,n140,n145,n150_1: inout std_logic
  );
end QUIP__barrel16;

architecture QUIP__barrel16_behav of QUIP__barrel16 is
signal n148,n149,n150,n151,n152,n153,n154,n155,n156,n157,n158,n159,n160,n161,n162,n163,n164,n165,n166,n167,n168,n169,n170,n171,n172,n173,n174,n176,n177,n178,n179,n180,n181,n182,n183,n184,n185,n186,n187,n188,n189,n190,n191,n192,n193,n194,n196,n197,n198,n199,n200,n202,n203,n204,n205,n206,n207,n209,n210,n211,n212,n214,n215,n216,n217,n219,n220,n221,n222,n223,n225,n226,n227,n228,n229,n230,n232,n233,n234,n235,n236,n238,n239,n240,n241,n242,n244,n245,n246,n248,n249,n251,n253,n255,n257,n259,n260,n261: std_logic;
begin
    n148 <= ( lo16 and lo17 and lo19 )
      or ( lo16 and lo18 and not lo19 );
    n149 <= ( lo20 and lo19 and not lo16 )
      or ( lo21 and not lo19 and not lo16 );
    n150 <= not (( not n148 and not n149 ));
    n151 <= ( lo16 and lo22 and lo19 )
      or ( lo16 and lo23 and not lo19 );
    n152 <= ( lo24 and lo19 and not lo16 )
      or ( lo25 and not lo19 and not lo16 );
    n153 <= not (( not n150 and lo26 )
      or ( not n151 and not n152 and not lo26 ));
    n154 <= ( lo16 and lo18 and lo19 )
      or ( lo16 and lo17 and not lo19 );
    n155 <= ( lo28 and lo19 and not lo16 )
      or ( lo29 and not lo19 and not lo16 );
    n156 <= not (( not n154 and not n155 ));
    n157 <= ( lo16 and lo23 and lo19 )
      or ( lo16 and lo22 and not lo19 );
    n158 <= ( lo21 and lo19 and not lo16 )
      or ( lo20 and not lo19 and not lo16 );
    n159 <= not (( not n156 and not lo26 )
      or ( lo26 and not n157 and not n158 ));
    n160 <= ( lo31 and lo19 )
      or ( lo32 and not lo19 );
    n161 <= ( lo33 and lo19 )
      or ( lo34 and not lo19 );
    n162 <= ( n160 and lo16 )
      or ( n161 and not lo16 );
    n163 <= ( lo35 and lo19 )
      or ( lo36 and not lo19 );
    n164 <= ( lo24 and lo19 )
      or ( lo25 and not lo19 );
    n165 <= ( n163 and lo16 )
      or ( n164 and not lo16 );
    n166 <= ( n162 and lo26 )
      or ( n165 and not lo26 );
    n167 <= ( not lo27 and not lo30 and n166 )
      or ( lo27 and lo30 )
      or ( n159 and lo30 );
    n168 <= ( lo36 and lo19 )
      or ( lo35 and not lo19 );
    n169 <= ( lo34 and lo19 )
      or ( lo33 and not lo19 );
    n170 <= ( n168 and lo16 )
      or ( n169 and not lo16 );
    n171 <= ( lo32 and lo19 )
      or ( lo31 and not lo19 );
    n172 <= ( lo29 and lo19 )
      or ( lo28 and not lo19 );
    n173 <= ( n171 and lo16 )
      or ( n172 and not lo16 );
    n174 <= ( n170 and lo26 )
      or ( n173 and not lo26 );
    n75 <= ( n153 and lo27 and not n167 )
      or ( not lo27 and n167 )
      or ( n167 and n174 );
    n176 <= ( lo16 and lo28 and lo19 )
      or ( lo16 and lo29 and not lo19 );
    n177 <= ( n176 )
      or ( n160 and not lo16 );
    n178 <= ( lo16 and lo21 and lo19 )
      or ( lo16 and lo20 and not lo19 );
    n179 <= ( lo18 and lo19 and not lo16 )
      or ( lo17 and not lo19 and not lo16 );
    n180 <= not (( not n177 and not lo26 )
      or ( lo26 and not n178 and not n179 ));
    n181 <= ( lo16 and lo20 and lo19 )
      or ( lo16 and lo21 and not lo19 );
    n182 <= ( lo22 and lo19 and not lo16 )
      or ( lo23 and not lo19 and not lo16 );
    n183 <= not (( not n181 and not n182 ));
    n184 <= ( lo16 and lo29 and lo19 )
      or ( lo16 and lo28 and not lo19 );
    n185 <= ( lo17 and lo19 and not lo16 )
      or ( lo18 and not lo19 and not lo16 );
    n186 <= not (( not n183 and not lo26 )
      or ( lo26 and not n184 and not n185 ));
    n187 <= ( n161 and lo16 )
      or ( n163 and not lo16 );
    n188 <= ( n182 )
      or ( lo16 and n164 );
    n189 <= ( n187 and lo26 )
      or ( n188 and not lo26 );
    n190 <= ( not lo30 and not lo27 and n189 )
      or ( lo30 and lo27 )
      or ( n186 and lo27 );
    n191 <= ( lo25 and lo19 )
      or ( lo24 and not lo19 );
    n192 <= ( n191 and lo16 )
      or ( n168 and not lo16 );
    n193 <= ( n169 and lo16 )
      or ( n171 and not lo16 );
    n194 <= ( n192 and lo26 )
      or ( n193 and not lo26 );
    n80 <= ( n180 and lo30 and not n190 )
      or ( not lo30 and n190 )
      or ( n190 and n194 );
    n196 <= not (( not n165 and lo26 )
      or ( not n151 and not n149 and not lo26 ));
    n197 <= ( not lo27 and not lo30 and n196 )
      or ( lo27 and lo30 )
      or ( n260 and lo30 );
    n198 <= ( lo23 and lo19 )
      or ( lo22 and not lo19 );
    n199 <= ( n198 and lo16 )
      or ( n191 and not lo16 );
    n200 <= ( n199 and lo26 )
      or ( n170 and not lo26 );
    n85 <= ( n259 and lo27 and not n197 )
      or ( not lo27 and n197 )
      or ( n197 and n200 );
    n202 <= ( n177 and lo26 )
      or ( n187 and not lo26 );
    n203 <= not (( not n193 and lo26 )
      or ( not n184 and not n185 and not lo26 ));
    n204 <= not (( not n188 and lo26 )
      or ( not n181 and not n185 and not lo26 ));
    n205 <= ( not lo30 and not lo27 and n204 )
      or ( lo30 and lo27 )
      or ( n203 and lo27 );
    n206 <= ( n178 )
      or ( n198 and not lo16 );
    n207 <= ( n206 and lo26 )
      or ( n192 and not lo26 );
    n90 <= ( n202 and lo30 and not n205 )
      or ( not lo30 and n205 )
      or ( n205 and n207 );
    n209 <= ( n148 )
      or ( n172 and not lo16 );
    n210 <= not (( not n209 and not lo26 )
      or ( lo26 and not n151 and not n149 ));
    n211 <= ( not lo27 and not lo30 and n210 )
      or ( lo27 and lo30 )
      or ( n166 and lo30 );
    n212 <= not (( not n199 and not lo26 )
      or ( lo26 and not n154 and not n158 ));
    n95 <= ( n174 and lo27 and not n211 )
      or ( not lo27 and n211 )
      or ( n211 and n212 );
    n214 <= ( n172 and lo16 )
      or ( n171 and not lo16 );
    n215 <= not (( not n214 and not lo26 )
      or ( lo26 and not n181 and not n185 ));
    n216 <= ( not lo30 and not lo27 and n215 )
      or ( lo30 and lo27 )
      or ( n194 and lo27 );
    n217 <= not (( not n206 and not lo26 )
      or ( lo26 and not n176 and not n179 ));
    n100 <= ( n189 and lo30 and not n216 )
      or ( not lo30 and n216 )
      or ( n216 and n217 );
    n219 <= ( n171 and lo16 )
      or ( n169 and not lo16 );
    n220 <= ( n209 and lo26 )
      or ( n219 and not lo26 );
    n221 <= ( not lo27 and not lo30 and n220 )
      or ( lo27 and lo30 )
      or ( n196 and lo30 );
    n222 <= ( n155 )
      or ( lo16 and n160 );
    n223 <= not (( not n222 and lo26 )
      or ( not n154 and not n158 and not lo26 ));
    n105 <= ( n200 and lo27 and not n221 )
      or ( not lo27 and n221 )
      or ( n221 and n223 );
    n225 <= ( lo16 and lo34 and lo19 )
      or ( lo16 and lo33 and not lo19 );
    n226 <= ( lo36 and lo19 and not lo16 )
      or ( lo35 and not lo19 and not lo16 );
    n227 <= not (( not n214 and lo26 )
      or ( not n225 and not n226 and not lo26 ));
    n228 <= ( not lo30 and not lo27 and n227 )
      or ( lo30 and lo27 )
      or ( n207 and lo27 );
    n229 <= ( n161 and lo16 )
      or ( n160 and not lo16 );
    n230 <= not (( not n229 and lo26 )
      or ( not n176 and not n179 and not lo26 ));
    n110 <= ( n204 and lo30 and not n228 )
      or ( not lo30 and n228 )
      or ( n228 and n230 );
    n232 <= ( n168 and lo16 )
      or ( n191 and not lo16 );
    n233 <= ( n219 and lo26 )
      or ( n232 and not lo26 );
    n234 <= ( not lo27 and not lo30 and n233 )
      or ( lo27 and lo30 )
      or ( n210 and lo30 );
    n235 <= ( n163 and lo16 )
      or ( n161 and not lo16 );
    n236 <= ( n235 and lo26 )
      or ( n222 and not lo26 );
    n115 <= ( n212 and lo27 and not n234 )
      or ( not lo27 and n234 )
      or ( n234 and n236 );
    n238 <= ( n191 and lo16 )
      or ( n198 and not lo16 );
    n239 <= not (( not n238 and not lo26 )
      or ( lo26 and not n225 and not n226 ));
    n240 <= ( not lo30 and not lo27 and n239 )
      or ( lo30 and lo27 )
      or ( n217 and lo27 );
    n241 <= ( n164 and lo16 )
      or ( n163 and not lo16 );
    n242 <= ( n241 and lo26 )
      or ( n229 and not lo26 );
    n120 <= ( n215 and lo30 and not n240 )
      or ( not lo30 and n240 )
      or ( n240 and n242 );
    n244 <= not (( not n232 and lo26 )
      or ( not n157 and not n158 and not lo26 ));
    n245 <= ( not lo27 and not lo30 and n244 )
      or ( lo27 and lo30 )
      or ( n220 and lo30 );
    n246 <= not (( not n235 and not lo26 )
      or ( lo26 and not n151 and not n152 ));
    n125 <= ( n223 and lo27 and not n245 )
      or ( not lo27 and n245 )
      or ( n245 and n246 );
    n248 <= not (( not n238 and lo26 )
      or ( not n178 and not n179 and not lo26 ));
    n249 <= ( not lo30 and not lo27 and n248 )
      or ( lo30 and lo27 )
      or ( n230 and lo27 );
    n130 <= ( n227 and lo30 and not n249 )
      or ( not lo30 and n249 )
      or ( n249 and n261 );
    n251 <= ( not lo27 and not lo30 and n159 )
      or ( lo27 and lo30 )
      or ( n233 and lo30 );
    n135 <= ( n236 and lo27 and not n251 )
      or ( not lo27 and n251 )
      or ( n251 and n153 );
    n253 <= ( not lo30 and not lo27 and n180 )
      or ( lo30 and lo27 )
      or ( n242 and lo27 );
    n140 <= ( n239 and lo30 and not n253 )
      or ( not lo30 and n253 )
      or ( n253 and n186 );
    n255 <= ( not lo27 and not lo30 and n260 )
      or ( lo27 and lo30 )
      or ( n244 and lo30 );
    n145 <= ( n246 and lo27 and not n255 )
      or ( not lo27 and n255 )
      or ( n255 and n259 );
    n257 <= ( not lo30 and not lo27 and n202 )
      or ( lo30 and lo27 )
      or ( n261 and lo27 );
    n150_1 <= ( n248 and lo30 and not n257 )
      or ( not lo30 and n257 )
      or ( n257 and n203 );
    n259 <= not (( not n148 and not n149 and not lo26 )
      or ( not n173 and lo26 ));
    n260 <= not (( not n154 and not n155 and lo26 )
      or ( not n162 and not lo26 ));
    n261 <= not (( not n181 and not n182 and lo26 )
      or ( not n241 and not lo26 ));
end QUIP__barrel16_behav;
