Radix-p Multiple Valued Logic Function Simplification using Higher Radix Representation

Conventional Boolean logic, which is based on radix-2 binary logic, is no longer suitable to represent complex digital systems. As digital systems continue to grow in complexity, more compact representations become essential to describe these systems. One such possibility is to use multiple-valued logic, with radices larder than two. Many non-conventional technologies are considered as candidates to replace conventional semiconductor based switching circuit technology for computational systems such. Interestingly, some of these technologies are inherently multiple valued. Multiple-valued logic design and optimization methodologies are not yet elaborated, as compared to the well-established binary logic design and optimization and testing scheme. In this paper we are proposing an algorithm, with which functions to describe digital systems are specified and simplified using Multiple valued logic. Representing a digital system with different radices come out with different equivalent specifications for that system. A designer can choose the most suitable specification for his design constrains. The influence of radix increase on the complexity of the algorithm and the resulting specification is also demonstrated and discussed in this paper.

The paper is arranged as follows; the next section is the preliminaries that introduce briefly the problem background. The third section is devoted to explain the proposed algorithm. Then the algorithm properties are discussed in section four, before the paper conclusion in section five.

Preliminaries
This section is meant to keep the paper self-contained by introducing MVL functions, as well as the main principles of discrete function minimization, where an arbitrary combinational Boolean function over n binary inputs ‚ … maps it into m binary outputs ‚ … . Boolean operators are defined over the binary set {0, 1}. A straightforward tabular specification of can be achieved by enumeration its values at the entire domain points of , and called a truth-table. An input permutation in a row of a truth-table is called a minterm, which is indexed by the weighted sum of its bits ∑ . 2 [12], e.g. the function in Table 1(a) specifies f(5)=111, where 5 is the index for the minterm i=(101) 2 = (1×2 2 + 0×2 1 +1×2 0 ) =5.
Based on the properties of Boolean logic, a group of minterms can be replaced in the function by one term, called a cube, which contains a '-' in the place of each input that is insignificant in these minterms. A table that specifies a function with its cubes is called a PLA table [12], see Table 1(b), in which the cube (1--) replaces four minterms {100,101,110,101} of Table 1(a). MVL is a generalization of Binary logic to higher radices, e.g. radix-3 system is called ternary with the set {0, 1, 2}, and to radix-4 is called quaternary with the set {0, 1, 2, 3}, etc. In general, a radix-p system represents its digits using the set {0, 1… p-1}. Higher radix means less digits to represent binary information, and computed from Eq.
(1) 2 , where p is the radix of the MVL system d is the number of MVL digits and n is the number of bits, e.g. two bits are represented using one quaternary digit. The index in a radix-p minterms is computed form ∑ . [2]. MVL truth tables are translations of Boolean truth tables, e.g. Table 1(c) represents the same information of Table 1(a) quaternary coded. In this case we can see two quaternary digits representing four bits of information. This makes the basic unit used in this system more informative and causes the complexity reduction in space, time and interconnections, as mentioned in section 1. With a generalized function minimization scheme it becomes be possible to compare between different MVL systems in term of efficiency.

Proposed Algorithm
Unlike minterms that are indexed by their weighted sum of digits, function cubes cannot be numerically indexed because of the character '-'. This non-numeric character is meant to represent an insignificant input digit that can have any value in a radix-p MVL digital system, i.e. {0, 1, …., (p-1)}. In other words a digit in a cube can be 0, 1, …, (p-1) or '-'. If the character '-' is substituted by p we will get an indexing scheme that is similar to minterm indexing in a radix-(q+1) system. Example 1: The index i of the binary minterm 110 is computed according to the binary weights of bits, i.e. i = (110) 2 =(1×2 2 +1×2 1 +0×2 0 ) = 6, while the cube index j for the same minterm is computed according to the radix-3, i.e. the ternary weights of digits to be j = (110) 3 = (1×3 2 +1×3 1 +0×3 0 ) = 12. On This Cube indexing motivates a simple minimization algorithm of radix-(q+1) cubes to a radix-q MVL function. The idea is to compute the function covered with cube j that contains a digit '-' as following: .
: ∀ ∈ 1‚ … , where is the weight of the '-' digit. In other words f j is the minimum function value of any minterm covered by the cube j. For simplicity of the algorithm in this section considers single output functions. The same algorithm is applicable with some extra details when implemented for multiple-output functions, e.g. the minimum is picked for each output alone.

Cube
Step 1 Step 2 Cube Step 1 Step 2 Cube Step 1 Step 2 i j x2 x1 x0 f2 f1 f0 f2 f1 f0 i j x2 x1 x0 f2 f1 f0 f2 f1 f0 i j x2 x1 x0 f2 f1 f0 f2 f1 f0  Table 3, a quaternary system radix-4, the value of the function at cube (-0). In this case the cube computation is j=(-0) (4+1) = (4×5 1 +0×5 0 ) = 20, is computed simply from: 20 ⋀ 20 5 15 ‚ 10 ‚ 5 ‚ 0 . After iterative computation of the function value that covers all possible cubes in the function domain, the minimization is carried out within the same iteration. The iteration starts from cube j=0 until the universal cube j=(q+1) d-1 . The minimization is performed by resetting to 0 any cube that is already covered by a larger cube with the same value in the function, after computing the value of the function at cube j, by assigning 0 to all minterms and sub-cubes covered by using the relation: . Table 3. Cube Minimization of the Function Specified by the Truth -table in Table 1(c).

Cube
Step 1 Step 2 Cube Step 1 Step Example 3: Table 2 shows the cube computation of the function in Table 1(a). The left most two columns show the transform of the minterm index i to the corresponding cube index j. The cube inputs' values are shown in the third column. The computation of the cubes is shown in the column labeled (Step 1). In this table the function is binary (radix-2), then the function of each non minterm cube is computed from the minimum (bitwise AND) of its forming two sub-cubes, f(j)=f(j-w) & f(j-2w), e.g. f(11) contains a '-' in the rightmost bit with w=1, then f(11)= f(11-1)&f The minimization is carried out by resetting bits to 0, as shown in (Step 2). The iteration of computation and minimization result specifies the function using the five underlined cubes, similar to the PLA table of Table 1(b). The cubes computation through this array takes 27 iterations. Table 3, on the other hand, shows the cube computation of the function in Table 1(c), which is the same function above but coded in radix-4 system. In this case the algorithm specifies the function using seven cubes, but with less digits. In this case the cubes computation takes 25 iterations.