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

  1. module cnt10p  flag '-r3'
  2. title 'decimal Up/Down counter with synchronous Clear
  3. Note: preload the data on pins into the registers
  4. Michael Holley     Data I/O Corp   4 May 1985'
  5.  
  6.     U10p        device 'P16R4';
  7.  
  8.     Clk,Clr,Dir,OE    pin 1,2,3,11;
  9.     Q3,Q2,Q1,Q0    pin 14,15,16,17;
  10.     
  11.     Ck,X,Z,P    = .C. , .X., .Z., .P.;
  12.  
  13. " Counter States
  14.     S0 = ^b1111;    S4 = ^b1011;    S8 = ^b0111;    S12= ^b0011;
  15.     S1 = ^b1110;    S5 = ^b1010;    S9 = ^b0110;    S13= ^b0010;
  16.     S2 = ^b1101;    S6 = ^b1001;    S10= ^b0101;    S14= ^b0001;
  17.     S3 = ^b1100;    S7 = ^b1000;    S11= ^b0100;    S15= ^b0000;
  18.  
  19. " Counter modes
  20.     Mode    = [Clr,Dir];
  21.     Up    = [ 1 , 1 ];
  22.     Down    = [ 1 , 0 ];
  23.     Clear    = [ 0 , X ];
  24. @page
  25.  
  26. test_vectors 
  27.       ( [Clk ,OE, Mode ] -> [Q3,Q2,Q1,Q0])
  28.     [ Ck , 0, Clear] ->    S0;    
  29.     [ Ck , 0, Up   ] ->    S1;
  30.     [ Ck , 0, Up   ] ->    S2;
  31.     [ Ck , 0, Up   ] ->    S3;
  32.     [ Ck , 0, Up   ] ->    S4;
  33.     [ Ck , 0, Up   ] ->    S5;
  34.     [ Ck , 0, Up   ] ->    S6;
  35.     [ Ck , 0, Up   ] ->    S7;
  36.     [ Ck , 0, Up   ] ->    S8;
  37.     [ Ck , 0, Up   ] ->    S9;
  38.     [ Ck , 0, Up   ] ->    S0;
  39.     [ Ck , 0, Up   ] ->    S1;
  40.     [ Ck , 0, Down ] ->    S0;
  41.     [ Ck , 0, Down ] ->    S9;
  42.     [ Ck , 1, Down ] ->    Z ;
  43.     [ Ck , 0, Down ] ->    S7;
  44.     [ Ck , 0, Clear] ->    S0;
  45.  
  46. test_vectors 'preload to illegal states'
  47.       ( [Clk ,OE, Mode,[Q3,Q2,Q1,Q0]] -> [Q3,Q2,Q1,Q0])
  48.     [ P  , 1, Up  ,      S10    ] ->     X ;    
  49.     [ 0  , 0, Up  ,       X     ] ->    S10;    
  50.     [ Ck , 0, Up  ,       X     ] ->    S0 ;    
  51.     [ P  , 1, Up  ,      S11    ] ->     X ;    
  52.     [ 0  , 0, Up  ,       X     ] ->    S11;    
  53.     [ Ck , 0, Up  ,       X     ] ->    S0 ;    
  54.     [ P  , 1, Up  ,      S12    ] ->     X ;    
  55.     [ 0  , 0, Up  ,       X     ] ->    S12;    
  56.     [ Ck , 0, Up  ,       X     ] ->    S0 ;    
  57.     [ P  , 1, Up  ,      S13    ] ->     X ;    
  58.     [ 0  , 0, Up  ,       X     ] ->    S13;    
  59.     [ Ck , 0, Up  ,       X     ] ->    S0 ;    
  60.     [ P  , 1, Up  ,      S14    ] ->     X ;    
  61.     [ 0  , 0, Up  ,       X     ] ->    S14;    
  62.     [ Ck , 0, Up  ,       X     ] ->    S0 ;    
  63.     [ P  , 1, Up  ,      S15    ] ->     X ;    
  64.     [ 0  , 0, Up  ,       X     ] ->    S15;    
  65.     [ Ck , 0, Up  ,       X     ] ->    S0 ;    
  66. @page
  67.  
  68. state_diagram [Q3,Q2,Q1,Q0]
  69.  
  70.     State S0:    case (Mode == Up)    : S1;
  71.                  (Mode == Down)  : S9;
  72.                  (Mode == Clear) : S0;
  73.             endcase;
  74.  
  75.     State S1:    case (Mode == Up)    : S2;
  76.                  (Mode == Down)  : S0;
  77.                  (Mode == Clear) : S0;
  78.             endcase;
  79.  
  80.     State S2:    case (Mode == Up)    : S3;
  81.                  (Mode == Down)  : S1;
  82.                  (Mode == Clear) : S0;
  83.             endcase;
  84.  
  85.     State S3:    case (Mode == Up)    : S4;
  86.                  (Mode == Down)  : S2;
  87.                  (Mode == Clear) : S0;
  88.             endcase;
  89.  
  90.     State S4:    case (Mode == Up)    : S5;
  91.                  (Mode == Down)  : S3;
  92.                  (Mode == Clear) : S0;
  93.             endcase;
  94.  
  95.     State S5:    case (Mode == Up)    : S6;
  96.                  (Mode == Down)  : S4;
  97.                  (Mode == Clear) : S0;
  98.             endcase;
  99.  
  100.     State S6:    case (Mode == Up)    : S7;
  101.                  (Mode == Down)  : S5;
  102.                  (Mode == Clear) : S0;
  103.             endcase;
  104.  
  105.     State S7:    case (Mode == Up)    : S8;
  106.                  (Mode == Down)  : S6;
  107.                  (Mode == Clear) : S0;
  108.             endcase;
  109.  
  110.     State S8:    case (Mode == Up)    : S9;
  111.                  (Mode == Down)  : S7;
  112.                  (Mode == Clear) : S0;
  113.             endcase;
  114.  
  115.     State S9:    case (Mode == Up)    : S0;
  116.                  (Mode == Down)  : S8;
  117.                  (Mode == Clear) : S0;
  118.             endcase;
  119. end cnt10p 
  120.  
  121.