|Publication number||US7587537 B1|
|Application number||US 11/998,603|
|Publication date||Sep 8, 2009|
|Filing date||Nov 30, 2007|
|Priority date||Nov 30, 2007|
|Publication number||11998603, 998603, US 7587537 B1, US 7587537B1, US-B1-7587537, US7587537 B1, US7587537B1|
|Original Assignee||Altera Corporation|
|Export Citation||BiBTeX, EndNote, RefMan|
|Patent Citations (15), Referenced by (19), Classifications (9), Legal Events (2)|
|External Links: USPTO, USPTO Assignment, Espacenet|
This invention relates to integrated circuits, and more particularly, to selectively forming serializer-deserializer circuitry from registers in input-output circuits on an integrated circuit.
Integrated circuits are often used to handle both single-ended and differential data signals. Single-ended signals are referenced to ground. In differential data signals, the voltages on a pair of lines are referenced to each other. Differential data signaling schemes such as the well-known low-voltage differential signaling (LVDS) scheme are commonly used to handle signals in the GHz frequency range. The use of differential data signaling schemes can help system designers to overcome noise problems. Single-ended data signaling schemes tend to be used at lower data rates, where noise immunity is less of an issue.
Integrated circuits that contain differential communications circuitry typically contain serializer-deserializer circuitry. This circuitry, which is sometimes referred to as SERDES circuitry, is used to convert high-speed incoming serial data streams into lower-speed parallel data streams. SERDES circuitry is also used to convert parallel data to serial data prior to data transmission to another integrated circuit using a differential output driver. SERDES circuitry includes shift registers that are formed from a number of individual data registers.
In serial-to-parallel operation (e.g., when incoming serial data is being processed), serial data is clocked into the shift register in a SERDES circuit using a high speed serial clock. Once the shift register is full, the data is shifted out of the shift register in parallel using a lower-speed parallel clock.
In parallel-to-serial operation (e.g., when transmitting serial data), bits of parallel data are shifted into the shift register in parallel using the parallel clock. A corresponding serialized data stream is then provided at the serial output of the shift register at the serial clock rate.
In conventional integrated circuits, the shift registers in SERDES circuit blocks are hardwired. This type of arrangement may provide acceptable serial-to-parallel and parallel-to-serial data conversion performance, but can be inefficient. For example, if the SERDES capabilities of the integrated circuit are not used by a logic designer, the resources used by the shift register are wasted and represent needless overhead.
In certain types of integrated circuits such as programmable logic devices, it may be possible to use general purpose programmable logic resources such as logic element register resources to selectively implement serializer-deserializer circuitry. This type of arrangement may provide design flexibility, but can limit performance due to routing delays. This type of arrangement may also have high implementation costs and can reduce the amount of programmable circuitry that would otherwise be available to implement a user's custom logic design.
It would therefore be desirable to provide integrated circuits in which serial-deserializer circuitry may be selectively formed from available register resources.
In accordance with the present invention, input-output circuitry for integrated circuits such as programmable logic device integrated circuits is provided. The input-output circuitry serves as an interface between core logic and input-output pins on an integrated circuit. The input-output circuitry can be configured to operate in a single-ended data mode or a serializer-deserializer mode. Programmable routing circuitry such as programmable multiplexer circuitry may be included in the input-output circuitry. The programmable multiplexers or other routing circuitry may be used to selectively form paths in the input-output circuitry based on loaded configuration data.
In single-ended data mode, data registers in the single-ended input-output circuitry may be used to handle transmitted and received single-ended data. Single-ended data is referenced to ground.
In serializer-deserializer mode, the data registers may be configured to form a shift register. For example, configuration data may be loaded into an integrated circuit that configures the programmable multiplexers so that pathways are formed that chain together multiple data registers from the input-output circuitry to form the shift register. The data registers may be configured to operate as positive-edge-triggered or negative-edge-triggered devices.
Shift registers that have been formed from input-output circuit data registers may be used in serializer-deserializer circuits. In particular, in a serializer-deserializer circuit, a shift register may be used to perform parallel-to-serial or serial-to-parallel data conversion operations. The serializer-deserializer circuit may be connected to differential input-output circuitry such as a differential transmitter circuit or a differential receiver circuit.
Further features of the invention, its nature and various advantages will be more apparent from the accompanying drawings and the following detailed description.
The present invention relates to input-output circuitry on integrated circuits. The integrated circuits may be any suitable type of integrated circuits such as microprocessors, digital signal processors, or application specific integrated circuits. The integrated circuits that contain the input-output circuitry may also be programmable integrated circuits. Examples of programmable integrated circuits include programmable logic devices (also sometimes referred to as field-programmable gate arrays) and integrated circuits that have programmable circuitry, but which are not typically referred to as programmable logic devices, such as microprocessors, digital signal processors, or application specific integrated circuits that contain programmable circuitry.
The input-output circuitry is sometimes described herein in the context of programmable integrated circuits such as programmable logic devices as an example. Programmable logic device integrated circuits and other programmable integrated circuits can be customized using configuration data. In a typical scenario, a logic designer uses a computer-aided design (CAD) system in designing a desired logic circuit. The computer-aided design system uses information on the hardware capabilities of a programmable circuit to generate configuration data.
Programmable logic devices and other programmable circuits contain programmable elements. The programmable elements may be based on any suitable programmable technology such as fuses, antifuses, laser-programmed elements, electrically-programmed elements, nonvolatile memory elements such as electrically-programmed polysilicon fuses, volatile memory elements, mask-programmed elements, etc. Mask-programmed devices may be programmed during device fabrication. In a typical scenario, volatile programmable elements are based on random-access memory (RAM) cells and nonvolatile fuses such as electrically-programmable polysilicon fuses.
To customize a typical programmable logic device such as a RAM-based device to implement a desired logic circuit, configuration data produced by a computer-aided design system is loaded into programmable memory elements on the device. During operation of the programmable logic device, each memory element provides a static output signal based on its loaded configuration data. The outputs signals from the memory elements are applied to n-channel and p-channel metal-oxide-semiconductor transistors in regions of programmable logic on the programmable logic device. This configures the programmable logic of the device so that the programmable logic device implements the desired logic circuit. Nonvolatile memory elements within the device may be configured during manufacturing to adjust circuits so that they perform within desired specifications (as an example).
An illustrative integrated circuit 10 in accordance with the present invention is shown in
Programmable logic device 10 may contain programmable elements 20 such as random-access memory cells. Programmable elements 20 (e.g., volatile elements such as random-access memory cells) can be loaded with configuration data (also called programming data) using pins 14 and input-output circuitry 12. The programmable elements each provide a corresponding static control output signal that controls the state of an associated logic component in programmable logic 18. The programmable element output signals are typically used to control the gates of metal-oxide-semiconductor (MOS) transistors. Most of these transistors are generally n-channel metal-oxide-semiconductor (NMOS) pass transistors in programmable components such as multiplexers, look-up tables, logic arrays, AND, OR, NAND, and NOR logic gates, etc. When a programmable element output is high, the pass transistor controlled by that programmable element is turned on and passes logic signals from its input to its output. When the programmable element output is low, the pass transistor is turned off and does not pass logic signals.
The programmable elements may be loaded from any suitable source. In a typical arrangement, the programmable elements are loaded from an external erasable-programmable read-only memory and control chip called a configuration device via pins 14 and input-output circuitry 12. Nonvolatile programmable elements may be laser-programmed or electrically programmed during manufacturing using programming equipment or on-chip circuits (as examples).
The circuitry of device 10 may be organized using any suitable architecture. As an example, the logic of programmable logic device 10 may be organized in a series of rows and columns of larger programmable logic regions (sometimes referred to as logic array blocks) each of which contains multiple smaller logic regions (sometimes referred to as logic elements). The logic resources of device 10 may be interconnected by interconnection resources 16 such as associated vertical and horizontal conductors. These conductors may include global conductive lines that span substantially all of device 10, fractional lines such as half-lines or quarter lines that span part of device 10, staggered lines of a particular length (e.g., sufficient to interconnect several logic areas), smaller local lines, or any other suitable interconnection resource arrangement. If desired, the logic of device 10 may be arranged in more levels or layers in which multiple large regions are interconnected to form still larger portions of logic. Still other device arrangements may use logic that is not arranged in rows and columns.
Conventional input-output circuitry 22 of the type that has been used in programmable logic devices is shown in
The input-output circuitry of
Single-ended input-output circuitry 30 may operate similarly. Incoming single-ended data signals may be conveyed from input-output pin 28 to single-ended input-output circuitry 30 over path 62. Single-ended input-output circuitry 30 may convey the received data signals to core logic 32 over path 60. During transmit operations, core logic 32 may provide single-ended data signals to single-ended input-output circuitry 30 over path 60. Single-ended input-output circuitry 30 may transmit these signals to external circuitry via path 62 and input-output pin 28.
When operated differentially, differential data signals may be transmitted and received using a pair of input-output pins (i.e., pins 24 and 28).
Differential data may be received using differential receiver 48 (i.e., an LVDS receiver). Pins 24 and 28 may be coupled to the differential input of receiver 48 using paths 44 and 46, respectively. Differential receiver circuitry 48 may convert the incoming differential data signal on a pair of data lines connected to pins 24 and 28 into a single-ended data signal on path 66. Serializer-deserializer and dynamic clock phase alignment circuitry 50 may be used to convert the serial data on path 66 into parallel data on path 52. The parallel data on path 52 may be received by core logic 32.
Differential data may be transmitted using differential transmitter 36. Parallel data from core logic 32 may be provided to serializer-deserializer and dynamic clock phase alignment circuitry 34 via parallel data path 54. Circuitry 34 may serialize the parallel data to produce a corresponding serial data stream on path 68. Differential transmitter 36 (i.e., an LVDS transmitter) can convert the serial single-ended data on path 68 into differential data on a pair of output lines such as lines 38 and 40. Lines 40 and 38 may be coupled to input-output pins 24 and 28, respectively.
The serial-to-parallel data conversion functions of SERDES circuitry 50 are implemented using shift register circuitry 56. Circuitry 56 includes multiple registers connected in series with fixed connections to form a shift register. Serial data is clocked into the shift register using a high-speed (“serial”) clock. Once the shift register has been loaded, the data can be shifted out of the shift register in parallel over path 52 using a slower (“parallel”) clock. If there are ten lines in path 52, for example, the parallel clock will be ten times slower than the serial clock.
The parallel-to-serial data conversion functions of SERDES circuitry 34 also use shift register circuitry. In particular, a shift register 42 may be used to convert parallel data on path 54 into serial data on path 68. Parallel data is shifted into the shift register using the parallel clock. The corresponding serialized version of this data is clocked out of shift register circuitry 42 on path 68 at the serial clock rate.
To ensure adequate performance, shift registers 56 and 42 are typically formed from dedicated (hardwired) circuits. In situations in which the programmable logic device is being used to implement a custom logic circuit that does not require the SERDES capabilities of circuits 50 and 34, shift register circuits 56 and 42 are not used and create needless overhead. In some conventional programmable logic devices, shift-registers 56 and 42 can be formed from registers in programmable logic elements. Using general-purpose programmable logic resources in this way can lead to suboptimal performance, because such circuitry generally switches more slowly than hardwired circuitry in an input-output block due to the need to route signals through interconnect resources between logic elements. As a result, the use of general-purpose core logic such as logic element registers to form shift register circuits 56 and 42 may not always be desirable.
Single-ended input-output circuitry such as input-output circuitry 26 and 30 is shown in more detail as single-ended input-output circuitry 70 of
Circuit blocks 76, 78, and 80 contain registers 86. The data paths that are associated with registers 86 only allow registers 86 to be used for their intended functions (i.e., to control output enable signal OE or to convert between single and double data rate data).
Illustrative single-ended input-output circuitry 88 in accordance with an embodiment of the present invention is shown in
Circuitry 88 may be arranged in two blocks. Single-ended input circuitry 92 may be used to convey signals between core logic 90 and input-output pin 96. Single-ended input circuitry 94 may be used to convey signals between core logic 90 and input-output pin 98. Each pair of input-output pins such as input-output pins 96 and 98 may be connected to a differential receiver such as differential receiver 48 of
To conserve resources, data registers in single-ended input-output circuit blocks 92 and 94 may be configured to implement shift registers such as shift registers 56 and 42 when it is desired to implement serializer-deserializer (SERDES) circuits such as SERDES circuits 50 and 34 of
Any suitable circuitry may be used to selectively form SERDES shift registers from the data registers in single-ended data signal input-output circuitry 88. With one suitable arrangement, which is described herein as an example, programmable multiplexer circuitry is used to selectively connect data registers in a chain to form a SERDES shift register. This is, however, merely illustrative. Any suitable configurable routing arrangement may be used to form shift registers from the input-output circuit data registers if desired.
In the example of
A programmable multiplexer M5 may be used to selectively convey signals from core logic 90 to the input of circuit 100. Circuit 100 contains data registers L3 and L4 and a programmable multiplexer M4. The output enable signal OE that is supplied by circuit 100 on line 112 is used to control the state of tristate buffer 114. When signal OE on line 112 is low, buffer 114 is enabled and circuit 92 may be used to supply data to input-output pin 96. When signal OE on line 112 is high, buffer 114 is tristated and circuit 92 may be used to convey data from input-output pin 96 to core logic 90.
Single-ended input-output circuit 92 may use single data rate to double data rate conversion circuit 102 to convey output data from core logic 90 to input-output pin 96. Double data rate to single data rate conversion circuit 104 may include programmable multiplexer circuitry such as programmable multiplexer M1. Double data rate to single data rate conversion circuit 104 of circuit 92 may be used to convey input data from input-output pin 96 to core logic 90.
A programmable multiplexer M5′ may be used to selectively convey signals from core logic 90 to the input of circuit 106. Circuit 106 may contain a programmable multiplexer M4′. Single-ended input-output circuit 94 may use output enable control block 106 to control the state of buffer 116. When signal OE on line 118 is low, buffer 116 may be enabled to allow output data to be passed to input-output pin 98. When signal OE on line 118 is high, buffer 116 may be tristated so that input data from input-output pin 98 may be conveyed to core logic 90.
Circuit 108 may be used to convert single data rate data from core logic 90 into double data rate data. The double data rate data may be conveyed to input-output pin 98 via output buffer 116 when output buffer 116 is enabled by signal OE on path 118.
Double data rate to single data rate conversion circuit 110 may include multiplexer circuitry such as programmable multiplexer M3 and programmable multiplexer M1. Double data rate to single data rate conversion circuit 110 of circuit 94 may be used to convey input data from input-output pin 98 to core logic 90.
The input-output circuit multiplexers such as multiplexers M5, M5′, M4, M4′, M1, M1′, and M3 in the illustrative arrangement of
The data registers in circuitry 88 may also be programmable. As shown in
The multiplexer circuitry and data registers of single-ended input-output circuitry 88 of
An illustrative shift register 132 of the type that may be formed from data registers in single-ended input-output circuitry on an integrated circuit such as integrated circuit 10 of
Serial input data is received at input 136 to data register L2 (e.g., from the output of a differential receiver such as receiver 48 of
If desired, programmable multiplexer circuitry and data registers in single-ended input-output circuits can be configured to implement other types of shift registers. In the example of
In single-ended mode, input-output blocks IOB-1 and IOB-2 (which may be, for example, single-ended input-output circuits of the type illustrated by blocks 92 and 94 of
In SERDES mode, data registers L1 and L2 may be configured as positive-edge-triggered registers and data registers L1′ and L2′ may be configured as negative edge triggered registers. Multiplexers M1 and M1′ may be configured so that registers L1, L2, L1′, and L2′ form a 4:1 shift register in which data is routed in series to perform serial-to-parallel conversion. The 4:1 shift register may be used to perform the SERDES functions of a circuit such as SERDES circuit 50 of
Another illustrative arrangement in which the data registers of two adjacent single-ended input-output circuit blocks can be selectively configured to form a 4:1 SERDES shift register for circuit 10 is shown in
The programmable multiplexer circuitry and data registers of the single-ended input-output circuits may be used to form shift registers for SERDES circuits in both the data input path (e.g., as with SERDES circuit 50 of
An illustrative configuration into which the data registers of single-ended input-output circuit 88 (
Shift registers for SERDES circuits in the output data path associated with a differential transmitter (such as transmitter 36 of
Illustrative steps involved in configuring programmable routing circuitry such as programmable multiplexer circuitry (e.g., multiplexers M1, M1′, etc.) and programmable data registers (e.g., data registers L1, L1′, etc.) to form SERDES shift registers such as registers 56 and 42 of
At step 152, a logic design for a desired logic circuit is obtained from a logic designer. The logic design may contain one or more required input-output circuit SERDES shift registers or may contain no required input-output circuit SERDES shift registers.
During step 152, the logic designer may supply the logic design to computer-aided design (CAD) tools using design and constraint entry tools. The design and constraint entry tools may allow the logic designer to provide a logic design to the CAD tools using a hardware description language such as Verilog hardware description language (HDL) or Very High Speed Integrated Circuit Hardware Description Language (VHDL). The logic designer can also enter the logic design by writing hardware description language code with an editor. Blocks of code may be imported from user-maintained or commercial libraries if desired.
After the design has been obtained by the CAD tools, the CAD tools may produce corresponding configuration data for loading into programmable elements such as programmable elements 20 of
Once the functional operation of the logic design has been determined to be satisfactory, logic synthesis and optimization tools may be used to implement the logic design in a particular integrated circuit (i.e., in the logic and interconnect resources of a particular programmable logic device product or product family).
The design may be optimized by making appropriate selections of hardware to implement different logic functions in the logic design based on the logic design data and constraint data (e.g., constraint data supplied by the logic designer using the CAD tools).
After logic synthesis and optimization using the CAD tools, placement and routing tools in the CAD tools may be used to perform physical design steps (layout synthesis operations). Placement and routing tools may be used to determine how to place the circuits for each logic function within the programmable logic device or other integrated circuit.
During the operations of step 154, configuration data is created that will configure multiplexer circuitry and registers in the single-ended input-output circuits of device 10 so that the single-ended input-output circuitry operates in a single-ended data signal mode or in SERDES mode, as described in connection with
At step 156, the configuration data that was created at step 154 may be loaded into integrated circuit 10 (e.g., into programmable elements 20 in a programmable logic device integrated circuit). The programmable elements 20 configure associated logic components in programmable logic 18. Programmable multiplexers (e.g., multiplexers M1, M1′, etc.) and programmable data registers (e.g., registers L1, L1′, etc.) may be configured by the configuration data loaded into associated programmable elements. If desired, some of the data registers may be configured using hardwired connection to conserve programmable elements 20. For example, registers L1, L1′, L3, and L3′ in the example of
When the configuration data is loaded into the integrated circuit in step 156, the single-ended input-output circuitry of the integrated circuit is configured to operate in single-ended mode or is configured to operate in SERDES mode. In single-ended mode, the single-ended input-output circuitry may perform functions such as single data rate to double data rate conversion and double data rate to single data rate conversion. In SERDES mode, the programmable multiplexers and routing paths such as path 120 of
The SERDES shift registers that are selectively formed during step 156 may be used to serialize parallel data that is being transmitted. For example, a SERDES shift register may serialize parallel data received from core logic. The serialized parallel data can then be converted from single-ended data to differential data and transmitted over a differential communications path using an LVDS transmitter or other differential transmitter such as transmitter 36 of
After device 10 has been configured at step 156, device 10 may be used in a system (step 158).
The foregoing is merely illustrative of the principles of this invention and various modifications can be made by those skilled in the art without departing from the scope and spirit of the invention.
|Cited Patent||Filing date||Publication date||Applicant||Title|
|US4680733||Oct 29, 1984||Jul 14, 1987||International Business Machines Corporation||Device for serializing/deserializing bit configurations of variable length|
|US5003558||Oct 30, 1989||Mar 26, 1991||International Business Machines Corporation||Data synchronizing buffers for data processing channels|
|US5144692||May 17, 1989||Sep 1, 1992||International Business Machines Corporation||System for controlling access by first system to portion of main memory dedicated exclusively to second system to facilitate input/output processing via first system|
|US6650140 *||Mar 6, 2002||Nov 18, 2003||Altera Corporation||Programmable logic device with high speed serial interface circuitry|
|US6759869 *||Jun 5, 2002||Jul 6, 2004||Xilinx, Inc.||Large crossbar switch implemented in FPGA|
|US6861868 *||Jun 16, 2003||Mar 1, 2005||Lattice Semiconductor Corp.||High speed interface for a programmable interconnect circuit|
|US6894530 *||Apr 28, 2003||May 17, 2005||Lattice Semiconductor Corporation||Programmable and fixed logic circuitry for high-speed interfaces|
|US6970013 *||Aug 25, 2003||Nov 29, 2005||Xilinx, Inc||Variable data width converter|
|US7057413 *||May 24, 2004||Jun 6, 2006||Xilinx, Inc.||Large crossbar switch implemented in FPGA|
|US7106099 *||Oct 22, 2004||Sep 12, 2006||Xilinx, Inc.||Decision-feedback equalization clocking apparatus and method|
|US7218141 *||Dec 7, 2004||May 15, 2007||Altera Corporation||Techniques for implementing hardwired decoders in differential input circuits|
|US7234017 *||Feb 24, 2005||Jun 19, 2007||International Business Machines Corporation||Computer system architecture for a processor connected to a high speed bus transceiver|
|US7245240 *||Mar 7, 2006||Jul 17, 2007||Altera Corporation||Integrated circuit serializers with two-phase global master clocks|
|US7315188 *||Jun 2, 2006||Jan 1, 2008||Altera Corporation||Programmable high speed interface|
|US7348796 *||Oct 26, 2005||Mar 25, 2008||Dafca, Inc.||Method and system for network-on-chip and other integrated circuit architectures|
|Citing Patent||Filing date||Publication date||Applicant||Title|
|US8081094 *||Dec 9, 2008||Dec 20, 2011||Canon Kabushiki Kaisha||Signal transmission system and signal conversion circuit|
|US8659318 *||Sep 24, 2010||Feb 25, 2014||Altera Corporation||Systems and methods for implementing tristate signaling by using encapsulated unidirectional signals|
|US8736306 *||Aug 4, 2011||May 27, 2014||Micron Technology, Inc.||Apparatuses and methods of communicating differential serial signals including charge injection|
|US8832487 *||Jun 28, 2011||Sep 9, 2014||Microsoft Corporation||High-speed I/O data system|
|US8938578 *||Jul 8, 2013||Jan 20, 2015||Rambus Inc.||Memory device with multi-mode deserializer|
|US9143164 *||Aug 15, 2013||Sep 22, 2015||Broadcom Corporation||Scalable serializer|
|US9197361 *||Feb 14, 2014||Nov 24, 2015||Silicon Line Gmbh||Sending arrangement and method for transmitting signals|
|US9219598 *||Feb 14, 2014||Dec 22, 2015||Silicon Line Gmbh||Circuit arrangement and method for transmitting signals|
|US9231756 *||Feb 14, 2014||Jan 5, 2016||Silicon Line Gmbh||Circuit arrangement and method for transmitting signals|
|US9310830||Aug 28, 2014||Apr 12, 2016||Microsoft Technology Licensing, Llc||High-speed I/O data system|
|US20090248945 *||Mar 31, 2008||Oct 1, 2009||Navindra Navaratnam||Noise reducing methods and circuits|
|US20100238055 *||Dec 9, 2008||Sep 23, 2010||Canon Kabushiki Kaisha||Signal transmission system and signal conversion circuit|
|US20130007500 *||Jun 28, 2011||Jan 3, 2013||Microsoft Corporation||High-speed i/o data system|
|US20130033290 *||Feb 7, 2013||Gregory King||Apparatuses and methods of communicating differential serial signals including charge injection|
|US20130328704 *||Aug 15, 2013||Dec 12, 2013||Broadcom Corporation||Scalable Serializer|
|US20140029331 *||Jul 8, 2013||Jan 30, 2014||Rambus Inc.||Memory device with multi-mode deserializer|
|US20150043675 *||Feb 14, 2014||Feb 12, 2015||Silicon Line Gmbh||Sending arrangement and method for transmitting signals|
|US20150043690 *||Feb 14, 2014||Feb 12, 2015||Silicon Line Gmbh||Circuit arrangement and method for transmitting signals|
|US20150043692 *||Feb 14, 2014||Feb 12, 2015||Silicon Line Gmbh||Circuit arrangement and method for transmitting signals|
|U.S. Classification||710/71, 326/40, 326/86, 710/106, 341/100|
|International Classification||G06F13/12, H03K19/177|
|Nov 30, 2007||AS||Assignment|
Owner name: ALTERA CORPORATION, CALIFORNIA
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:BURNEY, ALI;REEL/FRAME:020239/0725
Effective date: 20071128
|Feb 25, 2013||FPAY||Fee payment|
Year of fee payment: 4