Site hosted by Angelfire.com: Build your free website today!


The Digital
Reference Journal

Programmable Logic Devices

Mr. Rodelio P. Barcenas
C
omputer Engineering Department
Don Bosco Technical College
 

Abel Programming Basics

What ABEL programming can do:

ABEL is a programming software capable of providing a standard JEDEC file to the PLD devices. 

ABEL programming Basics:

ABEL Number System:

^hA0        ^h means hexadecimal
^d10        ^d means decimal
^b1010    ^b means binary

ABEL Logic Operators

! - (NOT) invert function
# - OR function
& - AND Function


Writing Boolean Expressions



Using ABEL Logic Operators, the above circuit can be written as;

Y =  !(A & B)  #  C & !D

Example:
    
Design an 4 channel Multiplexer circuit with inputs A to D and an output Y, select lines are  S1, S0.

equations
Y = (A & !S1 & !S0 ) #  (B & !S1 & S0)  #  (C & S1 & !S0)  #  (D & S1 & S0) ;
OR . . . by using Sets

Select = [S1,S0];          ' Set Declaration Procedure
equations
Y = (A & (Select==0))  #  (B & (Select==1))  #    (C&(Select==2))  #   (D & (Select ==3));

NOTE:The compiler directive "equation" is supposed to be placed before writing the boolean equation.

Using Truth Tables:

A combinational circuit can be represented by a truth table.   Truth table can be used in circuits where writing of un-simplified long equations will consume much time.   ABEL software allows programmers to enter  truth tables as a definition on how the logic circuit is supposed to operate.  During the compilation process,  the software itself applies simplification techniques to simplify the output boolean expression.

Example: Design a combinational circuit which will perform an Excess-3 operation.  The input has 3 input lines (a,b,c) and 3 output lines (x,y,z).

The TRUTH Table:

Input         Output
a b c        x  y z
0  0  0        0   1  1
0  0  1        1  0  0
0  1  0        1  0  1
0  1  1        1  1  0
1  0  0        1  1  1
1  0  1        0  0  0
1  1  0        0  0  1
1  1  1        0  1  0

Truth Table in ABEL programming;

truth_table ([a,b,c] -> [x,y,z])
             [0,0,0] -> [0,1,1];
             [0,0,0] -> [0,1,1];
             [0,0,0] -> [0,1,1];

             [0,0,0] -> [0,1,1];
             [0,0,0] -> [0,1,1];

             [0,0,0] -> [0,1,1];
             [0,0,0] -> [0,1,1];
             [0,0,0] -> [0,1,1];

Sets can also play an important role in ABEL variables.
If the input can be assigned to a variable INPUT, we can assign variables a,b,c to it by using brackets "[ ]"

INPUT = [a, b, c];
The same can be applied to the output
OUTPUT = [x, y, z];

Re-writting the above ABEL truth table. . .

INPUT  = [a, b, c]; " INPUT is a variable with                         a,b,c as members
OUTPUT = [x, y, z]; " OUTPUT is a variable with x,y,z as members

truth_table ([ INPUT  ] -> [ OUTPUT ])
             [   0    ] -> [    3   ];

             [    1   ] -> [    4   ];
             [    2   ] -> [    5   ];
             [    3   ] -> [    6   ];
             [    4   ] -> [    7   ];
             [    5   ] -> [    0   ];
             [    6   ] -> [    1   ];
             [    7   ] -> [    2   ];

Since INPUT and OUTPUT are variables which has set of variables a,b,c and x,y,z respectively, what ever values assigned to the variables will be distributed accordingly to every member of the set.

[DESIGN EXAMPLE]

Copyright © 2000 [PinoyTechZone]. All rights reserved.