# s510
# 19 inputs
# 7 outputs
# 6 D-type flipflops
# 32 inverters
# 179 gates (34 ANDs + 61 NANDs + 29 ORs + 55 NORs)

INPUT(john)
INPUT(cnt13)
INPUT(cnt21)
INPUT(cnt284)
INPUT(pcnt6)
INPUT(cnt261)
INPUT(cnt44)
INPUT(pcnt12)
INPUT(pcnt17)
INPUT(cnt591)
INPUT(cnt45)
INPUT(cnt567)
INPUT(pcnt27)
INPUT(cnt283)
INPUT(cnt272)
INPUT(cnt10)
INPUT(cnt511)
INPUT(pcnt241)
INPUT(cnt509)

OUTPUT(csm)
OUTPUT(pclr)
OUTPUT(pc)
OUTPUT(cclr)
OUTPUT(vsync)
OUTPUT(cblank)
OUTPUT(csync)

st_5 = DFF(I2)
st_4 = DFF(I3)
st_3 = DFF(I4)
st_2 = DFF(I5)
st_1 = DFF(I6)
st_0 = DFF(I7)

I68 = NOT(cnt44)
I67 = NOT(cnt261)
I78 = NOT(cnt511)
I73 = NOT(cnt567)
I61 = NOT(st_0)
I60 = NOT(st_1)
I59 = NOT(st_2)
I58 = NOT(st_3)
I57 = NOT(st_4)
I56 = NOT(st_5)
I69 = NOT(pcnt12)
I70 = NOT(pcnt17)
I554 = NOT(I555)
I591 = NOT(I590)
I594 = NOT(I595)
I546 = NOT(I547)
I667 = NOT(I666)
I475 = NOT(I474)
I798 = NOT(I799)
I495 = NOT(I494)
I467 = NOT(I466)
I462 = NOT(I463)
I130 = NOT(I131)
I567 = NOT(I566)
I483 = NOT(I482)
I530 = NOT(I531)
I486 = NOT(I487)
I607 = NOT(I606)
I778 = NOT(I779)
I347 = NOT(I346)
I204 = NOT(I205)
I216 = NOT(I217)

I936_2 = AND(cnt272, st_2)
I946_1 = AND(cnt10, st_5)
I946_2 = AND(john, st_4)
I936_1 = AND(cnt591, I59)
I1089_1 = AND(I59, I555)
I1044_1 = AND(I70, cnt284)
I943_1 = AND(I578, st_3)
I1102_2 = AND(I56, I675)
I1059_1 = AND(st_5, I671)
I1071_1 = AND(I551, I671)
I1106_1 = AND(I60, I551)
I1123_1 = AND(I551, I663)
I967_1 = AND(I498, I57)
I1055_1 = AND(I570, st_0, st_2)
I1062_1 = AND(I535, I598)
I1120_1 = AND(I795, I618)
I1116_1 = AND(I95, I603)
I950_2 = AND(I463, cnt283)
I950_1 = AND(I455, cnt45)
I1102_1 = AND(st_5, I455)
I954_2 = AND(cnt45, I587, I104)
I1081_1 = AND(I543, I490, I58)
I1106_2 = AND(I57, I543)
I940_1 = AND(I495, I60)
I1077_1 = AND(I104, I539)
I988_1 = AND(I694, I698)
I1085_1 = AND(I787, I130)
I954_1 = AND(st_5, cnt509, I567)
I1081_2 = AND(st_2, I483)
I1116_2 = AND(I61, I230)
I1065_1 = AND(I475, I232)
I1113_1 = AND(st_4, I234)
I1055_2 = AND(I58, I204)
I1085_2 = AND(I61, I216)

I1038_1 = OR(cnt21, st_0)
I985_1 = OR(pcnt27, I73)
I914_1 = OR(I60, I61)
I1068_1 = OR(st_4, I590)
I933_1 = OR(I57, I58)
I958_1 = OR(I57, I59)
I958_2 = OR(cnt284, I642)
I924_2 = OR(I474, I666)
I903_2 = OR(I58, I478)
I1092_1 = OR(st_4, I478)
I917_1 = OR(I458, I494, st_5)
I921_1 = OR(I494, I570)
I909_1 = OR(I466, I627)
I962_2 = OR(I466, I78)
I1095_1 = OR(cnt13, I506)
I1099_1 = OR(I506, I209)
I917_2 = OR(I482, I590)
I982_1 = OR(I559, I487)
I1074_1 = OR(I475, I546)
I1095_2 = OR(I475, I578)
I970_1 = OR(I495, I603)
I900_1 = OR(I56, I207)
I903_1 = OR(I606, I742)
I962_1 = OR(I462, I73)
I975_1 = OR(I531, I483)
I978_1 = OR(I483, I747)
I928_1 = OR(st_0, I530)
I1110_1 = OR(I61, I530)
I924_1 = OR(st_0, I731)

