Circuitry accepts an input signal and distributes the input signal to a plurality of locations within the circuitry. The circuitry includes a first circuit element and a second circuit element. The circuitry further includes a first plurality of wire segments that are substantially aligned to form a first bundle, and include a first wire segment. The circuitry further includes a second plurality of wire segments that are substantially aligned to form a second bundle, and have a second wire segment. An intersection element of the first bundle and the second bundle includes a first interconnecting wire segment that connects the first wire segment and the second wire segment, and the input signal is routed from the first wire segment to the second wire segment via the first interconnecting wire segment. The input signal is further transmitted to the second element from the second wire segment.
|
20. An integrated circuit device comprising:
a first clock plane comprising a first wire segment and a second wire segment;
a second clock plane comprising a third wire segment;
a third clock plane comprising a fourth wire segment; and
a circuit connection block disposed at an intersection of the first wire segment, the third wire segment, the fourth wire segment, and the second wire segment, wherein:
the circuit connection block comprises a first multiplexer that selectively connects one of the second wire segment and the third wire segment to the first wire segment to facilitate reducing clock skew when a first clock signal is routed to first circuitry and second circuitry that both operate based at least in part on the first clock signal; and
the first multiplexer is not communicatively coupled to the fourth wire segment to facilitate reducing delay introduced on the first clock signal by the first multiplexer.
13. An integrated circuit device comprising:
a first clock plane that routes a first clock signal to a first sector and to a second sector in the integrated circuit device to enable first circuitry in the first sector and second circuitry in the second sector to operate based at least in part on the first clock signal, wherein the first clock plane comprises:
a first wire segment adjacent the first sector; and
a bidirectional buffer disposed on the first wire segment; and
a first multiplexer communicatively coupled between the bidirectional buffer and the first sector, wherein the first multiplexer comprises:
a first input communicatively coupled to a first side of the bidirectional buffer;
a second input communicatively coupled to a second side of the bidirectional buffer; and
a first output communicatively coupled to the first sector to enable selectively supplying the first clock signal to the first sector before the first clock signal is passed through the bidirectional buffer or after the first clock signal is passed through the bidirectional buffer to facilitate reducing clock skew compared to when the first clock signal is supplied to the second sector.
1. An integrated circuit device comprising:
a clock source that generates a first clock signal;
a first clock region comprising first circuitry that operates based at least in part on the first clock signal;
a second clock region comprising second circuitry that operates based at least in part on the first clock signal; and
a clock tree communicatively coupled to the clock source, the first clock region, and the second clock region, wherein the clock tree comprises:
a first clock plane comprising a first plurality of wire segments, wherein the first clock plane routes the first clock signal from the clock source to a root of the clock tree;
a second clock plane comprising a second plurality of wire segments that at least partially overlap with the first plurality of wire segments, wherein the second clock plane:
routes the first clock signal from the root to the first clock region via a first leaf; and
routes the first clock signal from the root to the second clock region via a second leaf; and
a circuit connection block that selectively routes the first clock signal from the first clock plane to the second clock plane to facilitate balancing the first leaf and the second leaf.
2. The integrated circuit device of
reducing clock skew between the first clock signal when routed to the first clock region and when routed to the second clock region; and
synchronizing operation of the first clock region and the second clock region.
3. The integrated circuit device of
the first a clock region comprises a first set of registers that receives the first clock signal from the first leaf; and
the second clock region comprises a second set of registers that receives the first clock signal from the second leaf.
4. The integrated circuit device of
the third clock region comprises third circuitry that generates the first clock signal;
the third clock region is at a first location in the integrated circuit device; and
the root is at a second location in the integrated circuit device more central between the first clock region and the second clock region compared to the first location to facilitate reducing timing variation on the first clock signal when communicated to the first clock region and when communicated to the second clock region.
5. The integrated circuit device of
the clock source is located peripheral to the clock tree; and
the root is at a centralized location of the clock tree to facilitate reducing clock skew.
6. The integrated circuit device of
7. The integrated circuit device of
a first sector comprising the first clock region and a third clock region, wherein:
the third clock region comprises third circuitry that operates based at least in part on a second clock signal different from the first clock signal;
the first leaf comprises a first wire segment adjacent the first sector; and
the first sector receives the first clock signal from the first wire segment, distributes the first clock signal to the first clock region, receives the second clock signal from the first wire segment, and distributes the second clock signal to the third clock region; and
a second sector comprises the second clock region, wherein:
the second leaf comprises a second wire segment adjacent the second sector; and
the second sector receives the first clock signal from the second wire segment and distributes the first clock signal to the second clock region.
8. The integrated circuit device of
the third clock region comprises third circuitry that operates based at least in part on a second clock signal different from the first clock signal;
the clock tree comprises a third clock plane comprising a third plurality of wire segments that routes the second clock signal to the third clock region;
the circuit connection block is communicatively coupled to the third clock plane; and
the circuit connection block comprises a first multiplexer communicatively coupled to the first clock plane and the second block plane, but not the third clock plane.
9. The integrated circuit device of
the first multiplexer comprises a first input communicatively coupled to a first wire segment in the first clock plane; and
the circuit connection block comprises a second multiplexer, wherein the second multiplexer comprises:
a second input communicatively coupled to a second wire segment in the second clock plane;
a third input communicatively coupled to a first output of the first multiplexer; and
a second output communicatively coupled to a third wire segment in the second clock plane.
10. The integrated circuit device of
a first wire segment adjacent a first sector comprising the first clock region;
a first buffer on a first end of the first wire segment, wherein the first buffer facilitate transmission of clock signals along the first wire segment in a first direction; and
a second buffer on a second end of the first wire segment, wherein the second buffer facilitates transmission of first clock signals along the first wire segment in a second direction opposite to the first direction.
11. The integrated circuit device of
a bidirectional buffer coupled to the first wire segment between the first buffer and the second buffer; and
a first input multiplexer communicatively coupled between the first sector and the bidirectional buffer, wherein the first input multiplexer facilitates balancing the first leaf and the second leaf by selectively tapping the first clock signal either before the first clock signal is buffered by the bidirectional buffer or after the first clock signal is buffered by the bidirectional buffer.
12. The integrated circuit device of
the second sector is adjacent the first wire segment, wherein second sector comprises a third clock region that operates based at least in part on a second clock signal different from the first clock signal;
the clock tree comprises a second input multiplexer communicatively coupled between bidirectional buffer and the second sector, wherein the second input multiplexer selectively taps the second clock signal either before the second clock signal is buffered by the bidirectional buffer or after the second clock signal is buffered by the bidirectional buffer; and
the first input multiplexer taps the first clock signal before the first clock signal is buffered by the bidirectional multiplexer and the second input multiplexer taps the second block signal before the second clock signal is buffered by the bidirectional multiplexer to enable the first wire segment to simultaneously communicate the first clock signal and the second clock signal.
14. The integrated circuit device of
a second clock plane that routes the first clock signal from a clock source to a clock tree root at a more centralized location to facilitate reducing the clock skew, wherein the second clock plane comprises a second wire segment; and
a circuit connection block disposed at an intersection of the first wire segment and the second wire segment, wherein the circuit connection block comprises a second multiplexer that facilitates selectively communicating the first clock signal from the first clock plane to the second clock plane to balance communication of the first clock signal to the first sector and communication of the first clock signal to the second sector.
15. The integrated circuit device of
the third clock plane comprises a third wire segment that intersects the circuit connection block; and
the second multiplexer is communicatively coupled to the first wire segment and the second wire segment, but not the third wire segment to facilitate reducing delay introduce on the first clock signal by the second multiplexer.
16. The integrated circuit device of
the circuit connection block comprises a third multiplexer, wherein the third multiplexer comprises a second output communicatively coupled to the first wire segment; and
the second multiplexer comprises:
a third input communicatively coupled to the second wire segment; and
a third output communicatively coupled to a fourth input of the third multiplexer to facilitate reducing delay introduce on the first clock signal by the third multiplexer.
17. The integrated circuit device of
the bidirectional buffer comprises:
a first buffer that facilitates transmission of clock signals along the first wire segment in a first direction; and
a second buffer that facilitates transmission of clock signals along first wire segment in a second direction opposite the first direction;
the first input of the first multiplexer is communicatively coupled to a third input of the first buffer and a second output of the second buffer; and
the second input of the first multiplexer is communicatively coupled to a fourth input of the second buffer and a third output of the first buffer.
18. The integrated circuit device of
the third sector comprises third circuitry that operates based at least in part on a second clock signal different from the first clock signal; and
the second multiplexer comprises:
a third input communicatively coupled to the first side of the bidirectional buffer;
a fourth input communicatively coupled to the second side of the bidirectional buffer; and
a second output communicatively coupled to the second sector to enable selectively supplying the second clock signal to the first sector before the second clock signal is passed through the bidirectional buffer or after the second clock signal is passed through the bidirectional buffer.
19. The integrated circuit device of
the first multiplexer connects the first input to the first output; and
the second multiplexer connects the second output to the fourth output to enable the first wire segment to simultaneously communicate the first clock signal in a first direction and the second clock signal in a second direction opposite the first direction.
21. The integrated circuit device of
a first input communicatively coupled to the second wire segment;
a second input communicatively coupled to the third wire segment; and
an output communicatively coupled to the first wire segment.
22. The integrated circuit device of
the second multiplexer comprises a first input communicatively coupled to the third wire segment; and
the first multiplexer comprises:
a second input communicatively coupled to the second wire segment;
a third input communicatively coupled to a first output of the second multiplexer; and
a second output communicatively coupled to the first wire segment.
23. The integrated circuit device of
a bi-directional buffer disposed on the first wire segment;
a first 2:1 multiplexer communicatively coupled between the bi-directional buffer and the first circuitry; and
a second 2:1 multiplexer communicatively coupled between the bi-directional buffer and third circuitry that operates based at least in part on a second clock signal different from the first clock signal.
24. The integrated circuit device of
the first 2:1 multiplexer taps the first clock signal from the first wire segment before the first clock signal enters the bi-directional buffer; and
the second 2:1 multiplexer taps the second clock signal from the first wire segment before the second clock signal enters the bi-directional buffer to enable simultaneously transmitting the first clock signal in a first direction along the first wire segment and the second clock signal in a second direction along the first wire segment.
25. The integrated circuit device of
the second clock plane at least partially overlaps the first clock plane; and
the second clock plane routes the first clock signal from a clock source to a clock tree root at a more centralized location between the first circuitry and the second circuitry to enable the first clock plane to route the first clock signal from the clock tree root to the first circuitry and the second circuitry with reduced clock skew.
|
This claims the benefit of commonly-assigned U.S. Provisional Patent Application No. 62/057,450, filed on Sep. 30, 2014, which is hereby expressly incorporated by reference in its entirety.
This invention relates to a configurable clock grid that can be used to construct a number of clock trees of arbitrary sizes and shapes for distributing clock signals in an electronic device.
Synchronous systems usually use clock signals to operate various components of the circuit. Large complex systems generally have a number of clock signals, each of which drives a set of registers, known as a clock region. Devices route each of these clock signals from the clock source to all the registers that use that clock. The routing of clock signals is often done in such a way that minimizes both the delay and the skew in the delay from the source to the registers. Some devices provide fixed and dedicated clock trees to route clock signals. These clock trees are constructed using fast wires, such that that all routes from the tree root to the leaves are balanced. These wires can often be shielded to provide well-controlled delays. Some trees may span the entire device, while others may span only a subset of the device.
When a circuit is mapped to a device, the registers of a clock region are assigned locations within the device. The clock assigned to a clock region is distributed to registers using a clock tree. Depending on the location of the registers in a clock region, one of a set of fixed clock trees can be selected, the clock source is routed to the root of the tree, and the registers are configured to select the clock tree as the clock input. This process is repeated for all registers in the device.
There can be a large number (e.g., hundreds) of different clock regions in a system. Some clock regions are relatively small in size while other clock regions may span the entire device. Providing the clock signals for all the clock regions can include using a large number of clock trees. When these trees are fixed, then the registers of a clock region may be constrained to fixed locations based on the fixed tree selected for that clock region. As a result, the clock tree selected for the clock region can span the entire area containing registers from that region. In this case, designing a set of appropriately-sized fixed clock trees that are sufficient across the large number of registers and can be programmed into a single device can be challenging. In practice, a significantly large number of fixed clock trees may be required such that all clock regions can be assigned a clock tree.
The excessive use of clock wiring involved in a large number of fixed clock trees can pose computer aided design (CAD) tool challenges as well. For example, it can result in fewer routing resources available for data signals, routing congestion, crosstalk effects on timing analysis, variability noise, and/or the like. Due to the increased complexity with the large number of fixed clock trees, designing placement and clustering of registers to mitigate the negative effects can be difficult with the current CAD system. Therefore, the use and assignment of clock trees to fixed clock regions can constrain placement and clustering of registers, resulting in impaired circuit performance.
In accordance with embodiments of the present invention, a configurable clock grid containing uncommitted clock wires that can be configured to construct clock trees of arbitrary shape and size is introduced. Throughout this disclosure, the term “clock region” refers to the registers driven by a given clock signal, as well as the area of the device in which these registers are located. In addition to clock signals, the configurable grid structure described herein can also be applied to other high-fanout signals, such as, but not limited to reset and clock enable signals and/or other signals that can be communicated via clock trees in a device.
Therefore, in accordance with embodiments of the present invention there is provided circuitry that accepts an input signal and distributes the input signal to a plurality of locations within the circuitry. The circuitry includes a first circuit element and a second circuit element. The circuitry further includes a first plurality of wire segments disposed in proximity to the first circuit element. The first plurality of wire segments is substantially aligned to form a first bundle, and a first wire segment from the first plurality of wire segments is configured to route the input signal. The circuitry further includes a second plurality of wire segments disposed in proximity to the second circuit element. The second plurality of wire segments is substantially aligned to form a second bundle, and a second wire segment from the second plurality of wire segments is configured to route the input signal. The circuitry further includes an intersection element disposed at an intersection of the first bundle and the second bundle. The intersection element includes a first interconnecting wire segment that connects the first wire segment and the second wire segment, and the input signal is routed from the first wire segment to the second wire segment via the first interconnecting wire segment. The input signal is further transmitted to the second element from the second wire segment.
In accordance with another embodiment of the present invention there is provided circuitry accepting an input signal and distributing the input signal to a plurality of locations within the circuitry. The circuitry includes a first plurality of wire segments. The first plurality of wire segments is substantially aligned to form a first bundle, and a first wire segment from the first plurality of wire segments is configured to route the input signal. The circuitry further includes a second plurality of wire segments disposed in proximity to the first plurality of wire segments. The second plurality of wire segments is substantially aligned to form a second bundle, and a second wire segment from the second plurality of wire segments is configured to route the input signal. The circuitry further includes a third plurality of wire segments disposed in proximity to the first plurality of wire segments and the second plurality of wire segments. The third plurality of wire segments is substantially aligned to form a third bundle, and a third wire segment from the third plurality of wire segments is configured to route the input signal. The circuitry further includes a multiplexer component disposed at an intersection of the first bundle and the second bundle. The first wire segment and the second wire segment are connected to a multiplexing input end of the multiplexer component. The third wire segment is connected to a multiplexing output end of the multiplexer component. The input signal is routed from the first wire segment or the second wire segment to the third wire segment via the multiplexer component.
In accordance with another embodiment of the present invention there is provided circuitry accepting an input signal and distributing the input signal to a plurality of locations within the circuitry. The circuitry includes a first circuit element and a second circuit element. The circuitry further includes a first plurality of wire segments disposed in proximity to the first circuit element and the second circuit element. The first plurality of wire segments is substantially aligned to form a first bundle, and a first wire segment from the first plurality of wire segments is configured to route the input signal. The first wire segment has a bi-directional buffer that connects the first wire segment to the first circuit element and the second circuit element.
Further features of the invention, its nature and various advantages will be apparent upon consideration of the following detailed description, taken in conjunction with the accompanying drawings, in which like reference characters refer to like parts throughout, and in which:
Unless otherwise indicated, the discussion that follows will be based on an example of a programmable integrated circuit device such as an FPGA. However, it should be noted that the subject matter disclosed herein may be used in any kind of fixed or programmable device, including, but not limited to, an application-specific integrated circuit (ASIC).
The clock signals are transmitted via clock wires (e.g., see 106a-b in
Clock wire segments in adjacent channels can be connected using circuitry provided by a circuit connection block 107 (CB) placed between channels. For example, the circuit CB 107 can include an intersection of wire segments in adjacent channels, e.g., as shown in
When bidirectional wires (e.g., see 128 in
In one embodiment, the inputs 132 of the multiplexer 131 can include all of the other wire segments in the adjacent channels. In this way, complete flexibility can be provided, but at a very high cost. For example, when there are 32 clock wire segments in every channel, then each multiplexer would have 32×4−1=127 inputs, e.g., one for each segment in the four adjacent clock channels except for the segment the multiplexer is driving. Thus, the incurred hardware expense in this way could be significant.
In another implementation, the additional 4 inputs can choose a different plane instead of plane N+1, e.g., N+ any prime number, which is equivalent to renumbering the wire segments, as long as all 4 adjacent channels can be reached via the sequence of the additional connections. It is also possible for plane N to connect to planes N+d0, N+d1, N+d2, and N+d3 (modulo 32) in the 4 adjacent channels, where the d's can be different numbers.
In some instances, the sector(s) 105a-b may access at most a subset of the signals transmitted along wire segments 126 in clock channel 116, e.g., at most 16. Multiplexers may be used to perform a selection of any 16 of the 32 available clock signals from the wire segments in the clock channel.
In some instances, clock trees constructed in the configurable clock grid are driven from clock sources that may be located anywhere on the device. The clock source is connected to the clock grid and then routed to the root of the clock tree. Clock signals can be connected to the clock grid (inserted) in different ways. For example, each multiplexer 131 shown in
System 600 can be used in a wide variety of applications, such as computer networking, data networking, instrumentation, video processing, digital signal processing, Remote Radio Head (RRH), or any other application where the advantage of using programmable or reprogrammable logic is desirable. PLD 60 can be used to perform a variety of different logic functions. For example, PLD 60 can be configured as a processor or controller that works in cooperation with processor 601. PLD 60 may also be used as an arbiter for arbitrating access to shared resources in system 600. In yet another example, PLD 60 can be configured as an interface between processor 601 and one of the other components in system 600. It should be noted that system 600 is only exemplary, and that the true scope and spirit of the invention should be indicated by the following claims.
Various technologies can be used to implement PLDs 60 as described above and incorporating this invention.
It will be understood that the foregoing is only illustrative of the principles of the invention, and that various modifications can be made by those skilled in the art without departing from the scope and spirit of the invention. For example, the various elements of this invention can be provided on a PLD in any desired number and/or arrangement. One skilled in the art will appreciate that the present invention can be practiced by other than the described embodiments, which are presented for purposes of illustration and not of limitation, and the present invention is limited only by the claims that follow.
Venkata, Ramanand, How, Dana, Gutnik, Vadim, Schmit, Herman Henry, Ebeling, Carl
Patent | Priority | Assignee | Title |
10855278, | Aug 19 2019 | Credo Technology Group Limited | IC layout tiles with internal channel for signal distribution |
11349704, | Jun 17 2020 | Credo Technology Group Limited | Physical layer interface with redundant data paths |
11526650, | Mar 31 2021 | Cadence Design Systems, Inc.; Cadence Design Systems, INC | Switching power aware driver resizing by considering net activity in buffering algorithm |
11646959, | Jul 20 2020 | Credo Technology Group Limited | Active ethernet cable with broadcasting and multiplexing for data path redundancy |
Patent | Priority | Assignee | Title |
5656950, | Oct 26 1995 | XILINX, Inc.; Xilinx, Inc | Interconnect lines including tri-directional buffer circuits |
7317331, | Nov 08 2004 | Altera Corporation | Reconfigurable IC that has sections running at different reconfiguration rates |
20050076187, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Jun 10 2015 | HOW, DANA | Altera Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 035917 | /0803 | |
Jun 12 2015 | SCHMIT, HERMAN HENRY | Altera Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 035917 | /0803 | |
Jun 12 2015 | GUTNIK, VADIM | Altera Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 035917 | /0803 | |
Jun 15 2015 | VENKATA, RAMANAND | Altera Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 035917 | /0803 | |
Jun 16 2015 | EBELING, CARL | Altera Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 035917 | /0803 | |
Jun 26 2015 | Altera Corporation | (assignment on the face of the patent) | / |
Date | Maintenance Fee Events |
Sep 17 2020 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Sep 11 2024 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Date | Maintenance Schedule |
Mar 28 2020 | 4 years fee payment window open |
Sep 28 2020 | 6 months grace period start (w surcharge) |
Mar 28 2021 | patent expiry (for year 4) |
Mar 28 2023 | 2 years to revive unintentionally abandoned end. (for year 4) |
Mar 28 2024 | 8 years fee payment window open |
Sep 28 2024 | 6 months grace period start (w surcharge) |
Mar 28 2025 | patent expiry (for year 8) |
Mar 28 2027 | 2 years to revive unintentionally abandoned end. (for year 8) |
Mar 28 2028 | 12 years fee payment window open |
Sep 28 2028 | 6 months grace period start (w surcharge) |
Mar 28 2029 | patent expiry (for year 12) |
Mar 28 2031 | 2 years to revive unintentionally abandoned end. (for year 12) |