module cntdown; title '6-bit down counter' cntdown device 'P22V10'; declarations CLK pin 1; LD pin 2; I3,I4,I5,I6,I7,I8 pin 3,4,5,6,7,8; IO19,IO18,IO17,IO16 pin 19,18,17,16 istype 'reg_d,buffer'; IO15,IO14 pin 15,14 istype 'reg_d,buffer'; H,L,C,X,Z,P = 1,0,.C.,.X.,.Z.,.P.; CNT = [IO19,IO18,IO17,IO16,IO15,IO14]; INPUT = [I3,I4,I5,I6,I7,I8]; equations CNT.D = (CNT.FB - 1) & !LD # INPUT & LD; CNT.CK = CLK; CNT.OE = ^h3F; @RADIX 16; @CONST COUNT=3F; TEST_VECTORS ( [CLK,LD,INPUT] -> [CNT]); [ 0, 0, 00 ] -> [00 ]; [ C, 0, 00 ] -> [3F ]; @REPEAT 3D { @CONST COUNT = COUNT - 1; [ C, 0, 00 ] -> [COUNT]; } [ C, 0, 00 ] -> [01 ]; [ C, 0, 00 ] -> [00 ]; [ C, 0, 00 ] -> [3F ]; [ C, 1, 22 ] -> [22 ]; [ C, 0, 22 ] -> [21 ]; [ C, 0, 22 ] -> [20 ]; end