Abstract :
A balanced code with k information bits and r check bits is a binary code of length n=k+r and cardinality 2k such that the number of 1s in each code word is equal to [n/2]. This paper describes the design of efficient balanced codes with parallel encoding and parallel decoding. In this case, since area and delay of such circuits are critical factors, another parameter is introduced in the definition of balanced code: the “number of balancing functions used in the code design”, p. Parallel encoding and decoding algorithms independent from the chosen balancing method are given and these can be implemented by a VLSI circuit of size O(pk) and depth O(logp). This paper also presents a new balancing method: the permutation method, which, for infinitely many values of k (such as, k=8, 10, 20, 22, 32, 34, ...) is more efficient than Knuth´s complementation method. This new method results in efficient balanced codes with k information bits, k even, r=2[k/12]+2 check bits and p=6 balancing functions. Further, Knuth´s complementation method is generalized to obtain efficient code designs for any value of the parameters k, r, and p, provided that k⩽2Σi=0m(ir )+p(r-2m-1)[(kr+k+r) mod 2], where m is such that (m-1 r)<p⩽(mr)
Keywords :
codes; decoding; encoding; fault tolerant computing; Knuth´s complementation method; VLSI circuit; balanced codes; balancing functions; balancing method; binary code; cardinality; decoding; infinitely many values; parallel encoding; permutation method; Binary codes; Circuits; Computer errors; Decoding; Delay; Encoding; Error correction codes; Fault detection; Redundancy; Very large scale integration;