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

  1. module _TI1Shot   flag '-r3'
  2. title 'Programmable Digital One Shot
  3. Brenda French and Kent Dietz   FutureNet - Data I/O   11 Jan 1986'
  4.  
  5. " Produces a active high Pulse every N+2 clocks
  6. " where N is the value in the input registers (DataIn)
  7. "
  8. " The count is cleared when the Clr input is low
  9.  
  10.          TI1Shot    device 'P19R8R';
  11.  
  12.     OutClk,Clr,OE,InClk    pin 1,2,13,14;
  13.     D3,D2,D1,D0        pin 3,4,5,6;
  14.     Pulse            pin 15;
  15.     Q3,Q2,Q1,Q0        pin 19,20,21,22;
  16.     
  17.     D3,D2,D1,D0    istype 'reg';
  18.  
  19.     DataIn    =  [D3,D2,D1,D0];
  20.     DataOut    =  [Q3,Q2,Q1,Q0];
  21.  
  22.     Ck,X,Z,H,L = .C. , .X., .Z., 1, 0;
  23.  
  24. equations
  25.     Pulse    := DataIn == DataOut;
  26.  
  27. State_diagram DataOut
  28.     State  0:    if Pulse # !Clr then  0 else  1;
  29.     State  1:    if Pulse # !Clr then  0 else  2;
  30.     State  2:    if Pulse # !Clr then  0 else  3;
  31.     State  3:    if Pulse # !Clr then  0 else  4;
  32.     State  4:    if Pulse # !Clr then  0 else  5;
  33.     State  5:    if Pulse # !Clr then  0 else  6;
  34.     State  6:    if Pulse # !Clr then  0 else  7;
  35.     State  7:    if Pulse # !Clr then  0 else  8;
  36.     State  8:    if Pulse # !Clr then  0 else  9;
  37.     State  9:    if Pulse # !Clr then  0 else  10;
  38.     State  10:    if Pulse # !Clr then  0 else  11;
  39.     State  11:    if Pulse # !Clr then  0 else  12;
  40.     State  12:    if Pulse # !Clr then  0 else  13;
  41.     State  13:    if Pulse # !Clr then  0 else  14;
  42.     State  14:    if Pulse # !Clr then  0 else  15;
  43.     State  15:    if Pulse # !Clr then  0 else  0;
  44. @page  
  45.  
  46. test_vectors ' Clear and High Z'
  47.        ([InClk,DataIn,OutClk ,OE, Clr] -> [Pulse,DataOut])
  48.     [  0  ,  X   ,  Ck   , 0 , 0 ] -> [  H  ,   0   ];
  49.     [  0  ,  X   ,  0    , 1 , 1 ] -> [  Z  ,   Z   ];
  50.  
  51. test_vectors ' Count of 6'
  52.        ([InClk,DataIn,OutClk ,OE, Clr] -> [Pulse,DataOut])
  53.     [ Ck  ,  4   ,  0    , 0,  1 ] -> [  X  ,   X   ];
  54.     [  0  ,  X   ,  Ck   , 0 , 0 ] -> [  L  ,   0   ];
  55.     [  0  ,  X   ,  Ck   , 0 , 1 ] -> [  L  ,   1   ];
  56.     [  0  ,  X   ,  Ck   , 0 , 1 ] -> [  L  ,   2   ];
  57.     [  0  ,  X   ,  Ck   , 0 , 1 ] -> [  L  ,   3   ];
  58.     [  0  ,  X   ,  Ck   , 0 , 1 ] -> [  L  ,   4   ];
  59.     [  0  ,  X   ,  Ck   , 0 , 1 ] -> [  H  ,   5   ];
  60.     [  0  ,  X   ,  Ck   , 0 , 1 ] -> [  L  ,   0   ];
  61.     [  0  ,  X   ,  Ck   , 0 , 1 ] -> [  L  ,   1   ];
  62.     [  0  ,  X   ,  Ck   , 0 , 1 ] -> [  L  ,   2   ];
  63.     [  0  ,  X   ,  Ck   , 0 , 1 ] -> [  L  ,   3   ];
  64.     [  0  ,  X   ,  Ck   , 0 , 1 ] -> [  L  ,   4   ];
  65.     [  0  ,  X   ,  Ck   , 0 , 1 ] -> [  H  ,   5   ];
  66.     [  0  ,  X   ,  Ck   , 0 , 1 ] -> [  L  ,   0   ];
  67.     [  0  ,  X   ,  Ck   , 0 , 1 ] -> [  L  ,   1   ];
  68.     [  0  ,  X   ,  Ck   , 0 , 1 ] -> [  L  ,   2   ];
  69.  
  70. test_vectors ' Count of 17'
  71.        ([InClk,DataIn,OutClk ,OE, Clr] -> [Pulse,DataOut])
  72.     [  0  ,  X   ,  Ck   , 0 , 0 ] -> [  L  ,   0   ];
  73.     [ Ck  , 15   ,  0    , 0 , 1 ] -> [  X  ,   X   ];
  74.     [  0  ,  X   ,  Ck   , 0 , 1 ] -> [  L  ,   1   ];
  75.     [  0  ,  X   ,  Ck   , 0 , 1 ] -> [  L  ,   2   ];
  76.     [  0  ,  X   ,  Ck   , 0 , 1 ] -> [  L  ,   3   ];
  77.     [  0  ,  X   ,  Ck   , 0 , 1 ] -> [  L  ,   4   ];
  78.     [  0  ,  X   ,  Ck   , 0 , 1 ] -> [  L  ,   5   ];
  79.     [  0  ,  X   ,  Ck   , 0 , 1 ] -> [  L  ,   6   ];
  80.     [  0  ,  X   ,  Ck   , 0 , 1 ] -> [  L  ,   7   ];
  81.     [  0  ,  X   ,  Ck   , 0 , 1 ] -> [  L  ,   8   ];
  82.     [  0  ,  X   ,  Ck   , 0 , 1 ] -> [  L  ,   9   ];
  83.     [  0  ,  X   ,  Ck   , 0 , 1 ] -> [  L  ,  10   ];
  84.     [  0  ,  X   ,  Ck   , 0 , 1 ] -> [  L  ,  11   ];
  85.     [  0  ,  X   ,  Ck   , 0 , 1 ] -> [  L  ,  12   ];
  86.     [  0  ,  X   ,  Ck   , 0 , 1 ] -> [  L  ,  13   ];
  87.     [  0  ,  X   ,  Ck   , 0 , 1 ] -> [  L  ,  14   ];
  88.     [  0  ,  X   ,  Ck   , 0 , 1 ] -> [  L  ,  15   ];
  89.     [  0  ,  X   ,  Ck   , 0 , 1 ] -> [  H  ,   0   ];
  90.     [  0  ,  X   ,  Ck   , 0 , 1 ] -> [  L  ,   0   ];
  91.     [  0  ,  X   ,  Ck   , 0 , 1 ] -> [  L  ,   1   ];
  92.  
  93. end _TI1Shot 
  94.  
  95.