module incr16 Title 'delic inkrementalniho cidla /16' Declarations clk pin ; "vstup hodin cca 1MHz xa0 pin; "vstup incr. snimace A xa2,xa1 node istype 'reg'; XA = [xa2..xa1]; xb0 pin; "vstup incr. snimace B xb2,xb1 node istype 'reg'; XB = [xb2..xb1]; xup,xdn node istype 'reg'; x5..x0 node istype 'reg'; X = [x5..x0]; "6 bit citac outa pin istype 'reg'; "vystup faze A outb pin istype 'reg'; "vystup faze B Equations XA := [xa1,xa0]; XA.clk = clk; XB := [xb1,xb0]; XB.clk = clk; xup := xa1 & !xa2 & !xb1 & !xb2 # !xa1 & xa2 & xb1 & xb2 # xa1 & xa2 & xb1 & !xb2 # !xa1 & !xa2 & !xb1 & xb2; xup.clk = clk; xdn := !xa1 & xa2 & !xb1 & !xb2 # xa1 & !xa2 & xb1 & xb2 # xa1 & xa2 & !xb1 & xb2 # !xa1 & !xa2 & xb1 & !xb2; xdn.clk = clk; X.clk = clk; when xup then X:=(X+1) else when xdn then X:=(X-1) else X:=X; X.ar = rb0; outa := !x5 & x4 # x5 & !x4; outa.clk = clk; outb := x5; outb.clk = clk; end incr16