The present invention relates to electronics, and, more specifically but not exclusively, to multi-channel transmitters.
This section introduces aspects that may help facilitate a better understanding of the invention. Accordingly, the statements of this section are to be read in this light and are not to be understood as admissions about what is prior art or what is not prior art.
Most multi-channel protocol standards have requirements to ensure that the transmitter (TX) lane-to-lane skew is within a specified level, in order to ensure that most of the receiver (RX) de-skew (e.g., multi-channel alignment) processing is for misalignment that results from transmitting the multiple signals in parallel from the transmitter to the receiver, e.g., over different traces. As data frequency rates increase, it becomes more difficult to achieve desired levels of inter-channel alignment.
Other aspects, features, and advantages of the present invention will become more fully apparent from the following detailed description, the appended claims, and the accompanying drawings in which like reference numerals identify similar or identical elements.
Each quad 110 is capable of generating its four TX signals using any one of three different clock signals: a relatively low-speed clock rg_clk, a relatively high-speed clock lc_clk, and a neighboring-quad clock nq_clk, where nq_clk is the clock used by the other quad in the pair to generate its four TX signals. For example, if quad 110(1) is configured (e.g., programmed) to use the low-speed clock rg_clk to generate its four TX signals, then quad 110(2) can be configured to use any of (i) its local low-speed clock rg_clk, (ii) its local high-speed clock lc_clk, or (iii) clock nq_clk, which is the low-speed clock rg_clk used by quad 110(2). Note that all nine permutations of quad clock configurations are available except for both quads 110(1) and 110(2) configured to select nq_clk.
As indicated in
As shown in
In particular, low-speed clock rg_clk can be based on any one of (i) a low-speed, core reference clock ck_core_tx_rg, which is provided from the core of integrated circuit 100, (ii) a local-quad reference clock REFCLK, which is provided from a pad (not shown), which is connected to an external reference clock source, and (iii) a neighboring-quad reference clock reclk_nq, which is the reference clock selected by neighboring quad 110(2). Auxiliary block 120 comprises a 3:1 multiplexer (mux) 122 that is configured to select one of these three clocks for use by a low-speed phase-locked loop (PLL) 128 in generating the low-speed clock rg_clk. Note that mux 122 and the equivalent mux in quad 110(2) cannot both be programmed to select the reference clock reclk_nq.
Similarly, high-speed clock lc_clk can be independently based on any one of (i) a high-speed, core reference clock ck_core_tx_lc, which is provided from the core of integrated circuit 100, (ii) the local-quad reference clock REFCLK, and (iii) the neighboring-quad reference clock reclk_nq. Auxiliary block 120 comprises a 3:1 mux 124 that is configured to select one of these three clocks for use by a high-speed PLL 126 in generating the high-speed clock lc_clk. Here, too, mux 124 and the equivalent mux in quad 110(2) cannot both be programmed to select the reference clock reclk_nq.
As suggested previously, it is desirable (and, for some applications, even required) that the four TX signals 158(1)-158(4) transmitted from quad 110(1) be synchronized with one another such that their inter-channel skews are within a specified level (e.g., less than one unit interval (UI)). For some applications, all eight TX signals 158(1)-158(8) transmitted from both quads 110(1) and 110(2) need to be synchronized to within a specified skew level. Typically, TX signals are synchronized by applying different copies of a common reset signal to the different sets of TX channel circuitry used to generate those TX signals. However, because the four different sets of TX channel circuitry within each quad are physically separated from one another and because the two quads are likewise displaced from each other, integrated circuit 100 is designed with sync circuitry to synchronize the different copies of the reset signal applied to the different sets of TX channel circuitry in order to reduce the skew between those different reset signal copies.
In particular, the sync circuitry in quad 110(1) has two stages: (1) a first sync stage 130 in which the selected clock signal is used to re-time the reset signal sync_toggle_q received from the core of integrated circuit 100 to generate a first-synchronized reset signal 136 and (2) a second sync stage 140 in which the selected clock signal is used to re-time four different copies 138(1)-138(4) of the first-synchronized reset signal 136 to generate four different reset signals 156(1)-156(4) applied to the four different sets of TX channel circuitry in quad 110(1) to generate the four TX signals 158(1)-158(4).
As shown in
Second sync stage 140 has four identical, parallel sync sub-stages 150(1)-150(4), each of which receives an identical copy 138(i) of the first-synchronized reset signal 136 and generates a corresponding reset signal 156(0. For example, sync sub-stage 150(1) comprises a 3:1 mux 152(1) which selects one of the three clock signals rg_clk, lc_clk, and nq_clk (i.e., the same clock signal used in the first sync stage 130) to apply to sync cell 154(1) for use in re-timing the first copy 138(1) of the first-synchronized reset signal 136 to generate reset signal 156(1).
In this way, quad 110(1) generates the four reset signals 156(1)-156(4) that are synchronized, e.g., to within one unit interval (UI) of each other. Moreover, when both quads 110(1) and 110(2) are configured to select the same re-timing clock (either (i) by both quads selecting rg_clk or (ii) by both quads selecting lc_clk or (iii) by one quad selecting either rg_clk or lc_clk and the other quad selecting ng_clk), those two quads will generate the eight reset signals 156(1)-156(8) to be synchronized, e.g., to within one UI of each other.
In the embodiment of
In particular, a first set of buffers (e.g., inverters) 202 and 206 is connected to buffer the received reset signal sync_toggle to generate a buffered reset signal 210. Similarly, a second set of buffers 204 and 208 is connected to buffer the received clock signal clk to generate a buffered clock signal 212. The buffered reset signal 210 and the buffered clock signal 212 are then applied to a first flip-flop 214 to generate a latched reset signal 216. The latched reset signal 216 and the buffered clock signal 212 are then applied to a second flip-flop 218 to generate and output, via driver 220, the re-timed reset signal 222. The control signal enable_sync can be set to 0 or 1 to selectively disable or enable sync cell 200.
Note that
Although each multi-channel transmitter in integrated circuit 100 of
Although each set of sync circuitry in integrated circuit 100 of
The present invention can be implemented in the context of any suitable type of integrated circuit device, such as, without limitation, application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), programmable logic devices (PLDs), mask-programmable gate arrays (MPGAs), simple programmable logic devices (SPLDs), and complex programmable logic devices (CPLDs).
The present invention may be implemented as (analog, digital, or a hybrid of both analog and digital) circuit-based processes, including possible implementation as a single integrated circuit (such as an ASIC or an FPGA), a multi-chip module, a single card, or a multi-card circuit pack. As would be apparent to one skilled in the art, various functions of circuit elements may also be implemented as processing blocks in a software program. Such software may be employed in, for example, a digital signal processor, micro-controller, or general-purpose computer.
Also for purposes of this description, the terms “couple,” “coupling,” “coupled,” “connect,” “connecting,” or “connected” refer to any manner known in the art or later developed in which energy is allowed to be transferred between two or more elements, and the interposition of one or more additional elements is contemplated, although not required. Conversely, the terms “directly coupled,” “directly connected,” etc., imply the absence of such additional elements.
Signals and corresponding nodes or ports may be referred to by the same name and are interchangeable for purposes here.
It should be appreciated by those of ordinary skill in the art that any block diagrams herein represent conceptual views of illustrative circuitry embodying the principles of the invention. Similarly, it will be appreciated that any flow charts, flow diagrams, state transition diagrams, pseudo code, and the like represent various processes which may be substantially represented in computer readable medium and so executed by a computer or processor, whether or not such computer or processor is explicitly shown.
Unless explicitly stated otherwise, each numerical value and range should be interpreted as being approximate as if the word “about” or “approximately” preceded the value of the value or range.
It will be further understood that various changes in the details, materials, and arrangements of the parts which have been described and illustrated in order to explain the nature of this invention may be made by those skilled in the art without departing from the scope of the invention as expressed in the following claims.
The use of figure numbers and/or figure reference labels in the claims is intended to identify one or more possible embodiments of the claimed subject matter in order to facilitate the interpretation of the claims. Such use is not to be construed as necessarily limiting the scope of those claims to the embodiments shown in the corresponding figures.
It should be understood that the steps of the exemplary methods set forth herein are not necessarily required to be performed in the order described, and the order of the steps of such methods should be understood to be merely exemplary. Likewise, additional steps may be included in such methods, and certain steps may be omitted or combined, in methods consistent with various embodiments of the present invention.
Although the elements in the following method claims, if any, are recited in a particular sequence with corresponding labeling, unless the claim recitations otherwise imply a particular sequence for implementing some or all of those elements, those elements are not necessarily intended to be limited to being implemented in that particular sequence.
Reference herein to “one embodiment” or “an embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiment can be included in at least one embodiment of the invention. The appearances of the phrase “in one embodiment” in various places in the specification are not necessarily all referring to the same embodiment, nor are separate or alternative embodiments necessarily mutually exclusive of other embodiments. The same applies to the term “implementation.”
The embodiments covered by the claims in this application are limited to embodiments that (1) are enabled by this specification and (2) correspond to statutory subject matter. Non-enabled embodiments and embodiments that correspond to non-statutory subject matter are explicitly disclaimed even if they fall within the scope of the claims.
This application claims the benefit of the filing dates of U.S. provisional application No. 61/699,002, filed on Sep. 10, 2012, and U.S. provisional application No. 61/714,636, filed on Oct. 16, 2012, the teachings of both of which are incorporated herein by reference in their entirety.
Number | Name | Date | Kind |
---|---|---|---|
5537655 | Truong | Jul 1996 | A |
7020002 | Yamamoto | Mar 2006 | B2 |
7272677 | Venkata et al. | Sep 2007 | B1 |
7304507 | Tran et al. | Dec 2007 | B1 |
7532646 | Leung et al. | May 2009 | B2 |
7656187 | Tran et al. | Feb 2010 | B2 |
8238452 | Sarmah | Aug 2012 | B1 |
20040128578 | Jonnalagadda | Jul 2004 | A1 |
Number | Date | Country | |
---|---|---|---|
61699002 | Sep 2012 | US | |
61714636 | Oct 2012 | US |