DEVICE 16V8; TITLE 6 BIT LEFT SHIFT RIGHT SHIFT PARALLELL LOAD REGISTER; NAME C.L.G.; SIGNATURE SR_6_BIT; PIN 4 = D0; PIN 5 = D1; PIN 6 = D2; PIN 7 = D3; PIN 8 = D4; PIN 9 = D5; PIN 2 = S0; PIN 3 = S1; PIN 12 = RILO; PIN 19 = LIRO; PIN 11 = OE; PIN 1 = CLK; PIN 13 = Q5; PIN 14 = Q4; PIN 15 = Q3; PIN 16 = Q2; PIN 17 = Q1; PIN 18 = Q0; /* * LOGIC EQUATIONS */ !Q0.D = !S0 & !S1 & !Q0 | S0 & !S1 & !Q1 | !S0 & S1 & !LIRO | S0 & S1 & !D0; !Q1.D = !S0 & !S1 & !Q1 | S0 & !S1 & !Q2 | !S0 & S1 & !Q0 | S0 & S1 & !D1; !Q2.D = !S0 & !S1 & !Q2 | S0 & !S1 & !Q3 | !S0 & S1 & !Q1 | S0 & S1 & !D2; !Q3.D = !S0 & !S1 & !Q3 | S0 & !S1 & !Q4 | !S0 & S1 & !Q2 | S0 & S1 & !D3; !Q4.D = !S0 & !S1 & !Q4 | S0 & !S1 & !Q5 | !S0 & S1 & !Q3 | S0 & S1 & !D4; !Q5.D = !S0 & !S1 & !Q5 | S0 & !S1 & !RILO | !S0 & S1 & !Q4 | S0 & S1 & !D5; !LIRO = Q0; LIRO.OE = S0 & !S1; !RILO = Q5; RILO.OE = !S0 & S1; /* * * * This example can be found on page 5-15 in the GAL handbook. The example * in the GAL handbook seems to have a few errors. First there are four * equations missing. These are for the LIRO (left in right out) RILO and their * output enable terms. These are obvious from the schematic on page 5-16. * Second, the MODE FUNCTION TABLE in figure 2 on page 5-15 is incorrect, a * corrected table is shown below. * * ____________________________________________________________________________ * | | | | | | | | | | | | | * |!OE | S1 | S0 | RILO | Q5 | Q4 | Q3 | Q2 | Q1 | Q0 | LIRO | COMMENTS | * |____|____|____|______|____|____|____|____|____|____|______|_______________| * | | | | | | | | | | | | | * | 1 | x | X | x | Z | Z | Z | Z | Z | Z | x | High-Z outputs| * | 0 | 0 | 0 | x | Q5 | Q4 | Q3 | Q2 | Q1 | Q0 | x | Hold | * | 0 | 0 | 1 | D | D | Q5 | Q4 | Q3 | Q2 | Q1 | Q0 | Shift Right | * | 0 | 1 | 0 | Q5 | Q4 | Q3 | Q2 | Q1 | Q0 | D | D | Shift Left | * | 0 | 1 | 1 | x | D5 | D4 | D3 | D2 | D1 | D0 | x | Load | * |____|____|____|______|____|____|____|____|____|____|______|_______________| * * */