BI-DECOMP-MV: A Decomposer for Multi-Valued Relations


This page presents the multi-valued (MV) decomposer BI-DECOMP-MV, Release 1.3, ported into MVSIS environment. The algorithms and implementation of the decomposer have been substantially revised. A detailed description of the decomposition approach can be found in [1]. Similar approaches to the decomposition of multi-valued relations are described in [2,3].

Distinctive Features

BI-DECOMP-MV allows the user to process specifications of a very general class of incompletely specified multi-valued functions, or relations. The input specification may contain don't-cares describing non-determinism. Decomposition results in a netlist of multi-valued gates, whose functionality is in agreement with the functionality of the original relation. A distinctive feature of our approach is that there is no limit on the number of don't-cares in the input specification. In fact, the more don't-cares it has, the more efficient the algorithm becomes.

The approach to decomposition is very general and relies on encoding. Each value of the input/output variable is encoded using the smallest number of binary variables. This representation is known as Binary-Encoded Multi-Valued Decision Diagrams (BEMDDs). For a description with illustrative examples, see [4]. BEMDDs are different from other representations of MV functions and relations. In BEMDDs, the output values are encoded the same way as the input values, while other approaches use pure MDDs [5] or arrays of binary-encoded MDDs for each output value [6].

Due to the strategy of all-in-one encoding in BEMDDs, the MV relations can be efficiently processed using a standard BDD package that features boolean operations, quantification, and variable replacement. A new calculus of multi-valued relations with applications to MV decomposition have been developed [1]. The calculus includes such operations as upper/lower bound, upper/lower bound interval, upper/lower decrement/increment, etc.

The presented algorithm is called bi-decomposition because its basic step transforms a monolithic relation into a network of two smaller blocks whose outputs are connected using a two-input MAX or MIN gate. Recursive application of the algorithm results in a netlist that includes MV constants, generalized MV literals, and MV-input MV-output two-input MAX and MIN gates. However, using only these gates does not always lead to the decomposition of the finest granularity. In order to break down the remaining non-decomposable blocks, it is possible to use MV multiplexers. When multiplexers are used, the algorithm guarantees that the resulting network is composed of MUXes and the above listed gates only.

The decomposition algorithm reduces arbitrary multi-valued relation to an interval relation (for definition look up IWLS'01 paper). A limitation of the proposed approach is that it cannot treat non-interval relations, whose set of values in some vertices of the input space does not form a contiguous range. For example, if a ternary relation for some input combination has value set {0,2}, this relation is a non-interval relation. An open question is how often such relations appear in practical applications?

Applications of Multi-Valued Bi-Decomposition

BI-DECOMP-MV has been designed having in mind several practical applications. More information about the applications of BI-DECOMP-MV will be available from this page in the future.

BLIF-MV: The Input Data Format

The input data specification for BI-DECOMP-MV is BLIF-MV. PostScript version of BLIF-MV Manual is available from VIS Home Page. If the decomposer cannot parse an input file, it is likely that the problem is in the syntax. Notice the following important differences between ML and BLIF-MV:

Source Code and Executable

A preliminary release of the source code of the MVSIS compatible version of BI-DECOMP-MV is available. Notice that this code cannot be compiled without the source code of MVSIS, which will be released soon by the MVSIS group.

A Windows executable of a stand-alone version of BI-DECOMP-MV is available for downloading and experimentation. For a summary of available command line options run the above executable without arguments.

BI-DECOMP-MV is programmed to make use of a variety of BDD packages. The available version of the source code provides the interface to the following packages: BuDDy, CUDD, CMU. The above Windows executable has been compiled with BuDDy. A preliminary experimentation shows that for the problem of representation and manipulation of multi-valued relation, BuDDy is faster than other packages.

Here is a default output of the decomposer for benchmark "matmul.mv":

# BI-DECOMP-MV: MVSIS Release 1.3. Last update: 10/14/01, by Alan Mishchenko.
# with BDD package "BuDDy", v.2.0, by Jorn Lind-Nielsen
# Program run date:  Sun Oct 14 17:06:27 2001
# Command line was:  mvsis.exe matmul.mv

REORDERING STATISTICS:

Variable reordering is not enabled

BI-DECOMPOSITION STATISTICS:

Co = Constants. Li = Literals. Ma = MAX gates. Mi = MIN gates. Mu = MUXes.
No = Non-decomposable. Re = Reused gates (fanout > 1). To = Li+Ma+Mi+Mu+No.
Cs = Cascades (logic levels). T = Runtime. Bdd = Bdd nodecount.

#01: Co= 2 Li=10 Ma= 7 Mi=10 Mu= 0 No= 4 Re= 2 To= 31 Cs= 8 T=0.00 Bdd=  37 Ok
#02: Co= 2 Li= 5 Ma= 7 Mi=10 Mu= 0 No= 4 Re= 7 To= 26 Cs= 8 T=0.01 Bdd=  74 Ok
#03: Co= 2 Li= 5 Ma= 6 Mi=10 Mu= 0 No= 4 Re= 6 To= 25 Cs= 8 T=0.01 Bdd= 111 Ok
#04: Co= 2 Li= 0 Ma= 6 Mi=10 Mu= 0 No= 4 Re=11 To= 20 Cs= 8 T=0.01 Bdd= 148 Ok
#=4. Co= 8 Li=20 Ma=26 Mi=40 Mu= 0 No=16 Re=26 To=102 Cs= 8

The decomposed network has been written into file "matmul_bidec.mv"

RUNTIME STATISTICS:

Reading         = 0.00 s.
Preparation     = 0.04 s.
GlobalMDDs      = 0.01 s.
Reordering      = 0.00 s.
Decomposition   = 0.03 s.
Verification    = 0.03 s.
CleanUp         = 0.00 s.

Verification: ok
 

References

[1] A. Mishchenko, B. Steinbach, M. Perkowski. Bi-Decomposition of Multi-Valued Relations. Proc. of International Workshop on Logic and Synthesis 2001, pp. 35-40.
[2] Ch. Lang, B. Steinbach. Decomposition of Multi-Valued Functions into Min-and Max-Gates. Proc. of the 31st IEEE International Symposium on Multiple-Valued Logic, May 22-24, 2001, Warsaw, pp. 173-178.
[3] B. Steinbach, M. A.Perkowski, Ch. Lang. Bi-Decomposition of Multi-Valued Functions for Circuit Design and Data Mining Applications. Proceedings of the 29th IEEE International Symposium on Multiple-Valued Logic, May 20-22, 1999, Freiburg, pp. 50-58.
[4] A. Mishchenko, C. Files, M. Perkowski, B. Steinbach, Ch. Dorotska. Implicit Algorithms for Multi-Valued Input Support Manipulation. Proc. of 4th Intl. Workshop on Boolean Problems, September 2000, Freiberg, Germany.
[5] C.M. Files, M.A Perkowski. New multi-valued functional decomposition algorithms based on MDDs. IEEE Trans. CAD. Vol. 19, No. 9, Sept. 2000, pp. 1081-1086.
[6] Minxi Gao, Jie-Hong Jiang, Yunjian Jiang, Yinghua Li, Subarna Sinha and Robert Brayton. "MVSIS", Proc. of International Workshop on Logic and Synthesis, Tahoe City, June 2001.


Alan Mishchenko's Home Page

This page has been last modified on October 14, 2001.