US20140013295A1 - Method to automatically add power line in channel between macros - Google Patents
Method to automatically add power line in channel between macros Download PDFInfo
- Publication number
- US20140013295A1 US20140013295A1 US14/022,310 US201314022310A US2014013295A1 US 20140013295 A1 US20140013295 A1 US 20140013295A1 US 201314022310 A US201314022310 A US 201314022310A US 2014013295 A1 US2014013295 A1 US 2014013295A1
- Authority
- US
- United States
- Prior art keywords
- channel
- power
- power line
- metal layer
- circuit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Images
Classifications
-
- G06F17/50—
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/394—Routing
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
Definitions
- the present disclosure is generally directed to a method to automatically add at least one power line with proper polarity or at least two power lines with opposite polarities in a channel between at least two macros.
- ASIC application-specific integrated circuit
- SoC system on a chip
- the macros are generally placed in clusters due to timing and/or physical constraints.
- the clustering of hard macro cells can be so large that signal delay on wire connections to, from and/or through the macro cell clusters becomes of concern for ASIC/SoC performance.
- Gaps between pairs of macro cells may be defined as channels when the gaps are smaller than certain threshold values. Buffering in the channels is an efficient way to speed up signals on wire connections. To enable buffering, the power grid integrity in the channels should be guaranteed.
- the power grid integrity in a channel may mean that there should be at least two power supply lines with opposite polarities (one power line and one ground line) existing in that channel.
- the size of the channels (width for vertical channels or height for horizontal channels) between the macro cells is not large enough to satisfy the power grid integrity requirement.
- One conventional solution is to allocate larger channels to allow at least two power lines with opposite polarities to be present in the channels. However, this may lower the macro device placement density and therefore increase the size of the die chip, which increases the cost of the final products.
- Another conventional solution is to manually patch individual channels that are intended to be used. However, manual patching is a time-consuming, tedious and error-prone process, and the results may not be consistently repeatable.
- a method in a particular embodiment, includes detecting channels between macros in an integrated circuit. Each channel is associated with a region between two macros such that a shortest distance of the region satisfies a. threshold value. The method also includes automatically adding at least one power line within at least one channel to satisfy a power integrity issue within the at least one channel. The power integrity issue is satisfied when two power lines having opposite polarity are coupled to provide power to a device within the at least one channel.
- an automated circuit design tool in another embodiment, includes a non-transitory processor-readable medium having processor-executable instructions that are executable to cause a processor to detect channels between macros in an integrated circuit. Each channel is associated with a region between two macros such that a shortest distance of the region satisfies a threshold value.
- the processor-executable instructions are also executable to cause the processor to automatically add at least one power line within at least one channel to satisfy a power integrity issue within the at least one channel. The power integrity issue is satisfied when two power lines having opposite polarity are coupled to provide power to a device within the at least one channel.
- an apparatus in another embodiment, includes means for detecting channels between macros in an integrated circuit. Each channel is associated with a region between two macros such that a shortest distance of the region satisfies a threshold value.
- the apparatus also includes means for automatically adding at least one power line within at least one channel to satisfy a power integrity issue within the at least one channel. The power integrity issue is satisfied when two power lines having opposite polarity are coupled to provide power to a device within the at least one channel.
- a computer-readable medium embodying computer-readable data comprising a data file that represents a circuit designed using an automated circuit design tool.
- the circuit includes a first channel between at least two macros disposed in the circuit such that a shortest distance between the at least two macros satisfies a threshold value.
- the circuit also includes a first power line that is automatically added in the first channel by an automated circuit design tool in response to detecting a power integrity issue within the first channel. The power integrity issue is satisfied by two power lines having opposite polarity being coupled to provide power to a device within the first channel.
- a circuit designed using an automated circuit design tool includes a first channel between at least two macros disposed in the circuit such that a shortest distance between the at least two macros satisfies a threshold value.
- the circuit also includes a first power line that is automatically added in the first channel by the automated circuit design tool in response to detecting a power integrity issue within the first channel. The power integrity issue is satisfied by two power lines having opposite polarity being coupled to provide power to a device within the first channel.
- One particular advantage provided by the disclosed embodiments is that a power grid integrity in channels to enable buffering in the channels can be accomplished by an automated design tool within regular machine run time.
- Another advantage provided by the disclosed embodiments is that the automated design can be repeated with the same results consistently.
- FIG. 1 is a diagram of a particular illustrative embodiment of a system having a power line with proper polarity added in a channel via an automatic method
- FIG. 2 is a diagram of a particular illustrative embodiment of a system having a power line with proper polarity added in a channel via an automatic method and a device in the channel;
- FIG. 3 is a diagram of a particular illustrative embodiment of a system having two power lines with opposite polarities added in a channel via an automatic method
- FIG. 4A is a diagram of a particular illustrative embodiment of a system having a power line with proper polarity added in a horizontal channel via an automatic method
- FIG. 4B is a diagram of a particular illustrative embodiment of a system having multiple power lines added in a configuration that is not parallel to a horizontal channel via an automatic method;
- FIG. 5 is a diagram of a particular illustrative embodiment of a system to implement a method to automatically add a power line in a channel;
- FIG. 6 is a flow diagram of a particular illustrative embodiment of a method to automatically patch a power grid integrity issue within at least one channel;
- FIG. 7 is a diagram of a particular illustrative embodiment of automatically adding a power line in a vertical channel as well as in a horizontal channel;
- FIG. 8 is a diagram of a particular illustrative alternative embodiment of automatically adding a power line in a horizontal channel
- FIG. 9 is a flow diagram of a particular illustrative embodiment of a method to automatically add a power line in a channel
- FIG. 10 is a flow diagram of another particular illustrative embodiment of a method to automatically add a power line in a channel
- FIG. 11 is a continuation of the flow diagram of FIG. 10 ;
- FIG. 12 is a continuation of the flow diagrams of FIG. 10 and FIG. 1
- FIG. 13 is a diagram of a particular illustrative embodiment of an automated design tool to implement a method to automatically add a power line in a channel;
- FIG. 14 is a diagram of a particular illustrative embodiment of a circuit designed using a method to automatically add a power line in a channel.
- FIG. 15 is a block diagram of a communications device including devices and circuits designed using a method to automatically add a power line in a channel.
- a first macro 110 may be disposed in a circuit adjacent a second macro 120 .
- the first macro 110 and the second macro 120 may be memory cells, mixed-signal devices, any other components of an application-specific integrated circuit (ASIC), a system on a chip (SoC), or any combination thereof.
- a channel 130 may be defined between the first macro 110 and the second macro 120 whenever a shortest distance 140 between the first macro 110 and the second macro 120 is below a threshold value.
- the threshold value may be smaller than the pitch between adjacent system power supply lines with opposite polarities in the power grid.
- a system power supply line 150 may be disposed within the channel 130 .
- a first power line 160 with a polarity opposite to the system power supply line 150 may be automatically added in the channel 130 when less than two system power supply lines 150 with opposite polarities are detected within the channel 130 using a method to automatically add a power line to a channel, such as will be discussed with respect to FIGS. 6 and 9 - 12 .
- the method may include automatically detecting the number of power supply lines in the channel 130 , the polarities of the power supply lines in the channel, and then adding the first power line 160 with proper polarity in the channel 130 between at least two macros 110 , 120 when less than two system power supply lines 150 with opposite polarities are detected within the channel 130 .
- “opposite” polarities indicate different voltages that are applied to the power supply lines.
- a positive voltage may be opposite to a ground voltage
- a negative voltage may be opposite to a ground voltage
- a negative voltage may be opposite to a positive voltage, based on voltages that are used to power the ASIC/SoC.
- a “proper” polarity of an automatically added line when a line is detected in the channel is a polarity opposite to the polarity of the detected line.
- a “proper” polarity of an automatically added line when no lines are detected in the channel is an opposite polarity to another line that is automatically added to the channel so that the two added lines have opposite polarities.
- the method may be implemented in circuit design software, automated design software, a circuit design tool, an automated design tool, and the like.
- the power grid integrity in channels to enable buffering in the channels can be accomplished by an automated design tool within regular machine run time.
- the automated design can be repeated with the same results consistently.
- FIG. 2 a diagram of a particular illustrative embodiment of a system having a power line added in a channel via an automatic method and a device in the channel is depicted and generally designated 200 .
- a device 202 may be disposed in the channel 130 between the macros 110 and 120 and coupled to the system power supply line 150 and the first power line 160 in the channel 130 .
- the device 202 may be a decoupling capacitor, a substrate well connector, a buffer, or an inverter.
- the first power line 160 and the device 202 may be automatically added according to the automatic method, such as will be discussed with respect to FIGS. 6 and 9 - 12 .
- the first power line 160 may be automatically added in the channel 130 when one system power supply line 150 is detected within the channel 130 .
- the polarity of the first power line 160 should be opposite to that of the system power supply line 150 to satisfy the power grid integrity requirement.
- the first power line 160 will have a polarity opposite to a polarity of the one system power supply line 150 that is detected within the channel 130 . For example, if the polarity of the system power supply line 150 is positive (power), the polarity of the first power line 160 may be chosen to be ground. Similarly, if the polarity of the system power supply line 150 is ground, the polarity of the first power line 160 may be chosen to be power (positive).
- FIG. 3 a diagram of a particular illustrative embodiment of a system having two power lines with opposite polarities added in a channel via an automatic method is depicted and generally designated 300 .
- a second power line 360 with polarity opposite to the polarity of the first power line 160 may automatically be added in the channel 130 when no system power supply lines are detected within the channel 130 .
- the first power line 160 has the polarity opposite to the polarity of the second power line 360 .
- the polarity of the first power line 160 is positive, the polarity of the second power line 360 will be chosen to be ground.
- the polarity of the first power line 160 is ground, the polarity of the second power line 360 will be chosen to be positive.
- FIGS. 4A and 413 depict alternative methods to automatically add a power line in a horizontal channel.
- FIG. 4A a diagram of a particular illustrative embodiment of a system having a power line added in a horizontal channel via an automatic method is depicted and generally designated 400 .
- the system power supply line 150 may be disposed within the horizontal channel 430 , and a system power supply line 450 haying opposite polarity to the system power supply line 150 may be over a macro 120 .
- the first power line 160 with a polarity opposite to the polarity of the system power supply line 150 may be automatically added in the horizontal channel 430 between at least two macros 110 , 120 when less than two system power supply lines 150 with opposite polarities are detected within the horizontal channel 430 using a method to automatically add a power line to a channel.
- the method to automatically add a power line to a channel may duplicate the methods of FIGS. 1-3 , as applied to horizontal channels.
- the method to automatically add a power line to a channel may also include adding a device disposed in the horizontal channel 430 , similar to adding the device 202 in the vertical channel 130 between the macros 110 and 120 , the device 202 coupled to the system power supply line 150 and the first power line 160 in the vertical channel 130 , as shown in FIG. 2 .
- FIG. 4A the method to automatically add a power line to a channel may duplicate the methods of FIGS. 1-3 , as applied to horizontal channels.
- the method to automatically add a power line to a channel may also include adding a device disposed in the horizontal channel 430 , similar to adding the device 202 in the vertical channel 130 between the macros 110 and 120 , the device 202 coupled to the system power supply line 150 and the first power line 160 in the vertical channel 130 , as shown in FIG. 2 .
- the method to automatically add a power line to a channel may include automatically adding a second power line in the horizontal channel 430 when no system power supply lines are detected within the horizontal channel 430 , similar to automatically adding the second power line 360 in the vertical channel 130 when no system power supply lines are detected within the vertical channel 130 , as shown in FIG. 3 .
- FIG. 4B a diagram of a particular illustrative embodiment of a system having multiple power lines added in a configuration that is not parallel to a horizontal channel via an automatic method is depicted and generally designated 410 .
- the method to automatically add a power line to a channel may include automatically adding one or more additional power lines 460 that connect to a system power supply line 450 not in the channel 430 , the system power supply line 450 having the same polarity as the additional power lines 460 , the additional power lines 460 extending into the channel 430 .
- Some other additional power lines 465 may also be automatically added that connect to another system power supply line 455 not in the channel 430 , the system power supply line 455 having the same polarity as the additional power lines 465 , the additional power lines 465 extending into the channel 430 .
- the polarity of the system power supply line 450 and the additional power lines 460 is opposite to the polarity of the system power supply line 455 and the additional power lines 465 .
- the additional power lines 460 and 465 may extend in a direction not parallel to the channel 430 .
- the system power supply lines 450 and 455 may be disposed above the macro 120 .
- system power supply lines 450 and 455 may be substantially parallel to the other system power supply lines 150 and 470 .
- the automatic method may further include detecting the system power supply lines 450 and 455 to find out their respective polarities and locations.
- the power grid integrity of the horizontal channel 430 may be accomplished with the additional power lines 460 and 465 .
- a power line may be automatically added to a channel, such as in
- FIGS. 1-3 , 4 A or 4 B after detecting the channel 130 or 430 between the at least two macros 110 , 120 by determining that a shortest distance 140 between the at least two macros 110 , 120 is at most a threshold value.
- the threshold value may be smaller than the smallest value of the pitch between adjacent system power supply lines with opposite polarities in the power grid.
- the system 500 includes a device 502 that includes a processor 504 coupled to a memory 506 .
- the memory 506 includes automated design tool instructions 508 , circuit detection instructions 510 , and circuit tool instructions 512 .
- the memory also includes a data file 518 .
- the data file 518 includes threshold values 514 and a circuit layout 516 .
- the device 502 is coupled to an input device 530 and a display 550 .
- the processor 504 may be configured to access the circuit detection instructions 510 , the threshold values 514 , and the circuit layout 516 to detect whether there is a channel between at least two macros. If a channel is detected between a first macro and a second macro, the processor 504 may be configured to access the circuit detection instructions 510 and the circuit layout 516 to detect whether there are less than two system power supply lines with opposite polarities within the channel. If there are less than two system power supply lines with opposite polarities within the channel, the processor 504 may be configured to access the automated design tool instructions 508 , the circuit tool instructions 512 , and the circuit layout 516 to automatically add a first power line with proper polarity in the channel.
- the processor 504 may be configured to implement an automatic method to add the first power line 160 in the channel 130 , 430 as illustrated in FIG. 1 and FIG. 4A .
- the processor 504 may also be configured to implement an automatic method to add the device 202 in the channel 130 , as depicted in FIG. 2 .
- the processor 504 may be configured to implement an automatic method to add the first power line 160 and the second power line 360 in the channel 130 , as shown in FIG. 3 .
- the processor 504 may be configured to implement an automatic method to add the additional power line 460 to the system power supply line 450 , where the additional power line 460 may extend in a direction not parallel to the channel 430 , as illustrated in FIG. 4B .
- FIG. 6 a diagram of a particular illustrative embodiment of a method to automatically patch a power grid integrity issue within at least one channel is depicted and generally designated 600 .
- the method 600 includes checking macros in an integrated circuit design for channels between respective macros, as indicated at 602 .
- the integrated circuit may include the macros 110 and 120 and the channel 130 , as depicted in FIGS. 1-3 .
- the method 600 includes detecting power grid integrity issues within the channels, as indicated at 604 .
- the system power supply line 150 may be detected within the channel 130 , 430 as shown in FIGS. 1 , 2 , 4 A, and 4 B, or no system power supply lines may be detected within the channel 130 , as depicted in FIG. 3 .
- the method 600 includes automatically patching the power grid integrity issue within at least one channel that lacks the power grid integrity, as indicated at 606 .
- the first power line 160 with proper polarity may be automatically added in the channel 130 , 430 as shown in FIGS. 1 , 2 , and 4 A, or the first power line 160 and the second power line 360 , which have opposite polarities, may be automatically added in the channel 130 , as depicted in FIG. 3 .
- one or more additional power lines 460 , 465 with opposite polarities may be extended into the horizontal channel 430 in a direction that is not parallel to the horizontal channel 430 or the horizontal system power supply lines 150 , 450 , 455 , 470 , as shown in FIG. 4B , for example.
- the method 600 may further include determining whether the at least one channel is a vertical channel, as in FIGS. 1-3 , or a horizontal channel, as in FIGS. 4A and 4B .
- the method 600 may further include adding at least one of a tap cell and a decoupling capacitor cell in the at least one channel.
- the device 202 may be added in the channel 130 , as shown in FIG. 2 .
- the method 600 may further include connecting a system power supply line disposed in an upper metal layer of the integrated circuit with an additional power line disposed in a lower metal layer of the integrated circuit, as will be discussed in further detail with respect to FIG. 7 .
- the method 600 may further include connecting a system power supply line disposed in an upper metal layer of the integrated circuit with at least one additional power line disposed in a lower metal layer of the integrated circuit, as will be discussed in further detail with respect to FIG. 8 .
- the method 600 may further include having at least one additional power line extend in a direction not parallel to a respective horizontal channel.
- the additional power lines 460 and 465 may extend in a direction not parallel to the horizontal channel 430 shown in FIG. 4B .
- a substrate 702 of the integrated circuit has a lowest metal layer 704 disposed thereon, the lowest metal layer 704 being designated the metal- 1 or M 1 layer.
- a first dielectric insulating layer 706 is disposed on the lowest metal layer 704 .
- a second metal layer 708 is disposed on the first dielectric insulating layer 706 .
- a second dielectric insulating layer 710 is disposed on the second metal layer 708 .
- a third metal layer 712 is disposed on the second dielectric insulating layer 710 , the third metal layer 712 being designated the metal- 3 or M 3 layer.
- a third dielectric insulating layer 714 is disposed on the third metal layer 712 .
- a fourth metal layer 716 is disposed on the third dielectric insulating layer 714 .
- a fourth dielectric insulating layer 718 is disposed on the fourth metal layer 716 .
- a fifth metal layer 720 is disposed on the fourth dielectric insulating layer 718 .
- a fifth dielectric insulating layer 722 is disposed on the fifth metal layer 720 .
- a sixth metal layer 724 is disposed on the fifth dielectric insulating layer 722 , the sixth metal layer 724 being designated the metal- 6 or M 6 layer.
- a sixth dielectric insulating layer 726 is disposed on the sixth metal layer 724 .
- a seventh metal layer 728 is disposed on the sixth dielectric insulating layer 726 . In other illustrative embodiments, more alternating dielectric insulating and metal layers may be added.
- a connection between the M 6 layer 724 and the M 3 layer 712 may be made through conductive vias 730 and 732 .
- the conductive vias 730 and 732 may be suitably insulated from the intervening metal layers 716 and 720 .
- Automatically patching the power grid integrity issue for a vertical channel may further include connecting a system power supply line disposed in an upper metal layer of the integrated circuit, such as the M 6 layer 724 shown in FIG. 7 , with an additional power line 160 ( FIG. 1 ) disposed in a lower metal layer of the integrated circuit, such as the M 3 layer 712 shown in FIG. 7 .
- the conductive vias 730 and 732 may be used to connect a system power supply line disposed in an upper metal layer of the integrated circuit, such as the M 6 layer 724 shown in FIG. 7 , with an additional power line disposed in a lower metal layer of the integrated circuit, such as the M 3 layer 712 shown in FIG. 7 .
- the conductive vias 730 and 732 may be used to automatically patch the power grid integrity issue for the vertical channel.
- the system power supply line 150 and the additional power lines 160 and 360 shown in FIGS. 1-3 may be disposed in a lower metal layer of the integrated circuit, such as the M 3 layer 712 shown in FIG. 7 , and may be connected through the conductive vias 730 and 732 to system power supply lines (not shown in FIGS. 1-3 ) disposed in an upper metal layer of the integrated circuit. such as the M 6 layer 724 shown in FIG. 7 .
- the particular illustrative embodiment of automatically adding a power line in a vertical channel depicted and generally designated 700 is also applicable to the horizontal channel case, as shown in FIG. 4A .
- the system power supply line 150 and the additional power line 160 shown in FIG. 4A may be disposed in an upper metal layer of the integrated circuit, such as the M 6 layer 724 shown in FIG. 7 , and may be connected through the conductive vias 730 and 732 to a system power supply line (not shown in FIG. 4A ) disposed in a lower metal layer of the integrated circuit, such as the M 3 layer 712 shown in FIG. 7 .
- a substrate 802 of an integrated circuit has a lowest metal layer 804 disposed thereon, the lowest metal layer 804 being designated the metal- 1 or M 1 layer.
- a first dielectric insulating layer 806 is disposed on the lowest metal layer 804 .
- a second metal. layer 808 is disposed on the first dielectric insulating layer 806 .
- a second dielectric insulating layer 810 is disposed on the second metal layer 808 .
- a third metal layer 812 is disposed on the second dielectric insulating layer 810 , the third metal layer 812 being designated the metal- 3 or M 3 layer.
- a third dielectric insulating layer 814 is disposed on the third metal layer 812 .
- a fourth metal layer 816 is disposed on the third dielectric insulating layer 814 .
- a fourth dielectric insulating layer 818 is disposed on the fourth metal layer 816 .
- a fifth metal layer 820 is disposed on the fourth dielectric insulating layer 818 .
- a fifth dielectric insulating layer 822 is disposed on the fifth metal layer 820 .
- a sixth metal layer 824 is disposed on the fifth dielectric insulating layer 822 , the sixth metal layer 824 being designated the metal- 6 or M 6 layer.
- a sixth dielectric insulating layer 826 is disposed on the sixth metal layer 824
- seventh metal layer 828 is disposed on the sixth dielectric insulating layer 826
- the seventh metal layer 828 being designated the metal- 7 or M 7 layer.
- more alternating dielectric insulating and metal layers may be added.
- automatically patching the power grid integrity issue for a horizontal channel may further include connecting a system power supply line disposed in an upper metal layer of the integrated circuit, such as the M 6 layer 824 shown in FIG. 8 , with one or more additional power lines 460 ( FIG. 4B ) disposed in a lower metal layer of the integrated circuit, such as the M 5 layer 820 shown in FIG. 8 .
- the connection between the M 6 layer 824 and the MS layer 820 may be made through one or more conductive vias like conductive vias 834 and 836 , as shown in FIG. 8 , for example.
- At least one additional power line 460 disposed in the lower metal layer may extend in a direction not parallel to a respective horizontal channel, as shown by the additional power lines 460 , 465 in FIG. 4B .
- the additional power lines 460 , 465 disposed in the M 5 layer 820 may be further connected to an even lower metal layer, such as the M 3 layer 812 , through other conductive vias 830 and 832 .
- the conductive vias 830 and 832 may be suitably insulated from the intervening M 4 layer 816 .
- the method 900 includes detecting a gap between two macros, such as the macros 110 and 120 of FIG. 1 , as indicated at 902 .
- the method 900 includes determining whether the gap is smaller than a threshold value, as indicated at 904 . If the gap is not smaller than a threshold value, then another macro is considered, as indicated at 910 . If the gap is smaller than a threshold value, then a channel, such as the channel 130 of FIGS. 1-4A , has been detected.
- the method 900 includes detecting system power supply lines and their polarities, such as the system power supply line 150 of FIGS. 1-4A , in the channel, as indicated at 906 .
- the method 900 includes determining whether there are less than two system power supply lines with opposite polarities in the channel, as indicated at 908 . If there are not less than two system power supply lines with opposite polarities in the channel, then another macro is considered, as indicated at 910 . If there are less than two system power supply lines 150 with opposite polarities in the channel 130 , then a first power line 160 with proper polarity should be added to the channel 130 .
- the method 900 includes adding the first power line in the channel automatically, as indicated at 912 .
- the method 900 includes determining whether there is less than one system power supply line in the channel, as indicated at 914 . If there is not less than one system power supply line in the channel, then another macro is considered, as indicated at 910 , If there is less than one system power supply line 150 in the channel 130 , then a second power line 360 with a polarity opposite to the polarity of the first power line 160 should be added to the channel 130 .
- the method 900 includes adding the second power line in the channel automatically, as indicated at 916 .
- the method 900 includes considering another macro, as indicated at 910 . In a particular embodiment, the method 900 may be used to automatically consider substantially all macros in an integrated circuit.
- FIGS. 10-12 a flow diagram of another particular illustrative embodiment of a method to automatically add a power line in a channel is depicted and generally designated 1000 .
- the method 1000 starts, as indicated at 1002 , and includes scanning through all macros in a circuit design, checking the top and right sides of each macro for channels based on pre-defined widths and heights, channels on the top side being horizontal channels and channels on the right side being vertical channels, as indicated at 1004 .
- Channel heights correspond to horizontal channels
- channel widths correspond to vertical channels.
- the method 1000 includes inspecting the power/ground power grid integrity in the channels, as indicated at 1006 .
- the method 1000 includes determining for vertical channels if at least one pair of power/ground stripes (two power supply lines with opposite polarities) exists in the vertical channel, as indicated at 1012 (as in the particular illustrative embodiments shown in FIGS. 1-3 ). If at least one pair of power/ground stripes exists in the vertical channel, then nothing more is done with that channel and another channel is considered until all the channels have been considered, as indicated at 1014 . If at least one pair of power/ground stripes does not exist in the vertical channel, then the method 1000 includes determining whether one or none of Vdd (power) and Vss (ground) exists in the vertical channel, as indicated at 1016 .
- Vdd power
- Vss ground
- Vdd nor Vss exists in the vertical channel
- a pair of power/ground stripes are added automatically in the vertical channel, as indicated at 1018 (as shown in FIG. 3 ), and then another channel is considered until all the channels have been considered, as indicated at 1038 in FIG. 12 .
- the opposite one is added automatically in the vertical channel, as indicated at 1020 (as shown in FIGS. 1-2 ), and then another channel is considered until all the channels have been considered, as indicated at 1038 in FIG. 12 .
- the method 1000 includes determining for horizontal channels if at least a pair of power/ground stripes exists in the horizontal channel, as indicated at 1008 (as in the particular illustrative embodiments shown in FIGS. 4A and 4B ). If at least a pair of power/ground stripes exists in the horizontal channel, then nothing more is done with that channel and another channel is considered until all the channels have been considered, as indicated at 1010 . Referring to FIG. 11 , if at least a pair of power/ground stripes does not exist in the horizontal channel, then the method 1000 includes determining whether to use the M 6 metal layer or the M 5 metal layer to patch the horizontal channel, as indicated at 1022 .
- the method 1000 includes determining whether one or none of Vdd and Vss exists in the horizontal channel, as indicated at 1030 (as shown in FIG. 4A ). If neither Vdd nor Vss exists in the horizontal channel, then a pair of power/ground stripes are added automatically in the horizontal channel, as indicated at 1032 , and then another channel is considered until all the channels have been considered, as indicated at 1038 in FIG. 12 . If either Vdd or Vss exists in the horizontal channel, then the opposite one of Vdd Vss is added automatically in the horizontal channel, as indicated at 1034 , and then another channel is considered until all the channels have been considered, as indicated at 1038 in FIG. 12 .
- the method 1000 includes cleaning up M 5 metal layer stripes in the horizontal channel (if applicable), as indicated at 1024 .
- the method 1000 includes querying the M 6 metal layer power/ground bus over the bottom side macro to find the object, the x/y coordinates, and the width of the M 6 metal layer power/ground bus, as indicated at 1026 .
- the method 1000 includes querying the M 5 metal layer power/ground bus inside the bottom side macro to find the object, the x/y coordinates, the width, and the pitch of the M 5 metal layer power/ground bus, as indicated at 1028 . Referring to FIG.
- the method 1000 includes creating M 5 metal layer power/ground hook-up stripes between the M 5 power/ground bus inside the bottom side macro and connecting the M 5 metal layer power/ground hook-up stripes to the M 6 metal layer power/ground bus, as indicated at 1036 .
- the M 5 metal layer power/ground hook-up stripes may extend into the horizontal channel in a direction not parallel to the horizontal channel.
- the method 1000 includes considering another channel until all the channels have been considered, as indicated at 1038 .
- the automated circuit design tool 1300 may include a processor-readable medium having processor instructions that are executable to cause a processor to: scan a circuit to detect channels 130 at a right side of a macro 110 ( FIG. 1 ) and at a top of the macro 110 ( FIG. 4A ) in the circuit, determine the number of system power supply lines 150 and their polarities in the channels 130 , and automatically add a power line 160 with proper polarity in at least one channel 130 where there are less than two system power supply lines 150 with opposite polarities.
- a suitable processor may be the processor 504 shown in FIG. 5 , for example.
- the automated circuit design tool 1300 may effectively have a channel detector 1302 to scan a circuit to detect channels 130 at a right side of a macro 110 ( FIG. 1 ) and at a top of the macro 110 ( FIG. 4 ) in the circuit.
- the automated circuit design tool 1300 may also effectively have a system power supply line detector 1304 to determine the number of system power supply lines 150 and their polarities in the channels 130 .
- the automated circuit design tool 1300 may also effectively have a power line adder 1306 to automatically add a power line 160 with proper polarity in at least one channel 130 where there are less than two system power supply lines 150 with opposite polarities.
- the processor executable instructions are further executable to add one or more additional devices between a first macro 110 and a second macro 120 .
- the additional devices between the first macro 110 and the second macro 120 may include decoupling capacitors, substrate well connectors, buffers, inverters, or any combination thereof, as shown by the device 200 in FIG. 2 , for example.
- the processor executable instructions are further executable to determine whether the at least one channel is a vertical channel, as in FIG. 1 , FIG. 2 , and FIG. 3 , or a horizontal channel, as in FIG. 4A and FIG. 4B , for example.
- a first system power supply line disposed in a first upper metal layer of an integrated circuit such as the M 6 layer 724 shown in FIG. 7
- a first added power line 160 FIGS. 1-3
- a second system power supply line disposed in a second upper metal layer of an integrated circuit such as the M 6 layer 724 shown in FIG. 7
- a second added power line 160 FIG. 4A
- a second system power supply line disposed in a second upper metal layer of an integrated circuit such as the M 6 layer 824 shown in FIG. 8
- may connect with one or more second added power lines 460 FIG. 4B ) disposed in a lower metal layer of the integrated circuit, such as the MS layer 820 shown in FIG. 8 .
- a computer-readable medium tangibly embodying computer-readable data may include a data file, such as the data file 518 shown in FIG. 5 , which represents the circuit 1400 designed using an automated circuit design tool, such as the automated circuit design tool 1000 shown in FIG. 10 .
- the circuit 1400 may be designed using an automated circuit design tool.
- the circuit 1400 includes a first vertical channel 1402 between a first pair of macros 1404 , 1406 with a first patch 1407 disposed in the first vertical channel 1402 .
- the first patch includes at most one additional power line 1408 automatically added to the first vertical channel 1402 .
- a first system power supply line 1410 is disposed in the first vertical channel 1402 .
- the circuit 1400 includes a second vertical channel 1412 between a second pair of macros 1414 , 1416 with a second patch 1417 disposed in the second vertical channel 1412 .
- the second patch 1417 includes two additional power lines 1418 , 1420 automatically added to the second vertical channel 1412 .
- the circuit 1400 includes a first horizontal channel 1422 between a third pair of macros 1404 , 1414 with a third patch 1427 disposed in the first horizontal channel 1422 .
- the third patch 1427 includes at most one additional power line 1428 automatically added to the first horizontal channel 1422 .
- a second system power supply line 1430 is disposed in the first horizontal channel 1422 .
- the circuit 1400 includes a second horizontal channel 1432 between a fourth pair of macros 1406 , 1446 with a fourth patch 1437 disposed in the second horizontal channel 1432 .
- the fourth patch 1437 includes two additional power lines 1438 , 1440 automatically added to the second horizontal channel 1432 .
- the first patch 1407 and the second patch 1417 may connect a system power supply line disposed in an upper metal layer of an integrated circuit, such as the M 6 layer 724 shown in FIG. 7 , with at least one additional power line 1408 , 1418 disposed in a lower metal layer of the integrated circuit, such as the M 3 layer 712 shown in FIG. 7 .
- the third patch 1427 and the fourth patch 1437 may connect a system power supply line disposed in an upper metal layer of an integrated circuit, such as the M 6 layer 724 shown in FIG. 7 , with at least one additional power line 1428 , 1438 disposed in a lower metal layer of the integrated circuit, such as the M 3 layer 712 shown in FIG. 7 .
- the circuit 1400 may include at least one device 1452 coupled to the additional first power line 1448 in the channel 1442 .
- the at least one device 1452 may also be coupled to an additional second power line 1450 in the channel 1442 .
- the at least one device 1452 is a decoupling capacitor, a substrate well connector, a buffer, or an inverter.
- FIG. 15 is a block diagram of a. communications device 1500 including a memory device that includes devices and circuits designed using a method to automatically add a power line in a channel.
- the communications device 1500 includes a memory array of macro cells 1532 and a cache memory of macro cells 1564 , which are coupled to a processor, such as a digital signal processor (DSP) 1510 .
- the communications device 1500 also includes a magneto-resistive random access memory (MRAM) device 1566 that is coupled to the DSP 1510 .
- MRAM magneto-resistive random access memory
- the memory array of macro cells 1532 , the cache memory of macro cells 1564 , and the MRAM device 1566 include multiple macro cells, with devices and circuits designed using a method to automatically add a power line in a channel, as described with respect to FIGS. 1-14 .
- FIG. 15 also shows a display controller 1526 that is coupled to the digital signal processor 1510 and to a display 1528 .
- a coder/decoder (CODEC) 1534 can also be coupled to the digital signal processor 1510 .
- a speaker 1536 and a microphone 1538 can be coupled to the CODEC 1534 .
- FIG. 15 also indicates that a wireless controller 1540 can be coupled to the digital signal processor 1510 and to a wireless antenna 1542 .
- an input device 1530 and a power supply 1544 are coupled to the on-chip system 1522 .
- the display 1528 , the input device 1530 , the speaker 1536 , the microphone 1538 , the wireless antenna 1542 , and the power supply 1544 are external to the on-chip system 1522 .
- each can be coupled to a component of the on-chip system 1522 , such as an interface or a controller.
- a software module may reside in random access memory (RAM), flash memory, read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), registers, hard disk, a retrievable disk, a compact disk read-only memory (CD-ROM), or any other form of storage medium known in the art.
- An exemplary storage medium is coupled to the processor such that the processor can read information from, and write information to, the storage medium.
- the storage medium may be integral to the processor.
- the processor and the storage medium may reside in an application-specific integrated circuit (ASIC).
- ASIC may reside in a computing device or a user terminal in the alternative, the processor and the storage medium may reside as discrete components in a computing device or user terminal.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Geometry (AREA)
- Evolutionary Computation (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Semiconductor Integrated Circuits (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
- Architecture (AREA)
- Software Systems (AREA)
- Cable Transmission Systems, Equalization Of Radio And Reduction Of Echo (AREA)
Abstract
A method includes detecting channels between macros in an integrated circuit. Each channel is associated with a region between two macros such that a shortest distance of the region satisfies a threshold value. The method also includes automatically adding at least one power line within at least one channel to satisfy a power integrity issue within the at least one channel. The power integrity issue is satisfied when two power lines having opposite polarity are coupled to provide power to a device within the at least one channel.
Description
- This application claims priority from and is a divisional application of U.S. patent application Ser. No. 12/270,475, filed Nov. 13, 2008, entitled “METHOD TO AUTOMATICALLY ADD POWER LINE IN CHANNEL BETWEEN MACROS,” the contents of which are incorporated by reference herein in its entirety.
- The present disclosure is generally directed to a method to automatically add at least one power line with proper polarity or at least two power lines with opposite polarities in a channel between at least two macros.
- Complex application-specific integrated circuit (ASIC) and/or a system on a chip (SoC) designs use large numbers of hard macro cells, such as memory cells and/or mixed-signal devices. The macros are generally placed in clusters due to timing and/or physical constraints. The clustering of hard macro cells can be so large that signal delay on wire connections to, from and/or through the macro cell clusters becomes of concern for ASIC/SoC performance. Gaps between pairs of macro cells may be defined as channels when the gaps are smaller than certain threshold values. Buffering in the channels is an efficient way to speed up signals on wire connections. To enable buffering, the power grid integrity in the channels should be guaranteed. The power grid integrity in a channel may mean that there should be at least two power supply lines with opposite polarities (one power line and one ground line) existing in that channel. Typically, the size of the channels (width for vertical channels or height for horizontal channels) between the macro cells is not large enough to satisfy the power grid integrity requirement.
- One conventional solution is to allocate larger channels to allow at least two power lines with opposite polarities to be present in the channels. However, this may lower the macro device placement density and therefore increase the size of the die chip, which increases the cost of the final products. Another conventional solution is to manually patch individual channels that are intended to be used. However, manual patching is a time-consuming, tedious and error-prone process, and the results may not be consistently repeatable.
- In a particular embodiment, a method is disclosed that includes detecting channels between macros in an integrated circuit. Each channel is associated with a region between two macros such that a shortest distance of the region satisfies a. threshold value. The method also includes automatically adding at least one power line within at least one channel to satisfy a power integrity issue within the at least one channel. The power integrity issue is satisfied when two power lines having opposite polarity are coupled to provide power to a device within the at least one channel.
- In another embodiment, an automated circuit design tool is disclosed that includes a non-transitory processor-readable medium having processor-executable instructions that are executable to cause a processor to detect channels between macros in an integrated circuit. Each channel is associated with a region between two macros such that a shortest distance of the region satisfies a threshold value. The processor-executable instructions are also executable to cause the processor to automatically add at least one power line within at least one channel to satisfy a power integrity issue within the at least one channel. The power integrity issue is satisfied when two power lines having opposite polarity are coupled to provide power to a device within the at least one channel.
- In another embodiment, an apparatus is disclosed that includes means for detecting channels between macros in an integrated circuit. Each channel is associated with a region between two macros such that a shortest distance of the region satisfies a threshold value. The apparatus also includes means for automatically adding at least one power line within at least one channel to satisfy a power integrity issue within the at least one channel. The power integrity issue is satisfied when two power lines having opposite polarity are coupled to provide power to a device within the at least one channel.
- In another embodiment, a computer-readable medium embodying computer-readable data comprising a data file that represents a circuit designed using an automated circuit design tool is disclosed. The circuit includes a first channel between at least two macros disposed in the circuit such that a shortest distance between the at least two macros satisfies a threshold value. The circuit also includes a first power line that is automatically added in the first channel by an automated circuit design tool in response to detecting a power integrity issue within the first channel. The power integrity issue is satisfied by two power lines having opposite polarity being coupled to provide power to a device within the first channel.
- In another embodiment, a circuit designed using an automated circuit design tool is disclosed. The circuit includes a first channel between at least two macros disposed in the circuit such that a shortest distance between the at least two macros satisfies a threshold value. The circuit also includes a first power line that is automatically added in the first channel by the automated circuit design tool in response to detecting a power integrity issue within the first channel. The power integrity issue is satisfied by two power lines having opposite polarity being coupled to provide power to a device within the first channel.
- One particular advantage provided by the disclosed embodiments is that a power grid integrity in channels to enable buffering in the channels can be accomplished by an automated design tool within regular machine run time.
- Another advantage provided by the disclosed embodiments is that the automated design can be repeated with the same results consistently.
- Other aspects, advantages, and features of the present disclosure will become apparent after review of the entire application, including the following sections: Brief Description of the Drawings, Detailed Description, and the Claims.
-
FIG. 1 is a diagram of a particular illustrative embodiment of a system having a power line with proper polarity added in a channel via an automatic method; -
FIG. 2 is a diagram of a particular illustrative embodiment of a system having a power line with proper polarity added in a channel via an automatic method and a device in the channel; -
FIG. 3 is a diagram of a particular illustrative embodiment of a system having two power lines with opposite polarities added in a channel via an automatic method; -
FIG. 4A is a diagram of a particular illustrative embodiment of a system having a power line with proper polarity added in a horizontal channel via an automatic method; -
FIG. 4B is a diagram of a particular illustrative embodiment of a system having multiple power lines added in a configuration that is not parallel to a horizontal channel via an automatic method; -
FIG. 5 is a diagram of a particular illustrative embodiment of a system to implement a method to automatically add a power line in a channel; -
FIG. 6 is a flow diagram of a particular illustrative embodiment of a method to automatically patch a power grid integrity issue within at least one channel; -
FIG. 7 is a diagram of a particular illustrative embodiment of automatically adding a power line in a vertical channel as well as in a horizontal channel; -
FIG. 8 is a diagram of a particular illustrative alternative embodiment of automatically adding a power line in a horizontal channel; -
FIG. 9 is a flow diagram of a particular illustrative embodiment of a method to automatically add a power line in a channel; -
FIG. 10 is a flow diagram of another particular illustrative embodiment of a method to automatically add a power line in a channel; -
FIG. 11 is a continuation of the flow diagram ofFIG. 10 ; -
FIG. 12 is a continuation of the flow diagrams ofFIG. 10 andFIG. 1 -
FIG. 13 is a diagram of a particular illustrative embodiment of an automated design tool to implement a method to automatically add a power line in a channel; -
FIG. 14 is a diagram of a particular illustrative embodiment of a circuit designed using a method to automatically add a power line in a channel; and -
FIG. 15 is a block diagram of a communications device including devices and circuits designed using a method to automatically add a power line in a channel. - Referring to
FIG. 1 , a diagram of a diagram of a particular illustrative embodiment of a system having a power line added in a channel via an automatic method is depicted and generally designated 100. Afirst macro 110 may be disposed in a circuit adjacent asecond macro 120. In a particular embodiment, thefirst macro 110 and thesecond macro 120 may be memory cells, mixed-signal devices, any other components of an application-specific integrated circuit (ASIC), a system on a chip (SoC), or any combination thereof. Achannel 130 may be defined between thefirst macro 110 and thesecond macro 120 whenever ashortest distance 140 between thefirst macro 110 and thesecond macro 120 is below a threshold value. In a particular embodiment, the threshold value may be smaller than the pitch between adjacent system power supply lines with opposite polarities in the power grid. A systempower supply line 150 may be disposed within thechannel 130. Afirst power line 160 with a polarity opposite to the systempower supply line 150 may be automatically added in thechannel 130 when less than two systempower supply lines 150 with opposite polarities are detected within thechannel 130 using a method to automatically add a power line to a channel, such as will be discussed with respect to FIGS. 6 and 9-12. - The method may include automatically detecting the number of power supply lines in the
channel 130, the polarities of the power supply lines in the channel, and then adding thefirst power line 160 with proper polarity in thechannel 130 between at least two 110, 120 when less than two systemmacros power supply lines 150 with opposite polarities are detected within thechannel 130. As used herein, “opposite” polarities indicate different voltages that are applied to the power supply lines. As illustrative, non-limiting examples, a positive voltage may be opposite to a ground voltage, a negative voltage may be opposite to a ground voltage, or a negative voltage may be opposite to a positive voltage, based on voltages that are used to power the ASIC/SoC. As used herein, a “proper” polarity of an automatically added line when a line is detected in the channel (such as the line 150) is a polarity opposite to the polarity of the detected line. A “proper” polarity of an automatically added line when no lines are detected in the channel (such as will be discussed with respect toFIG. 3 ) is an opposite polarity to another line that is automatically added to the channel so that the two added lines have opposite polarities. The method may be implemented in circuit design software, automated design software, a circuit design tool, an automated design tool, and the like. - By using an automatic method, the power grid integrity in channels to enable buffering in the channels can be accomplished by an automated design tool within regular machine run time. In addition, by using an automatic method, the automated design can be repeated with the same results consistently.
- Referring to
FIG. 2 , a diagram of a particular illustrative embodiment of a system having a power line added in a channel via an automatic method and a device in the channel is depicted and generally designated 200. Adevice 202 may be disposed in thechannel 130 between the 110 and 120 and coupled to the systemmacros power supply line 150 and thefirst power line 160 in thechannel 130. In a particular embodiment, thedevice 202 may be a decoupling capacitor, a substrate well connector, a buffer, or an inverter. Thefirst power line 160 and thedevice 202 may be automatically added according to the automatic method, such as will be discussed with respect to FIGS. 6 and 9-12. - As depicted in the particular embodiments shown in
FIG. 1 andFIG. 2 , for example, at most thefirst power line 160 may be automatically added in thechannel 130 when one systempower supply line 150 is detected within thechannel 130. The polarity of thefirst power line 160 should be opposite to that of the systempower supply line 150 to satisfy the power grid integrity requirement. In the particular embodiments shown inFIG. 1 andFIG. 2 , thefirst power line 160 will have a polarity opposite to a polarity of the one systempower supply line 150 that is detected within thechannel 130. For example, if the polarity of the systempower supply line 150 is positive (power), the polarity of thefirst power line 160 may be chosen to be ground. Similarly, if the polarity of the systempower supply line 150 is ground, the polarity of thefirst power line 160 may be chosen to be power (positive). - Referring to
FIG. 3 , a diagram of a particular illustrative embodiment of a system having two power lines with opposite polarities added in a channel via an automatic method is depicted and generally designated 300. Asecond power line 360 with polarity opposite to the polarity of thefirst power line 160 may automatically be added in thechannel 130 when no system power supply lines are detected within thechannel 130. - in a particular embodiment, the
first power line 160 has the polarity opposite to the polarity of thesecond power line 360. For example, if the polarity of thefirst power line 160 is positive, the polarity of thesecond power line 360 will be chosen to be ground. Similarly, if the polarity of thefirst power line 160 is ground, the polarity of thesecond power line 360 will be chosen to be positive.FIGS. 4A and 413 depict alternative methods to automatically add a power line in a horizontal channel. - Referring to
FIG. 4A , a diagram of a particular illustrative embodiment of a system having a power line added in a horizontal channel via an automatic method is depicted and generally designated 400. The systempower supply line 150 may be disposed within thehorizontal channel 430, and a systempower supply line 450 haying opposite polarity to the systempower supply line 150 may be over a macro 120. Thefirst power line 160 with a polarity opposite to the polarity of the systempower supply line 150 may be automatically added in thehorizontal channel 430 between at least two 110, 120 when less than two systemmacros power supply lines 150 with opposite polarities are detected within thehorizontal channel 430 using a method to automatically add a power line to a channel. - In a particular embodiment, the method to automatically add a power line to a channel may duplicate the methods of
FIGS. 1-3 , as applied to horizontal channels. Although not shown inFIG. 4A , the method to automatically add a power line to a channel may also include adding a device disposed in thehorizontal channel 430, similar to adding thedevice 202 in thevertical channel 130 between the 110 and 120, themacros device 202 coupled to the systempower supply line 150 and thefirst power line 160 in thevertical channel 130, as shown inFIG. 2 . Although not shown inFIG. 4A , the method to automatically add a power line to a channel may include automatically adding a second power line in thehorizontal channel 430 when no system power supply lines are detected within thehorizontal channel 430, similar to automatically adding thesecond power line 360 in thevertical channel 130 when no system power supply lines are detected within thevertical channel 130, as shown inFIG. 3 . - Referring to
FIG. 4B , a diagram of a particular illustrative embodiment of a system having multiple power lines added in a configuration that is not parallel to a horizontal channel via an automatic method is depicted and generally designated 410. The method to automatically add a power line to a channel may include automatically adding one or moreadditional power lines 460 that connect to a systempower supply line 450 not in thechannel 430, the systempower supply line 450 having the same polarity as theadditional power lines 460, theadditional power lines 460 extending into thechannel 430. Some otheradditional power lines 465 may also be automatically added that connect to another systempower supply line 455 not in thechannel 430, the systempower supply line 455 having the same polarity as theadditional power lines 465, theadditional power lines 465 extending into thechannel 430. The polarity of the systempower supply line 450 and theadditional power lines 460 is opposite to the polarity of the systempower supply line 455 and theadditional power lines 465. The 460 and 465 may extend in a direction not parallel to theadditional power lines channel 430. In a particular embodiment, the system 450 and 455 may be disposed above the macro 120. In a particular embodiment, the systempower supply lines 450 and 455 may be substantially parallel to the other systempower supply lines 150 and 470. The automatic method may further include detecting the systempower supply lines 450 and 455 to find out their respective polarities and locations. The power grid integrity of thepower supply lines horizontal channel 430 may be accomplished with the 460 and 465.additional power lines - In general, a power line may be automatically added to a channel, such as in
-
FIGS. 1-3 , 4A or 4B, after detecting the 130 or 430 between the at least twochannel 110, 120 by determining that amacros shortest distance 140 between the at least two 110, 120 is at most a threshold value. In a particular embodiment, the threshold value may be smaller than the smallest value of the pitch between adjacent system power supply lines with opposite polarities in the power grid.macros - Referring to
FIG. 5 , a diagram of a particular illustrative embodiment of a system to implement a method to automatically add a power line in a channel is depicted and generally designated 500. Thesystem 500 includes adevice 502 that includes aprocessor 504 coupled to amemory 506. Thememory 506 includes automateddesign tool instructions 508,circuit detection instructions 510, andcircuit tool instructions 512. The memory also includes adata file 518. The data file 518 includes threshold values 514 and acircuit layout 516. Thedevice 502 is coupled to aninput device 530 and adisplay 550. - In operation, the
processor 504 may be configured to access thecircuit detection instructions 510, the threshold values 514, and thecircuit layout 516 to detect whether there is a channel between at least two macros. If a channel is detected between a first macro and a second macro, theprocessor 504 may be configured to access thecircuit detection instructions 510 and thecircuit layout 516 to detect whether there are less than two system power supply lines with opposite polarities within the channel. If there are less than two system power supply lines with opposite polarities within the channel, theprocessor 504 may be configured to access the automateddesign tool instructions 508, thecircuit tool instructions 512, and thecircuit layout 516 to automatically add a first power line with proper polarity in the channel. - For example, the
processor 504 may be configured to implement an automatic method to add thefirst power line 160 in the 130,430 as illustrated inchannel FIG. 1 andFIG. 4A . Theprocessor 504 may also be configured to implement an automatic method to add thedevice 202 in thechannel 130, as depicted inFIG. 2 . When no system power supply lines are detected in the channel, theprocessor 504 may be configured to implement an automatic method to add thefirst power line 160 and thesecond power line 360 in thechannel 130, as shown inFIG. 3 . Similarly, theprocessor 504 may be configured to implement an automatic method to add theadditional power line 460 to the systempower supply line 450, where theadditional power line 460 may extend in a direction not parallel to thechannel 430, as illustrated inFIG. 4B . - Referring to
FIG. 6 , a diagram of a particular illustrative embodiment of a method to automatically patch a power grid integrity issue within at least one channel is depicted and generally designated 600. Themethod 600 includes checking macros in an integrated circuit design for channels between respective macros, as indicated at 602. For example, the integrated circuit may include the 110 and 120 and themacros channel 130, as depicted inFIGS. 1-3 . Themethod 600 includes detecting power grid integrity issues within the channels, as indicated at 604. For example, the systempower supply line 150 may be detected within the 130, 430 as shown inchannel FIGS. 1 , 2, 4A, and 4B, or no system power supply lines may be detected within thechannel 130, as depicted inFIG. 3 . Themethod 600 includes automatically patching the power grid integrity issue within at least one channel that lacks the power grid integrity, as indicated at 606. For example, thefirst power line 160 with proper polarity may be automatically added in the 130, 430 as shown inchannel FIGS. 1 , 2, and 4A, or thefirst power line 160 and thesecond power line 360, which have opposite polarities, may be automatically added in thechannel 130, as depicted inFIG. 3 . Alternatively, one or more 460, 465 with opposite polarities may be extended into theadditional power lines horizontal channel 430 in a direction that is not parallel to thehorizontal channel 430 or the horizontal system 150, 450, 455, 470, as shown inpower supply lines FIG. 4B , for example. - The
method 600 may further include determining whether the at least one channel is a vertical channel, as inFIGS. 1-3 , or a horizontal channel, as inFIGS. 4A and 4B . Themethod 600 may further include adding at least one of a tap cell and a decoupling capacitor cell in the at least one channel. For example, thedevice 202 may be added in thechannel 130, as shown inFIG. 2 . Themethod 600 may further include connecting a system power supply line disposed in an upper metal layer of the integrated circuit with an additional power line disposed in a lower metal layer of the integrated circuit, as will be discussed in further detail with respect toFIG. 7 . Themethod 600 may further include connecting a system power supply line disposed in an upper metal layer of the integrated circuit with at least one additional power line disposed in a lower metal layer of the integrated circuit, as will be discussed in further detail with respect toFIG. 8 . Themethod 600 may further include having at least one additional power line extend in a direction not parallel to a respective horizontal channel. For example, the 460 and 465 may extend in a direction not parallel to theadditional power lines horizontal channel 430 shown inFIG. 4B . - Referring to
FIG. 7 , a diagram of a particular illustrative embodiment of automatically adding a power line in a vertical channel is depicted and generally designated 700. Asubstrate 702 of the integrated circuit has alowest metal layer 704 disposed thereon, thelowest metal layer 704 being designated the metal-1 or M1 layer. A first dielectric insulatinglayer 706 is disposed on thelowest metal layer 704. Asecond metal layer 708 is disposed on the first dielectric insulatinglayer 706. A second dielectric insulatinglayer 710 is disposed on thesecond metal layer 708. Athird metal layer 712 is disposed on the second dielectric insulatinglayer 710, thethird metal layer 712 being designated the metal-3 or M3 layer. A third dielectric insulatinglayer 714 is disposed on thethird metal layer 712. Afourth metal layer 716 is disposed on the third dielectric insulatinglayer 714. A fourth dielectric insulatinglayer 718 is disposed on thefourth metal layer 716. Afifth metal layer 720 is disposed on the fourth dielectric insulatinglayer 718. A fifth dielectric insulatinglayer 722 is disposed on thefifth metal layer 720. Asixth metal layer 724 is disposed on the fifth dielectric insulatinglayer 722, thesixth metal layer 724 being designated the metal-6 or M6 layer. A sixth dielectric insulatinglayer 726 is disposed on thesixth metal layer 724. Aseventh metal layer 728 is disposed on the sixth dielectric insulatinglayer 726. In other illustrative embodiments, more alternating dielectric insulating and metal layers may be added. - As illustrated in
FIG. 7 , a connection between theM6 layer 724 and theM3 layer 712 may be made through 730 and 732. Theconductive vias 730 and 732 may be suitably insulated from the interveningconductive vias 716 and 720. Automatically patching the power grid integrity issue for a vertical channel may further include connecting a system power supply line disposed in an upper metal layer of the integrated circuit, such as themetal layers M6 layer 724 shown inFIG. 7 , with an additional power line 160 (FIG. 1 ) disposed in a lower metal layer of the integrated circuit, such as theM3 layer 712 shown inFIG. 7 . In a particular embodiment, the 730 and 732 may be used to connect a system power supply line disposed in an upper metal layer of the integrated circuit, such as theconductive vias M6 layer 724 shown inFIG. 7 , with an additional power line disposed in a lower metal layer of the integrated circuit, such as theM3 layer 712 shown inFIG. 7 . The 730 and 732 may be used to automatically patch the power grid integrity issue for the vertical channel.conductive vias - The system
power supply line 150 and the 160 and 360 shown inadditional power lines FIGS. 1-3 may be disposed in a lower metal layer of the integrated circuit, such as theM3 layer 712 shown inFIG. 7 , and may be connected through the 730 and 732 to system power supply lines (not shown inconductive vias FIGS. 1-3 ) disposed in an upper metal layer of the integrated circuit. such as theM6 layer 724 shown inFIG. 7 . - The particular illustrative embodiment of automatically adding a power line in a vertical channel depicted and generally designated 700 is also applicable to the horizontal channel case, as shown in
FIG. 4A . The systempower supply line 150 and theadditional power line 160 shown inFIG. 4A may be disposed in an upper metal layer of the integrated circuit, such as theM6 layer 724 shown inFIG. 7 , and may be connected through the 730 and 732 to a system power supply line (not shown inconductive vias FIG. 4A ) disposed in a lower metal layer of the integrated circuit, such as theM3 layer 712 shown inFIG. 7 . - Referring to
FIG. 8 , a diagram of a particular illustrative alternative embodiment of automatically adding a power line in a horizontal channel is depicted and generally designated 800. Asubstrate 802 of an integrated circuit has alowest metal layer 804 disposed thereon, thelowest metal layer 804 being designated the metal-1 or M1 layer. A first dielectric insulatinglayer 806 is disposed on thelowest metal layer 804. A second metal.layer 808 is disposed on the first dielectric insulatinglayer 806. A second dielectric insulatinglayer 810 is disposed on thesecond metal layer 808. Athird metal layer 812 is disposed on the second dielectric insulatinglayer 810, thethird metal layer 812 being designated the metal-3 or M3 layer. A third dielectric insulatinglayer 814 is disposed on thethird metal layer 812. Afourth metal layer 816 is disposed on the third dielectric insulatinglayer 814. A fourth dielectric insulatinglayer 818 is disposed on thefourth metal layer 816. Afifth metal layer 820 is disposed on the fourth dielectric insulatinglayer 818. A fifth dielectric insulatinglayer 822 is disposed on thefifth metal layer 820. Asixth metal layer 824 is disposed on the fifth dielectric insulatinglayer 822, thesixth metal layer 824 being designated the metal-6 or M6 layer. A sixth dielectric insulatinglayer 826 is disposed on thesixth metal layer 824,seventh metal layer 828 is disposed on the sixth dielectric insulatinglayer 826, theseventh metal layer 828 being designated the metal-7 or M7 layer. In other illustrative embodiments, more alternating dielectric insulating and metal layers may be added. - In a particular embodiment, automatically patching the power grid integrity issue for a horizontal channel may further include connecting a system power supply line disposed in an upper metal layer of the integrated circuit, such as the
M6 layer 824 shown inFIG. 8 , with one or more additional power lines 460 (FIG. 4B ) disposed in a lower metal layer of the integrated circuit, such as theM5 layer 820 shown inFIG. 8 . The connection between theM6 layer 824 and theMS layer 820 may be made through one or more conductive vias like 834 and 836, as shown inconductive vias FIG. 8 , for example. At least oneadditional power line 460 disposed in the lower metal layer, such as theM5 layer 820, may extend in a direction not parallel to a respective horizontal channel, as shown by the 460, 465 inadditional power lines FIG. 4B . The 460, 465 disposed in theadditional power lines M5 layer 820 may be further connected to an even lower metal layer, such as theM3 layer 812, through other 830 and 832. Theconductive vias 830 and 832 may be suitably insulated from the interveningconductive vias M4 layer 816. - Referring to
FIG. 9 , a flow diagram of a particular illustrative embodiment of a method to automatically add a power line in a channel is depicted and generally designated 900. Themethod 900 includes detecting a gap between two macros, such as the 110 and 120 ofmacros FIG. 1 , as indicated at 902. Themethod 900 includes determining whether the gap is smaller than a threshold value, as indicated at 904. If the gap is not smaller than a threshold value, then another macro is considered, as indicated at 910. If the gap is smaller than a threshold value, then a channel, such as thechannel 130 ofFIGS. 1-4A , has been detected. Themethod 900 includes detecting system power supply lines and their polarities, such as the systempower supply line 150 ofFIGS. 1-4A , in the channel, as indicated at 906. Themethod 900 includes determining whether there are less than two system power supply lines with opposite polarities in the channel, as indicated at 908. If there are not less than two system power supply lines with opposite polarities in the channel, then another macro is considered, as indicated at 910. If there are less than two systempower supply lines 150 with opposite polarities in thechannel 130, then afirst power line 160 with proper polarity should be added to thechannel 130. Themethod 900 includes adding the first power line in the channel automatically, as indicated at 912. - The
method 900 includes determining whether there is less than one system power supply line in the channel, as indicated at 914. If there is not less than one system power supply line in the channel, then another macro is considered, as indicated at 910, If there is less than one systempower supply line 150 in thechannel 130, then asecond power line 360 with a polarity opposite to the polarity of thefirst power line 160 should be added to thechannel 130. Themethod 900 includes adding the second power line in the channel automatically, as indicated at 916. Themethod 900 includes considering another macro, as indicated at 910. In a particular embodiment, themethod 900 may be used to automatically consider substantially all macros in an integrated circuit. - Referring to
FIGS. 10-12 , a flow diagram of another particular illustrative embodiment of a method to automatically add a power line in a channel is depicted and generally designated 1000. Themethod 1000 starts, as indicated at 1002, and includes scanning through all macros in a circuit design, checking the top and right sides of each macro for channels based on pre-defined widths and heights, channels on the top side being horizontal channels and channels on the right side being vertical channels, as indicated at 1004. Channel heights correspond to horizontal channels, while channel widths correspond to vertical channels. Themethod 1000 includes inspecting the power/ground power grid integrity in the channels, as indicated at 1006. - The
method 1000 includes determining for vertical channels if at least one pair of power/ground stripes (two power supply lines with opposite polarities) exists in the vertical channel, as indicated at 1012 (as in the particular illustrative embodiments shown inFIGS. 1-3 ). If at least one pair of power/ground stripes exists in the vertical channel, then nothing more is done with that channel and another channel is considered until all the channels have been considered, as indicated at 1014. If at least one pair of power/ground stripes does not exist in the vertical channel, then themethod 1000 includes determining whether one or none of Vdd (power) and Vss (ground) exists in the vertical channel, as indicated at 1016. If neither Vdd nor Vss exists in the vertical channel, then a pair of power/ground stripes are added automatically in the vertical channel, as indicated at 1018 (as shown inFIG. 3 ), and then another channel is considered until all the channels have been considered, as indicated at 1038 inFIG. 12 . If either Vdd or Vss exists in the vertical channel, then the opposite one (a power line with opposite polarity) is added automatically in the vertical channel, as indicated at 1020 (as shown inFIGS. 1-2 ), and then another channel is considered until all the channels have been considered, as indicated at 1038 inFIG. 12 . - The
method 1000 includes determining for horizontal channels if at least a pair of power/ground stripes exists in the horizontal channel, as indicated at 1008 (as in the particular illustrative embodiments shown inFIGS. 4A and 4B ). If at least a pair of power/ground stripes exists in the horizontal channel, then nothing more is done with that channel and another channel is considered until all the channels have been considered, as indicated at 1010. Referring toFIG. 11 , if at least a pair of power/ground stripes does not exist in the horizontal channel, then themethod 1000 includes determining whether to use the M6 metal layer or the M5 metal layer to patch the horizontal channel, as indicated at 1022. - If the M6 metal layer is to be used, then the
method 1000 includes determining whether one or none of Vdd and Vss exists in the horizontal channel, as indicated at 1030 (as shown inFIG. 4A ). If neither Vdd nor Vss exists in the horizontal channel, then a pair of power/ground stripes are added automatically in the horizontal channel, as indicated at 1032, and then another channel is considered until all the channels have been considered, as indicated at 1038 inFIG. 12 . If either Vdd or Vss exists in the horizontal channel, then the opposite one of Vdd Vss is added automatically in the horizontal channel, as indicated at 1034, and then another channel is considered until all the channels have been considered, as indicated at 1038 inFIG. 12 . - If the MS metal layer is to be used (as shown in
FIG. 4B ), then themethod 1000 includes cleaning up M5 metal layer stripes in the horizontal channel (if applicable), as indicated at 1024. Themethod 1000 includes querying the M6 metal layer power/ground bus over the bottom side macro to find the object, the x/y coordinates, and the width of the M6 metal layer power/ground bus, as indicated at 1026, Themethod 1000 includes querying the M5 metal layer power/ground bus inside the bottom side macro to find the object, the x/y coordinates, the width, and the pitch of the M5 metal layer power/ground bus, as indicated at 1028. Referring toFIG. 12 , themethod 1000 includes creating M5 metal layer power/ground hook-up stripes between the M5 power/ground bus inside the bottom side macro and connecting the M5 metal layer power/ground hook-up stripes to the M6 metal layer power/ground bus, as indicated at 1036. The M5 metal layer power/ground hook-up stripes may extend into the horizontal channel in a direction not parallel to the horizontal channel. Themethod 1000 includes considering another channel until all the channels have been considered, as indicated at 1038. - Referring to
FIG. 13 , a diagram of a particular illustrative embodiment of an automated circuit design tool to implement a method to automatically add a power line in a channel is depicted and generally designated 1300. The automatedcircuit design tool 1300 may include a processor-readable medium having processor instructions that are executable to cause a processor to: scan a circuit to detectchannels 130 at a right side of a macro 110 (FIG. 1 ) and at a top of the macro 110 (FIG. 4A ) in the circuit, determine the number of systempower supply lines 150 and their polarities in thechannels 130, and automatically add apower line 160 with proper polarity in at least onechannel 130 where there are less than two systempower supply lines 150 with opposite polarities. A suitable processor may be theprocessor 504 shown inFIG. 5 , for example. In operation, the automatedcircuit design tool 1300 may effectively have achannel detector 1302 to scan a circuit to detectchannels 130 at a right side of a macro 110 (FIG. 1 ) and at a top of the macro 110 (FIG. 4 ) in the circuit. The automatedcircuit design tool 1300 may also effectively have a system powersupply line detector 1304 to determine the number of systempower supply lines 150 and their polarities in thechannels 130. The automatedcircuit design tool 1300 may also effectively have apower line adder 1306 to automatically add apower line 160 with proper polarity in at least onechannel 130 where there are less than two systempower supply lines 150 with opposite polarities. - In a particular embodiment, the processor executable instructions are further executable to add one or more additional devices between a
first macro 110 and asecond macro 120. In this particular embodiment, the additional devices between thefirst macro 110 and thesecond macro 120 may include decoupling capacitors, substrate well connectors, buffers, inverters, or any combination thereof, as shown by thedevice 200 inFIG. 2 , for example. - In a particular embodiment, the processor executable instructions are further executable to determine whether the at least one channel is a vertical channel, as in
FIG. 1 ,FIG. 2 , andFIG. 3 , or a horizontal channel, as inFIG. 4A andFIG. 4B , for example. Where the channel is a vertical channel, a first system power supply line disposed in a first upper metal layer of an integrated circuit, such as theM6 layer 724 shown inFIG. 7 , may connect with a first added power line 160 (FIGS. 1-3 ) disposed in a lower metal layer of the integrated circuit, such as theM3 layer 712 shown inFIG. 7 . Where the channel is a horizontal channel, a second system power supply line disposed in a second upper metal layer of an integrated circuit, such as theM6 layer 724 shown inFIG. 7 , may connect with a second added power line 160 (FIG. 4A ) disposed in a lower metal layer of the integrated circuit, such as theM3 layer 712 shown inFIG. 7 . Alternatively, where the channel is a horizontal channel, a second system power supply line disposed in a second upper metal layer of an integrated circuit, such as theM6 layer 824 shown inFIG. 8 , may connect with one or more second added power lines 460 (FIG. 4B ) disposed in a lower metal layer of the integrated circuit, such as theMS layer 820 shown inFIG. 8 . - Referring to
FIG. 14 , a diagram of a particular illustrative embodiment of a circuit designed using a method to automatically add a power line in a channel is depicted and generally designated 1400. A computer-readable medium tangibly embodying computer-readable data may include a data file, such as the data file 518 shown inFIG. 5 , which represents thecircuit 1400 designed using an automated circuit design tool, such as the automatedcircuit design tool 1000 shown inFIG. 10 . - The
circuit 1400 may be designed using an automated circuit design tool. Thecircuit 1400 includes a firstvertical channel 1402 between a first pair of 1404, 1406 with amacros first patch 1407 disposed in the firstvertical channel 1402. The first patch includes at most oneadditional power line 1408 automatically added to the firstvertical channel 1402. A first systempower supply line 1410 is disposed in the firstvertical channel 1402. Thecircuit 1400 includes a secondvertical channel 1412 between a second pair of 1414, 1416 with a second patch 1417 disposed in the secondmacros vertical channel 1412. The second patch 1417 includes two 1418, 1420 automatically added to the secondadditional power lines vertical channel 1412. Thecircuit 1400 includes a firsthorizontal channel 1422 between a third pair of 1404, 1414 with amacros third patch 1427 disposed in the firsthorizontal channel 1422. Thethird patch 1427 includes at most oneadditional power line 1428 automatically added to the firsthorizontal channel 1422. A second systempower supply line 1430 is disposed in the firsthorizontal channel 1422. Thecircuit 1400 includes a secondhorizontal channel 1432 between a fourth pair of 1406, 1446 with amacros fourth patch 1437 disposed in the secondhorizontal channel 1432. Thefourth patch 1437 includes two 1438, 1440 automatically added to the secondadditional power lines horizontal channel 1432. - In a particular embodiment, the
first patch 1407 and the second patch 1417 may connect a system power supply line disposed in an upper metal layer of an integrated circuit, such as theM6 layer 724 shown inFIG. 7 , with at least one 1408, 1418 disposed in a lower metal layer of the integrated circuit, such as theadditional power line M3 layer 712 shown inFIG. 7 . In a particular embodiment, thethird patch 1427 and thefourth patch 1437 may connect a system power supply line disposed in an upper metal layer of an integrated circuit, such as theM6 layer 724 shown inFIG. 7 , with at least one 1428, 1438 disposed in a lower metal layer of the integrated circuit, such as theadditional power line M3 layer 712 shown inFIG. 7 . - The
circuit 1400 may include at least onedevice 1452 coupled to the additionalfirst power line 1448 in thechannel 1442. In a particular embodiment, the at least onedevice 1452 may also be coupled to an additionalsecond power line 1450 in thechannel 1442. In a particular embodiment, the at least onedevice 1452 is a decoupling capacitor, a substrate well connector, a buffer, or an inverter. -
FIG. 15 is a block diagram of a.communications device 1500 including a memory device that includes devices and circuits designed using a method to automatically add a power line in a channel. Thecommunications device 1500 includes a memory array ofmacro cells 1532 and a cache memory ofmacro cells 1564, which are coupled to a processor, such as a digital signal processor (DSP) 1510. Thecommunications device 1500 also includes a magneto-resistive random access memory (MRAM)device 1566 that is coupled to theDSP 1510. In a particular example, the memory array ofmacro cells 1532, the cache memory ofmacro cells 1564, and theMRAM device 1566 include multiple macro cells, with devices and circuits designed using a method to automatically add a power line in a channel, as described with respect toFIGS. 1-14 . -
FIG. 15 also shows adisplay controller 1526 that is coupled to thedigital signal processor 1510 and to adisplay 1528. A coder/decoder (CODEC) 1534 can also be coupled to thedigital signal processor 1510. Aspeaker 1536 and amicrophone 1538 can be coupled to theCODEC 1534. -
FIG. 15 also indicates that awireless controller 1540 can be coupled to thedigital signal processor 1510 and to awireless antenna 1542. In a particular embodiment, aninput device 1530 and apower supply 1544 are coupled to the on-chip system 1522, Moreover, in a particular embodiment, as illustrated inFIG. 15 , thedisplay 1528, theinput device 1530, thespeaker 1536, themicrophone 1538, thewireless antenna 1542, and thepower supply 1544 are external to the on-chip system 1522. However, each can be coupled to a component of the on-chip system 1522, such as an interface or a controller. - Those of skill would further appreciate that the various illustrative logical blocks, configurations, modules, circuits, and algorithm steps described in connection with the embodiments disclosed herein may be implemented as electronic hardware, computer software, or combinations of both. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, configurations, modules, circuits, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of Me present disclosure.
- The steps of a method or algorithm described in connection with the embodiments disclosed herein may be embodied directly in hardware, in a software module executed by a processor, or in a combination of the two. A software module may reside in random access memory (RAM), flash memory, read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), registers, hard disk, a retrievable disk, a compact disk read-only memory (CD-ROM), or any other form of storage medium known in the art. An exemplary storage medium is coupled to the processor such that the processor can read information from, and write information to, the storage medium. In the alternative, the storage medium may be integral to the processor. The processor and the storage medium may reside in an application-specific integrated circuit (ASIC). The ASIC may reside in a computing device or a user terminal in the alternative, the processor and the storage medium may reside as discrete components in a computing device or user terminal.
- The previous description of the disclosed embodiments is provided to enable any person skilled in the art to make or use the disclosed embodiments. Various modifications to these embodiments will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other embodiments without departing from the spirit or scope of the disclosure. Thus, the present disclosure is not intended to be limited to the embodiments shown herein but is to be accorded the widest scope possible consistent with the principles and novel features as defined by the following claims.
Claims (22)
1. A method comprising:
detecting channels between macros in an integrated circuit, wherein each channel is associated with a region between two macros such that a shortest distance of the region satisfies a threshold value; and
automatically adding at least one power line within at least one channel to satisfy a power integrity issue within the at least one channel, wherein the power integrity issue is satisfied when two power lines having opposite polarity are coupled to provide power to a device within the at least one channel.
2. The method of claim 1 , wherein the device is coupled to at least one of a macro or signals propagating through the at least one channel.
3. The method of claim 1 , wherein the device is one of a decoupling capacitor to reduce power grid noise, a substrate well connector to prevent a latch-up violation, a buffer to reduce a propagation delay of signals in the at least one channel, or an inverter to reduce a propagation delay of signals in the at least one channel.
4. The method of claim 1 , further comprising detecting a power grid integrity within the channels prior to adding the at least one power line within the at least one channel.
5. The method of claim 1 , wherein the at least one channel is a vertical channel or a horizontal channel.
6. The method of claim 5 , wherein a first system power supply line disposed in a first metal layer of the integrated circuit connects with a first power line of the two power lines, and wherein a second system power supply line disposed in a second metal layer of the integrated circuit connects with a second power line of the two power lines.
7. The method of claim 6 , wherein the first power line and the second power line are disposed in a metal layer of the integrated circuit that is different than the first metal layer and the second metal layer.
8. An automated circuit design tool comprising a non-transitory processor-readable medium having processor-executable instructions that are executable to cause a processor to:
detect channels between macros in a circuit layout, wherein each channel is associated with a region between two macros such that a shortest distance of the region satisfies a threshold value; and
automatically add at least one power line within at least one channel to satisfy a power integrity issue within the at least one channel, wherein the power integrity issue is satisfied when two power lines having opposite polarity are coupled to provide power to a device within the at least one channel.
9. The automated circuit design tool of claim 8 , wherein the device is coupled to at least one of a macro or signals propagating through the at least one channel.
10. The automated circuit design tool of claim 8 , wherein the device is one of a decoupling capacitor to reduce power grid noise, a substrate well connector to prevent a latch-up violation, a buffer to reduce a propagation delay of signals in the at least one channel, or an inverter to reduce a propagation delay of signals in the at least one channel.
11. The automated circuit design tool of claim 8 , wherein the processor-executable instructions are further executable to cause the processor to detect a power grid integrity within the channels prior to adding the at least one power line within the at least one channel.
12. The automated circuit design tool of claim 8 , wherein a first system power supply line disposed in a first metal layer of the circuit layout connects with a first power line of the two power lines, and wherein a second system power supply line disposed in a second metal layer of the circuit layout connects with a second power line of the two power lines.
13. The automated circuit design tool of claim 12 , wherein the first power line and the second power line are disposed in a metal layer of the circuit layout that is different than the first metal layer and the second metal layer.
14. An apparatus comprising:
means for detecting channels between macros in an integrated circuit, wherein each channel is associated with a region between two macros such that a shortest distance of the region satisfies a threshold value; and
means for automatically adding at least one power line within at least one channel to satisfy a power integrity issue within the at least one channel, wherein the power integrity issue is satisfied when two power lines having opposite polarity are coupled to provide power to a device within the at least one channel.
15. The apparatus of claim 14 , wherein the device is coupled to at least one of a macro or signals propagating through the at least one channel.
16. The apparatus of claim 14 , wherein the device is one of a decoupling capacitor, a substrate well connector, a buffer, or an inverter.
17. A non-transitory computer-readable medium embodying computer-readable data comprising a data file that represents a circuit designed using an automated circuit design tool, the circuit comprising:
a first channel between at least two macro disposed in the circuit such that a shortest distance between the at least two macro satisfies a threshold value; and
a first power line, wherein an automated circuit design tool automatically added the first power line in the first channel in response to detecting a power integrity issue within the first channel, wherein the power integrity issue is satisfied by two power lines having opposite polarity being coupled to provide power to a device within the first channel.
18. The non-transitory computer-readable medium of claim 17 , wherein the device is coupled to at least one of a macro or signals propagating through the first channel.
19. The non-transitory computer-readable medium of claim 17 , wherein the device is one of a decoupling capacitor, a substrate well connector, a buffer, or an inverter.
20. A circuit designed using an automated circuit design tool, the circuit comprising:
a first channel between at least two macro disposed in the circuit such that a shortest distance between the at least two macro satisfies a threshold value; and
a first power line, wherein the automated circuit design tool automatically added the first power line in the first channel in response to detecting a power integrity issue within the first channel, wherein the power integrity issue is satisfied by two power lines having opposite polarity being coupled to provide power to a device within the first channel.
21. The circuit of claim 20 , wherein the device is coupled to at least one of macro or signals propagating through the first channel.
22. The circuit of claim 20 , wherein the device is one of a decoupling capacitor, a substrate well connector, a buffer, or an inverter.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US14/022,310 US20140013295A1 (en) | 2008-11-13 | 2013-09-10 | Method to automatically add power line in channel between macros |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US12/270,475 US8566776B2 (en) | 2008-11-13 | 2008-11-13 | Method to automatically add power line in channel between macros |
| US14/022,310 US20140013295A1 (en) | 2008-11-13 | 2013-09-10 | Method to automatically add power line in channel between macros |
Related Parent Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US12/270,475 Division US8566776B2 (en) | 2008-11-13 | 2008-11-13 | Method to automatically add power line in channel between macros |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| US20140013295A1 true US20140013295A1 (en) | 2014-01-09 |
Family
ID=41785872
Family Applications (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US12/270,475 Expired - Fee Related US8566776B2 (en) | 2008-11-13 | 2008-11-13 | Method to automatically add power line in channel between macros |
| US14/022,310 Abandoned US20140013295A1 (en) | 2008-11-13 | 2013-09-10 | Method to automatically add power line in channel between macros |
Family Applications Before (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US12/270,475 Expired - Fee Related US8566776B2 (en) | 2008-11-13 | 2008-11-13 | Method to automatically add power line in channel between macros |
Country Status (3)
| Country | Link |
|---|---|
| US (2) | US8566776B2 (en) |
| TW (1) | TW201033836A (en) |
| WO (1) | WO2010056700A2 (en) |
Families Citing this family (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP5603768B2 (en) | 2010-12-28 | 2014-10-08 | 株式会社東芝 | Semiconductor integrated circuit wiring method, semiconductor circuit wiring apparatus, and semiconductor integrated circuit |
| JP5554303B2 (en) * | 2011-09-08 | 2014-07-23 | 株式会社東芝 | Semiconductor integrated circuit and design method of semiconductor integrated circuit |
| US9761521B1 (en) * | 2014-10-21 | 2017-09-12 | Macom Connectivity Solutions, Llc | Flexible and robust power grid connectivity |
| US9697320B2 (en) * | 2015-09-24 | 2017-07-04 | Qualcomm Incorporated | Rectilinear macros having non-uniform channel spacing |
| KR102374846B1 (en) | 2015-12-14 | 2022-03-16 | 삼성전자주식회사 | Method of modifying power mesh |
| US10255399B2 (en) | 2016-10-31 | 2019-04-09 | Intel Corporation | Method, apparatus and system for automatically performing end-to-end channel mapping for an interconnect |
Family Cites Families (12)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6487706B1 (en) * | 2000-08-30 | 2002-11-26 | International Business Machines Corporation | Contract methodology for concurrent hierarchical design |
| US6622294B2 (en) * | 2001-09-28 | 2003-09-16 | Intel Corporation | Adaptive power routing and shield sharing to reduce shield count |
| US6609240B2 (en) * | 2001-10-31 | 2003-08-19 | Oki Electric Industry Co., Ltd. | Method of designing conductive pattern layout of LSI |
| US7943436B2 (en) * | 2002-07-29 | 2011-05-17 | Synopsys, Inc. | Integrated circuit devices and methods and apparatuses for designing integrated circuit devices |
| US6925627B1 (en) | 2002-12-20 | 2005-08-02 | Conexant Systems, Inc. | Method and apparatus for power routing in an integrated circuit |
| US6877330B2 (en) * | 2003-05-05 | 2005-04-12 | Carrier Corporation | Integrated air conditioning module for a bus |
| US7603641B2 (en) * | 2003-11-02 | 2009-10-13 | Mentor Graphics Corporation | Power/ground wire routing correction and optimization |
| JP4164056B2 (en) * | 2004-09-15 | 2008-10-08 | 松下電器産業株式会社 | Semiconductor device design method and semiconductor device |
| JP4820542B2 (en) * | 2004-09-30 | 2011-11-24 | パナソニック株式会社 | Semiconductor integrated circuit |
| US20060085778A1 (en) * | 2004-10-20 | 2006-04-20 | International Business Machines Corporation | Automatic addition of power connections to chip power |
| JP4357409B2 (en) | 2004-12-17 | 2009-11-04 | 株式会社東芝 | Semiconductor integrated circuit device and design method thereof |
| US20080111211A1 (en) * | 2006-11-13 | 2008-05-15 | Nair Pratheep A | On-chip capacitors for addressing power supply voltage drops |
-
2008
- 2008-11-13 US US12/270,475 patent/US8566776B2/en not_active Expired - Fee Related
-
2009
- 2009-11-11 WO PCT/US2009/063967 patent/WO2010056700A2/en not_active Ceased
- 2009-11-13 TW TW098138712A patent/TW201033836A/en unknown
-
2013
- 2013-09-10 US US14/022,310 patent/US20140013295A1/en not_active Abandoned
Also Published As
| Publication number | Publication date |
|---|---|
| TW201033836A (en) | 2010-09-16 |
| WO2010056700A2 (en) | 2010-05-20 |
| US8566776B2 (en) | 2013-10-22 |
| WO2010056700A3 (en) | 2010-07-22 |
| US20100122230A1 (en) | 2010-05-13 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US20140013295A1 (en) | Method to automatically add power line in channel between macros | |
| US9433081B1 (en) | Differential signal crosstalk minimization for dual stripline | |
| US10158339B2 (en) | Capacitive compensation structures using partially meshed ground planes | |
| US20160183373A1 (en) | High density ac coupling/dc blocking pin-field array | |
| TWI609608B (en) | Multi-pair differential lines printed circuit board common mode filter | |
| US8683413B2 (en) | Method for making high-speed ceramic modules with hybrid referencing scheme for improved performance and reduced cost | |
| CN104282594A (en) | Test structure for monitoring performance of dielectric layers | |
| US20140331482A1 (en) | Crosstalk reduction between signal layers in a multilayered package by variable-width mesh plane structures | |
| CN102083277B (en) | Printed circuit board and wiring method thereof | |
| CN114357932A (en) | Signal wire wiring method, device, equipment and readable storage medium | |
| US20140181775A1 (en) | Unit capacitor module, automatic capacitor layout method thereof and automatic capacitor layout device thereof | |
| US7849427B2 (en) | Auto-router performing simultaneous placement of signal and return paths | |
| US20140016280A1 (en) | Serially arranged printed circuit board | |
| CN104951594B (en) | Integrated circuit wiring method and integrated circuit structure | |
| US20090020850A1 (en) | Semiconductor design apparatus, semiconductor circuit and semiconductor design method | |
| TWI614867B (en) | Electrical interconnects for electronic packages | |
| US11812560B2 (en) | Computer-readable recording medium storing design program, design method, and printed wiring board | |
| CN100574553C (en) | A printed circuit board | |
| CN110602866A (en) | Method and system for reducing influence of far-end reference power supply noise on signal quality | |
| CN207706179U (en) | Radio frequency transmission device | |
| CN108353505A (en) | Electronic assembly including substrate bridge | |
| TWI501711B (en) | Printed circuit board and layout method thereof | |
| JP4293028B2 (en) | On-chip decoupling capacitor insertion method | |
| CN108280317B (en) | Display driving integrated circuit structure and manufacturing method thereof | |
| CN1328792C (en) | Multiple metal layer SRAM memory used as testing apparatus |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| AS | Assignment |
Owner name: QUALCOMM INCORPORATED, CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:QIU, LI;REEL/FRAME:031171/0114 Effective date: 20081007 |
|
| STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |