Downloaded on October 19, 2008 at 06:58 from IEEE Xplore. Restrictions apply. .... ables i which have not previously bee
Reed-Muller universal logic module networks L. Xu, BSc A.E.A. Almaini, PhD, FlEE J.F. Miller, PhD L. McKenzie, BSc
Indexing terms: Combinntional logic, Optimised networks, Reed-Muller e.ypansions, Universal logic mudules
Abstract: The paper describes Reed-Muller universal logic modules (RM-ULMs) and their use for the implementation of logic functions given in Reed-Muller (RM) form. A programmed algorithm is presented for the synthesis and optimisation of RM-ULM networks. The level-bylevel minimisation procedure is based on the selection of control variables at different levels with the aim of maximising the number of discontinued branches and hence minimising the number of modules required to implement a given function. The algorithm is programmed in Fortran and can be used to realise fixed-polarity generalised ReedMuller (GRM) expansions of any polarity and any number of variables. List of symbols
ki
xi
= x i or X i = x, is absent
Literature has been published recently discussing design and minimisation techniques for RM logic, derivation of various polarities, as well as conversion between RM and Boolean forms 16-91, For the implementation of RM functions, RM-ULMs can be used as individual modules or as networks. Map methods may be used for the synthesis of functions with up to six variables [SI, but these become impractical for the realisation of economical networks for larger functions. In this paper, a programmed algorithm is described for the synthesis and optimisation of RM-ULM networks which can be used for any number of variables. 2 Reed-Muller universal logic module A RM-ULM with c-control (selection) inputs, is a device with 2' data inputs and a single output, abbreviated from now on as RM-ULM(c). The symbol of the RM-ULM(c) is given in Fig. 1. The output of the device is as follows
f ( d = go 0 9 1 i l 0 g 2 f 2 09 3 k, k i
ii
= f io r & { Sc(kl, , . . , fe)= number of simultaneous occurrences of k,, . . . , kc in the piterm table Ic(fi,..., kc)= the kl,. . . , i, data input in a c-control variable module f, = G R M function with polarity i f(i) = output of RM-ULM(I) pi = ith piterm pi(k) = kth bit of the ith piterm = number of saved branches y Y = max ( y )
1
Introduction
The use of multiplexers as universal logic modules (ULMs) for the implementation of combinational logic is well documented [l-41. A ULM of a given number of variables can be used to realise any Boolean logic function of up to that number of variables. ULMs can be connected as a network to realise functions containing large numbers of variables. Various methods have been developed for the optimisation of the resulting ULM networks [2-41. Logic functions can also be expressed in terms of RM expansions (polynomials). RM expansions have certain properties, such as ease of complementing and testing, that make them attractive in some applications [SI.
I
Fig. 1
*2 . xc Symbol o f a R M - U L M ( r )
For example
f(1)= Yo 0gi.*l and f ( 2 ) = go 0 Y1*1
0g 2 120 (13 k2 k1
These are the two modules that shall be used in this paper. Theorem I : A RM-ULM(c) can directly synthesise any GRM expansion of c variables by employing the function domain coefficients as data inputs and function variables as control inputs of the module. -
Paper 9337E (C3). first received 29th June and in revised form 7th October 1992 The authors are with the E~ectricdlElectronic and Computer Engineering Department, Napier University, Edinburgh EH14 IDJ, Scotland. United Kingdom
I
-
L. McKenzie acknowledges the support of the SCIence and Engineering Research Council under Grant GR/F 74288.
IEE P R O C E E D I N G S - E , V o l . 140, No. 2, M A R C 1 1 1YY.i
Authorized licensed use limited to: Julian Miller. Downloaded on October 19, 2008 at 06:58 from IEEE Xplore. Restrictions apply.
105
Defining :
Bj = b j @ b 2 < + j i C + 1
=I
when when i , , , when ?