[
(DefBasetype ("./goodin.gl", 22) "B"),
(DefAtom ("./goodin.gl", 25) "sreg" [] (TypUni (TypProd [(TypBase "B"), (TypBase "B"), (TypProd [(TypBase "B"), (TypBase "B")])]) (TypProd [(TypBase "B"), (TypBase "B")]))),
(DefAtom ("./goodin.gl", 26) "sbdff" [] (TypUni (TypProd [(TypBase "B"), (TypBase "B")]) (TypBase "B"))),
(
DefAtom
("./goodin.gl", 27)
"scount4"
[PTBool, PTBool, PTBool, PTBool, PTBool]
(
TypUni
(TypProd [(TypBase "B"), (TypBase "B"), (TypBase "B"), (TypBase "B"), (TypBase "B"), (TypBase "B"), (TypProd [(TypBase "B"), (TypBase "B"), (TypBase "B"), (TypBase "B")])])
(TypProd [(TypBase "B"), (TypBase "B"), (TypProd [(TypBase "B"), (TypBase "B"), (TypBase "B"), (TypBase "B")])])
)
),
(DefAtom ("./goodin.gl", 29) "sbuffer" [PTBool, PTBool] (TypUni (TypBase "B") (TypProd [(TypBase "B"), (TypBase "B")]))),
(DefAtom ("./goodin.gl", 34) "and" [] (TypUni (TypProd [(TypBase "B"), (TypBase "B")]) (TypBase "B"))),
(DefAtom ("./goodin.gl", 35) "nand" [] (TypUni (TypProd [(TypBase "B"), (TypBase "B")]) (TypBase "B"))),
(DefAtom ("./goodin.gl", 36) "or" [] (TypUni (TypProd [(TypBase "B"), (TypBase "B")]) (TypBase "B"))),
(DefAtom ("./goodin.gl", 37) "sxor" [] (TypUni (TypProd [(TypBase "B"), (TypBase "B")]) (TypBase "B"))),
(DefAtom ("./goodin.gl", 38) "nor" [] (TypUni (TypProd [(TypBase "B"), (TypBase "B")]) (TypBase "B"))),
(DefAtom ("./goodin.gl", 39) "not" [] (TypUni (TypBase "B") (TypBase "B"))),
(DefAtom ("./goodin.gl", 40) "snor2" [] (TypUni (TypProd [(TypBase "B"), (TypBase "B")]) (TypBase "B"))),
(DefAtom ("./goodin.gl", 41) "snor3" [] (TypUni (TypProd [(TypBase "B"), (TypBase "B"), (TypBase "B")]) (TypBase "B"))),
(DefAtom ("./goodin.gl", 42) "snand2" [] (TypUni (TypProd [(TypBase "B"), (TypBase "B")]) (TypBase "B"))),
(DefAtom ("./goodin.gl", 43) "sfix" [] (TypUni (TypProd []) (TypProd [(TypBase "B"), (TypBase "B")]))),
(DefAtom ("./goodin.gl", 46) "sipad" [] (TypUni (TypProd []) (TypBase "B"))),
(DefAtom ("./goodin.gl", 47) "sopad" [] (TypNon (TypBase "B"))),
(
DefVal
("./goodin.gl", 56)
"regpart1"
(TypUni (TypProd [(TypBase "B"), (TypBase "B"), (TypBase "B"), (TypBase "B"), (TypBase "B")]) (TypProd [(TypBase "B"), (TypBase "B")]))
(
VLambda
(FCList [(FCSym "ck_32"), (FCSym "reset_33"), (FCSym "d2_34"), (FCSym "d1_35"), (FCSym "d0_36")])
(VAtom ("./goodin.gl", 57) "sreg" [] (VList [(VSym ("./goodin.gl", 57) "ck_32"), (VSym ("./goodin.gl", 57) "reset_33"), (VList [(VSym ("./goodin.gl", 57) "d0_36"), (VSym ("./goodin.gl", 57) "d1_35")])]))
)
),
(
DefVal
("./goodin.gl", 60)
"fsmlog1"
(TypUni (TypProd [(TypBase "B"), (TypBase "B"), (TypBase "B"), (TypBase "B")]) (TypProd [(TypBase "B"), (TypBase "B"), (TypBase "B"), (TypBase "B"), (TypBase "B"), (TypBase "B")]))
(
VLambda
(FCList [(FCSym "q2_47"), (FCSym "q0_48"), (FCSym "tp_49"), (FCSym "ip_50")])
(
VWhere
[
(DefCon ("./goodin.gl", 64) (VSym ("./goodin.gl", 64) "newclock_51") (VAtom ("./goodin.gl", 64) "and" [] (VList [(VAtom ("./goodin.gl", 64) "not" [] (VSym ("./goodin.gl", 64) "q0_48")), (VSym ("./goodin.gl", 64) "q2_47")]))),
(
DefCon
("./goodin.gl", 65)
(VSym ("./goodin.gl", 65) "timeout_52")
(VAtom ("./goodin.gl", 65) "and" [] (VList [(VAtom ("./goodin.gl", 65) "not" [] (VSym ("./goodin.gl", 65) "q0_48")), (VAtom ("./goodin.gl", 65) "not" [] (VSym ("./goodin.gl", 65) "q2_47"))]))
),
(DefCon ("./goodin.gl", 66) (VSym ("./goodin.gl", 66) "srdata0_53") (VAtom ("./goodin.gl", 66) "and" [] (VList [(VSym ("./goodin.gl", 66) "q0_48"), (VAtom ("./goodin.gl", 66) "not" [] (VSym ("./goodin.gl", 66) "q2_47"))]))),
(DefCon ("./goodin.gl", 67) (VSym ("./goodin.gl", 67) "srdata1_54") (VAtom ("./goodin.gl", 67) "and" [] (VList [(VSym ("./goodin.gl", 67) "q0_48"), (VSym ("./goodin.gl", 67) "q2_47")]))),
(
DefCon
("./goodin.gl", 68)
(VSym ("./goodin.gl", 68) "d1_55")
(VAtom ("./goodin.gl", 68) "or" [] (VList [(VSym ("./goodin.gl", 68) "ip_50"), (VAtom ("./goodin.gl", 68) "and" [] (VList [(VAtom ("./goodin.gl", 68) "not" [] (VSym ("./goodin.gl", 68) "tp_49")), (VSym ("./goodin.gl", 68) "q2_47")]))]))
),
(
DefCon
("./goodin.gl", 69)
(VSym ("./goodin.gl", 69) "d0_56")
(
VAtom
("./goodin.gl", 69)
"or"
[]
(
VList
[
(VAtom ("./goodin.gl", 69) "and" [] (VList [(VSym ("./goodin.gl", 69) "ip_50"), (VAtom ("./goodin.gl", 69) "and" [] (VList [(VAtom ("./goodin.gl", 69) "not" [] (VSym ("./goodin.gl", 69) "q0_48")), (VSym ("./goodin.gl", 69) "q2_47")]))])),
(
VAtom
("./goodin.gl", 70)
"or"
[]
(
VList
[
(VAtom ("./goodin.gl", 70) "and" [] (VList [(VSym ("./goodin.gl", 70) "tp_49"), (VAtom ("./goodin.gl", 70) "and" [] (VList [(VAtom ("./goodin.gl", 70) "not" [] (VSym ("./goodin.gl", 70) "q0_48")), (VSym ("./goodin.gl", 70) "q2_47")]))])),
(
VAtom
("./goodin.gl", 71)
"and"
[]
(VList [(VAtom ("./goodin.gl", 71) "not" [] (VSym ("./goodin.gl", 71) "ip_50")), (VAtom ("./goodin.gl", 71) "and" [] (VList [(VAtom ("./goodin.gl", 71) "not" [] (VSym ("./goodin.gl", 71) "tp_49")), (VSym ("./goodin.gl", 71) "q0_48")]))])
)
]
)
)
]
)
)
)
]
(VList [(VSym ("./goodin.gl", 62) "srdata1_54"), (VSym ("./goodin.gl", 62) "srdata0_53"), (VSym ("./goodin.gl", 62) "timeout_52"), (VSym ("./goodin.gl", 62) "d1_55"), (VSym ("./goodin.gl", 62) "d0_56"), (VSym ("./goodin.gl", 62) "newclock_51")])
)
)
),
(
DefVal
("./goodin.gl", 76)
"fsm"
(TypUni (TypProd [(TypBase "B"), (TypBase "B"), (TypBase "B"), (TypBase "B")]) (TypProd [(TypBase "B"), (TypBase "B"), (TypProd [(TypBase "B"), (TypBase "B")])]))
(
VLambda
(FCList [(FCSym "ck_71"), (FCSym "reset_72"), (FCSym "tp_73"), (FCSym "ip_74")])
(
VWhere
[
(DefCon ("./goodin.gl", 78) (VSym ("./goodin.gl", 78) "srdata_75") (VList [(VSym ("./goodin.gl", 78) "srdata0_76"), (VSym ("./goodin.gl", 78) "srdata1_77")])),
(
DefCon
("./goodin.gl", 80)
(VList [(VSym ("./goodin.gl", 79) "srdata1_77"), (VSym ("./goodin.gl", 79) "srdata0_76"), (VSym ("./goodin.gl", 79) "timeout_78"), (VSym ("./goodin.gl", 79) "d1_79"), (VSym ("./goodin.gl", 79) "d0_80"), (VSym ("./goodin.gl", 79) "newclock_81")])
(VApply (VSym ("./goodin.gl", 80) "fsmlog1") (VList [(VSym ("./goodin.gl", 80) "q2_82"), (VSym ("./goodin.gl", 80) "q0_83"), (VSym ("./goodin.gl", 80) "tp_73"), (VSym ("./goodin.gl", 80) "ip_74")]))
),
(
DefCon
("./goodin.gl", 82)
(VList [(VSym ("./goodin.gl", 81) "q2_82"), (VSym ("./goodin.gl", 81) "q0_83")])
(VApply (VSym ("./goodin.gl", 82) "regpart1") (VList [(VSym ("./goodin.gl", 82) "ck_71"), (VSym ("./goodin.gl", 82) "reset_72"), (VSym ("./goodin.gl", 82) "x_84"), (VSym ("./goodin.gl", 82) "d1_79"), (VSym ("./goodin.gl", 82) "d0_80")]))
)
]
(VList [(VSym ("./goodin.gl", 77) "timeout_78"), (VSym ("./goodin.gl", 77) "newclock_81"), (VSym ("./goodin.gl", 77) "srdata_75")])
)
)
),
(
DefVal
("./goodin.gl", 86)
"ldff"
(TypUni (TypProd [(TypBase "B"), (TypBase "B"), (TypBase "B")]) (TypBase "B"))
(
VLambda
(FCList [(FCSym "ld_90"), (FCSym "ck_91"), (FCSym "d_92")])
(
VWhere
[
(DefCon ("./goodin.gl", 88) (VSym ("./goodin.gl", 88) "q_93") (VAtom ("./goodin.gl", 88) "sbdff" [] (VList [(VSym ("./goodin.gl", 88) "ck_91"), (VSym ("./goodin.gl", 88) "ddff_94")]))),
(
DefCon
("./goodin.gl", 89)
(VSym ("./goodin.gl", 89) "ddff_94")
(
VAtom
("./goodin.gl", 89)
"nand"
[]
(
VList
[
(VAtom ("./goodin.gl", 89) "nand" [] (VList [(VAtom ("./goodin.gl", 89) "not" [] (VSym ("./goodin.gl", 89) "ld_90")), (VSym ("./goodin.gl", 89) "q_93")])),
(VAtom ("./goodin.gl", 90) "nand" [] (VList [(VSym ("./goodin.gl", 90) "ld_90"), (VSym ("./goodin.gl", 90) "d_92")]))
]
)
)
)
]
(VSym ("./goodin.gl", 88) "q_93")
)
)
),
(
DefVal
("./goodin.gl", 95)
"posedge"
(TypUni (TypProd [(TypBase "B"), (TypBase "B")]) (TypBase "B"))
(
VLambda
(FCList [(FCSym "ck_98"), (FCSym "in_99")])
(
VWhere
[
(
DefCon
("./goodin.gl", 97)
(VSym ("./goodin.gl", 97) "out_100")
(VAtom ("./goodin.gl", 97) "and" [] (VList [(VAtom ("./goodin.gl", 97) "not" [] (VAtom ("./goodin.gl", 97) "sbdff" [] (VList [(VSym ("./goodin.gl", 97) "ck_98"), (VSym ("./goodin.gl", 97) "in_99")]))), (VSym ("./goodin.gl", 99) "in_99")]))
)
]
(VSym ("./goodin.gl", 97) "out_100")
)
)
),
(
DefVal
("./goodin.gl", 103)
"edge"
(TypUni (TypProd [(TypBase "B"), (TypBase "B")]) (TypBase "B"))
(
VLambda
(FCList [(FCSym "ck_104"), (FCSym "in_105")])
(
VWhere
[(DefCon ("./goodin.gl", 106) (VSym ("./goodin.gl", 106) "q_106") (VAtom ("./goodin.gl", 106) "sbdff" [] (VList [(VSym ("./goodin.gl", 106) "ck_104"), (VSym ("./goodin.gl", 106) "in_105")])))]
(VAtom ("./goodin.gl", 104) "sxor" [] (VList [(VAtom ("./goodin.gl", 104) "sbdff" [] (VList [(VSym ("./goodin.gl", 104) "ck_104"), (VSym ("./goodin.gl", 104) "q_106")])), (VSym ("./goodin.gl", 105) "q_106")]))
)
)
),
(
DefVal
("./goodin.gl", 111)
"timer"
(TypUni (TypProd [(TypBase "B"), (TypBase "B"), (TypBase "B")]) (TypBase "B"))
(
VLambda
(FCList [(FCSym "ck_124"), (FCSym "reset_125"), (FCSym "r_126")])
(
VWhere
[
(
DefCon
("./goodin.gl", 114)
(VSym ("./goodin.gl", 114) "tp_127")
(
VAtom
("./goodin.gl", 114)
"snor2"
[]
(
VList
[
(VAtom ("./goodin.gl", 114) "snor2" [] (VList [(VSym ("./goodin.gl", 114) "q2_128"), (VSym ("./goodin.gl", 114) "q3_129")])),
(VAtom ("./goodin.gl", 115) "snand2" [] (VList [(VSym ("./goodin.gl", 115) "q0_130"), (VAtom ("./goodin.gl", 115) "not" [] (VSym ("./goodin.gl", 115) "q1_131"))]))
]
)
)
),
(DefCon ("./goodin.gl", 116) (VList [(VSym ("./goodin.gl", 116) "q0_130"), (VSym ("./goodin.gl", 116) "q1_131"), (VSym ("./goodin.gl", 116) "q2_128"), (VSym ("./goodin.gl", 116) "q3_129")]) (VSym ("./goodin.gl", 116) "q_132")),
(
DefCon
("./goodin.gl", 117)
(VList [(VSym ("./goodin.gl", 117) "cu_133"), (VSym ("./goodin.gl", 117) "cd_134"), (VSym ("./goodin.gl", 117) "q_132")])
(
VAtom
("./goodin.gl", 117)
"scount4"
[(ParBool False), (ParBool True), (ParBool True), (ParBool False), (ParBool False)]
(
VList
[
(VSym ("./goodin.gl", 118) "d1_135"),
(VSym ("./goodin.gl", 118) "reset_125"),
(VSym ("./goodin.gl", 118) "ck_124"),
(VSym ("./goodin.gl", 118) "d2_136"),
(VSym ("./goodin.gl", 118) "one_137"),
(VSym ("./goodin.gl", 118) "d3_138"),
(VSym ("./goodin.gl", 118) "d4_139")
]
)
)
),
(DefCon ("./goodin.gl", 119) (VList [(VSym ("./goodin.gl", 119) "zero_140"), (VSym ("./goodin.gl", 119) "one_137")]) (VAtom ("./goodin.gl", 119) "sfix" [] (VList [])))
]
(VSym ("./goodin.gl", 113) "tp_127")
)
)
),
(
DefVal
("./goodin.gl", 128)
"srff"
(TypUni (TypProd [(TypBase "B"), (TypBase "B"), (TypBase "B"), (TypBase "B")]) (TypBase "B"))
(
VLambda
(FCList [(FCSym "ck_146"), (FCSym "reset_147"), (FCSym "s_148"), (FCSym "r_149")])
(
VWhere
[
(
DefCon
("./goodin.gl", 131)
(VSym ("./goodin.gl", 131) "q_150")
(
VAtom
("./goodin.gl", 131)
"sbdff"
[]
(
VList
[
(VSym ("./goodin.gl", 132) "ck_146"),
(VAtom ("./goodin.gl", 132) "snor3" [] (VList [(VSym ("./goodin.gl", 132) "reset_147"), (VSym ("./goodin.gl", 132) "r_149"), (VAtom ("./goodin.gl", 133) "snor2" [] (VList [(VSym ("./goodin.gl", 133) "s_148"), (VSym ("./goodin.gl", 133) "q_150")]))]))
]
)
)
)
]
(VSym ("./goodin.gl", 130) "q_150")
)
)
),
(
DefVal
("./goodin.gl", 139)
"core"
(TypUni (TypProd [(TypBase "B"), (TypBase "B"), (TypBase "B")]) (TypProd [(TypBase "B"), (TypBase "B"), (TypBase "B"), (TypBase "B")]))
(
VLambda
(FCList [(FCSym "ck_166"), (FCSym "cd_167"), (FCSym "reset_168")])
(
VWhere
[
(DefCon ("./goodin.gl", 142) (VSym ("./goodin.gl", 142) "syncdata_169") (VApply (VSym ("./goodin.gl", 142) "ldff") (VList [(VSym ("./goodin.gl", 142) "syncclk_170"), (VSym ("./goodin.gl", 142) "ckbuf0_171"), (VSym ("./goodin.gl", 142) "dataout_172")]))),
(DefCon ("./goodin.gl", 143) (VList [(VSym ("./goodin.gl", 143) "ckbuf0_171"), (VSym ("./goodin.gl", 143) "ckbuf1_173")]) (VSym ("./goodin.gl", 143) "ckbuf_174")),
(DefCon ("./goodin.gl", 144) (VSym ("./goodin.gl", 144) "ckbuf_174") (VAtom ("./goodin.gl", 144) "sbuffer" [(ParBool False), (ParBool True)] (VSym ("./goodin.gl", 144) "ck_166"))),
(
DefCon
("./goodin.gl", 145)
(VSym ("./goodin.gl", 145) "dataout_172")
(VApply (VSym ("./goodin.gl", 145) "srff") (VList [(VSym ("./goodin.gl", 145) "ckbuf0_171"), (VSym ("./goodin.gl", 145) "reset_168"), (VSym ("./goodin.gl", 145) "srdata1_175"), (VSym ("./goodin.gl", 145) "srdata0_176")]))
),
(DefCon ("./goodin.gl", 146) (VSym ("./goodin.gl", 146) "syncclk_170") (VApply (VSym ("./goodin.gl", 146) "posedge") (VList [(VSym ("./goodin.gl", 146) "ckbuf0_171"), (VSym ("./goodin.gl", 146) "newclock_177")]))),
(DefCon ("./goodin.gl", 147) (VSym ("./goodin.gl", 147) "ip_178") (VApply (VSym ("./goodin.gl", 147) "edge") (VList [(VSym ("./goodin.gl", 147) "ckbuf0_171"), (VSym ("./goodin.gl", 147) "cd_167")]))),
(DefCon ("./goodin.gl", 148) (VList [(VSym ("./goodin.gl", 148) "srdata0_176"), (VSym ("./goodin.gl", 148) "srdata1_175")]) (VSym ("./goodin.gl", 148) "srdata_179")),
(
DefCon
("./goodin.gl", 149)
(VList [(VSym ("./goodin.gl", 149) "timeout_180"), (VSym ("./goodin.gl", 149) "newclock_177"), (VSym ("./goodin.gl", 149) "srdata_179")])
(
VApply
(VSym ("./goodin.gl", 149) "fsm")
(
VList
[
(VSym ("./goodin.gl", 149) "ckbuf0_171"),
(VSym ("./goodin.gl", 150) "reset_168"),
(VApply (VSym ("./goodin.gl", 151) "timer") (VList [(VSym ("./goodin.gl", 151) "ckbuf0_171"), (VSym ("./goodin.gl", 151) "reset_168"), (VSym ("./goodin.gl", 151) "ip_178")])),
(VSym ("./goodin.gl", 153) "ip_178")
]
)
)
)
]
(VList [(VSym ("./goodin.gl", 140) "timeout_180"), (VSym ("./goodin.gl", 140) "syncclk_170"), (VSym ("./goodin.gl", 140) "dataout_172"), (VSym ("./goodin.gl", 140) "syncdata_169")])
)
)
),
(
DefVal
("./goodin.gl", 158)
"chip"
(TypNon (TypProd []))
(
VSigma
(FCSym "dc_189")
(
VWhere
[
(
DefCon
("./goodin.gl", 166)
(VList [(VSym ("./goodin.gl", 166) "timeout_190"), (VSym ("./goodin.gl", 166) "syncclk_191"), (VSym ("./goodin.gl", 166) "dataout_192"), (VSym ("./goodin.gl", 166) "syncdata_193")])
(VApply (VSym ("./goodin.gl", 166) "core") (VList [(VSym ("./goodin.gl", 166) "ck_194"), (VSym ("./goodin.gl", 166) "cd_195"), (VSym ("./goodin.gl", 166) "reset_196")]))
),
(DefCon ("./goodin.gl", 167) (VSym ("./goodin.gl", 167) "ck_194") (VAtom ("./goodin.gl", 167) "sipad" [] (VList []))),
(DefCon ("./goodin.gl", 168) (VSym ("./goodin.gl", 168) "cd_195") (VAtom ("./goodin.gl", 168) "sipad" [] (VList []))),
(DefCon ("./goodin.gl", 169) (VSym ("./goodin.gl", 169) "reset_196") (VAtom ("./goodin.gl", 169) "sipad" [] (VList [])))
]
(
VAppset
[
(VAtom ("./goodin.gl", 160) "sopad" [] (VSym ("./goodin.gl", 160) "timeout_190")),
(VAtom ("./goodin.gl", 161) "sopad" [] (VSym ("./goodin.gl", 161) "syncclk_191")),
(VAtom ("./goodin.gl", 162) "sopad" [] (VSym ("./goodin.gl", 162) "dataout_192")),
(VAtom ("./goodin.gl", 163) "sopad" [] (VSym ("./goodin.gl", 164) "syncdata_193"))
]
)
)
)
)
]
