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

  1. module dmux1t8  
  2. title '1 to 8 line demultiplexer
  3. Charles Olivier   Data I/O Corp. Redmond WA   24 Feb 1984'
  4.  
  5. "Description
  6. " This is an example of a 1 to 8 line demultiplexer using a PAL16L8.
  7. " When the enable line goes low, the outputs will be high impedance.
  8.  
  9. "declarations
  10.         DM1    device    'P16L8';
  11.  
  12.     y0,y1,y2,y3    pin    12,13,14,15;
  13.     y4,y5,y6,y7    pin    16,17,18,19;
  14.     s0,s1,s2    pin    1,2,3;
  15.     data,enb    pin    4,5;
  16.  
  17.     H,L,Z    =    1,0,.Z.;
  18.     select    =    [s2, s1, s0];
  19.         outputs =     [y7, y6, y5, y4, y3, y2, y1, y0];
  20.  
  21. equations
  22.     !y0    = (select == 0) & data;
  23.     !y1     = (select == 1) & data;
  24.     !y2    = (select == 2) & data;
  25.     !y3    = (select == 3) & data;
  26.     !y4    = (select == 4) & data;
  27.     !y5    = (select == 5) & data;
  28.     !y6    = (select == 6) & data;
  29.     !y7    = (select == 7) & data;
  30.  
  31.  enable outputs = enb;
  32.  
  33. test_vectors  'Test the demuliplexer with a high input'
  34.     ([enb,select,data] -> [y7,y6,y5,y4,y3,y2,y1,y0])
  35.          [H, 0, H]     -> [H, H, H, H, H, H, H, L];  "Select y0
  36.          [H, 1, H]     -> [H, H, H, H, H, H, L, H];  "Select y1
  37.          [H, 2, H]     -> [H, H, H, H, H, L, H, H];  "Select y2    
  38.          [H, 3, H]     -> [H, H, H, H, L, H, H, H];  "Select y3
  39.          [H, 4, H]     -> [H, H, H, L, H, H, H, H];  "Select y4
  40.          [H, 5, H]     -> [H, H, L, H, H, H, H, H];  "Select y5
  41.          [H, 6, H]     -> [H, L, H, H, H, H, H, H];  "Select y6
  42.          [H, 7, H]     -> [L, H, H, H, H, H, H, H];  "Select y7
  43.  
  44. test_vectors  'Test the demuliplexer with a low input'
  45.     ([enb,select,data] -> [y7,y6,y5,y4,y3,y2,y1,y0])
  46.          [H, 0, L]     -> [H, H, H, H, H, H, H, H];  "Select y0
  47.          [H, 1, L]     -> [H, H, H, H, H, H, H, H];  "Select y1
  48.          [H, 2, L]     -> [H, H, H, H, H, H, H, H];  "Select y2
  49.          [H, 3, L]     -> [H, H, H, H, H, H, H, H];  "Select y3
  50.          [H, 4, L]     -> [H, H, H, H, H, H, H, H];  "Select y4
  51.          [H, 5, L]     -> [H, H, H, H, H, H, H, H];  "Select y5
  52.          [H, 6, L]     -> [H, H, H, H, H, H, H, H];  "Select y6
  53.          [H, 7, L]     -> [H, H, H, H, H, H, H, H];  "Select y7
  54.  
  55. test_vectors  'Test the enable input'
  56.     ([enb,select,data] -> [y7,y6,y5,y4,y3,y2,y1,y0])
  57.          [L, 0, H]     -> [Z, Z, Z, Z, Z, Z, Z, Z];  
  58.          [L, 0, L]     -> [Z, Z, Z, Z, Z, Z, Z, Z];
  59. end dmux1t8  
  60.