home *** CD-ROM | disk | FTP | other *** search
- module count10 flag '-r3'
- title 'decimal Up/Down counter with synchronous Clear
- Michael Holley Data I/O Corp 29 Sep 1984'
-
- uc3 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
-
- state_diagram [Q3,Q2,Q1,Q0]
-
- State S0: case (Mode == Up) : S1;
- (Mode == Down) : S9;
- (Mode == Clear) : S0;
- endcase;
-
- State S1: case (Mode == Up) : S2;
- (Mode == Down) : S0;
- (Mode == Clear) : S0;
- endcase;
-
- State S2: case (Mode == Up) : S3;
- (Mode == Down) : S1;
- (Mode == Clear) : S0;
- endcase;
-
- State S3: case (Mode == Up) : S4;
- (Mode == Down) : S2;
- (Mode == Clear) : S0;
- endcase;
-
- State S4: case (Mode == Up) : S5;
- (Mode == Down) : S3;
- (Mode == Clear) : S0;
- endcase;
-
- State S5: case (Mode == Up) : S6;
- (Mode == Down) : S4;
- (Mode == Clear) : S0;
- endcase;
-
- State S6: case (Mode == Up) : S7;
- (Mode == Down) : S5;
- (Mode == Clear) : S0;
- endcase;
-
- State S7: case (Mode == Up) : S8;
- (Mode == Down) : S6;
- (Mode == Clear) : S0;
- endcase;
-
- State S8: case (Mode == Up) : S9;
- (Mode == Down) : S7;
- (Mode == Clear) : S0;
- endcase;
-
- State S9: case (Mode == Up) : S0;
- (Mode == Down) : S8;
- (Mode == Clear) : S0;
- endcase;
- end count10
-
-