Examples of the present disclosure generally relate to aligning transmit (TX) and receive (RX) circuits between integrated circuits (ICs) in a multi-chip devices.
Many devices include multiple ICs (or dies or chips) that are interconnected on a substrate or interposer. That is, chip-to-chip connections can be used to form devices that are 1×2, 1×3, 1×4, etc. Typically, each of the ICs is a different tapeout (e.g., a different set of masks is used for each IC in the multiple chip device). One reason for doing so is so that the RX and TX circuits for the chip-to-connections align. That is, the chip-to-connections do not cross when navigating through the interposer. Thus, even though the ICs may have essentially the same hardware components (e.g., hardware modules), different tapeouts and mask sets are used, which is costly.
One embodiment herein is a device that includes an interposer, a first IC disposed on the interposer where the first IC includes a first row of transmit physical layers (TX PHYs) parallel to a periphery of the first IC and a second row of receive physical layers (RX PHYs) parallel to the periphery of the first IC, and a second IC disposed on the interposer where the second IC includes a third row of TX PHYs parallel to a periphery of the second IC and a fourth row of RX PHYs parallel to the periphery of the second IC. The device also includes chip-to-chip connections, in the interposer, coupling respective ones of the RX PHYs in the first IC to the TX PHYs in the second IC and respective ones of the RX PHYs in the second IC to the TX PHYs in the first IC.
Another embodiment herein is a method that includes transmitting data from a first IC to a second IC using chip-to-chip connections in an interposer where the first and second ICs are disposed on the interposer and receiving the data at the second IC. The first IC includes a first row of transmit physical layers (TX PHYs) parallel to a periphery of the first IC and a second row of receive physical layers (RX PHYs) parallel to the periphery of the first IC and the second IC includes a third row of TX PHYs parallel to a periphery of the second IC and a fourth row of RX PHYs parallel to the periphery of the second IC. Moreover, the chip-to-chip connections couple respective ones of the RX PHYs in the first IC to the TX PHYs in the second IC and respective ones of the RX PHYs in the second IC to the TX PHYs in the first IC.
Another embodiment herein is a device that includes an interposer, a first FPGA disposed on the interposer where the first FPGA includes a first circuit design, and a second FPGA disposed on the interposer where the second FPGA includes a second circuit design that is a mirror of the first circuit design. Moreover, the interposer provides connections between the first and second FPGAs.
Another embodiment herein is a device that includes an interposer, a first FPGA disposed on the interposer where the first FPGA includes a first circuit design, and a second FPGA disposed on the interposer where the second FPGA includes the first circuit design and is rotated relative to the first FPGA. Moreover, the interposer provides connections between the first and second FPGAs.
So that the manner in which the above recited features can be understood in detail, a more particular description, briefly summarized above, may be had by reference to example implementations, some of which are illustrated in the appended drawings. It is to be noted, however, that the appended drawings illustrate only typical example implementations and are therefore not to be considered limiting of its scope.
To facilitate understanding, identical reference numerals have been used, where possible, to designate identical elements that are common to the figures. It is contemplated that elements of one example may be beneficially incorporated in other examples.
Various features are described hereinafter with reference to the figures. It should be noted that the figures may or may not be drawn to scale and that the elements of similar structures or functions are represented by like reference numerals throughout the figures. It should be noted that the figures are only intended to facilitate the description of the features. They are not intended as an exhaustive description of the embodiments herein or as a limitation on the scope of the claims. In addition, an illustrated example need not have all the aspects or advantages shown. An aspect or an advantage described in conjunction with a particular example is not necessarily limited to that example and can be practiced in any other examples even if not so illustrated, or if not so explicitly described.
Embodiments herein describe arranging TX and RX circuitry in ICs such that rotated and mirrored ICs are aligned when connected in a multiple-chip device. In one embodiment, the TX circuitry (e.g., TX physical layer or PHY) is arranged in one row while the RX circuitry (e.g., RX physical layer or PHY) is arranged in another row. As such, when an IC is rotated or mirrored, at least one TX PHY is aligned with a RX PHY on the other IC. As such, non-crossing chip-to-chip connections can be formed through the interposer. For rotated ICs, the TX and RX PHYs are aligned, but the bits may have to be out of reorder. Software or hardware may reorder the bits before data received from an IC is processed in the receiving IC.
In this embodiment, the ICs 110 and 115 are formed from different tapeouts (e.g., different mask sets). The ICs 110 and 115 may be application specific integrated circuits (ASICs), field programmable gate arrays (FPGA), systems of chip (SoC), and the like. In one embodiment, the ICs 110 and 115 may have the same or very similar functions, hardware modules, or hardware blocks. However, a different tapeout may be used to form the two ICs 110, 115 so that they have RX and TX circuitry that align when disposed side-by-side on the interposer 105.
The alignment between RX PHYs 125 and TX PHYs 130 are shown in more detail in the blowout in
Preferably, if the ICs 110 and 115 have substantially the same hardware modules, it would save costs to use a single tapeout for both of the ICs 110 and 115 and still have the TX and RX circuitry align. This will be discussed in
To create mirrored circuit layouts for two ICs, after designing one of the ICs, a chip designer can instruct the software design application to mirror the design to generate a mirrored circuitry layout for the other IC. This may be a much easier design process than designing two different ICs designs, like the ICs 110 and 115 in
In this example, the RX PHYs 225A and 225B and the TX PHYs 230A and 230B are in the IC 210 while the RX PHYs 225C and 225D and the TX PHYs 230C and 230C are in the IC 215. Further,
The chip-to-chip connections 220 through the interposer 105 connect the RX PHYs 225A and 225B in the IC 210 to corresponding TX PHYs 230C and 230C in the IC 215 and connect the RX PHYs 225C and 225D in the IC 215 to corresponding TX PHYs 230A and 230C in the IC 210. As shown, the connections 220 cross in the interposer 105. This means the connections 220 have to be routed using multiple layers in the interposer 105. However, as discussed above, there are typically very few layers in an interposer 105 which means there is limited options for routing crossing chip-to-chip connections in the interposer 105. As such, it may be impossible to connect mirrored ICs 210 and 215 using the interposer 105 due to limited routing space in the interposer 105 (or a more expensive interposer with more layers has to be used).
The blowout in
The chip-to-chip connections 320 through the interposer 105 connect the RX PHYs 325A and 3258 in the IC 310A to corresponding TX PHYs 330C and 330C in the IC 310B and connect the RX PHYs 325C and 325D in the IC 310B to corresponding TX PHYs 330A and 330C in the IC 310A. As shown, the connections 320 are non-crossing in the interposer 105, which provides the advantages discussed above. This means the connections 220 do not have to be routed using multiple layers in the interposer 105. Thus, this arrangement of the RX PHYs 325 and the TX PHYs 330 provides for aligned circuitry when using the same, but rotated ICs. But the embodiments described in FIGS. 4 and 5 provide a different arrangement that provides aligned TX and RX circuitry for both mirror ICs (e.g.,
Unlike in
Notably, instead of lining up the RX and TX PHYs in columns in
The blowout in
The chip-to-chip connections 520 through the interposer 105 connect the RX PHYs 525A and 525B in the IC 510A to corresponding TX PHYs 530C and 530C in the IC 510B and connect the RX PHYs 525C and 525D in the IC 510B to corresponding TX PHYs 530A and 530C in the IC 510A. As shown, the connections 520 are non-crossing in the interposer 105, which provides the advantages discussed above. This means the connections 20 do not have to be routed using multiple layers in the interposer 105. Thus, like in
However, while the TX and RX circuitry are aligned when the ICs 510 are rotated relative to each, the bits transmitted between the RX PHYs 525 and the TX PHYs 530 may be out of order. This is because, when rotated, the RX and TX PHYs in the IC 510A will be aligned with different RX and TX PHYs in the IC 510B. That is, unlike in the mirrored IC embodiment in
However, bit mis-ordering occurs (for other reasons) in chip-to-chip interfaces. There are a variety of different bit re-ordering techniques that can be used to reorder the bits after they are received by the RX PHYs 525. That is, the bits can be reordered by hardware or software elements in the receiving IC before the data is then processed by other circuitry in the receiving IC.
While
In one embodiment, the ICs in
At block 610, the second IC receives the data from the first IC using the chip-to-chip connections in the interposer. Moreover, in parallel or at different times, the second IC can transmit data to the first IC using the chip-to-chip connections.
Unlike 1×2, 1×3, or 1×4 arrangements where at least some of the ICs only use one side to communicate with a neighboring IC, in the 2×2 configuration shown in
The ICs 705 in
In this embodiment, the interposer 700 has a surface area that exceeds a reticle limit of the fabrication techniques used to fabricate the interposer. The size of an IC 705 is limited by the reticle limit which defines the amount of area that can be exposed and processed using masks. Currently, for a monolithic die, the maximum size is limited to 33-26 mm which is the reticle limit. Thus, the widths and heights of the ICs 705 are limited to this reticle limit.
In order for the interposer 700 to support multiple ICs 705 which have sizes that are at or just below the reticle limit, it has to have a surface area that exceeds the reticle limit. This means that interposer 700 cannot be fabricated using a single exposure process. Instead, the interposer 700 includes a vertical stitch 720 and a horizontal stitch 730 where multiple exposure areas slightly overlap. This permits the interposer to still have traces to form the connections 710 and have sufficient surface area to support the 2×2 configuration of the ICs 705.
In one embodiment, the interposer 700 has a total surface area that is three times the size of the reticle limit (e.g., the maximum reticle field). Moreover, unlike interposers that support 1×2, 1×3, and 1×4 configurations that may only have horizontal stitches, the interposer 700 has both a horizontal stitch 730 and a vertical stitch 720.
In the preceding, reference is made to embodiments presented in this disclosure. However, the scope of the present disclosure is not limited to specific described embodiments. Instead, any combination of the described features and elements, whether related to different embodiments or not, is contemplated to implement and practice contemplated embodiments. Furthermore, although embodiments disclosed herein may achieve advantages over other possible solutions or over the prior art, whether or not a particular advantage is achieved by a given embodiment is not limiting of the scope of the present disclosure. Thus, the preceding aspects, features, embodiments and advantages are merely illustrative and are not considered elements or limitations of the appended claims except where explicitly recited in a claim(s).
As will be appreciated by one skilled in the art, the embodiments disclosed herein may be embodied as a system, method or computer program product. Accordingly, aspects may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “circuit,” “module” or “system.” Furthermore, aspects may take the form of a computer program product embodied in one or more computer readable medium(s) having computer readable program code embodied thereon.
Any combination of one or more computer readable medium(s) may be utilized. The computer readable medium may be a computer readable signal medium or a computer readable storage medium. A computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer readable storage medium would include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of this document, a computer readable storage medium is any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus or device.
A computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof. A computer readable signal medium may be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device.
Program code embodied on a computer readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc., or any suitable combination of the foregoing.
Computer program code for carrying out operations for aspects of the present disclosure may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C++ or the like and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).
Aspects of the present disclosure are described below with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments presented in this disclosure. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
These computer program instructions may also be stored in a computer readable medium that can direct a computer, other programmable data processing apparatus, or other devices to function in a particular manner, such that the instructions stored in the computer readable medium produce an article of manufacture including instructions which implement the function/act specified in the flowchart and/or block diagram block or blocks.
The computer program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
The flowchart and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various examples of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of instructions, which comprises one or more executable instructions for implementing the specified logical function(s). In some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts or carry out combinations of special purpose hardware and computer instructions.
While the foregoing is directed to specific examples, other and further examples may be devised without departing from the basic scope thereof, and the scope thereof is determined by the claims that follow.