In some embodiments, the uppermost vector of the matrix is described as corresponding to common mode signaling, which is not used herein. Thus, each of the sub-channel vectors corresponding to rows 2-4 of the matrix are multiplied (or modulated) by a corresponding data bit of the set of data bits D0, D1, D2 to produce three modulated sub-channels, which are summed together to produce symbols A, B, C, D, of the codeword to transmit over wires of a multi-wire bus.
As described by [Cronie], ODVS may be decoded by multiplication of the received signals by a decoding matrix. In some embodiments, the decoding matrix may correspond to the encoding matrix, or alternatively an inverse of the encoding matrix. As described in [Cronie], “Sylvester Hadamard matrices” are symmetric, which means they are identical to their inverses. [Holden] further teaches that one efficient means of performing this operation uses Multi-Input Comparators (MICs). Each MIC computes a linear combination of weighted input signals where the weights at a given MIC are determined by a corresponding sub-channel vector in the detection matrix, with the output of each MIC corresponding to an antipodal sub-channel output representing the input data at the transmitter. Thus, binary data encoded onto an ENRZ channel will result in an antipodal (i.e. a single “eye” opening) MIC output that may be sampled using conventional binary signal detection methods. A set of MICs that detect the plurality of ENRZ sub-channels may be described by equations 2-4 below: Sub0=(W1+W3)?(W0+W2)??(Eqn. 2) Sub1=(W0+W3)?(W1+W2)??(Eqn. 3) Sub2=(W2+W3)?(W0+W1)??(Eqn. 4)