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

  1. module _FPLS  flag '-ky' "leave unused OR terms connected
  2. title 'Feature test for F82S157
  3. Bob Lockhart     Data I/O  Redmond WA   15 Jan 1985'
  4.  
  5.     FPLS    device    'F82S157';
  6.  
  7.     C,L,H,X,Z    = .C.,0,1,.X.,.Z.;
  8.  
  9.     Clk,Ena            pin 1,11;
  10.     I0,I1,I2,I3        pin 2,3,4,5;
  11.     B0,B1,B2,B3,B4,B5    pin 6,7,8,9,12,19;
  12.     F0,F1,F2,F3        pin 13,14,15,16;
  13.     !F4,!F5            pin 17,18; "Name as Active Low
  14.     COM,FC            node 28,21;
  15.  
  16.     mode        = [B2,B1,B0];
  17.     M_norm        = [ 0, 0, 0];
  18.     M_Preset    = [ 1, 0, 0];
  19.     M_Reset        = [ 0, 1, 0];
  20.     M_Load        = [ 0, 0, 1];
  21.  
  22. "Configure Flip/Flops F0 and F1 with ISTYPE statement
  23.     F0    istype 'reg_JK'; 
  24.     F1    istype 'reg_D';  
  25.  
  26. equations
  27.  
  28. "Output enable for bank A registers
  29.      enable [F1,F0] = !Ena;    " Enable controlled by pin 11
  30.  
  31. "Flip/Flop control term
  32.      FC  = I0;
  33.  
  34. "Flip/Flop equations
  35.     !F0   := I1;
  36.      F0.K  = I2;
  37.  
  38.     !F1   := I1;
  39.      F1.K  = I3;
  40.  
  41. "Feedback equations
  42.      B5  =  !F1 & !F0;
  43.  
  44. "Preset,Reset, and Load
  45.      F0.PR  =  B2;
  46.      F0.RE  =  B1;
  47.      F0.L   =  B0;
  48.  
  49. @page 
  50. test_vectors    'F1 in D type'
  51.        ([Clk,Ena,I0,I1,I2,I3,mode     ] -> [!F0,!F1, B5])
  52.     [ C , L , 0, 0, 0, 0,M_norm   ] -> [ 0 , 0 , 0 ];
  53.     [ C , L , 0, 1, 0, 0,M_norm   ] -> [ 1 , 1 , 1 ]; "High
  54.     [ C , L , 0, 1, 1, 0,M_norm   ] -> [ 0 , 1 , 0 ]; "Toggle F0
  55.     [ C , L , 0, 1, 1, 0,M_norm   ] -> [ 1 , 1 , 1 ]; "Toggle F0
  56.     [ C , L , 0, 0, 0, 0,M_norm   ] -> [ 1 , 0 , 0 ]; "Hold F0
  57.     [ C , L , 0, 0, 1, 0,M_norm   ] -> [ 0 , 0 , 0 ]; "Low
  58.     [ 0 , L , 0, 0, 1, 0,M_Preset ] -> [ 1 , 1 , 1 ]; "Preset
  59.     [ C , L , 0, 1, 1, 0,M_norm   ] -> [ 0 , 1 , 0 ]; "Toggle F0
  60.  
  61. test_vectors    'F1 in JK type'
  62.        ([Clk,Ena,I0,I1,I2,I3,mode     ] -> [!F0,!F1, B5])
  63.     [ 0 , L , 1, 0, 0, 0,M_Reset  ] -> [ 0 , 0 , 0 ]; "Reset
  64.     [ C , L , 1, 1, 1, 1,M_norm   ] -> [ 1 , 1 , 1 ]; "Toggle
  65.     [ C , L , 1, 1, 1, 1,M_norm   ] -> [ 0 , 0 , 0 ]; "Toggle
  66.     [ C , L , 1, 1, 0, 0,M_norm   ] -> [ 1 , 1 , 1 ]; "High
  67.     [ C , L , 1, 0, 0, 0,M_norm   ] -> [ 1 , 1 , 1 ]; "Hold
  68.     [ C , L , 1, 0, 1, 1,M_norm   ] -> [ 0 , 0 , 0 ]; "Low
  69.     [ C , H , 1, 1, 1, 1,M_norm   ] -> [ Z , Z , 1 ]; "Toggle
  70.     [ C , H , 1, 1, 1, 1,M_norm   ] -> [ Z , Z , 0 ]; "Toggle
  71.  
  72. test_vectors    'load'
  73.        ([Clk,Ena,I0,I1,I2,I3,mode   ,!F0,!F1] -> [!F0,!F1, B5])
  74.     [ 0 , L , 1, 0, 0, 0,M_Reset, X , X ] -> [ 0 , 0 , 0 ]; "Reset
  75.     [ C , H , 1, 0, 0, 0,M_Load , 1 , 0 ] -> [ X , X , 0 ]; "Load
  76.     [ 0 , L , 1, 0, 0, 0,M_norm , X , X ] -> [ 1 , 0 , 0 ]; "Test
  77.     [ C , L , 1, 1, 1, 1,M_norm , X , X ] -> [ 0 , 1 , 0 ]; "Toggle
  78.  
  79. equations
  80. "Output enable for bank B registers
  81.      enable [F5,F4] = [1,1];" Always enabled
  82.  
  83. "Configure Flip/Flops explicitly
  84.     [F5.M,F4.M] = [0,0];     " fuse open - fixed at JK
  85.  
  86. "Async Reset Equation
  87.      F4.RE  = !B3;
  88.  
  89. "Equations for toggel counter (F4 and F5 were declared Active Low)
  90.     [F4,F4.K]  := [1,1];
  91.     [F5,F5.K]  := F4;
  92.  
  93. test_vectors 'toggle counter'
  94.     ([Clk,Ena,B3] -> [F5,F4])
  95.      [ 0 , 0 , 0] ->     0;    " Reset
  96.      [ C , 0 , 1] ->     1;
  97.      [ C , 0 , 1] ->     2;
  98.      [ C , 0 , 1] ->     3;
  99.      [ C , 0 , 0] ->     0;
  100.      [ C , 1 , 1] ->     1;    " Output always enabled
  101.      [ C , 0 , 1] ->     2;
  102.      [ 0 , 0 , 0] ->     0;    " Async Reset 
  103. end 
  104.