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]
|