home *** CD-ROM | disk | FTP | other *** search
- module count10a flag '-r3'
- title 'decimal Up/Down counter with synchronous Clear
- Michael Holley Data I/O Corp 14 Mar 1984'
-
- uc3a device 'P16R4';
-
- Clk,Clr,Dir,OE pin 1,2,3,11;
- Q3,Q2,Q1,Q0 pin 14,15,16,17;
-
- Ck,X,Z = .C. , .X., .Z.;
-
- " Counter States
- S0 = ^b1111; S4 = ^b1011; S8 = ^b0111;
- S1 = ^b1110; S5 = ^b1010; S9 = ^b0110;
- S2 = ^b1101; S6 = ^b1001;
- S3 = ^b1100; S7 = ^b1000;
-
- " Counter modes
- Mode = [Clr,Dir];
- Up = [ 1 , 1 ];
- Down = [ 1 , 0 ];
- Clear = [ 0 , X ];
-
- test_vectors ( [Clk ,OE, Mode ] -> [Q3,Q2,Q1,Q0])
- [ Ck , 0, Clear] -> S0;
- [ Ck , 0, Up ] -> S1;
- [ Ck , 0, Up ] -> S2;
- [ Ck , 0, Up ] -> S3;
- [ Ck , 0, Up ] -> S4;
- [ Ck , 0, Up ] -> S5;
- [ Ck , 0, Up ] -> S6;
- [ Ck , 0, Up ] -> S7;
- [ Ck , 0, Up ] -> S8;
- [ Ck , 0, Up ] -> S9;
- [ Ck , 0, Up ] -> S0;
- [ Ck , 0, Up ] -> S1;
- [ Ck , 0, Down ] -> S0;
- [ Ck , 0, Down ] -> S9;
- [ Ck , 1, Down ] -> Z ;
- [ Ck , 0, Down ] -> S7;
- [ Ck , 0, Clear] -> S0;
- @page
- equations
-
- ![Q3,Q2,Q1,Q0] := (Mode == Clear) & ![1,1,1,1];
-
- state_diagram [Q3,Q2,Q1,Q0]
-
- State S0: case (Mode == Up) : S1;
- (Mode == Down) : S9;
- endcase;
-
- State S1: case (Mode == Up) : S2;
- (Mode == Down) : S0;
- endcase;
-
- State S2: case (Mode == Up) : S3;
- (Mode == Down) : S1;
- endcase;
-
- State S3: case (Mode == Up) : S4;
- (Mode == Down) : S2;
- endcase;
-
- State S4: case (Mode == Up) : S5;
- (Mode == Down) : S3;
- endcase;
-
- State S5: case (Mode == Up) : S6;
- (Mode == Down) : S4;
- endcase;
-
- State S6: case (Mode == Up) : S7;
- (Mode == Down) : S5;
- endcase;
-
- State S7: case (Mode == Up) : S8;
- (Mode == Down) : S6;
- endcase;
-
- State S8: case (Mode == Up) : S9;
- (Mode == Down) : S7;
- endcase;
-
- State S9: case (Mode == Up) : S0;
- (Mode == Down) : S8;
- endcase;
-
- end count10a
-
-