home *** CD-ROM | disk | FTP | other *** search
- module cntrs8 flag '-r3'
- title 'test program for 20RS8
- Mary Bailey Data I/O Redmond Wa 12 Oct 1984'
-
- RS8 device 'P20RS8';
-
- k = 24; "number of states
-
- Q7,Q6,Q5,Q4,Q3,Q2,Q1,Q0 pin 15,16,17,18,19,20,21,22;
- Clk,Dir,Clr,OE pin 1,2,3,13;
-
- Q7,Q6,Q5,Q4,Q3,Q2,Q1,Q0 istype 'pos';
- H,L,Ck,Z,X = 1, 0, .C., .Z., .X.;
-
- count = [Q6,Q4,Q2,Q1,Q0];
-
- Mode = [Dir,Clr];
- Up = [ 1 , 1 ];
- Down = [ 1 , 0 ];
- Clear = [ 0 , X ];
-
- @message 'expanding state diagram'
- state_diagram count
-
- State 0: case (Mode == Up ) :1;
- (Mode == Down ) :@expr k-1;;
- (Mode == Clear) :0;
- endcase;
- @const i=1; @repeat k-2 {
- State @expr i;: case (Mode == Up ) :@expr i+1;;
- (Mode == Down ) :@expr i-1;;
- (Mode == Clear) :0;
- endcase;
- @const i=i+1;}
- State @expr k-1;: case (Mode == Up ) :0;
- (Mode == Down ) :@expr k-2;;
- (Mode == Clear) :0;
- endcase;
-
- @message 'expanding test vectors'
- test_vectors ([Clk,OE, Mode ] -> count)
- [Ck, 0 , Clear] -> 0;
- @const i=1; @repeat k-1 {
- [Ck, 0 , Up ] -> @expr i;; @const i=i+1;}
-
- [Ck, 0 , Up ] -> 0; "test roll over
- [Ck, 0 , Up ] -> 1;
- [Ck, 0 , Up ] -> 2;
- [Ck, 0 , Up ] -> 3;
- [Ck, 0 , Clear] -> 0;
- @const i=k-1; @repeat k {
- [Ck, 0 , Down ] -> @expr i;; @const i=i-1;}
- [Ck, 0 , Down ] -> @expr k-1;; "test roll over
-
- end cntrs8
-
-