I590 = NAND(st_1, st_2)
I458 = NAND(st_3, st_1)
I490 = NAND(cnt284, pcnt17)
I578 = NAND(I61, st_1)
I666 = NAND(I61, st_3)
I658 = NAND(st_2, I58)
I814 = NAND(I58, cnt21, I595)
I574 = NAND(st_3, I57)
I498 = NAND(I511, I587)
I638 = NAND(I511, st_0)
I642 = NAND(I739, st_2)
I474 = NAND(I56, I57)
I570 = NAND(I458, I56)
I598 = NAND(cnt13, I56)
I742 = NAND(I56, st_0)
I618 = NAND(I69, cnt44)
I478 = NAND(I547, I739)
I494 = NAND(I57, I547)
I774 = NAND(st_5, I547, I458)
I466 = NAND(st_3, I535)
I506 = NAND(I535, I58)
I566 = NAND(I663, st_2)
I104 = NAND(I933_1, I56)
I482 = NAND(I58, I551)
I390 = NAND(st_0, I583)
I834 = NAND(I1068_1, I642)
I698 = NAND(I563, I59)
I694 = NAND(I795, I57)
I274 = NAND(I56, I667)
I606 = NAND(I95, I57)
I346 = NAND(I985_1, I463)
I810 = NAND(pcnt6, cnt284, I455)
I782 = NAND(I67, I559, I675)
I230 = NAND(I958_1, I958_2)
I870 = NAND(I1092_1, I566)
I298 = NAND(I539, I574)
I710 = NAND(I467, cnt10)
I714 = NAND(I1038_1, I567)
pclr = NAND(I917_1, I917_2)
I326 = NAND(I982_1, I61)
pc = NAND(I921_1, I837)
I270 = NAND(st_3, I615)
I838 = NAND(I1074_1, I530)
I872 = NAND(I1095_1, I1095_2, I774)
I266 = NAND(I970_1, st_1)
I232 = NAND(I962_1, I962_2, I810)
cclr = NAND(I486, I877, I546, I390)
I234 = NAND(I213, I814, I710, I714)
I278 = NAND(I975_1, I60)
I282 = NAND(I978_1, st_1)
I3 = NAND(I903_1, I903_2, I823)
vsync = NAND(I914_1, I855, I867)
cblank = NAND(I928_1, I841)
I4 = NAND(I278, I274, I270, I266)
I884 = NAND(I1110_1, I861, I326)
I5 = NAND(I282, I889, I827, I298)
csync = NAND(I924_1, I924_2, I881)
I6 = NAND(I909_1, I899, I895)
I2 = NAND(I900_1, I821)
I874 = NAND(I1099_1, I863, I831)
I7 = NAND(I778, I782, I887)

I555 = NOR(st_0, st_1)
I587 = NOR(st_1, st_2)
I595 = NOR(st_0, st_2)
I511 = NOR(st_3, st_5)
I739 = NOR(st_5, st_1)
I627 = NOR(pcnt241, I78)
I547 = NOR(I61, st_2)
I675 = NOR(I61, st_1)
I535 = NOR(I590, st_0)
I671 = NOR(I458, I59)
I663 = NOR(st_1, I58)
I551 = NOR(I61, I57)
I583 = NOR(I511, I60)
I603 = NOR(I61, I56)
I799 = NOR(I56, I58, I59)
I209 = NOR(I946_1, I946_2)
I563 = NOR(I578, I56)
I795 = NOR(st_3, st_2, I578)
I95 = NOR(I587, I591)
I463 = NOR(I458, I594)
I131 = NOR(I936_1, I936_2)
I455 = NOR(I554, I658)
I559 = NOR(I658, I56)
I531 = NOR(I574, I59)
I787 = NOR(I554, st_5, I574)
I487 = NOR(st_4, I498)
I543 = NOR(I742, I590)
I747 = NOR(I638, I1044_1)
I539 = NOR(I546, I60)
I207 = NOR(I595, I943_1)
I779 = NOR(I95, st_4, I638)
I259 = NOR(st_0, I967_1)
I837 = NOR(I487, I1071_1)
I867 = NOR(I834, I1089_1)
I615 = NOR(I475, st_2)
I827 = NOR(I531, I1062_1)
csm = NOR(I555, I798)
I213 = NOR(I950_1, I950_2)
I877 = NOR(I1102_1, I1102_2, I551)
I823 = NOR(I259, I1059_1)
I855 = NOR(I615, st_3)
I205 = NOR(I563, I940_1)
I841 = NOR(I799, I1077_1)
I371 = NOR(I68, I988_1)
I731 = NOR(I583, I607)
I217 = NOR(I954_1, I954_2)
I861 = NOR(I1081_1, I1081_2)
I889 = NOR(I1116_1, I1116_2, I870)
I881 = NOR(I1106_1, I1106_2, I838)
I899 = NOR(I872, I347, I1123_1)
I831 = NOR(I371, I1065_1)
I895 = NOR(I884, I1120_1)
I821 = NOR(I1055_1, I1055_2)
I863 = NOR(I1085_1, I1085_2)
I887 = NOR(I874, I1113_1)
