The present application is generally related to communicating digital data across an interface.
In multi-bit digital interfaces, it is often advantageous to randomize data patterns communicated across the interfaces. The randomization may be used to eliminate DC content for AC coupled devices or to scramble any data-dependent interference that may be coupled to analog nodes in the system. Digital interfaces associated with analog-to-digital converters (ADCs) and digital-to-analog converters (DACs) are examples of devices that benefit from such randomization. Specifically, in DACs, there is typically a need to eliminate or reduce the effects of input data patterns coupling onto the analog output. Similarly, digital outputs can couple back into the inputs of ADCs.
Known technologies generate a pseudo-noise (PN) sequence to randomize the data stream. Specifically, for each clock tick, a new bit of the PN sequence is generated. Each bit of the current data word being communicated is exclusive-ored with the current bit of the PN sequence. This method also adds an additional data line to communicate the PN sequence to the receiver side of the interface for the recovery of original data. While this method reduces the data-dependent interface, there are still data-dependent couplings that may occur. For example, if the data word is all Os or all Is, the pattern on every signal line is the PN sequence or its complement respectively.
Another method involves generating a respective PN sequence for each data line. Upon each clock cycle, the respective data bit on each data line is exclusive-ored with the current bit of the data line's PN sequence. Because a different PN sequence is used for each data line, the scrambled signals are uncorrelated with each other and the coupling is more noise-like. However, to enable the original data to be recovered, additional lines are provided to communicate all of the PN sequences to the receiver side. Accordingly, the number of lines required by this method are doubled.
Some representative embodiments are directed to systems and methods for randomizing data communicated across a digital interface. In some representative embodiments, a PN sequence is applied to a series of shift registers. An array of exclusive-or gates is provided to scramble each bit of the current data word using a respective output of one or several of the shift registers. In some embodiments, a second pseudo-noise sequence is additionally applied in parallel to another array of exclusive-or gates. Additional lines are provided to communicate the PN sequences from the transmitting side to the receiver side. Also, corresponding arrays of exclusive-or gates coupled to the PN sequence lines are disposed on the receiver side to recover the original data using the PN sequences. By scrambling the communicated data in this manner, the scrambled data streams may be approximated as random and independent of the signal data. Additionally, an asymptotic improvement factor of 4 is achieved for the worst case power coupling for large numbers of data lines as compared to known techniques. Moreover, only one or two additional lines are added to the interface.
Referring now to the drawings,
Upon each clock cycle, a bit of the PNB sequence is received on line 132. The bits are communicated serially through shift registers 141. A plurality of exclusive-or gates 142 perform an exclusive-or operation on each bit of the data word being communicated with a respective output of one of the shift registers 141. Also, upon each clock cycle, a bit of the PNA sequence is received on line 133. The received bit is applied in parallel to a second set of exclusive-or gates 143 which are also coupled to the respective outputs of the first set of exclusive-or gates 142. System 100 could alternatively be implemented to perform the parallel exclusive-or operations with the PNA sequence before performing the exclusive-or operations with the PNB sequence. The outputs (denoted by S1 through SN) of exclusive-or gates 143 form the scrambled bits communicated across the interface. Pipelining delays (not shown) could be applied to the scrambled bits as long as the same operations are applied consistently. Additionally, the discussion has assumed that a single line exists for each data signal and for each PN sequence. However, multiple lines may be employed. For example, two lines could be used for each signal and each PN sequence to support differential signaling.
Line 132 used to receive the PNB sequence extends across the interface to sink functionality 120. Another set of shift registers 151 are serially coupled to line 132 on the sink side of the interface. Each scrambled data bit is applied to an exclusive-or gate 152 to be exclusive-ored with an output of one of the shift registers 151. Line 133 used to receive the PNA sequence also extends across the interface to sink functionality 120. A final set of exclusive-or gates 153 exclusive-ors the current bit of the PNA sequence with the respective bits of the outputs of exclusive-or gates 152 to recover the original data.
The relationship of each scrambled data signal is given by:
Sk(m)=Datak(m)⊕PNA(m)⊕PNB(m−k) (eq. 1)
where ⊕ signifies the exclusive-or operation. The receiving structure on the sink side of the interface is a duplicate of the source side. Hence, the output signal is given by:
Datak(m)=Datak(m)⊕ PNA(m)⊕PNB(m−k)⊕PNA(m)⊕PNB(m−k) (eq. 2)
Rearranging equation (2), the following is obtained:
Datak(m)=Datak(m)⊕[PNA(m)⊕PNA(m)]⊕[PNB(m−k)⊕PNB(m−k)] (eq. 3)
Since PNA(m)⊕(PNA(m)=0 and PNB(m−k)⊕PNB(m-k)=0, it is seen that the original data is recovered.
The scrambled data communicated across the interface can also be described and implemented as follows:
Sk(m)=Datak(m)⊕[PNA(m)⊕PNB(m−k)] (eq. 4)
This representation emphasizes that each data bit is exclusive-ored with a scrambling signal that is the exclusive-or of PNA and a delayed version of PNB. Each scrambling sequence employs a different delay value for PNB.
By suitably selecting the PNA and PNB sequences, the scrambled data signals (S1 through SN) can be relatively independent irrespective of the communicated data. A number of choices for the PNA and PNB sequences can be made to achieve the desired independence. In one embodiment, the PNA and PNB sequences are obtained from respective constituent maximal length shift register sequence (MLSRS) generators of a Gold code generator. With this selection, each scrambling sequence is a different Gold code from the set associated with the generator pair. These codes are known to possess excellent cross-correlation characteristics. In another embodiment, two MLSRS generators of relatively prime lengths (Q and R) may be employed. The resulting sequences are all of the same QR length sequence while being separated in a delay by at least the lesser of Q and R. Other selections may be made depending upon the desired amount of independence for particular applications.
If the PNB sequence is obtained from a MLSRS generator, the known shift-and-add property of these generators will result in the scrambling sequences being the same sequences at deterministic offsets from one another. For a particular generator, these offsets may be assessed to determine if they are sufficiently separated from one another such that the scrambling sequences may be considered sufficiently independent. Additionally, although a single unit of delay is shown in
The communication of digital data according to some representative embodiments may occur in any suitable digital device. For example,