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

  1. module comp4 
  2. title '4-bit look-ahead comparator 
  3. Charles Olivier & Mary Bailey    Data I/O Corp.   24 Feb 1984'
  4.  
  5.     IC1    device 'P16HD8';
  6.  
  7.     A3,A2,A1,A0    pin    1,2,3,4;
  8.     B3,B2,B1,B0    pin    5,6,7,8;
  9.     E3,E2,E1,E0    pin    14,15,16,17;
  10.     A_NE_B,A_EQ_B    pin    12,13;
  11.     A_GT_B,A_LT_B    pin    18,19;
  12.  
  13.     No,Yes    = 0,1;
  14.     A    = [A3,A2,A1,A0];
  15.     B    = [B3,B2,B1,B0];
  16.     E    = [E3,E2,E1,E0];
  17.     C0    macro {(A0>B0)};
  18.     C1    macro {(A1>B1) # E1 & (C0)};
  19.     C2    macro {(A2>B2) # E2 & (C1)};
  20.  
  21. equations
  22.     E    = A !$ B;    "intermediate An = Bn
  23.  
  24.     A_EQ_B    = E3 & E2 & E1 & E0;
  25.  
  26.     A_NE_B    = !A_EQ_B;
  27.  
  28.     A_GT_B    = (A3>B3) # E3 & (C2);
  29.  
  30.     A_LT_B    = !A_GT_B & !A_EQ_B;
  31.  
  32. test_vectors  'test for A = B'
  33.        ([ A, B] -> [A_EQ_B, A_GT_B, A_LT_B, A_NE_B])
  34.     [ 0, 0] -> [ Yes  ,   No  ,   No  ,   No  ];
  35.     [ 1, 1] -> [ Yes  ,   No  ,   No  ,   No  ];
  36.     [ 2, 2] -> [ Yes  ,   No  ,   No  ,   No  ];
  37.     [ 5, 5] -> [ Yes  ,   No  ,   No  ,   No  ];
  38.     [ 8, 8] -> [ Yes  ,   No  ,   No  ,   No  ];
  39.     [10,10] -> [ Yes  ,   No  ,   No  ,   No  ];
  40.     [15,15] -> [ Yes  ,   No  ,   No  ,   No  ];
  41.  
  42. test_vectors  'test for A > B'
  43.        ([ A, B] -> [A_EQ_B, A_GT_B, A_LT_B, A_NE_B])
  44.     [ 1, 0] -> [  No  ,  Yes  ,   No  ,  Yes  ];
  45.     [ 2, 1] -> [  No  ,  Yes  ,   No  ,  Yes  ];
  46.     [ 4, 3] -> [  No  ,  Yes  ,   No  ,  Yes  ];
  47.     [ 8, 7] -> [  No  ,  Yes  ,   No  ,  Yes  ];
  48.     [15,14] -> [  No  ,  Yes  ,   No  ,  Yes  ];
  49.     [ 6, 2] -> [  No  ,  Yes  ,   No  ,  Yes  ];
  50.     [ 5, 0] -> [  No  ,  Yes  ,   No  ,  Yes  ];
  51.  
  52. test_vectors  'test for A < B'
  53.        ([ A, B] -> [A_EQ_B, A_GT_B, A_LT_B, A_NE_B])
  54.     [ 3, 9] -> [  No  ,   No  ,  Yes  ,  Yes  ];
  55.     [14,15] -> [  No  ,   No  ,  Yes  ,  Yes  ];
  56.     [ 7, 8] -> [  No  ,   No  ,  Yes  ,  Yes  ];
  57.     [ 3, 4] -> [  No  ,   No  ,  Yes  ,  Yes  ];
  58.     [ 2, 8] -> [  No  ,   No  ,  Yes  ,  Yes  ];
  59. end comp4  
  60.