Abstract:
A format converter in which the data input is a 16 bit wide interface. The circuit finds the 66-bit coding block boundaries. In one embodiment, a circuit presents the 66-bit data blocks at the output in an aligned format. The circuit relies on control inputs from a state machine which controls the operating mode and to which it delivers status information. The two main operating modes are the “normal data” mode or the “hunt” mode for the 66-bit block boundaries.

Description:
FIELD OF THE INVENTION 
     The present invention relates generally to a deserializer and components therefor, including format converters. 
     BACKGROUND OF THE INVENTION 
     Of late, for some versions of the serial physical layer of the EEE 10 Gbit/s Ethernet standard, a new 66-bit block code has been suggested. At the receiver, the serial data is first de serialized to a sequence of 16 parallel bits which are not aligned with any block or framing structure. Each 66-bit block starts with a 2-bit prefix, a pair of complementary bits to indicate either regular data or control information in the next 8 scrambled bytes. Equal bits in the prefix are a violation of the coding rules. Such violations might originate from transmission errors. The pair of complementary bits is also used to find the 66-bit block boundaries, since any other pair in scrambled data will not have complementary bits at 66-bit intervals over an extended range such as 64 66-bit blocks. 
     A need has been recognized in connection with addressing the issues described above in an efficient and effective manner. 
     SUMMARY OF THE INVENTION 
     In accordance with at least one presently preferred embodiment of the present invention, in the context described heretofore, block boundaries are found with a modest amount of circuitry. Further, the conversion from a 16-bit block format to a 66-bit block format is undertaken via register transfers between registers of modest size. Whereas one might normally be inclined to seek a solution based on the least common multiple between 16 and 66 (which is 16×11×3=528), and use a register of that size, the present invention broadly contemplates enabling the use of a register of considerably smaller size but with similar effect. 
     A format converter in which the data input is a 16 bit wide interface. The circuit finds the 66-bit coding block boundaries. In one embodiment, a circuit presents the 66-bit data blocks at the output in an aligned format. The circuit relies on control inputs from a state machine (not described here) which controls the operating mode and to which it delivers status information. (As known in the art, a “state machine” is essentially any logic block with at least one latch with internal feedback to change states). The two main operating modes are the “normal data” mode or the “hunt” mode for the 66-bit block boundaries. 
     In an exemplary (non-restrictive) application according to at least one embodiment of the present invention, part of a 10.3125 Gbaud 64B/66B version of a deserializer is involved. The data input is a 16 bit wide interface clocked at a 644.53125 MHz rate (103125/16). The circuit finds the 66-bit coding block boundaries. A circuit presents the 66-bit data blocks at the output in an aligned format clocked at 156.25 MHz (10,000/64 or 10,312 5/66). 
     In one aspect, the present invention provides an apparatus for converting data, the apparatus comprising: an input interface which accepts data having a 16-bit width; a converter which converts the 16-bit width data to data having a 66-bit width in aligned format, and an output interface which outputs the aligned 66-bit width data. 
     In another aspect, the present invention provides a method for converting data, the method comprising the steps of: accepting data having a 16-bit width; converting the 16-bit width data to data having a 66-bit width in aligned format; and outputting the aligned 66-bit width data. 
     Furthermore, the present invention provides in another aspect, a program storage device readable by machine, tangibly embodying a program of instructions executable by the machine to perform method steps for converting data, the method comprising the steps of: accepting data having a 16-bit width, converting the 16-bit width data to data having a 66-bit width in aligned format; and outputting the aligned 66-bit width data. 
     For a better understanding of the present invention, together with other and further features and advantages thereof, reference is made to the following description, taken in conjunction with the accompanying drawings, and the scope of the invention will be pointed out in the appended claims. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 depicts a circuit diagram of a  66   b  framer. 
     FIG. 2 depicts a circuit diagram of a deserializer ( 16   b  to  66   b ). 
     FIG. 3 depicts a circuit diagram of a multiplexer ( 16   b  unaligned to  11 ). 
     FIG. 4 schematically depicts a write control (PSEL  16 ). 
     FIG. 5 schematically depicts a 64 bit register with write and read timing. 
     FIG. 6 schematically depicts a 64-bit register with margins for read timing. 
     FIG. 7 schematically depicts C 11 , PS 0  and PS 8  timing. 
     FIG. 8 depicts a circuit diagram of a 16-bit register. 
     FIG. 9 depicts a circuit diagram of exclusive OR functions. 
     FIG. 10 depicts a circuit diagram of two 11-bit registers (SYNC pattern search). 
     FIG. 11 depicts a circuit diagram of a SYNC evaluation and location pointer. 
     FIG. 12 schematically depicts C 11 , PCTL 66  timing. 
     FIG. 13 depicts a circuit diagram to select a set of 11 bits. 
     FIG. 14 depicts a circuit diagram of an 11 to 1 multiplexer using AOI gates. 
     FIG. 15 depicts a circuit diagram of a 66-bit register with clock gates and a SYNC monitor. 
    
    
     DESCRIPTION OF THE PREFERRED EMBODIMENTS 
     FIG. 1 illustrates an overall structure in accordance with an embodiment of the present invention and external input/output signals. The left-side block represents the state machine and the right-side block is the 16 bit (PD 16 &lt; 15 : 0 &gt;) to 66 bit (PD 66 &lt; 65 : 0 &gt;) converter. C 11  and B 11  are clock inputs operating at 1/11 of the full serial rate (10.3125 Gbaud). C 16  and B 166  are also clocks operating at 1/16 of the serial rate. The A and I inputs are test control inputs. 
     FIG. 2 illustrates a  16   b  to  66   b  deserializer in accordance with an embodiment of the present invention. Constituent components thereof are detailed in other Figures depicting circuit diagrams, namely, FIGS. 3,  8 - 11  and  13 - 15 . The disclosure herebelow will first treat the deserializer shown in FIG.  2  and then will address the constituent components shown in the balance of the Figures. 
     In FIG. 2, the first block at the top (PATH16×11) converts the 16 bit wide bus to an 11-bit bus. In the hunt mode, it looks for transitions between any two bits and at the 11-bit boundaries and in this mode, the output PD 11 &lt; 10 : 0 &gt; marks transitions rather than data. The second block, SYNC  11 , monitors for transitions which occur at 66-bit intervals in  11  positions at a time. If there are no transitions consistently occurring at the block interval, the output NOSYNC is asserted and the state machine selects the next group of 11 bits for the same check. In the absence of errors, up to 6 groups of 11 bits have to be checked consecutively. The groups are selected by the state machine by activating the signal NSEL_D 1  at the appropriate time. As far as an “appropriate time” is concerned, preferably, a new 11-bit group will be selected as soon at it becomes apparent that the current group does not include the 2-bit prefix, which is indicated by an active level on the line NOSYNC. Further, the detail timing will preferably be correct, which would involve the line NSEL_D 1  being asserted when a new group to be monitored is present at the L 2  output of register I 0 &lt; 10 : 0 &gt; in FIG.  10  and the timing margins being such that the data is captured reliably. 
     If a single repetitive transition remains within an 11-bit group, the signal NVALID is asserted and the state machine decides whether further monitoring is required or whether the hunt mode can be ended. If the hunt mode is terminated, the location of the boundary is stored in latches by the input PRESYNC and signaled by the output PSLOC&lt; 10 : 0 &gt; which points to the first bit of 11-bit segments aligned with the 66-bit block boundaries. The state machine keeps track which of the 11-bit segments is the first one in the 66-bit block. 
     Preferably, the circuit SEL  11  selects an aligned set of 11 bits from 11 possible locations for delivery to the 66-bit output register. On the other hand, the circuit REG 66  is the 66-bit output register. The state machine steers the sets of 11 bits into the proper location via the signal PSEL  11 &lt; 5 : 0 &gt;. The data output PD 66 &lt; 65 : 0 &gt; is updated by the 156.25 MHz clock B 0 . In the normal data mode, the circuit monitors for unequal bits in PD 66 &lt; 0 , 1 &gt;. If these bits are equal the output PSYNC is deasserted and can only be reasserted by the state machine by asserting the input PRES. 
     FIG. 3 shows a multiplexer,  16   b  unaligned to 11. Accordingly, this diagram illustrates two major functions: 
     1. A format conversion from 16 bits wide to 12 bits wide on 11-bit increments (1 bit overlap between successive sets of 12 bits). 
     2. Eleven parallel searches for unequal bit pairs. 
     In undertaking format conversion from. 16-bit to 12-bit width, a rather straightforward approach would write 11×16 bits into a 176-bit register and then read from there 12 bits at 11-bit increments (with roll-over) 16 times. (The width, expressed as a number of bits [12 bits in a presently preferred implementation], must have a certain relationship to the number 66, that is, the width after subtraction of one must be an integer factor of 66, i.e. 3−1=2, 4−1=3, 12−1=11, 23−1=22, or 34−1=33. A smaller width would essentially be suitable for much faster circuits or a lower operating rate while a greater width would essentially be suitable for slower circuits or a higher operating rate.) 
     The approach shown here saves silicon area (i.e., surface area of the silicon chip) by reducing the number of latches to  64  and just moderately increasing the complexity of the controls. 
     To implement the embodiment of the present invention illustrated in the Figures, the 16 bit wide input (PD 16 &lt; 15 : 0 &gt;) from the deserializer is first placed consecutively into four sets of 16-bit registers E 10 G_REG 16 &lt; 3 : 0 &gt;. The 16-bit registers are shown in FIG. 8, and the set of four 16-bit registers is shown at the top of FIG. 3. A C 16  clock (644.53125 MHz) drives all 64 L 1  latches. A control signal NSEL  16 &lt; 3 : 0 &gt; selects sequentially one of the four 16-bit registers for updating by selecting the D 0  input in circuit E 10 G 66 _REG 16  (FIG. 8) while the other registers step in place because the D 1  input is selected which is connected to the L 2  output. Each of these four control lines is at the lower level in turns for a single C 16  clock cycle except that after eleven 16-bit cycles, a 16-bit register is skipped in conformance with an 11×C 16  (176 bits) super-cycle to make the 4×16 register structure compatible with the cycle of 11 for the read-out from the registers. The control signals NSEL 16 &lt; 3 : 0 &gt; are illustrated in FIG.  4 . The illustrations assume that the last 16-bit register is skipped. 
     The writing into and reading from the 64-bit register is illustrated in FIG. 5, where everything, including bit numbers and clock timing, is referenced to the basic repetition cycle of 176 (11×16) in ascending vector notation &lt; 0 : 175 &gt;. There are three major rows representing the contents of the 64-bit register for a full 176-bit cycle. Each row is horizontally divided into an upper and a lower part. The upper part shows the bit numbers residing in the register together with the respective write times to the right. The lower part shows how the bits are read in groups of 12 at 11-bit increments. In these fields, the vertical solid and dotted lines mark the start and end, respectively, of the 12-bit sets for read-out with a 1-bit overlap and wrap around from bit number 175 to 0. The sampling times for the reading of the 12-bit sets are also given and selected so they lag and lead the respective write times by at least 11-bit intervals in either direction. 
     FIG. 6 is similar in format to FIG.  5 . The top line in each of the major rows indicates the valid interval for each set of 16 bits, the second line lists all the read times applicable to the respective set, and the third line first lists the timing margin ahead of the earliest read time and then the timing margin from the last read time to the end of the valid window. If the margins turn out to be too tight, or if faster circuits become available, other but similar register sizes may be suitable. Note that the current register operation can be described as 2×(4×16 bits)+1×(3×16b)=11×16b. With faster circuits, one could choose a 48-bit register operated as 3×(3×16b)+1×(2×16b), or a 32-bit register operated as 5×(2×16b)+1×16b. For slower circuits, a suitable choice is a 96-bit register operated as 1×(6×16b)+1×(5×16b). 
     At the output of the 64-bit register, a two-level arrangement of path gates selects sets of 12 bits at a time as shown in FIG.  3 . The path gates are controlled by the signals PS 0 , PS 3 e&lt; 2 : 0 &gt;, and PS 3 o&lt; 2 : 0 &gt;. To reduce the required timing margins, the faster MUX 211  gates in the lower right half toggle between the 2 inputs on every 11-bit cycle in response to signal PS 0 , while the two slower ‘decod’ circuits are stepped at 22-bit intervals in response to the signals PSe/o&lt; 2 : 0 &gt;. A suitable phase relationship between the clock C 11  and the gating control signals PS 0 , PS 8 e&lt; 7 : 0 &gt;, and PS 8 o&lt; 7 : 0 &gt; is illustrated in FIG.  7 . The inputs to each of the decoders which generate PSe (even) and PS 8 o (odd) are 3 bits. The signals PS 3 o&lt; 2 : 0 &gt; are the same as PS 3 e&lt; 2 : 0 &gt; but delayed by a C 11  clock cycle. 
     The disclosure now turns to a discussion of a pattern search for 01 or 10, and the manner in which this can be facilitated in accordance with at least one presently preferred embodiment of the present invention. 
     FIG. 9 relates to parallel examination, E 10 G 66 _XOR 12 . As shown, from the 64-bit register, 12 bits at a time are preferably examined for ‘01’ or ‘10’ patterns by 11 Exclusive OR gates. Each of the selected 12-bit fields overlaps by one bit with the next field on a cycle time of 11-bit intervals. 
     An input PHUNT to the E 10 G 66 _XOR 12  circuit (as shown in FIG. 9) preferably chooses the normal data transfer mode or the sync hunt mode during initialization or when alignment has been lost. In normal mode, the XOR 12  circuit just passes transparently the first 11 selected bits, ignoring the 12th bit which overlaps with the next group of 12 bits. In the hunt mode, any pair of adjacent unequal bits generates an upper level in the bit position of the first bit of the pair, and a lower level if the bits of the pair are equal. The output signals PD 11 &lt; 10 : 0 &gt; (FIGS. 2 and 3) represent the plain data or the XOR 12  results and are stored in a set of 11 latches (upper left corner of FIG.  10 ). 
     FIG. 10 relates to serial examination, E 10 G 66 _SYNC 11 . In this case, the circuit SYNC 11  (FIGS. 10 and 11) checks for 11 threads in parallel whether there are unequal bit pairs or sync patterns present six clock cycles apart. In the circuit of FIG. 10, there are two 11-bit registers operating in tandem. The trailing register is of the MUX 21  type. In the normal data mode, these registers carry the data clocked on every C 11  cycle, and the input to the second register is via the D 1  inputs as selected by an upper level on the line PSELIN. In hunt mode, the registers indicate the location of transitions or sync patterns in the data. If e.g. PDOUT&lt; 11 &gt; is at the upper level, there is a transition between the data bit PDOUT&lt; 11 &gt; and &lt; 12 &gt;. If PDOUT&lt; 21 &gt; is at the upper level, there is a transition between the data bit PDOUT&lt; 21 &gt; and PDOUT&lt; 11 &gt; of the: next set of 11 data bits. Hunting for a repetitive sync pattern 66 bits apart is done on a set of 11 threads in parallel at a time on a cycle of 6×C 11 , until either no or a single repetitive sync pattern is present. The single sync pattern must be present consistently with no interruption for a programmable number of C 66  cycles no lower than 16. If no sync pattern is present in any of the 11 positions of register I 1 &lt; 10 : 0 &gt;, a new search is started by the attached state machine on a set of 11 threads offset from the preceding set by 11 (serial) bits or one 11-bit register cycle, so in the absence of errors, it may take up 6 rounds of checks to find the true synchronization, longer if errors are present. 
     The maximum hunt time can be reduced by a factor of six at the cost of five additional 11-bit registers and gates (identical to I 1 &lt; 10 : 0 &gt; and I 3 &lt; 10 : 0 &gt;) and additional control inputs similar to PG 66  from the state machine to perform the sequence test on six sets of 11 bits staggered by just one C 11  clock. 
     At the start of each round of checks, the trailing register is loaded directly via the D 1  input ports with the sync pattern stored in the leading register. For the second and following cycles of the round, the control signal PSELIN selects the D 0  ports, which is gated data, such that the contents of the latches can only revert to zero. The trailing register cells cannot be set to an upper level output via the D 0  input. (Expressed more specifically, the AND gates I 3 &lt; 10 : 0 &gt; in FIG. 10 prevent the D 0  input of the latches to ever go to the up level if the respective L 2  latch has a zero output.) 
     The requirements for the PSELIN signal which selects the D 0  or D 1  inputs of register I 1 &lt; 10 : 0 &gt; can be described as follows: 
     1. In normal data mode, PSELIN must remain at a steady upper level to select the D 1  inputs. 
     2. If the state machine advances from normal data mode to the Hunt mode, PSELIN must remain at the upper level for the first two C 11  cycles to make sure that an initial transition pattern is loaded into the trailing register. 
     3. After a search round has been started with an initial transition pattern in the trailing register, PSELIN must go to the lower level and remain there to the end of the round. 
     4. Any new round following the initial round in Hunt mode, must start with the loading of an initial transition pattern into the trailing register via the D 1  ports and during this single C 11  cycle, the PSELIN signal must revert to the upper level. 
     The requirements for the clock gating signal PCTL 66  can be described as follows: 
     1. Whenever the PSELIN signal is at the upper level, PCTL 66  must also be at the upper level so the trailing register is updated on every C 11  clock cycle. 
     2. When the PSELIN signal is at the lower level, the PCTL 66  signal enables the C 11  clock every sixth C 11  clock interval as illustrated in FIG.  12 . 
     The pattern search as a whole is preferably operating on a cycle of n×(6×C 11 ). In the hunting mode as shown in FIG.  12  and the circuit of FIG. 10, a first register  10 &lt; 10 : 0 &gt; at the top left is updated on every C 11  cycle, a second register I 1 &lt; 10 : 0 &gt; is updated only every 6th cycle e.g. at times C 11 (0, 6, 12, 18, . . . ). If the search on these fields is not successful, other searches are started at times C 11 (1, 7, 13, 19, . . . ), C 11 (2 ,8, 14, 20, . . . ), and so on until a consistent sequence of transitions at 66-bit intervals is detected. 
     FIG. 11 relates particularly to a transition evaluation and location pointer, E 10 G 66 _SYNC 11 . In connection therewith, if the contents of register I 1 &lt; 10 : 0 &gt; are all zeros, the NOSYNC output is asserted to signal to the state machine that the block boundary is not in the current set of 11 bits. Any of the eleven NVAL&lt; 10 : 0 &gt; can only be asserted when there is a single one present. This condition is signalled to the state machine for further evaluation by the output NVALID. If the state machine determines that a reliable 66-bit block boundary has been found, it must assert PRESYNC for at least one C 11  clock cycle to reset the location pointers PSLOC&lt; 10 : 0 &gt; to the new value. In the normal data mode, the state machine ignores the NOSYNC and NVALID signals. 
     After a successful search, the first bit of a 66-bit block can be identified by the combination of timing information C 11 (x) modulo six (PSEL 11 &lt; 5 : 0 &gt;) from the state machine and the location pointer PSLOC&lt; 10 : 0 &gt; to any of the eleven bits I 1 &lt; 10 : 0 &gt;. 
     FIG. 13 relates to alignment circuits, E 10 G 66 _SEL 11 . The origin of 11-bit segments in the registers of circuit E 10 G 66 _sync 11  (FIG. 10) can be selected via the control lines PSLOC&lt; 10 : 0 &gt; from 11 different locations. The circuit implementation of these 11 to 1 multiplexers uses AOI gates as shown in circuit E 10 G 66 _AO 11  to  1 , FIG. 14, in preference to path gates because of the much smaller silicon area (i.e., surface area of the silicon chip). However, the path gates would provide a faster path for the data. 
     FIG. 15 relates to a 66-bit Register with Clock Gates and SYNC Monitor. The L 1  latches of the 66-bit output register are updated by six consecutive sets of 11 bits with their respective C clocks gated by the control signals PSEL 11 &lt; 5 : 0 &gt; from the state machine. In addition, the first set of bits is stored in a holding buffer at the top of the diagram (I 177 &lt; 10 : 0 &gt;) and then transferred to the output register I 169 &lt; 10 : 0 &gt; by the clock PCLK 2  to avoid timing conflicts with the B 0  clock. The contents of the L 1  latches is transferred to the L 2  latches by the B 0  clock which has similar timing as PCLK 0 . B 1  has timing comparable to PCLK 1 . 
     The circuitry in the upper right quadrant monitors for unequal bits in the first two bit positions. Any set of equal bits in these positions forces the PSYNC output to the lower level and it will remain there until the latch is reset by the state machine via the PRES line. 
     Within the scope of the present invention, some alternate approaches to framer structure are conceivable. Above, it has been described how the size of the first register may be changed in response to different technology performance parameters. However, much of the design described above operates with a bus width of 11 bits which is well matched to the performance of IBM CMOS ASIC SA- 27 E. As faster technologies become available, it might be advisable to change to a 6-bit format to save circuit area. Thus, while one now may construct a 66-bit block with six 11-bit segments, one might then do the same with eleven 6-bit segments. As pointed out previously, with faster logic, the input register could perhaps be reduced to 32 bits. A cycle of 3×32=96 nicely meshes with the 6-bit format without skipping. 
     It is to be understood that the present invention, in accordance with at least one presently preferred embodiment, includes an input interface which accepts data having a 16-bit width, a converter which converts the 16-bit width data to data having a 66-bit width in aligned format and an output interface which outputs the aligned 66-bit width data. Together, the input interface, converter and output interface may be implemented on at least one general-purpose computer running suitable software programs. These may also be implemented on at least one Integrated Circuit or part of at least one Integrated Circuit. Thus, it is to be understood that the invention may be implemented in hardware, software, or a combination of both. 
     If not otherwise stated herein, it is to be assumed that all patents, patent applications, patent publications and other publications (including web-based publications) mentioned and cited herein are hereby fully incorporated by reference herein as if set forth in their entirety herein. 
     Although illustrative embodiments of the present invention have been described herein with reference to the accompanying drawings, it is to be understood that the invention is not limited to those precise embodiments, and that various other changes and modifications may be made therein by one skilled in the art without departing from the scope or spirit of the invention.