IEEE TRANSACTIONS ON COMPUTERS, VOL. 47, NO. 9, SEPTEMBER 1998 971
Using Decision Diagrams
to Design ULMs for FPGAs
Zeljko Zilic and Zvonko G. Vranesic
Abstract—Many modern Field Programmable Logic Arrays (FPGAs) use lookup table (LUT) logic blocks which can be programmed
to realize any function of a fixed number of inputs. It is possible to employ logic blocks that realize only a subset of all functions,
while the rest can be obtained by permuting and negating the inputs. Such blocks, known as Universal Logic Modules (ULMs), have
already been considered for application in FPGAs; in this paper, we propose a new class of ULMs which is more useful in the FPGA
environment. Methodology for systematic development of such blocks is presented, based on the BDD description of logic functions.
We give an explicit construction of a three-input LUT replacement that requires only five programming bits, which is the optimum for
such ULMs. A realistic size four-input LUT replacement is obtained which uses 13 programming bits.
Index Terms—FPGAs, ULMs, BDDs, classification of logic functions, synthesis of logic functions.
——————————F——————————
1 INTRODUCTION
HE first commercially available Field-Programmable
Gate Arrays (FPGAs) in 1985 had an array of three-
input logic blocks, where each block could realize any
function of three variables using an 8-bit RAM. Such a
block is a lookup-table with three inputs (LUT.3). A decade
or two before that, there was a significant amount of theo-
retical research on Universal Logic Modules (ULMs) [7],
[17], [21], which are logic blocks capable of realizing all
functions of a fixed number of variables assuming that
permutations and negations of variables are provided out-
side these blocks. Some of the established FPGA families
from Actel, Xilinx, and Pilkington use blocks derived from
such a concept of ULMs. However, more systematic re-
search on the use of ULM circuits as logic blocks in FPGAs
appeared only recently [15], [23], [24], [16]. In this paper, we
propose a new type of ULMs for use in SRAM-based
FPGAs. Practical designs for three- and four-input LUT
(LUT.3 and LUT.4) replacements are presented, together
with the methodology to systematically derive such blocks.
ULMs are traditionally defined as blocks with m general
purpose inputs that can realize any function of up to n in-
puts, n < m, under the assumption that permutations and
negations of signals are generated cost-free outside the
logic block [21]. While the inversions are, in general, not
free in FPGAs, as will be shown in Section 5, the permuta-
tions of inputs are free for some routing architectures: In
Altera’s 8k and 10k series FPGAs [2], all possible input sig-
nals can be connected to all the input pins of a logic block.
Such architectures with fully connected inputs are considered
in [5] for routing structures in hierarchical FPGAs [1]. The
ULM blocks achieve their functionality by bridging some
inputs and/or assigning them to a constant; these are as-
sumed to be costless operations. This concept is illustrated
in Fig. 1a. Classical ULM research was based on this defini-
tion of ULMs. Lower and upper bounds are known for m as
a function of n, and they asymptotically approach each
other. To realize all n-input functions, the total number of
inputs m needed is on the order of 2
n
/log(n). Several meth-
ods have been proposed for constructing such ULMs [7],
[17], [21].
Recent research on ULMs has been focused on investi-
gating the trade-off between the functionality of logic
blocks and their usefulness in real applications. The re-
search presented in [15] and [23] attempted to find a subset
of functions that a ULM can realize so that it behaves as
close as possible to the LUT. These papers deal with blocks
that have functionality comparable to LUT.3 [15] and LUT.4
[23], but they are not functionally complete.
1
The block in
[15] has four inputs and realizes 10 out of 14 nonequivalent
three-input functions, while the block in [23] requires eight
inputs to realize almost all four-input functions.
In this paper, we propose a more practical type of ULMs.
It is known that adding pins to logic blocks in realistic
FPGAs is very costly [18]. Since a total of m = O(2
n
/log(n))
inputs are needed for realization of an n input function in a
standard ULM, an unreasonable amount of routing re-
sources may be needed if such blocks are used.
2
In addition
to providing the access to all m input pins, the routing net-
work must provide resources for bridging the input pins.
There are O(m
2
) bridging connections possible for each
block. These are the reasons why, in [15], the total number
of inputs is limited to four, as opposed to eight as in [23].
We propose a class of ULM circuits that avoids this problem
and limits the number of input pins to n by using separate
1. The block in [15] is named “semi-ULM” to express the fact that it is not
functionally complete.
2. It was noticed early [21] that the standard ULMs are not very practical
because of the large number of input pins needed.
0018-9340/98/$10.00 © 1998 IEEE
²²²²²²²²²²²²²²²²
• Z. Zilic is with the Department of Electrical and Computer Engineering,
McGill University, McConnell Engineering Building, 3480 University
Street, Montreal, Quebec, Canada H3A 2A7.
• Z.G. Vranesic is with the Department of Electrical and Computer Engi-
neering, University of Toronto, 10 King’s College Road, Toronto, Ontario,
Canada M5S 3G4. E-mail: {zeljko, zvonko}@eecg.toronto.edu.
Manuscript received 17 Mar. 1997.
For information on obtaining reprints of this article, please send e-mail to:
tc@computer.org, and reference IEEECS Log Number 104677.
T