home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 15 / 15.iso / s / s199 / 1.img / COUNT10A.ABL < prev    next >
Encoding:
Text File  |  1986-02-04  |  2.0 KB  |  91 lines

  1. module count10a flag '-r3'
  2. title 'decimal Up/Down counter with synchronous Clear
  3. Michael Holley     Data I/O Corp   14 Mar 1984'
  4.  
  5.     uc3a    device 'P16R4';
  6.  
  7.     Clk,Clr,Dir,OE    pin 1,2,3,11;
  8.     Q3,Q2,Q1,Q0    pin 14,15,16,17;
  9.     
  10.     Ck,X,Z    = .C. , .X., .Z.;
  11.  
  12. " Counter States
  13.     S0 = ^b1111;    S4 = ^b1011;    S8  = ^b0111;
  14.     S1 = ^b1110;    S5 = ^b1010;    S9  = ^b0110;
  15.     S2 = ^b1101;    S6 = ^b1001;
  16.     S3 = ^b1100;    S7 = ^b1000;
  17.  
  18. " Counter modes
  19.     Mode    = [Clr,Dir];
  20.     Up    = [ 1 , 1 ];
  21.     Down    = [ 1 , 0 ];
  22.     Clear    = [ 0 , X ];
  23.  
  24. test_vectors (  [Clk ,OE, Mode ] -> [Q3,Q2,Q1,Q0])
  25.         [ Ck , 0, Clear] ->    S0;    
  26.         [ Ck , 0, Up   ] ->    S1;
  27.         [ Ck , 0, Up   ] ->    S2;
  28.         [ Ck , 0, Up   ] ->    S3;
  29.         [ Ck , 0, Up   ] ->    S4;
  30.         [ Ck , 0, Up   ] ->    S5;
  31.         [ Ck , 0, Up   ] ->    S6;
  32.         [ Ck , 0, Up   ] ->    S7;
  33.         [ Ck , 0, Up   ] ->    S8;
  34.         [ Ck , 0, Up   ] ->    S9;
  35.         [ Ck , 0, Up   ] ->    S0;
  36.         [ Ck , 0, Up   ] ->    S1;
  37.         [ Ck , 0, Down ] ->    S0;
  38.         [ Ck , 0, Down ] ->    S9;
  39.         [ Ck , 1, Down ] ->    Z ;
  40.         [ Ck , 0, Down ] ->    S7;
  41.         [ Ck , 0, Clear] ->    S0;
  42. @page
  43. equations
  44.  
  45.     ![Q3,Q2,Q1,Q0] := (Mode == Clear) & ![1,1,1,1];
  46.  
  47. state_diagram [Q3,Q2,Q1,Q0]
  48.  
  49.     State S0:    case (Mode == Up)    : S1;
  50.                  (Mode == Down)  : S9;
  51.             endcase;
  52.  
  53.     State S1:    case (Mode == Up)    : S2;
  54.                  (Mode == Down)  : S0;
  55.             endcase;
  56.  
  57.     State S2:    case (Mode == Up)    : S3;
  58.                  (Mode == Down)  : S1;
  59.             endcase;
  60.  
  61.     State S3:    case (Mode == Up)    : S4;
  62.                  (Mode == Down)  : S2;
  63.             endcase;
  64.  
  65.     State S4:    case (Mode == Up)    : S5;
  66.                  (Mode == Down)  : S3;
  67.             endcase;
  68.  
  69.     State S5:    case (Mode == Up)    : S6;
  70.                  (Mode == Down)  : S4;
  71.             endcase;
  72.  
  73.     State S6:    case (Mode == Up)    : S7;
  74.                  (Mode == Down)  : S5;
  75.             endcase;
  76.  
  77.     State S7:    case (Mode == Up)    : S8;
  78.                  (Mode == Down)  : S6;
  79.             endcase;
  80.  
  81.     State S8:    case (Mode == Up)    : S9;
  82.                  (Mode == Down)  : S7;
  83.             endcase;
  84.  
  85.     State S9:    case (Mode == Up)    : S0;
  86.                  (Mode == Down)  : S8;
  87.             endcase;
  88.  
  89. end count10a
  90.  
  91.