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

  1. module    barrel  
  2.  
  3. title '8-bit barrel shifter
  4. Gerrit Barrere    Data I/O Corp  Redmond WA   10 Jan 1986'
  5.  
  6.     P7095    device    'P20R8';
  7.  
  8.     D7,D6,D5,D4,D3,D2,D1,D0        Pin 2,3,4,5,6,7,8,9;
  9.     Q7,Q6,Q5,Q4,Q3,Q2,Q1,Q0        Pin 15,16,17,18,19,20,21,22;
  10.     Clk,OC,E            Pin 1,13,23;
  11.     I2,I1,I0            Pin 10,11,14;
  12.  
  13.     Input        = [D7,D6,D5,D4,D3,D2,D1,D0];
  14.     Output        = [Q7,Q6,Q5,Q4,Q3,Q2,Q1,Q0];
  15.     Sel        = [I2,I1,I0];
  16.  
  17.     H,L,C,Z        = 1,0,.C.,.Z.;
  18.  
  19. equations
  20.  
  21.     !Output := E & (  (Sel == 0) & ![D7,D6,D5,D4,D3,D2,D1,D0]
  22.             # (Sel == 1) & ![D0,D7,D6,D5,D4,D3,D2,D1]
  23.             # (Sel == 2) & ![D1,D0,D7,D6,D5,D4,D3,D2]
  24.             # (Sel == 3) & ![D2,D1,D0,D7,D6,D5,D4,D3]
  25.             # (Sel == 4) & ![D3,D2,D1,D0,D7,D6,D5,D4]
  26.             # (Sel == 5) & ![D4,D3,D2,D1,D0,D7,D6,D5]
  27.             # (Sel == 6) & ![D5,D4,D3,D2,D1,D0,D7,D6]
  28.             # (Sel == 7) & ![D6,D5,D4,D3,D2,D1,D0,D7]) ;
  29.  
  30. test_vectors
  31.     ([Clk,OC, E, Sel,   Input]    ->   Output)
  32.      [ C,  L, H,  0, ^b10000000]  -> ^b10000000;    " Shift 0
  33.      [ C,  L, H,  1, ^b10000000]  -> ^b01000000;    " Shift 1
  34.      [ C,  L, H,  2, ^b10000000]  -> ^b00100000;    " Shift 2
  35.      [ C,  L, H,  3, ^b10000000]  -> ^b00010000;    " Shift 3
  36.      [ C,  L, H,  4, ^b10000000]  -> ^b00001000;    " Shift 4
  37.      [ C,  L, H,  5, ^b10000000]  -> ^b00000100;    " Shift 5
  38.      [ C,  L, H,  6, ^b10000000]  -> ^b00000010;    " Shift 6
  39.      [ C,  L, H,  7, ^b10000000]  -> ^b00000001;    " Shift 7
  40.  
  41.      [ C,  L, H,  0, ^b01111111]  -> ^b01111111;    " Shift 0
  42.      [ C,  L, H,  1, ^b01111111]  -> ^b10111111;    " Shift 1
  43.      [ C,  L, H,  2, ^b01111111]  -> ^b11011111;    " Shift 2
  44.      [ C,  L, H,  3, ^b01111111]  -> ^b11101111;    " Shift 3
  45.      [ C,  L, H,  4, ^b01111111]  -> ^b11110111;    " Shift 4
  46.      [ C,  L, H,  5, ^b01111111]  -> ^b11111011;    " Shift 5
  47.      [ C,  L, H,  6, ^b01111111]  -> ^b11111101;    " Shift 6
  48.      [ C,  L, H,  7, ^b01111111]  -> ^b11111110;    " Shift 7
  49.  
  50.      [ C,  L, H,  1, ^b00000001]  -> ^b10000000;    " Shift 1/Wrap
  51.      [ C,  L, H,  1, ^b11111110]  -> ^b01111111;    " Shift 1/Wrap
  52.      [ C,  L, L,  0, ^b00000000]  -> ^b11111111;    " Preset
  53.  
  54.      [ C,  H, H,  0, ^b00000000]  ->      Z;     " Test High Z
  55. end 
  56.