--- 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__reg_cam_cell 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,pi40,pi41,pi42,pi43,pi44,pi45,pi46,pi47,pi48,pi49,pi50,pi51,pi52,pi53,pi54,pi55,pi56,pi57,pi58,pi59,pi60,pi61,pi62,pi63,pi64,pi65,pi66,pi67,pi68,pi69,pi70,pi71,pi72,pi73,pi74,pi75,pi76,pi77,pi78,pi79,pi80,pi81,pi82,pi83,pi84,pi85,pi86,pi87,pi88,pi89,pi90,pi91,pi92,pi93,pi94,pi95,pi96,pi97,pi98, CLK: in std_logic;
    po0: inout std_logic
  );
end Cookbook__reg_cam_cell;

architecture Cookbook__reg_cam_cell_behav of Cookbook__reg_cam_cell 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,lo32,lo33,lo34,lo35,lo36,lo37,lo38,lo39,lo40,lo41,lo42,lo43,lo44,lo45,lo46,lo47,lo48,lo49,lo50,lo51,lo52,lo53,lo54,lo55,lo56,lo57,lo58,lo59,lo60,lo61,lo62,lo63,lo64,lo65,n298,n299,n300,n301,n302,n303,n304,n305,n306,n307,n308,n309,n310,n311,n312,n313,n314,n315,n316,n317,n318,n319,n320,n321,n322,n323,n324,n325,n326,n327,n328,n329,n330,n331,n332,n333,n334,n335,n336,n337,n338,n339,n340,n341,n342,n343,n344,n345,n346,n347,n348,n349,n350,n351,n352,n353,n354,n355,n356,n357,n358,n359,n360,n361,n362,li65,li00,li01,li02,li03,li04,li05,li06,li07,li08,li09,li10,li11,li12,li13,li14,li15,li16,li17,li18,li19,li20,li21,li22,li23,li24,li25,li26,li27,li28,li29,li30,li31,li32,li33,li34,li35,li36,li37,li38,li39,li40,li41,li42,li43,li44,li45,li46,li47,li48,li49,li50,li51,li52,li53,li54,li55,li56,li57,li58,li59,li60,li61,li62,li63,n428,n429,n430,n431,n432,n433,n434,n435,n436,n437,n438,n439,n440,n441,n442,n443,n444,n445,n446,n447,n448,n449,n450,n451,n452,n453,n454,n455,n456,n457,n458,n459,n460,n461,n462,n463,n464,n465,n466,n467,n468,n469,n470,n471,n472,n473,n474,n475,n476,n477,n478,n479,n480,n481,n482,n483,n484,n485,n486,n487,n488,n489,n490,n491,li64,n493,n494,n495,n496,n497,n498,n499,n500,n501,n502,n503,n504,n505,n506,n507,n508,n509,n510,n511,n512,n513,n514,n515,n516,n517,n518,n519,n520,n521,n522,n523,n524: 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);
    DFF32: DFF port map (li32, CLK, lo32);
    DFF33: DFF port map (li33, CLK, lo33);
    DFF34: DFF port map (li34, CLK, lo34);
    DFF35: DFF port map (li35, CLK, lo35);
    DFF36: DFF port map (li36, CLK, lo36);
    DFF37: DFF port map (li37, CLK, lo37);
    DFF38: DFF port map (li38, CLK, lo38);
    DFF39: DFF port map (li39, CLK, lo39);
    DFF40: DFF port map (li40, CLK, lo40);
    DFF41: DFF port map (li41, CLK, lo41);
    DFF42: DFF port map (li42, CLK, lo42);
    DFF43: DFF port map (li43, CLK, lo43);
    DFF44: DFF port map (li44, CLK, lo44);
    DFF45: DFF port map (li45, CLK, lo45);
    DFF46: DFF port map (li46, CLK, lo46);
    DFF47: DFF port map (li47, CLK, lo47);
    DFF48: DFF port map (li48, CLK, lo48);
    DFF49: DFF port map (li49, CLK, lo49);
    DFF50: DFF port map (li50, CLK, lo50);
    DFF51: DFF port map (li51, CLK, lo51);
    DFF52: DFF port map (li52, CLK, lo52);
    DFF53: DFF port map (li53, CLK, lo53);
    DFF54: DFF port map (li54, CLK, lo54);
    DFF55: DFF port map (li55, CLK, lo55);
    DFF56: DFF port map (li56, CLK, lo56);
    DFF57: DFF port map (li57, CLK, lo57);
    DFF58: DFF port map (li58, CLK, lo58);
    DFF59: DFF port map (li59, CLK, lo59);
    DFF60: DFF port map (li60, CLK, lo60);
    DFF61: DFF port map (li61, CLK, lo61);
    DFF62: DFF port map (li62, CLK, lo62);
    DFF63: DFF port map (li63, CLK, lo63);
    DFF64: DFF port map (li64, CLK, lo64);
    DFF65: DFF port map (li65, CLK, lo65);
    n298 <= ( lo65 and not pi66 )
      or ( pi65 and pi66 );
    n299 <= ( lo00 and not pi66 )
      or ( pi32 and pi66 );
    n300 <= ( lo01 and not pi66 )
      or ( pi31 and pi66 );
    n301 <= ( lo02 and not pi66 )
      or ( pi30 and pi66 );
    n302 <= ( lo03 and not pi66 )
      or ( pi29 and pi66 );
    n303 <= ( lo04 and not pi66 )
      or ( pi28 and pi66 );
    n304 <= ( lo05 and not pi66 )
      or ( pi27 and pi66 );
    n305 <= ( lo06 and not pi66 )
      or ( pi26 and pi66 );
    n306 <= ( lo07 and not pi66 )
      or ( pi25 and pi66 );
    n307 <= ( lo08 and not pi66 )
      or ( pi24 and pi66 );
    n308 <= ( lo09 and not pi66 )
      or ( pi23 and pi66 );
    n309 <= ( lo10 and not pi66 )
      or ( pi22 and pi66 );
    n310 <= ( lo11 and not pi66 )
      or ( pi21 and pi66 );
    n311 <= ( lo12 and not pi66 )
      or ( pi20 and pi66 );
    n312 <= ( lo13 and not pi66 )
      or ( pi19 and pi66 );
    n313 <= ( lo14 and not pi66 )
      or ( pi18 and pi66 );
    n314 <= ( lo15 and not pi66 )
      or ( pi17 and pi66 );
    n315 <= ( lo16 and not pi66 )
      or ( pi16 and pi66 );
    n316 <= ( lo17 and not pi66 )
      or ( pi15 and pi66 );
    n317 <= ( lo18 and not pi66 )
      or ( pi14 and pi66 );
    n318 <= ( lo19 and not pi66 )
      or ( pi13 and pi66 );
    n319 <= ( lo20 and not pi66 )
      or ( pi12 and pi66 );
    n320 <= ( lo21 and not pi66 )
      or ( pi11 and pi66 );
    n321 <= ( lo22 and not pi66 )
      or ( pi10 and pi66 );
    n322 <= ( lo23 and not pi66 )
      or ( pi09 and pi66 );
    n323 <= ( lo24 and not pi66 )
      or ( pi08 and pi66 );
    n324 <= ( lo25 and not pi66 )
      or ( pi07 and pi66 );
    n325 <= ( lo26 and not pi66 )
      or ( pi06 and pi66 );
    n326 <= ( lo27 and not pi66 )
      or ( pi05 and pi66 );
    n327 <= ( lo28 and not pi66 )
      or ( pi04 and pi66 );
    n328 <= ( lo29 and not pi66 )
      or ( pi03 and pi66 );
    n329 <= ( lo30 and not pi66 )
      or ( pi02 and pi66 );
    n330 <= ( lo31 and not pi66 )
      or ( pi01 and pi66 );
    n331 <= ( lo32 and not pi66 )
      or ( pi64 and pi66 );
    n332 <= ( lo33 and not pi66 )
      or ( pi63 and pi66 );
    n333 <= ( lo34 and not pi66 )
      or ( pi62 and pi66 );
    n334 <= ( lo35 and not pi66 )
      or ( pi61 and pi66 );
    n335 <= ( lo36 and not pi66 )
      or ( pi60 and pi66 );
    n336 <= ( lo37 and not pi66 )
      or ( pi59 and pi66 );
    n337 <= ( lo38 and not pi66 )
      or ( pi58 and pi66 );
    n338 <= ( lo39 and not pi66 )
      or ( pi57 and pi66 );
    n339 <= ( lo40 and not pi66 )
      or ( pi56 and pi66 );
    n340 <= ( lo41 and not pi66 )
      or ( pi55 and pi66 );
    n341 <= ( lo42 and not pi66 )
      or ( pi54 and pi66 );
    n342 <= ( lo43 and not pi66 )
      or ( pi53 and pi66 );
    n343 <= ( lo44 and not pi66 )
      or ( pi52 and pi66 );
    n344 <= ( lo45 and not pi66 )
      or ( pi51 and pi66 );
    n345 <= ( lo46 and not pi66 )
      or ( pi50 and pi66 );
    n346 <= ( lo47 and not pi66 )
      or ( pi49 and pi66 );
    n347 <= ( lo48 and not pi66 )
      or ( pi48 and pi66 );
    n348 <= ( lo49 and not pi66 )
      or ( pi47 and pi66 );
    n349 <= ( lo50 and not pi66 )
      or ( pi46 and pi66 );
    n350 <= ( lo51 and not pi66 )
      or ( pi45 and pi66 );
    n351 <= ( lo52 and not pi66 )
      or ( pi44 and pi66 );
    n352 <= ( lo53 and not pi66 )
      or ( pi43 and pi66 );
    n353 <= ( lo54 and not pi66 )
      or ( pi42 and pi66 );
    n354 <= ( lo55 and not pi66 )
      or ( pi41 and pi66 );
    n355 <= ( lo56 and not pi66 )
      or ( pi40 and pi66 );
    n356 <= ( lo57 and not pi66 )
      or ( pi39 and pi66 );
    n357 <= ( lo58 and not pi66 )
      or ( pi38 and pi66 );
    n358 <= ( lo59 and not pi66 )
      or ( pi37 and pi66 );
    n359 <= ( lo60 and not pi66 )
      or ( pi36 and pi66 );
    n360 <= ( lo61 and not pi66 )
      or ( pi35 and pi66 );
    n361 <= ( lo62 and not pi66 )
      or ( pi34 and pi66 );
    n362 <= ( lo63 and not pi66 )
      or ( pi33 and pi66 );
    li65 <= ( n298 and not pi00 );
    li00 <= ( n299 and not pi00 );
    li01 <= ( n300 and not pi00 );
    li02 <= ( n301 and not pi00 );
    li03 <= ( n302 and not pi00 );
    li04 <= ( n303 and not pi00 );
    li05 <= ( n304 and not pi00 );
    li06 <= ( n305 and not pi00 );
    li07 <= ( n306 and not pi00 );
    li08 <= ( n307 and not pi00 );
    li09 <= ( n308 and not pi00 );
    li10 <= ( n309 and not pi00 );
    li11 <= ( n310 and not pi00 );
    li12 <= ( n311 and not pi00 );
    li13 <= ( n312 and not pi00 );
    li14 <= ( n313 and not pi00 );
    li15 <= ( n314 and not pi00 );
    li16 <= ( n315 and not pi00 );
    li17 <= ( n316 and not pi00 );
    li18 <= ( n317 and not pi00 );
    li19 <= ( n318 and not pi00 );
    li20 <= ( n319 and not pi00 );
    li21 <= ( n320 and not pi00 );
    li22 <= ( n321 and not pi00 );
    li23 <= ( n322 and not pi00 );
    li24 <= ( n323 and not pi00 );
    li25 <= ( n324 and not pi00 );
    li26 <= ( n325 and not pi00 );
    li27 <= ( n326 and not pi00 );
    li28 <= ( n327 and not pi00 );
    li29 <= ( n328 and not pi00 );
    li30 <= ( n329 and not pi00 );
    li31 <= ( n330 and not pi00 );
    li32 <= ( n331 and not pi00 );
    li33 <= ( n332 and not pi00 );
    li34 <= ( n333 and not pi00 );
    li35 <= ( n334 and not pi00 );
    li36 <= ( n335 and not pi00 );
    li37 <= ( n336 and not pi00 );
    li38 <= ( n337 and not pi00 );
    li39 <= ( n338 and not pi00 );
    li40 <= ( n339 and not pi00 );
    li41 <= ( n340 and not pi00 );
    li42 <= ( n341 and not pi00 );
    li43 <= ( n342 and not pi00 );
    li44 <= ( n343 and not pi00 );
    li45 <= ( n344 and not pi00 );
    li46 <= ( n345 and not pi00 );
    li47 <= ( n346 and not pi00 );
    li48 <= ( n347 and not pi00 );
    li49 <= ( n348 and not pi00 );
    li50 <= ( n349 and not pi00 );
    li51 <= ( n350 and not pi00 );
    li52 <= ( n351 and not pi00 );
    li53 <= ( n352 and not pi00 );
    li54 <= ( n353 and not pi00 );
    li55 <= ( n354 and not pi00 );
    li56 <= ( n355 and not pi00 );
    li57 <= ( n356 and not pi00 );
    li58 <= ( n357 and not pi00 );
    li59 <= ( n358 and not pi00 );
    li60 <= ( n359 and not pi00 );
    li61 <= ( n360 and not pi00 );
    li62 <= ( n361 and not pi00 );
    li63 <= ( n362 and not pi00 );
    n428 <= ( not lo00 and pi98 )
      or ( lo00 and not pi98 );
    n429 <= ( not lo01 and pi97 )
      or ( lo01 and not pi97 );
    n430 <= ( not lo02 and pi96 )
      or ( lo02 and not pi96 );
    n431 <= ( not lo03 and pi95 )
      or ( lo03 and not pi95 );
    n432 <= ( not lo04 and pi94 )
      or ( lo04 and not pi94 );
    n433 <= ( not lo05 and pi93 )
      or ( lo05 and not pi93 );
    n434 <= ( not lo06 and pi92 )
      or ( lo06 and not pi92 );
    n435 <= ( not lo07 and pi91 )
      or ( lo07 and not pi91 );
    n436 <= ( not lo08 and pi90 )
      or ( lo08 and not pi90 );
    n437 <= ( not lo09 and pi89 )
      or ( lo09 and not pi89 );
    n438 <= ( not lo10 and pi88 )
      or ( lo10 and not pi88 );
    n439 <= ( not lo11 and pi87 )
      or ( lo11 and not pi87 );
    n440 <= ( not lo12 and pi86 )
      or ( lo12 and not pi86 );
    n441 <= ( not lo13 and pi85 )
      or ( lo13 and not pi85 );
    n442 <= ( not lo14 and pi84 )
      or ( lo14 and not pi84 );
    n443 <= ( not lo15 and pi83 )
      or ( lo15 and not pi83 );
    n444 <= ( not lo16 and pi82 )
      or ( lo16 and not pi82 );
    n445 <= ( not lo17 and pi81 )
      or ( lo17 and not pi81 );
    n446 <= ( not lo18 and pi80 )
      or ( lo18 and not pi80 );
    n447 <= ( not lo19 and pi79 )
      or ( lo19 and not pi79 );
    n448 <= ( not lo20 and pi78 )
      or ( lo20 and not pi78 );
    n449 <= ( not lo21 and pi77 )
      or ( lo21 and not pi77 );
    n450 <= ( not lo22 and pi76 )
      or ( lo22 and not pi76 );
    n451 <= ( not lo23 and pi75 )
      or ( lo23 and not pi75 );
    n452 <= ( not lo24 and pi74 )
      or ( lo24 and not pi74 );
    n453 <= ( not lo25 and pi73 )
      or ( lo25 and not pi73 );
    n454 <= ( not lo26 and pi72 )
      or ( lo26 and not pi72 );
    n455 <= ( not lo27 and pi71 )
      or ( lo27 and not pi71 );
    n456 <= ( not lo28 and pi70 )
      or ( lo28 and not pi70 );
    n457 <= ( not lo29 and pi69 )
      or ( lo29 and not pi69 );
    n458 <= ( not lo30 and pi68 )
      or ( lo30 and not pi68 );
    n459 <= ( not lo31 and pi67 )
      or ( lo31 and not pi67 );
    n460 <= ( n493 and n494 );
    n461 <= ( n495 and n496 );
    n462 <= ( n460 and n461 );
    n463 <= ( n497 and n498 );
    n464 <= ( n499 and n500 );
    n465 <= ( n463 and n464 );
    n466 <= ( n462 and n465 );
    n467 <= ( n501 and n502 );
    n468 <= ( n503 and n504 );
    n469 <= ( n467 and n468 );
    n470 <= ( n505 and n506 );
    n471 <= ( n507 and n508 );
    n472 <= ( n470 and n471 );
    n473 <= ( n469 and n472 );
    n474 <= ( n466 and n473 );
    n475 <= ( n509 and n510 );
    n476 <= ( n511 and n512 );
    n477 <= ( n475 and n476 );
    n478 <= ( n513 and n514 );
    n479 <= ( n515 and n516 );
    n480 <= ( n478 and n479 );
    n481 <= ( n477 and n480 );
    n482 <= ( n517 and n518 );
    n483 <= ( n519 and n520 );
    n484 <= ( n482 and n483 );
    n485 <= ( n521 and n522 );
    n486 <= ( n523 and n524 );
    n487 <= ( n485 and n486 );
    n488 <= ( n484 and n487 );
    n489 <= ( n481 and n488 );
    n490 <= ( n474 and n489 );
    n491 <= ( n490 and lo65 );
    li64 <= ( n491 and not pi00 );
    n493 <= not (( lo32 and n428 ));
    n494 <= not (( lo33 and n429 ));
    n495 <= not (( lo34 and n430 ));
    n496 <= not (( lo35 and n431 ));
    n497 <= not (( lo36 and n432 ));
    n498 <= not (( lo37 and n433 ));
    n499 <= not (( lo38 and n434 ));
    n500 <= not (( lo39 and n435 ));
    n501 <= not (( lo40 and n436 ));
    n502 <= not (( lo41 and n437 ));
    n503 <= not (( lo42 and n438 ));
    n504 <= not (( lo43 and n439 ));
    n505 <= not (( lo44 and n440 ));
    n506 <= not (( lo45 and n441 ));
    n507 <= not (( lo46 and n442 ));
    n508 <= not (( lo47 and n443 ));
    n509 <= not (( lo48 and n444 ));
    n510 <= not (( lo49 and n445 ));
    n511 <= not (( lo50 and n446 ));
    n512 <= not (( lo51 and n447 ));
    n513 <= not (( lo52 and n448 ));
    n514 <= not (( lo53 and n449 ));
    n515 <= not (( lo54 and n450 ));
    n516 <= not (( lo55 and n451 ));
    n517 <= not (( lo56 and n452 ));
    n518 <= not (( lo57 and n453 ));
    n519 <= not (( lo58 and n454 ));
    n520 <= not (( lo59 and n455 ));
    n521 <= not (( lo60 and n456 ));
    n522 <= not (( lo61 and n457 ));
    n523 <= not (( lo62 and n458 ));
    n524 <= not (( lo63 and n459 ));
    po0 <= ( lo64 );
end Cookbook__reg_cam_cell_behav;
