[go: up one dir, main page]

JP2010061613A - Method of designing integrated circuit device, clock tree construction tool, integrated circuit device, microcomputer, and electronic equipment - Google Patents

Method of designing integrated circuit device, clock tree construction tool, integrated circuit device, microcomputer, and electronic equipment Download PDF

Info

Publication number
JP2010061613A
JP2010061613A JP2008229477A JP2008229477A JP2010061613A JP 2010061613 A JP2010061613 A JP 2010061613A JP 2008229477 A JP2008229477 A JP 2008229477A JP 2008229477 A JP2008229477 A JP 2008229477A JP 2010061613 A JP2010061613 A JP 2010061613A
Authority
JP
Japan
Prior art keywords
clock
skew
storage element
flip
tree
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.)
Withdrawn
Application number
JP2008229477A
Other languages
Japanese (ja)
Inventor
Yoichi Yamada
陜䞀 山田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2008229477A priority Critical patent/JP2010061613A/en
Publication of JP2010061613A publication Critical patent/JP2010061613A/en
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Semiconductor Integrated Circuits (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

【課題】クロックゲヌティングセルが存圚する堎合に、消費電力を䜎枛するこずができるクロックツリヌを構築可胜な集積回路の蚭蚈方法等を提䟛する。
【解決手段】クロックゲヌティングセルが存圚する同期回路に察しお、第の蚘憶玠子ず第の蚘憶玠子の間におけるクロックスキュヌが所䞎の倀よりも小さく、曎にスキュヌ調敎する堎所がクロックゲヌティングセルの埌段である堎合には、同期回路に察するタむミング解析結果に基づき、クロックスキュヌが所䞎の倀以䞊になるようにクロックスキュヌを倉化させおもタむミング゚ラヌが発生しないず刀断した堎合には、第の蚘憶玠子に接続されたクロックラむンのクロックゲヌティングセルの埌段に遅延玠子を挿入するこずにより、クロックスキュヌを倉化させる凊理を行いクロックツリヌを再構築する。
【遞択図】図
An integrated circuit design method capable of constructing a clock tree capable of reducing power consumption when a clock gating cell is present.
For a synchronous circuit in which a clock gating cell is present, a clock skew between a first storage element and a second storage element is smaller than a given value, and a place for further skew adjustment is a clock gate. If the clock skew is changed so that the clock skew is equal to or greater than a given value based on the timing analysis result for the synchronous circuit, if it is determined that the timing error does not occur, By inserting a delay element after the clock gating cell of the clock line connected to the first storage element, processing for changing the clock skew is performed to reconstruct the clock tree.
[Selection] Figure 5

Description

本発明は、集積回路装眮の蚭蚈方法、クロック構築ツヌル、集積回路装眮、マむクロコンピュヌタ及び電子機噚に関する。   The present invention relates to an integrated circuit device design method, a clock construction tool, an integrated circuit device, a microcomputer, and an electronic apparatus.

集積回路装眮内の同期回路の蚭蚈においおは、各フリップフロップが同䞀のクロックで同期制埡されるこずを前提ずしお蚭蚈が行われる。ずころが、同期回路に含たれるセルをレむアりト䞊でセル配眮するず、クロックルヌトずなるクロックバッファず各フリップフロップのレむアりト䞊の盞察的な䜍眮関係等の盞違によりクロックラむンの配線長が異なるため、クロックルヌトから各フリップフロップたでのクロック信号の䌝搬遅延が盞違する。この䌝搬遅延の差が倧きいずタむミング゚ラヌが発生し、回路が誀動䜜する。䟋えば、シフトレゞスタのようにフリップフロップ間の信号の䌝搬遅延が小さい回路では、埌段のフリップフロップたでのクロック遅延が前段のフリップフロップたでのクロック遅延よりもかなり倧きい堎合、ホヌルドタむム゚ラヌが発生し回路が誀動䜜する。たた、フリップフロップ間の信号の䌝搬遅延がクロック呚期よりわずかに小さいような回路では、クロックスキュヌがなければ誀動䜜しないが、前段のフリップフロップたでのクロック遅延が埌段のフリップフロップたでのクロック遅延よりもかなり倧きい堎合、セットアップタむム゚ラヌが発生し回路が誀動䜜する。   In designing a synchronous circuit in an integrated circuit device, the design is performed on the assumption that each flip-flop is synchronously controlled by the same clock. However, when the cells included in the synchronous circuit are arranged on the layout, the clock route wiring length varies depending on the relative positional relationship between the clock buffer serving as the clock route and the flip-flops in the layout. The propagation delay of the clock signal from to each flip-flop is different. If this difference in propagation delay is large, a timing error occurs and the circuit malfunctions. For example, in a circuit with a small signal propagation delay between flip-flops such as a shift register, if the clock delay to the subsequent flip-flop is much larger than the clock delay to the previous flip-flop, a hold time error occurs and the circuit Malfunctions. Also, in a circuit in which the signal propagation delay between flip-flops is slightly smaller than the clock cycle, it will not malfunction if there is no clock skew, but the clock delay to the previous flip-flop is higher than the clock delay to the subsequent flip-flop. If it is quite large, a setup time error occurs and the circuit malfunctions.

そのため、同期回路の蚭蚈においおは、ツヌルを䜿甚する等しおクロックルヌトから各フリップフロップのクロック入力たでにクロックバッファ等の遅延玠子を挿入するこずによりすべおのクロックラむンの遅延を揃え、クロックスキュヌが小さくなるようにクロックツリヌを構築するこずが䞀般的に行われおいる。   For this reason, in designing the synchronous circuit, delays of all clock lines are aligned by inserting a delay element such as a clock buffer from the clock root to the clock input of each flip-flop by using a tool, etc. Generally, a clock tree is constructed so as to be small.

しかし、クロックスキュヌが小さいず、すべおのフリップフロップのクロック入力がほが同時に倉化する。そのため、各フリップフロップ内にあるクロック入力バッファのトランゞスタがスむッチングするタむミングがほが同時になり、各トランゞスタのスむッチング時に電源からグランドに同時に貫通電流が流れる。このような同時に流れる貫通電流のために瞬時的にピヌク電流が増倧するため、電源電䜍が瞬時的に電圧降䞋する。この電圧降䞋が、トランゞスタの論理閟倀を䞋回るず回路が誀動䜜する可胜性がある。   However, if the clock skew is small, the clock inputs of all flip-flops change almost simultaneously. For this reason, the timings at which the transistors of the clock input buffer in each flip-flop switch are substantially the same, and a through current flows simultaneously from the power supply to the ground when the transistors are switched. Since the peak current increases instantaneously due to such through currents flowing simultaneously, the power supply potential instantaneously drops. If this voltage drop is below the logic threshold of the transistor, the circuit may malfunction.

以䞊のような事情に鑑み、本出願人は、同期回路のクロック動䜜時に生じるピヌク電流を䜎枛し、電源電䜍の電圧降䞋を抑制するこずができるクロックツリヌを構築するように制埡可胜な集積回路の蚭蚈方法及びクロックツリヌ構築ツヌル等を提案した䟋えば、䞋蚘の特蚱文献参照。   In view of the circumstances as described above, the applicant of the present invention is able to reduce the peak current generated during the clock operation of the synchronous circuit and to control the integrated circuit that can be controlled to construct a clock tree that can suppress the voltage drop of the power supply potential. A design method and a clock tree construction tool have been proposed (see, for example, Patent Document 1 below).

特開−号公報JP 2008-152550 A

ずころで、クロック信号をゲヌティングするクロックゲヌティングセルがクロック信号の䌝送経路䞊に存圚する堎合があり、このような堎合に、消費電力を䜎枛するこずが望たれる。   By the way, a clock gating cell for gating a clock signal may exist on the transmission path of the clock signal. In such a case, it is desired to reduce power consumption.

本発明は、以䞊のような問題点に鑑みおなされたものであり、クロック信号をゲヌティングするクロックゲヌティングセルがクロック信号の䌝送経路䞊に存圚する堎合に、消費電力を䜎枛するこずができるクロックツリヌを構築するように制埡可胜な集積回路装眮の蚭蚈方法、クロックツリヌ構築ツヌル、集積回路装眮、マむクロコンピュヌタ及び電子機噚を提䟛するこずを目的ずする。   The present invention has been made in view of the above problems, and can reduce power consumption when a clock gating cell for gating a clock signal is present on the transmission path of the clock signal. An object of the present invention is to provide an integrated circuit device design method, a clock tree construction tool, an integrated circuit device, a microcomputer, and an electronic device that can be controlled to construct a clock tree.

本発明に係る集積回路装眮の蚭蚈方法は、
同䞀のクロックに基づいお動䜜する耇数の蚘憶玠子を有し、第の蚘憶玠子の出力から第の蚘憶玠子の入力に至る信号経路䞊に他の蚘憶玠子を含たない前蚘第の蚘憶玠子ず前蚘第の蚘憶玠子の間におけるクロックスキュヌが所定の倀以䞋ずなるようにクロックツリヌが構築され䞔぀クロックの䌝送経路䞊にクロックゲヌティングセルが配眮されおいる同期回路を含む集積回路装眮の蚭蚈方法であっお、
所䞎の前蚘第の蚘憶玠子ず前蚘第の蚘憶玠子の間におけるクロックスキュヌが所䞎の倀よりも小さく䞔぀クロックスキュヌを調敎する堎所が前蚘クロックゲヌティングセルの埌段である堎合には、前蚘同期回路に察するタむミング解析結果に基づき、前蚘クロックスキュヌが所䞎の倀以䞊になるように前蚘クロックゲヌティングセルの埌段においお前蚘クロックスキュヌを倉化させる凊理を行うこずにより、前蚘同期回路に察しおクロックツリヌを再構築するクロックツリヌ再構築ステップを含むこずを特城ずする。
(1) A method for designing an integrated circuit device according to the present invention includes:
The first storage element having a plurality of storage elements that operate based on the same clock and not including other storage elements on a signal path from the output of the first storage element to the input of the second storage element And an integrated circuit device including a synchronization circuit in which a clock tree is constructed such that a clock skew between the second storage element and the second storage element is less than or equal to a predetermined value and a clock gating cell is disposed on a clock transmission path A design method,
When the clock skew between the given first storage element and the second storage element is smaller than a given value and the place where the clock skew is adjusted is after the clock gating cell, Based on a timing analysis result for the synchronization circuit, a process for changing the clock skew in a subsequent stage of the clock gating cell so that the clock skew is equal to or greater than a given value is performed. A clock tree restructuring step for reconstructing the tree is included.

本発明に係る集積回路装眮の蚭蚈方法においおは、第の蚘憶玠子の出力から第の蚘憶玠子の入力に至る信号経路䞊に他の蚘憶玠子を含たない第の蚘憶玠子ず第の蚘憶玠子の間におけるクロックスキュヌに察しお、クロックスキュヌを倉化させる凊理を行う。すなわち、第の蚘憶玠子の出力から第の蚘憶玠子の入力に至る信号経路が存圚し、か぀、その経路䞊に他の蚘憶玠子を含たないような第の蚘憶玠子ず第の蚘憶玠子の間におけるクロックスキュヌが調敎の察象ずなる。第の蚘憶玠子及び第の蚘憶玠子は、タむミング解析においおセットアップタむム゚ラヌやホヌルドタむム゚ラヌの解析の察象ずなる信号経路の始点および終点ずなる蚘憶玠子に察応する。   In the method for designing an integrated circuit device according to the present invention, the first storage element and the second storage element that do not include other storage elements on the signal path from the output of the first storage element to the input of the second storage element. A process for changing the clock skew is performed with respect to the clock skew between the storage elements. That is, there is a signal path from the output of the first memory element to the input of the second memory element, and the first memory element and the second memory that do not include other memory elements on the path. Clock skew between elements is an object of adjustment. The first storage element and the second storage element correspond to the storage elements that are the start and end points of the signal path that is the target of the setup time error and hold time error analysis in the timing analysis.

第の蚘憶玠子ず第の蚘憶玠子の間におけるクロックスキュヌは、クロックルヌトから第の蚘憶玠子のクロック入力たでのクロック信号の䌝搬遅延ずクロックルヌトから第の蚘憶玠子のクロック入力たでのクロック信号の䌝搬遅延の差をいう。   The clock skew between the first storage element and the second storage element is the propagation delay of the clock signal from the clock root to the clock input of the first storage element and the clock input from the clock root to the clock input of the second storage element. This is the difference in the propagation delay of the clock signal.

蚘憶玠子は、入力されるクロックに同期しお動䜜し、ビットの情報を蚘憶するこずができる玠子であればよく、䟋えば、フリップフロップなどの各皮のフリップフロップであっおもよいし、ラッチなどの各皮のラッチであっおもよい。   The storage element may be any element that operates in synchronization with the input clock and can store 1-bit information. For example, the storage element may be various flip-flops such as a D flip-flop, Various latches such as a latch may be used.

クロックツリヌが構築されおいる同期回路は、少なくずもレむアりト䞊のセル配眮の情報に基づき、第の蚘憶玠子ず第の蚘憶玠子の間におけるクロックスキュヌが所定の倀以䞋ずなっおおり䞔぀クロックの䌝送経路䞊にクロックゲヌティングセルが配眮されおいればよい。たた、レむアりト䞊で実配線を行った埌のより正確な蚈算に基づくクロックスキュヌが所定の倀以䞋ずなっおいる堎合でもよい。圓該同期回路は、第の蚘憶玠子ず第の蚘憶玠子の間におけるすべおのクロックスキュヌが所定の倀以䞋ずなるようにクロックツリヌが構築されおいおもよいし、所定の信号経路、䟋えば、信号の䌝搬遅延を考慮する必芁のない信号経路ダミヌパスや第の蚘憶玠子ず第の蚘憶玠子の間におけるクロックスキュヌを考慮する必芁がないクロックスキュヌが倧きくおもよい信号経路等を陀いた信号経路䞊の第の蚘憶玠子ず第の蚘憶玠子の間におけるクロックスキュヌが所定の倀以䞋ずなるようにクロックツリヌが構築されおいおもよい。   In the synchronization circuit in which the clock tree is constructed, the clock skew between the first memory element and the second memory element is less than or equal to a predetermined value based on at least the cell arrangement information on the layout, and the clock It suffices if a clock gating cell is arranged on the transmission path. Further, the clock skew based on more accurate calculation after actual wiring on the layout may be a predetermined value or less. In the synchronization circuit, a clock tree may be constructed such that all clock skews between the first storage element and the second storage element are equal to or less than a predetermined value, or a predetermined signal path, for example, A signal path that does not require consideration of signal propagation delay (dummy path), a signal path that does not require consideration of clock skew between the first memory element and the second memory element (clock skew may be large), etc. The clock tree may be constructed so that the clock skew between the first memory element and the second memory element on the signal path excluding the signal is less than or equal to a predetermined value.

クロックツリヌが構築されおいる同期回路に察するタむミング解析結果は、少なくずもレむアりト䞊のセル配眮の情報に基づきタむミング解析を行った結果であればよい。たた、レむアりト䞊で実配線を行った埌に実配線を考慮したより正確なタむミング解析結果であっおもよい。   The timing analysis result for the synchronization circuit in which the clock tree is constructed may be a result of timing analysis based on at least information on cell arrangement on the layout. Further, it may be a more accurate timing analysis result in consideration of actual wiring after performing actual wiring on the layout.

タむミング゚ラヌには、䟋えば、蚘憶玠子に察するセットアップタむム゚ラヌやホヌルドタむム゚ラヌなどがある。   Examples of the timing error include a setup time error and a hold time error for the storage element.

第の蚘憶玠子ず第の蚘憶玠子の間におけるクロックスキュヌを所䞎の倀以䞊にするために、䟋えば、第の蚘憶玠子又は第の蚘憶玠子に接続されるクロックラむンのいずれかにのみ遅延玠子をクロックゲヌティングセルの埌段においお挿入しおもよいし、遅延時間の異なる遅延玠子を䞡方のクロックラむンのクロックゲヌティングセルの埌段においお挿入しおもよい。たた、第の蚘憶玠子又は第の蚘憶玠子に接続されるクロックラむンに遅延玠子が挿入されおいる堎合には、いずれかのクロックラむンからのみ遅延玠子をクロックゲヌティングセルの埌段においお削陀しおもよいし、䞡方のクロックラむンから遅延時間の異なる遅延玠子をクロックゲヌティングセルの埌段においお削陀しおもよい。   In order to make the clock skew between the first memory element and the second memory element equal to or greater than a given value, for example, either the first memory element or the clock line connected to the second memory element Only a delay element may be inserted after the clock gating cell, or delay elements having different delay times may be inserted after the clock gating cells of both clock lines. In addition, when a delay element is inserted in the clock line connected to the first memory element or the second memory element, the delay element is deleted from only one of the clock lines in the subsequent stage of the clock gating cell. Alternatively, delay elements having different delay times may be deleted from both clock lines at the subsequent stage of the clock gating cell.

本発明によれば、クロック信号をゲヌティングするクロックゲヌティングセルがクロック信号の䌝送経路䞊に存圚する堎合に、第の蚘憶玠子ず第の蚘憶玠子の間におけるクロックスキュヌが所䞎の倀以䞊になるようにクロックツリヌがクロックゲヌティングセルの埌段においお再構築される。その結果、クロックがゲヌティングされおいるずきに動䜜する玠子を枛らすこずができるので、消費電力を䜎枛するこずができる。   According to the present invention, when a clock gating cell for gating a clock signal exists on the transmission path of the clock signal, the clock skew between the first storage element and the second storage element is a given value. As described above, the clock tree is reconstructed at the subsequent stage of the clock gating cell. As a result, since the number of elements that operate when the clock is gated can be reduced, power consumption can be reduced.

所䞎の倀は、ピヌク電流を䜎枛するのに十分な倀であればよく、蚈算やシミュレヌションにより求めおもよい。   The given value may be a value sufficient to reduce the peak current, and may be obtained by calculation or simulation.

たた、本発明によれば、少なくずも、第の蚘憶玠子ず第の蚘憶玠子の間におけるクロックスキュヌ、すなわち、動䜜タむミングが関連する぀の蚘憶玠子間におけるクロックスキュヌに぀いおは、所䞎の倀以䞊になるようにクロックツリヌがクロックゲヌティングセルの埌段においお再構築される。動䜜タむミングが関連する぀の蚘憶玠子は、レむアりト䞊の物理的に近い堎所に配眮される可胜性が高く、これらの蚘憶玠子は同䞀の電源レヌルから電源を䟛絊される堎合が倚い。そのため、動䜜タむミングが関連する぀の蚘憶玠子間のクロックスキュヌが所䞎の倀以䞊になるようにクロックツリヌをクロックゲヌティングセルの埌段においお再構築すれば、電源電䜍の電圧降䞋を有効に䜎枛するこずができる。䞀方、動䜜タむミングにおいお無関係の぀の蚘憶玠子は、レむアりト䞊の物理的に近い堎所に配眮される可胜性は䜎く、これらの蚘憶玠子は異なる電源レヌルから電源を䟛絊される堎合が倚い。そのため、動䜜タむミングにおいお無関係の぀の蚘憶玠子間におけるクロックスキュヌに぀いおは、所䞎の倀より小さいたたクロックツリヌを再構築しおも、電源電䜍の電圧降䞋を有効に䜎枛するこずができる。なお、可胜であれば、動䜜タむミングにおいお無関係の぀の蚘憶玠子間におけるクロックスキュヌに぀いおも、所䞎の倀以䞊になるようにクロックツリヌをクロックゲヌティングセルの埌段においお構築しおもよい。   According to the present invention, at least the clock skew between the first storage element and the second storage element, that is, the clock skew between the two storage elements related to the operation timing is equal to or greater than a given value. The clock tree is reconstructed at the subsequent stage of the clock gating cell. The two storage elements related to the operation timing are likely to be disposed at physically close locations on the layout, and these storage elements are often supplied with power from the same power supply rail. Therefore, if the clock tree is reconstructed in the subsequent stage of the clock gating cell so that the clock skew between the two storage elements related to the operation timing is equal to or greater than a given value, the voltage drop of the power supply potential is effectively reduced. be able to. On the other hand, two storage elements that are irrelevant in the operation timing are unlikely to be physically located in the layout, and these storage elements are often supplied with power from different power supply rails. Therefore, regarding the clock skew between two storage elements that are irrelevant in the operation timing, the voltage drop of the power supply potential can be effectively reduced even if the clock tree is reconstructed while being smaller than a given value. If possible, the clock tree may be constructed in the subsequent stage of the clock gating cell so that the clock skew between the two storage elements that are irrelevant in the operation timing is equal to or greater than a given value.

本発明に係る集積回路装眮の蚭蚈方法は、
前蚘クロックツリヌ再構築ステップは、
前蚘同期回路に察するタむミング解析結果に基づき、前蚘クロックスキュヌを倉化させるこずによりタむミング゚ラヌが発生するず刀断した堎合は、前蚘クロックスキュヌを倉化させる凊理を行わないこずを特城ずする。
(2) An integrated circuit device design method according to the present invention includes:
The clock tree reconstruction step includes:
If it is determined that a timing error occurs by changing the clock skew based on the timing analysis result for the synchronous circuit, the process for changing the clock skew is not performed.

本発明によれば、タむミング解析結果に基づき、タむミング゚ラヌが発生しないず刀断される堎合のみ、クロックスキュヌを倉化させる凊理を行う。埓っお、クロックツリヌが再構築された埌の同期回路は、タむミング゚ラヌがなく、か぀、ピヌク電流を削枛するこずができる。   According to the present invention, the process of changing the clock skew is performed only when it is determined that a timing error does not occur based on the timing analysis result. Therefore, the synchronous circuit after the clock tree is reconstructed has no timing error and can reduce the peak current.

本発明に係る集積回路装眮の蚭蚈方法は、
前蚘クロックツリヌ再構築ステップは、
前蚘クロックゲヌティングセルの埌段においお前蚘第の蚘憶玠子に接続されたクロックラむンに又は以䞊の遅延玠子を挿入するこずにより前蚘クロックスキュヌを倉化させる凊理を行うこずを特城ずする。
(3) An integrated circuit device design method according to the present invention includes:
The clock tree reconstruction step includes:
The clock skew is changed by inserting one or more delay elements in a clock line connected to the first memory element at a subsequent stage of the clock gating cell.

本発明によれば、第の蚘憶玠子に接続されたクロックラむンに又は以䞊の遅延玠子をクロックゲヌティングセルの埌段においお挿入するだけなので、セットアップタむム゚ラヌに察するマヌゞンが倧きい信号経路がほずんどであるような堎合には、クロックスキュヌを簡単に所䞎の倀以䞊にするこずができ、ピヌク電流を䜎枛するこずができる。   According to the present invention, since only one or more delay elements are inserted into the clock line connected to the first storage element at the subsequent stage of the clock gating cell, most signal paths have a large margin for setup time errors. In some cases, the clock skew can be easily increased beyond a given value, and the peak current can be reduced.

本発明に係る集積回路装眮の蚭蚈方法は、
前蚘クロックツリヌ再構築ステップは、
前蚘クロックゲヌティングセルの埌段においおセットアップタむム゚ラヌに察するマヌゞンが小さい信号経路䞊にある前蚘第の蚘憶玠子ず前蚘第の蚘憶玠子の間におけるクロックスキュヌを優先的に倉化させる凊理を行うこずを特城ずする。
(4) A method for designing an integrated circuit device according to the present invention includes:
The clock tree reconstruction step includes:
A process of preferentially changing a clock skew between the first storage element and the second storage element on a signal path having a small margin for a setup time error at a subsequent stage of the clock gating cell is performed. And

本発明によれば、䟋えば、信号経路のセットアップタむム゚ラヌに察するマヌゞンが倧きくなるに぀れお、圓該信号経路䞊にある第の蚘憶玠子に接続されたクロックラむンに挿入する遅延玠子の数をクロックゲヌティングセルの埌段においお倚くすれば、各蚘憶玠子に含たれるクロックバッファのトランゞスタがスむッチングするタむミングを効率的に分散させるこずができるので、ピヌク電流を䜎枛するこずができる。   According to the present invention, for example, as the margin for the setup time error of the signal path increases, the number of delay elements to be inserted into the clock line connected to the first storage element on the signal path is set to the clock gating cell. If the number is increased in the subsequent stage, the timing at which the transistors of the clock buffer included in each memory element are switched can be efficiently distributed, so that the peak current can be reduced.

本発明に係る集積回路装眮の蚭蚈方法は、
前蚘クロックツリヌ再構築ステップず、
前蚘クロックツリヌ再構築ステップによりクロックツリヌを再構築した埌の同期回路に察しお、レむアりト䞊で実配線を行うステップず、
前蚘クロックツリヌを再構築した埌の同期回路に察しお、前蚘レむアりト䞊での実配線を考慮したタむミング解析を行うステップず、
前蚘レむアりト䞊での実配線を考慮したタむミング解析結果に基づき、セットアップタむム゚ラヌが発生する信号経路䞊にある前蚘第の蚘憶玠子に接続されたクロックラむンから又は以䞊の遅延玠子を削陀するこずによりセットアップタむム゚ラヌを解消するようにクロックツリヌを修正するステップずを含むこずを特城ずする。
(5) A method for designing an integrated circuit device according to the present invention includes:
The clock tree reconstruction step;
For the synchronous circuit after reconstructing the clock tree by the clock tree restructuring step, performing the actual wiring on the layout;
For the synchronous circuit after reconstructing the clock tree, performing a timing analysis in consideration of actual wiring on the layout;
One or more delay elements are deleted from the clock line connected to the first storage element on the signal path where the setup time error occurs based on the timing analysis result considering the actual wiring on the layout. Modifying the clock tree so as to eliminate the setup time error.

本発明によれば、クロックツリヌを再構築する際に、遅延玠子を挿入するたびに実配線を行う必芁がなく、クロックツリヌを再構築する凊理をより短時間で行うこずができる。たた、クロックツリヌを再構築した埌の同期回路に察するレむアりト䞊での実配線を考慮したタむミング解析結果に基づき、遅延玠子を远加するこずなくセットアップタむム゚ラヌを解消するので、クロックラむンの配線を倧幅にやり盎す必芁がなく、より簡単か぀確実にセットアップタむム゚ラヌを解消するこずができる。   According to the present invention, when reconstructing the clock tree, it is not necessary to perform actual wiring every time a delay element is inserted, and the process of reconstructing the clock tree can be performed in a shorter time. In addition, the setup time error is eliminated without adding a delay element based on the timing analysis result considering the actual wiring on the layout for the synchronous circuit after the clock tree is reconstructed. There is no need to start over, and setup time errors can be resolved more easily and reliably.

なお、クロックツリヌを再構築した埌の同期回路に察するレむアりト䞊での実配線を考慮したタむミング解析結果においお、ホヌルドタむム゚ラヌが発生する堎合は、公知の皮々の手法によりホヌルドタむム゚ラヌを解消するこずができる。䟋えば、ホヌルドタむム゚ラヌが発生する信号経路にバッファなどを挿入しお信号を遅延させるこずにより、クロックラむンの配線を倉曎するこずなく、簡単にホヌルドタむム゚ラヌを解消するこずができる。   If a hold time error occurs in the timing analysis result considering the actual wiring on the layout for the synchronous circuit after reconstructing the clock tree, the hold time error can be eliminated by various known methods. it can. For example, by inserting a buffer or the like in the signal path where a hold time error occurs to delay the signal, the hold time error can be easily eliminated without changing the clock line wiring.

本発明に係るクロックツリヌ構築ツヌルは、
同䞀のクロックに基づいお動䜜する耇数の蚘憶玠子を有し、第の蚘憶玠子の出力から第の蚘憶玠子の入力に至る信号経路䞊に他の蚘憶玠子を含たない前蚘第の蚘憶玠子ず前蚘第の蚘憶玠子の間におけるクロックスキュヌが所定の倀以䞋ずなるようにクロックツリヌが構築され䞔぀クロックの䌝送経路䞊にクロックゲヌティングセルが配眮されおいる同期回路に察しおクロックツリヌを再構築するクロックツリヌ構築ツヌルであっお、
所䞎の前蚘第の蚘憶玠子ず前蚘第の蚘憶玠子の間におけるクロックスキュヌが所䞎の倀よりも小さく䞔぀クロックスキュヌを調敎する堎所が前蚘クロックゲヌティングセルの埌段である堎合には、前蚘同期回路に察するタむミング解析結果に基づき、前蚘クロックスキュヌが所䞎の倀以䞊になるように前蚘クロックゲヌティングセルの埌段においお前蚘クロックスキュヌを倉化させおもタむミング゚ラヌが発生しないず刀断した堎合には、前蚘クロックゲヌティングセルの埌段においお前蚘第の蚘憶玠子に接続されたクロックラむンに又は以䞊の遅延玠子を挿入するこずにより、前蚘クロックスキュヌが所䞎の倀以䞊になるように前蚘クロックゲヌティングセルの埌段においお前蚘クロックスキュヌを倉化させる凊理を行い前蚘同期回路に察しおクロックツリヌを再構築するクロックツリヌ再構築ステップず、
前蚘クロックツリヌ再構築ステップによりクロックツリヌを再構築した埌の同期回路に察しお、レむアりト䞊で実配線を行うステップず、
前蚘クロックツリヌを再構築した埌の同期回路に察しお、前蚘レむアりト䞊での実配線を考慮したタむミング解析を行うステップず、
前蚘レむアりト䞊での実配線を考慮したタむミング解析結果に基づき、セットアップタむム゚ラヌが発生する信号経路䞊にある前蚘第の蚘憶玠子に接続されたクロックラむンから又は以䞊の遅延玠子を削陀するこずによりセットアップタむム゚ラヌを解消するようにクロックツリヌを修正するステップずを含むこずを特城ずする。
(6) A clock tree construction tool according to the present invention includes:
The first storage element having a plurality of storage elements that operate based on the same clock and not including other storage elements on a signal path from the output of the first storage element to the input of the second storage element And the second memory element, the clock tree is constructed so that the clock skew is equal to or less than a predetermined value, and the clock tree is provided to the synchronous circuit in which the clock gating cell is arranged on the clock transmission path. A clock tree construction tool to reconstruct,
When the clock skew between the given first storage element and the second storage element is smaller than a given value and the place where the clock skew is adjusted is after the clock gating cell, When it is determined that a timing error does not occur even if the clock skew is changed in the subsequent stage of the clock gating cell so that the clock skew is equal to or greater than a given value based on the timing analysis result for the synchronous circuit , By inserting one or more delay elements in a clock line connected to the first memory element at a subsequent stage of the clock gating cell, the clock skew is set to a given value or more. A process of changing the clock skew is performed at the subsequent stage of the gating cell. And the clock tree restructuring step to reconstruct the clock tree for the circuit,
For the synchronous circuit after reconstructing the clock tree by the clock tree restructuring step, performing the actual wiring on the layout;
For the synchronous circuit after reconstructing the clock tree, performing a timing analysis in consideration of actual wiring on the layout;
One or more delay elements are deleted from the clock line connected to the first storage element on the signal path where the setup time error occurs based on the timing analysis result considering the actual wiring on the layout. Modifying the clock tree so as to eliminate the setup time error.

本発明に係るクロックツリヌ構築ツヌルは、䟋えば、信号経路のセットアップタむム゚ラヌに察するマヌゞンが倧きくなるに぀れお、圓該信号経路䞊にある第の蚘憶玠子に接続されたクロックラむンに挿入する遅延玠子の数を倧きくすれば、各蚘憶玠子に含たれるクロックバッファのトランゞスタがスむッチングするタむミングを効率的に分散させるこずができ、第の蚘憶玠子ず第の蚘憶玠子の間におけるクロックスキュヌが所䞎の倀以䞊になるようにクロックツリヌを再構築するこずができる。埓っお、ピヌク電流を䜎枛するこずができ、ピヌク電流が流れる時の電源電䜍の電圧降䞋を䜎枛するこずができるので、回路の誀動䜜を防止するこずができる。   The clock tree construction tool according to the present invention, for example, determines the number of delay elements to be inserted into the clock line connected to the first storage element on the signal path as the margin for the setup time error of the signal path increases. If it is increased, the switching timing of the transistors of the clock buffer included in each memory element can be efficiently distributed, and the clock skew between the first memory element and the second memory element is greater than or equal to a given value. The clock tree can be rebuilt so that Accordingly, the peak current can be reduced, and the voltage drop of the power supply potential when the peak current flows can be reduced, so that malfunction of the circuit can be prevented.

本発明に係るクロックツリヌ構築ツヌルは、遅延玠子を挿入するたびに実配線を行うこずはしないので、クロックツリヌを再構築する凊理をより短時間で行うこずができる。たた、クロックツリヌを再構築した埌の同期回路に察するレむアりト䞊での実配線を考慮したタむミング解析結果に基づき、遅延玠子を远加こずなくセットアップタむム゚ラヌを解消するので、クロックラむンの配線を倧幅にやり盎す必芁がなく、より簡単か぀確実にセットアップタむム゚ラヌを解消するこずができる。   Since the clock tree construction tool according to the present invention does not perform actual wiring every time a delay element is inserted, the process of reconstructing the clock tree can be performed in a shorter time. In addition, the setup time error is eliminated without adding a delay element based on the timing analysis result considering the actual wiring on the layout for the synchronous circuit after the clock tree is reconstructed. There is no need, and setup time errors can be resolved more easily and reliably.

本発明は、
䞊蚘のいずれかに蚘茉された集積回路装眮の蚭蚈方法又はクロックツリヌ構築ツヌルを甚いお蚭蚈補造されたこずを特城ずする集積回路装眮である。
(7) The present invention
An integrated circuit device characterized by being designed and manufactured using the integrated circuit device design method or clock tree construction tool described above.

本発明は、
䞊蚘に蚘茉の集積回路装眮を含むこずを特城ずするマむクロコンピュヌタである。
(8) The present invention
A microcomputer including the integrated circuit device described above.

本発明は、
䞊蚘に蚘茉のマむクロコンピュヌタず、
前蚘マむクロコンピュヌタの凊理察象ずなるデヌタの入力手段ず、
前蚘マむクロコンピュヌタにより凊理されたデヌタを出力するための出力手段ずを含むこずを特城ずする電子機噚である。
(9) The present invention
A microcomputer as described above;
Means for inputting data to be processed by the microcomputer;
And an output means for outputting data processed by the microcomputer.

以䞋、本発明の奜適な実斜圢態に぀いお図面を甚いお詳现に説明する。なお、以䞋に説明する実斜の圢態は、特蚱請求の範囲に蚘茉された本発明の内容を䞍圓に限定するものではない。たた以䞋で説明される構成の党おが本発明の必須構成芁件であるずは限らない。   DESCRIPTION OF EMBODIMENTS Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the drawings. The embodiments described below do not unduly limit the contents of the present invention described in the claims. Also, not all of the configurations described below are essential constituent requirements of the present invention.

集積回路装眮、集積回路装眮の蚭蚈方法、クロックツリヌ構築ツヌル
図は、本実斜の圢態のクロックツリヌ構築ツヌルの察象ずなる同期回路の䟋を説明するための図である。
1. Integrated Circuit Device, Integrated Circuit Device Design Method, Clock Tree Construction Tool FIG. 1 is a diagram for explaining an example of a synchronous circuit that is a target of the clock tree construction tool of the present embodiment.

同期回路は、集積回路装眮に含たれる回路であり、本実斜の圢態のクロックツリヌ構築ツヌルの察象ずなる。同期回路は、サブブロック及び、クロックツリヌを含んで構成される。ここで、同期回路に含たれる各フリップフロップはいずれもメむンクロックで同期制埡される。すなわち、同期回路はメむンクロック同䞀のクロックに基づいお動䜜する同期回路である。   The synchronization circuit 10 is a circuit included in an integrated circuit device (IC) and is a target of the clock tree construction tool of the present embodiment. The synchronization circuit 10 includes sub blocks 100 and 200 and a clock tree 300. Here, each flip-flop included in the synchronization circuit 10 is synchronously controlled by the main clock 312. That is, the synchronization circuit 10 is a synchronization circuit that operates based on the main clock 312 (the same clock).

サブブロックは、個のフリップフロップ、、及び組み合わせ回路、を含んで構成されおいる。組み合わせ回路の぀の入力はフリップフロップの出力に接続されおおり、他の぀の入力はサブブロックの倖郚から䟛絊される。組み合わせ回路の出力は、フリップフロップのデヌタ入力に接続されおいる。たた、組み合わせ回路の぀の入力はフリップフロップの出力に接続されおおり、他の぀の入力はサブブロックに含たれるフリップフロップの出力に接続されおいる。組み合わせ回路の出力は、フリップフロップのデヌタ入力に接続されおいる。   The sub block 100 includes three flip-flops 110, 120, and 130 and combinational circuits 140 and 150. One input of the combinational circuit 140 is connected to the output of the flip-flop 110, and the other one input 142 is supplied from the outside of the sub-block 100. The output of the combination circuit 140 is connected to the data input of the flip-flop 120. Further, one input of the combinational circuit 150 is connected to the output of the flip-flop 120, and the other one input is connected to the output of the flip-flop 220 included in the sub-block 200. The output of the combinational circuit 150 is connected to the data input of the flip-flop 130.

サブブロックは、個のフリップフロップ、、及び組み合わせ回路、を含んで構成されおいる。組み合わせ回路の぀の入力はサブブロックに含たれるフリップフロップの出力に接続されおおり、他の぀の入力はフリップフロップの出力に接続されおいる。組み合わせ回路の出力は、フリップフロップのデヌタ入力に接続されおいる。たた、組み合わせ回路の぀の入力はフリップフロップの出力に接続されおおり、他の぀の入力はサブブロックの倖郚から䟛絊される。組み合わせ回路の出力は、フリップフロップのデヌタ入力に接続されおいる。   The sub-block 200 includes three flip-flops 210, 220, 230 and combinational circuits 240, 250. One input of the combinational circuit 240 is connected to the output of the flip-flop 110 included in the sub-block 100, and the other one input is connected to the output of the flip-flop 210. The output of the combinational circuit 240 is connected to the data input of the flip-flop 220. Further, one input of the combinational circuit 250 is connected to the output of the flip-flop 220, and the other one input 252 is supplied from the outside of the sub-block 200. The output of the combinational circuit 250 is connected to the data input of the flip-flop 230.

クロックツリヌは、クロックバッファ、、、、及びクロックゲヌティングセルを含んで構成されおいる。クロックバッファの入力はクロックバッファの出力に接続されおおり、その出力は、サブブロックに含たれる個のフリップフロップ、、の各クロック入力、、に共通に接続されおいる。クロックバッファの入力はクロックバッファの出力に接続されおおり、その出力は、クロックバッファの入力に接続されおいる。クロックバッファの出力は、サブブロックに含たれる個のフリップフロップ、、の各クロック入力、、に共通に接続されおいる。ここで、クロックバッファの出力から個のフリップフロップ、、、、、の各クロック入力、、、、、たでの遅延を揃え、任意の぀のフリップフロップ間におけるクロックスキュヌが所定の倀以䞋䟋えば、になるように、遅延玠子ずしお機胜するクロックバッファ、、が挿入されおいる。   The clock tree 300 includes clock buffers 320, 330, 340, 350, 370 and a clock gating cell 360. The input of the clock buffer 320 is connected to the output of the clock buffer 350, and the output is commonly connected to the clock inputs 112, 122, 132 of the three flip-flops 110, 120, 130 included in the sub-block 100. Has been. The input of the clock buffer 330 is connected to the output of the clock buffer 350, and its output is connected to the input of the clock buffer 340. The output of the clock buffer 340 is connected in common to the clock inputs 212, 222, and 232 of the three flip-flops 210, 220, and 230 included in the sub-block 200. Here, the delay from the output of the clock buffer 350 to the clock inputs 112, 122, 132, 212, 222, and 232 of the six flip-flops 110, 120, 130, 210, 220, and 230 is aligned, Clock buffers 320, 330, and 340 functioning as delay elements are inserted so that the clock skew between the flip-flops is a predetermined value or less (for example, 0).

クロックバッファの出力からフリップフロップ、、の各クロック入力、、たでには、぀のクロックバッファが挿入されおいる。䞀方、クロックバッファの出力からフリップフロップ、、の各クロック入力、、たでには、぀のクロックバッファ及びが挿入されおいる。挿入されるクロックバッファの数の盞違は、レむアりト図瀺せず䞊の各フリップフロップの物理的な配眮堎所の盞違のため、クロックバッファず各フリップフロップの間の距離が異なるこずに起因する。すなわち、クロックバッファずフリップフロップの間の距離が長い堎合は、クロック配線に䌎う寄生抵抗や寄生容量が倧きく、クロックラむンの配線遅延が倧きいため、挿入するクロックバッファの数を少なくする。䞀方、クロックバッファずフリップフロップの間の距離が短い堎合は、配線遅延が小さいため、挿入するクロックバッファの数を倚くする。このようにしお、任意の぀のフリップフロップ間におけるクロックスキュヌが所定の倀以䞋になるようにクロックツリヌが構成されおいる。䟋えば、クロックバッファ、、の入力から出力たでの遅延がすべおの堎合、クロックバッファの出力からフリップフロップ、、の各クロック入力、、たでの配線遅延がすべおであり、クロックバッファの出力からフリップフロップ、、の各クロック入力、、たでの配線遅延がすべおだずするず、クロックバッファの出力からフリップフロップ、、、、、の各クロック入力、、、、、たでの遅延はすべおずなり、任意の぀のフリップフロップ間のクロックスキュヌがになる。   One clock buffer 320 is inserted from the output of the clock buffer 350 to each clock input 112, 122, 132 of the flip-flops 110, 120, 130. On the other hand, two clock buffers 330 and 340 are inserted from the output of the clock buffer 350 to the clock inputs 212, 222, and 232 of the flip-flops 210, 220, and 230. The difference in the number of inserted clock buffers is due to the difference in the distance between the clock buffer 350 and each flip-flop due to the difference in the physical arrangement location of each flip-flop on the layout (not shown). . That is, when the distance between the clock buffer 350 and the flip-flop is long, the parasitic resistance and the parasitic capacitance associated with the clock wiring are large, and the clock line wiring delay is large. Therefore, the number of clock buffers to be inserted is reduced. On the other hand, when the distance between the clock buffer 350 and the flip-flop is short, since the wiring delay is small, the number of clock buffers to be inserted is increased. In this way, the clock tree 300 is configured such that the clock skew between any two flip-flops is a predetermined value or less. For example, when the delays from the input to the output of the clock buffers 320, 330, and 340 are all 1 ns, all the wiring delays from the output of the clock buffer 350 to the clock inputs 112, 122, and 132 of the flip-flops 110, 120, and 130 are all. 1 ns, and the wiring delay from the output of the clock buffer 350 to the clock inputs 212, 222, and 232 of the flip-flops 210, 220, and 230 is all zero, the flip-flops 110, 120, 130, and 210 from the output of the clock buffer 350 are assumed. , 220, and 230, the delays to the clock inputs 112, 122, 132, 212, 222, and 232 are all 2 ns, and the clock skew between any two flip-flops is zero.

サブブロックに含たれる個のフリップフロップ、、はレむアりト䞊の物理的に近い堎所に配眮されおおり、クロックバッファから個のフリップフロップ、、の各クロック入力、、たでの配線遅延にはほずんど差がないこれらのフリップフロップ間におけるクロックスキュヌは非垞に小さいため、クロックバッファの出力ずフリップフロップ、、の各クロック入力、、の間にはクロックバッファが挿入されおいない。同様に、サブブロックに含たれる個のフリップフロップ、、はレむアりト䞊の物理的に近い堎所に配眮されおいるため、クロックバッファの出力ずフリップフロップ、、の各クロック入力、、の間にはクロックバッファが挿入されおいない。   The three flip-flops 110, 120, and 130 included in the sub-block 100 are arranged at physically close locations on the layout, and each clock input 112 of the three flip-flops 110, 120, and 130 is provided from the clock buffer 320. , 122, 132 has almost no difference in the wiring delay (the clock skew between these flip-flops is very small), so that the output of the clock buffer 320 and the clock inputs 112, 122 of the flip-flops 110, 120, 130 132, no clock buffer is inserted. Similarly, since the three flip-flops 210, 220, and 230 included in the sub-block 200 are arranged physically close to each other on the layout, the output of the clock buffer 340 and each of the flip-flops 210, 220, and 230 A clock buffer is not inserted between the clock inputs 212, 222, and 232.

ここで、組み合わせ回路におけるフリップフロップ第の蚘憶玠子に盞圓するの出力からフリップフロップ第の蚘憶玠子に盞圓するのデヌタ入力たでのパス信号経路の遅延は、組み合わせ回路におけるフリップフロップ第の蚘憶玠子に盞圓するの出力からフリップフロップ第の蚘憶玠子に盞圓するのデヌタ入力たでのパスの遅延は、フリップフロップ第の蚘憶玠子に盞圓するの出力からフリップフロップ第の蚘憶玠子に盞圓するのデヌタ入力たでのパスの遅延は、組み合わせ回路におけるフリップフロップ第の蚘憶玠子に盞圓するの出力からフリップフロップ第の蚘憶玠子に盞圓するのデヌタ入力たでのパスの遅延は、フリップフロップ第の蚘憶玠子に盞圓するの出力からフリップフロップ第の蚘憶玠子に盞圓するのデヌタ入力たでのパスの遅延は、組み合わせ回路におけるフリップフロップ第の蚘憶玠子に盞圓するの出力からフリップフロップ第の蚘憶玠子に盞圓するのデヌタ入力たでのパスの遅延はであるずする。さらに、メむンクロックのクロック呚波数はクロック呚期は、すべおのフリップフロップの遅延クロックが入力されおから出力が倉化するたでの時間はず仮定し、すべおのフリップフロップに察するセットアップタむムは以䞊、ホヌルドタむムは以䞊必芁であるず仮定する。たた、すべおのフリップフロップ間のクロックスキュヌ以䞋の説明では、第の蚘憶玠子に盞圓するフリップフロップたでのクロック遅延から第の蚘憶玠子に盞圓するフリップフロップたでのクロック遅延を匕き算した倀ず定矩するはであるず仮定する。   Here, the delay of the path (signal path) p1 from the output of the flip-flop 110 (corresponding to the first memory element) to the data input of the flip-flop 120 (corresponding to the second memory element) in the combinational circuit 140 is The delay of the path p2 from the output of the flip-flop 120 (corresponding to the first memory element) in the combinational circuit 150 to the data input of the flip-flop 130 (corresponding to the second memory element) is 5.5 ns. The delay of the path p3 from the output of the flip-flop 220 (corresponding to the first memory element) to the data input of the flip-flop 130 (corresponding to the second memory element) is 2 ns, and the flip-flop 110 ( Flip-flop 220 (second storage element) from the output of the first storage element The delay of the path p4 until the data input (corresponding) is 2.5 ns, from the output of the flip-flop 210 (corresponding to the first memory element) to the data input of the flip-flop 220 (corresponding to the second memory element) The path p5 has a delay of 6.5 ns, and the path p6 from the output of the flip-flop 220 (corresponding to the first memory element) in the combinational circuit 250 to the data input of the flip-flop 230 (corresponding to the second memory element). Is assumed to be 7.5 ns. Further, it is assumed that the clock frequency of the main clock 312 is 100 MHz (clock period is 10 ns), the delay of all flip-flops (the time from when the clock is input to when the output changes) is 1 ns, and setup for all flip-flops. It is assumed that the time is 1 ns or more and the hold time is 0 ns or more. Further, the clock skew between all flip-flops (in the following description, a value obtained by subtracting the clock delay to the flip-flop corresponding to the first memory element from the clock delay to the flip-flop corresponding to the second memory element) Define) is assumed to be zero.

この堎合、セットアップタむム゚ラヌが起こらないためには、すべおのフリップフロップ間における組み合わせ回路のパスの遅延は、クロック呚期クロックスキュヌ−フリップフロップの遅延−セットアップタむム以䞋でなければならない。䞊述の通り、パス〜の遅延はそれぞれ、、、、、、なので、パス〜に関しお、セットアップタむム゚ラヌは発生しおいない。䞀方、ホヌルドタむム゚ラヌが起こらないためには、すべおのフリップフロップ間における組み合わせ回路のパスの遅延は、ホヌルドタむムクロックスキュヌ−フリップフロップの遅延−以䞊でなければならない。明らかに、パス〜に関しお、ホヌルドタむム゚ラヌは発生しおいない。   In this case, in order to prevent a setup time error, the delay of the combinational circuit path between all flip-flops is 10 ns (clock cycle) +0 ns (clock skew) -1 ns (flip-flop delay) -1 ns (setup time) ) = 8 ns or less. As described above, the delays of the paths p1 to p6 are 5.5 ns, 6.5 ns, 2 ns, 2.5 ns, 6.5 ns, and 7.5 ns, respectively, so no setup time error has occurred for the paths p1 to p6. . On the other hand, in order to prevent a hold time error, the delay of the combinational circuit path between all flip-flops must be 0 ns (hold time) +0 ns (clock skew) -1 ns (flip-flop delay) = − 1 ns or more. I must. Clearly, no hold time error has occurred with respect to the paths p1 to p6.

クロックバッファの入力はクロックゲヌティングセルのクロック出力に接続されおおり、クロックゲヌティングセルのクロック入力は、クロックバッファの出力に接続されおおり、クロックバッファの入力は、メむンクロックバッファの出力に接続されおいる。クロックゲヌティングセルの制埡入力には、制埡信号がクロックツリヌの倖郚から䟛絊される。クロックゲヌティングセルは、制埡信号が掻性化むネヌブル状態である堎合には、クロックバッファの出力から䟛絊されるクロック信号をクロックバッファの入力に䟛絊し、制埡信号が非掻性化ディセヌブル状態である堎合には、クロック信号をクロックバッファの入力に䟛絊しない。すなわち、制埡信号が掻性化むネヌブル状態である堎合には、クロックバッファ、、、、及び、サブブロック、は動䜜し、制埡信号が非掻性化ディセヌブル状態である堎合には、クロックバッファ、、、、及び、サブブロック、は動䜜しない。埓っお、制埡信号が非掻性化ディセヌブル状態である堎合には、消費電力を䜎枛するこずができる。   The input of the clock buffer 350 is connected to the clock output of the clock gating cell 360, the clock input of the clock gating cell 360 is connected to the output of the clock buffer 370, and the input of the clock buffer 370 is the main clock. It is connected to the output of the buffer 310. A control signal 362 is supplied from the outside of the clock tree 300 to the control input of the clock gating cell 360. When the control signal 362 is activated (enabled), the clock gating cell 360 supplies the clock signal supplied from the output of the clock buffer 370 to the input of the clock buffer 350, and the control signal 362 is inactive. In the enabled (disabled) state, the clock signal is not supplied to the input of the clock buffer 350. That is, when the control signal 362 is activated (enabled), the clock buffers 320, 330, 340, 350 and the sub-blocks 100, 200 operate, and the control signal 362 is deactivated (disabled). In the state, the clock buffers 320, 330, 340, 350 and the sub-blocks 100, 200 do not operate. Therefore, when the control signal 362 is in an inactive (disabled) state, power consumption can be reduced.

図は、図における同期回路に察しお埓来技術非特蚱文献蚘茉のクロックツリヌ構築ツヌルを䜿甚し、クロックツリヌを再構築した埌の同期回路の䟋に぀いお説明するための図である。図ず同じ構成には同じ番号を付しおおり説明を省略する。   FIG. 2 is a diagram for explaining an example of the synchronization circuit after the clock tree is reconstructed by using the clock tree construction tool of the prior art (described in Non-Patent Document 1) for the synchronization circuit 10 in FIG. is there. The same components as those in FIG.

図における同期回路クロックツリヌを再構築した埌の同期回路は、クロックツリヌがクロックバッファ、、、、を含む点においおのみ、図における同期回路ず異なる。クロックバッファの入力は、クロックバッファの出力に接続され、その出力は、フリップフロップのクロック入力に接続されおいる。クロックバッファの入力は、クロックバッファの出力に接続され、その出力は、クロックバッファの入力に接続されおいる。クロックバッファの出力は、フリップフロップのクロック入力に接続されおいる。クロックバッファの入力は、クロックバッファの出力に接続され、その出力は、フリップフロップのクロック入力に接続されおいる。クロックバッファの入力は、クロックバッファの出力に接続され、その出力は、クロックゲヌティングセルのクロック入力に接続されおいる。クロックバッファ、、、、は、埓来技術のクロックツリヌ構築ツヌルが挿入したクロックバッファである。   2 differs from the synchronization circuit 10 in FIG. 1 only in that the clock tree 302 includes clock buffers 322, 324, 326, 344, and 372. The synchronization circuit 20 in FIG. The input of the clock buffer 322 is connected to the output of the clock buffer 320, and its output is connected to the clock input 122 of the flip-flop 120. The input of the clock buffer 324 is connected to the output of the clock buffer 320, and the output is connected to the input of the clock buffer 326. The output of the clock buffer 326 is connected to the clock input 112 of the flip-flop 110. The input of the clock buffer 344 is connected to the output of the clock buffer 340, and its output is connected to the clock input 212 of the flip-flop 210. The input of the clock buffer 372 is connected to the output of the clock buffer 370, and its output is connected to the clock input of the clock gating cell 360. The clock buffers 322, 324, 326, 344 and 372 are clock buffers inserted by a conventional clock tree construction tool.

ここで、クロックバッファ、、、、の入力から出力たでの遅延はすべおであるずする。この堎合、クロックバッファの出力からフリップフロップのクロック入力たでの遅延は、図の堎合ず比范しお、クロックバッファ及びの遅延分だけ増加しおいる。同様に、クロックバッファの出力からフリップフロップのクロック入力たでの遅延はクロックバッファの遅延分だけ増加し、クロックバッファの出力からフリップフロップのクロック入力たでの遅延はクロックバッファの遅延分だけ増加しおいる。クロックバッファの出力からフリップフロップ、、の各クロック入力、、たでの遅延は図の堎合ず倉わらない。埓っお、パス䞊にあるフリップフロップずの間のクロックスキュヌは−である。同様に、パス䞊にあるフリップフロップずの間、パス䞊にあるフリップフロップずの間、パス䞊にあるフリップフロップずの間、パス䞊にあるフリップフロップずの間、パス䞊にあるフリップフロップずの間のクロックスキュヌはそれぞれ、−、、−、−、である。すなわち、埓来技術のクロックツリヌ構築ツヌルにより、クロックスキュヌに差が出るようにクロックバッファ、、、が挿入されおいる。   Here, it is assumed that the delays from the input to the output of the clock buffers 322, 324, 326, 344, and 372 are all 1 ns. In this case, the delay from the output of the clock buffer 350 to the clock input 112 of the flip-flop 110 is increased by the delay of the clock buffers 324 and 326 (1 ns + 1 ns = 2 ns) compared to the case of FIG. Similarly, the delay from the output of the clock buffer 350 to the clock input 122 of the flip-flop 120 is increased by the delay (1 ns) of the clock buffer 322, and the delay from the output of the clock buffer 350 to the clock input 212 of the flip-flop 210 is It is increased by the delay (1 ns) of the clock buffer 344. The delay from the output of the clock buffer 350 to the clock inputs 132, 222, 232 of the flip-flops 130, 220, 230 is the same as in the case of FIG. Therefore, the clock skew between the flip-flops 110 and 120 on the path p1 is −1 ns. Similarly, between flip-flops 120 and 130 on path p2, between flip-flops 220 and 130 on path p3, between flip-flops 110 and 220 on path p4, and flip-flop 210 on path p5. And 220, and the clock skew between the flip-flops 220 and 230 on the path p6 are −1 ns, 0 ns, −2 ns, −1 ns, and 0, respectively. That is, the clock buffers 322, 324, 326, and 344 are inserted by the conventional clock tree construction tool so that the clock skew is different.

䞀方、サブブロック及びは図ずたったく同じであり、パス〜の遅延も倉わらない。パスの遅延はであり、クロック呚期−クロックスキュヌ−フリップフロップの遅延−セットアップタむム以䞋なので、フリップフロップに察するセットアップタむム゚ラヌは発生しおいない。たた、フリップフロップに察するホヌルドタむム゚ラヌに぀いおも、ホヌルドタむム−クロックスキュヌ−フリップフロップの遅延−なので、発生しおいない。同様に、パス及びに関するフリップフロップに察するセットアップタむム゚ラヌ及びホヌルドタむム゚ラヌ、パス及びに関するフリップフロップに察するセットアップタむム゚ラヌ及びホヌルドタむム゚ラヌ、パスに関するフリップフロップに察するセットアップタむム゚ラヌ及びホヌルドタむム゚ラヌは発生しおいない。すなわち、本実斜の圢態のクロックツリヌ構築ツヌルがクロックバッファ、、、、を挿入したこずにより、同期回路にタむミング゚ラヌは発生しおいない。   On the other hand, the sub-blocks 100 and 200 are exactly the same as in FIG. 1, and the delays of the paths p1 to p6 are not changed. Since the delay of the path p1 is 5.5 ns and 10 ns (clock cycle) + (− 1 ns) (clock skew) −1 ns (flip-flop delay) −1 ns (setup time) = 7 ns or less, the setup time for the flip-flop 120 No error has occurred. Also, the hold time error for the flip-flop 120 is not generated because 0 ns (hold time) + (− 1 ns) (clock skew) −1 ns (delay of the flip-flop 110) = − 2 ns. Similarly, setup time error and hold time error for flip-flop 130 for paths p2 and p3, setup time error and hold time error for flip-flop 220 for paths p4 and p5, setup time error and hold time for flip-flop 230 for path p6. No error has occurred. That is, since the clock tree construction tool of the present embodiment has inserted the clock buffers 322, 324, 326, 344, and 372, no timing error has occurred in the synchronization circuit 20.

なお、図においおは、クロックバッファがクロックゲヌティングセルの前段に挿入されおいる。埓っお、制埡信号が非掻性化ディセヌブル状態である堎合であっおも、クロックバッファは動䜜しおしたうこずになる。   In FIG. 2, a clock buffer 372 is inserted in front of the clock gating cell 360. Therefore, even when the control signal 362 is in an inactive (disabled) state, the clock buffer 372 operates.

図は、図における同期回路に察しお本実斜の圢態のクロックツリヌ構築ツヌルを䜿甚し、クロックツリヌを再構築した埌の同期回路の䟋に぀いお説明するための図である。図ず同じ構成には同じ番号を付しおおり説明を省略する。   FIG. 3 is a diagram for explaining an example of the synchronization circuit after the clock tree is reconstructed by using the clock tree construction tool of the present embodiment for the synchronization circuit 10 in FIG. The same components as those in FIG.

図における同期回路クロックツリヌを再構築した埌の同期回路は、クロックツリヌがクロックバッファ、、、、を含む点においおのみ、図における同期回路ず異なる。クロックバッファの入力は、クロックバッファの出力に接続され、その出力は、フリップフロップのクロック入力に接続されおいる。クロックバッファの入力は、クロックバッファの出力に接続され、その出力は、クロックバッファの入力に接続されおいる。クロックバッファの出力は、フリップフロップのクロック入力に接続されおいる。クロックバッファの入力は、クロックバッファの出力に接続され、その出力は、フリップフロップのクロック入力に接続されおいる。クロックバッファの入力は、クロックゲヌティングセルの出力に接続され、その出力は、クロックバッファの入力に接続されおいる。クロックバッファ、、、、は、本実斜の圢態のクロックツリヌ構築ツヌルが挿入したクロックバッファである。   3 is different from the synchronization circuit 10 in FIG. 1 only in that the clock tree 304 includes clock buffers 322, 324, 326, 344, and 364. The synchronization circuit 30 in FIG. The input of the clock buffer 322 is connected to the output of the clock buffer 320, and its output is connected to the clock input 122 of the flip-flop 120. The input of the clock buffer 324 is connected to the output of the clock buffer 320, and the output is connected to the input of the clock buffer 326. The output of the clock buffer 326 is connected to the clock input 112 of the flip-flop 110. The input of the clock buffer 344 is connected to the output of the clock buffer 340, and its output is connected to the clock input 212 of the flip-flop 210. The input of the clock buffer 364 is connected to the output of the clock gating cell 360, and the output is connected to the input of the clock buffer 350. Clock buffers 322, 324, 326, 344, and 364 are clock buffers inserted by the clock tree construction tool of the present embodiment.

ここで、クロックバッファ、、、、の入力から出力たでの遅延はすべおであるずする。この堎合、クロックバッファの出力からフリップフロップのクロック入力たでの遅延は、図の堎合ず比范しお、クロックバッファ及びの遅延分だけ増加しおいる。同様に、クロックバッファの出力からフリップフロップのクロック入力たでの遅延はクロックバッファの遅延分だけ増加し、クロックバッファの出力からフリップフロップのクロック入力たでの遅延はクロックバッファの遅延分だけ増加しおいる。クロックバッファの出力からフリップフロップ、、の各クロック入力、、たでの遅延は図の堎合ず倉わらない。埓っお、パス䞊にあるフリップフロップずの間のクロックスキュヌは−である。同様に、パス䞊にあるフリップフロップずの間、パス䞊にあるフリップフロップずの間、パス䞊にあるフリップフロップずの間、パス䞊にあるフリップフロップずの間、パス䞊にあるフリップフロップずの間のクロックスキュヌはそれぞれ、−、、−、−、である。すなわち、本実斜の圢態のクロックツリヌ構築ツヌルにより、クロックスキュヌに差が出るようにクロックバッファ、、、が挿入されおいる。   Here, it is assumed that the delays from the input to the output of the clock buffers 322, 324, 326, 344, and 364 are all 1 ns. In this case, the delay from the output of the clock buffer 350 to the clock input 112 of the flip-flop 110 is increased by the delay of the clock buffers 324 and 326 (1 ns + 1 ns = 2 ns) compared to the case of FIG. Similarly, the delay from the output of the clock buffer 350 to the clock input 122 of the flip-flop 120 is increased by the delay (1 ns) of the clock buffer 322, and the delay from the output of the clock buffer 350 to the clock input 212 of the flip-flop 210 is It is increased by the delay (1 ns) of the clock buffer 344. The delay from the output of the clock buffer 350 to the clock inputs 132, 222, 232 of the flip-flops 130, 220, 230 is the same as in the case of FIG. Therefore, the clock skew between the flip-flops 110 and 120 on the path p1 is −1 ns. Similarly, between flip-flops 120 and 130 on path p2, between flip-flops 220 and 130 on path p3, between flip-flops 110 and 220 on path p4, and flip-flop 210 on path p5. And 220, and the clock skew between the flip-flops 220 and 230 on the path p6 are −1 ns, 0 ns, −2 ns, −1 ns, and 0, respectively. In other words, the clock buffers 322, 324, 326, and 344 are inserted by the clock tree construction tool of the present embodiment so that there is a difference in clock skew.

䞀方、サブブロック及びは図ずたったく同じであり、パス〜の遅延も倉わらない。パスの遅延はであり、クロック呚期−クロックスキュヌ−フリップフロップの遅延−セットアップタむム以䞋なので、フリップフロップに察するセットアップタむム゚ラヌは発生しおいない。たた、フリップフロップに察するホヌルドタむム゚ラヌに぀いおも、ホヌルドタむム−クロックスキュヌ−フリップフロップの遅延−なので、発生しおいない。同様に、パス及びに関するフリップフロップに察するセットアップタむム゚ラヌ及びホヌルドタむム゚ラヌ、パス及びに関するフリップフロップに察するセットアップタむム゚ラヌ及びホヌルドタむム゚ラヌ、パスに関するフリップフロップに察するセットアップタむム゚ラヌ及びホヌルドタむム゚ラヌは発生しおいない。すなわち、本実斜の圢態のクロックツリヌ構築ツヌルがクロックバッファ、、、、を挿入したこずにより、同期回路にタむミング゚ラヌは発生しおいない。   On the other hand, the sub-blocks 100 and 200 are exactly the same as in FIG. 1, and the delays of the paths p1 to p6 are not changed. Since the delay of the path p1 is 5.5 ns and 10 ns (clock cycle) + (− 1 ns) (clock skew) −1 ns (flip-flop delay) −1 ns (setup time) = 7 ns or less, the setup time for the flip-flop 120 No error has occurred. Also, the hold time error for the flip-flop 120 is not generated because 0 ns (hold time) + (− 1 ns) (clock skew) −1 ns (delay of the flip-flop 110) = − 2 ns. Similarly, setup time error and hold time error for flip-flop 130 for paths p2 and p3, setup time error and hold time error for flip-flop 220 for paths p4 and p5, setup time error and hold time for flip-flop 230 for path p6. No error has occurred. That is, since the clock tree construction tool of the present embodiment has inserted the clock buffers 322, 324, 326, 344, 364, no timing error has occurred in the synchronization circuit 30.

なお、においおは、クロックバッファがクロックゲヌティングセルの埌段に挿入されおいる。埓っお、制埡信号が非掻性化ディセヌブル状態である堎合には、クロックバッファは動䜜しないこずになる。すなわち、制埡信号が非掻性化ディセヌブル状態である堎合の同期回路の消費電力は、制埡信号が非掻性化ディセヌブル状態である堎合の同期回路図参照の消費電力よりも少なくなる。   In 32, a clock buffer 364 is inserted in the subsequent stage of the clock gating cell 360. Therefore, when the control signal 362 is inactive (disabled), the clock buffer 364 does not operate. That is, the power consumption of the synchronization circuit 30 when the control signal 362 is in an inactive (disabled) state is the same as that of the synchronization circuit 20 when the control signal 362 is in an inactive (disabled) state (see FIG. 2). Less power consumption.

図は、クロックバッファの出力ず各フリップフロップのクロック入力に関するタむミングを説明するための図である。   FIG. 4 is a diagram for explaining the timing related to the output of the clock buffer and the clock input of each flip-flop.

図は、図の同期回路におけるタむミングを説明するための図である。時刻においお、クロックバッファの出力が立ち䞊がる。クロックバッファの出力からフリップフロップ、、の各クロック入力、、たでの遅延は、クロックバッファの入力から出力たでの遅延ず配線遅延の和に盞圓し、である。䞀方、クロックバッファの出力からフリップフロップ、、の各クロック入力、、たでの遅延は、クロックバッファの入力から出力たでの遅延ずクロックバッファの入力から出力たでの遅延ず配線遅延の和に盞圓し、である。埓っお、時刻においお、フリップフロップ、、、、、の各クロック入力、、、、、は同時に立ち䞊がる。これは、図の回路ではすべおのフリップフロップに察しおクロックスキュヌがになるようにクロックツリヌが構築されおいるためである。埓っお、クロック入力、、、、、に接続されるバッファ図瀺しおいないが、各フリップフロップの内郚にあるにおけるトランゞスタが同時にスむッチングするために電源からグランドに倧きな貫通電流が流れ、ピヌク電流が倧きくなるため、電源電䜍に倧きな電圧降䞋が発生する。   FIG. 4A is a diagram for explaining the timing in the synchronization circuit 10 of FIG. At time T0, the output of the clock buffer 350 rises. The delay from the output of the clock buffer 350 to the clock inputs 112, 122, 132 of the flip-flops 110, 120, 130 corresponds to the sum of the delay (1 ns) from the input to the output of the clock buffer 320 and the wiring delay (1 ns). 2 ns. On the other hand, the delay from the output of the clock buffer 350 to the clock inputs 212, 222, and 232 of the flip-flops 210, 220, and 230 is the delay (1 ns) from the input to the output of the clock buffer 330 and the output from the input of the clock buffer 340. This corresponds to the sum of the delay until 1 ns and the wiring delay (0 ns), which is 2 ns. Therefore, at time T1, the clock inputs 112, 122, 132, 212, 222, and 232 of the flip-flops 110, 120, 130, 210, 220, and 230 are simultaneously started up. This is because the clock tree is constructed so that the clock skew is zero for all flip-flops in the circuit of FIG. Therefore, a large shoot-through current from the power supply to the ground because the transistors in the buffers connected to the clock inputs 112, 122, 132, 212, 222, 232 (not shown, but inside each flip-flop) are switched simultaneously. Flows and the peak current increases, so that a large voltage drop occurs in the power supply potential.

図は、図の同期回路におけるタむミングを説明するための図である。   FIG. 4B is a diagram for explaining the timing in the synchronization circuit 30 of FIG.

時刻においお、クロックバッファの出力が立ち䞊がる。クロックバッファの出力からフリップフロップのクロック入力たでの遅延は、クロックバッファの入力から出力たでの遅延ずクロックバッファの入力から出力たでの遅延ずクロックバッファの入力から出力たでの遅延ず配線遅延の和に盞圓し、である。クロックバッファの出力からフリップフロップのクロック入力たでの遅延は、クロックバッファの入力から出力たでの遅延ずクロックバッファの入力から出力たでの遅延ず配線遅延の和に盞圓し、である。クロックバッファの出力からフリップフロップのクロック入力たでの遅延は、クロックバッファの入力から出力たでの遅延ず配線遅延の和に盞圓し、である。䞀方、クロックバッファの出力からフリップフロップのクロック入力たでの遅延は、クロックバッファの入力から出力たでの遅延ずクロックバッファの入力から出力たでの遅延ずクロックバッファの入力から出力たでの遅延ず配線遅延の和に盞圓し、である。クロックバッファの出力からフリップフロップ、の各クロック入力、たでの遅延は、クロックバッファの入力から出力たでの遅延ずクロックバッファの入力から出力たでの遅延ず配線遅延の和に盞圓し、である。埓っお、時刻においお、フリップフロップ、、の各クロック入力、、が同時に立ち䞊がり、時刻においお、フリップフロップ、の各クロック入力、が同時に立ち䞊がり、時刻においお、フリップフロップのクロック入力が立ち䞊がる。このように各フリップフロップのクロック入力の立ち䞊がりのタむミングが異なるのは、本実斜の圢態のクロックツリヌ構築ツヌルが、タむミング゚ラヌを起こさない範囲で、クロックバッファの出力から各フリップフロップのクロック入力たでの遅延にできるだけ以䞊の差を぀けるようにクロックツリヌを構築したこずによる。この遅延差ずしおは、回路芏暡や䜿甚するクロックバッファの特性等に基づいお貫通電流が流れるタむミングを分散させおピヌク電流を䜎枛し、電源電䜍の電圧降䞋を効果的に抑制するこずができるような所䞎の倀に蚭定しなければならない。䟋えば、クロックバッファの駆動胜力ずクロック配線の寄生抵抗・寄生容量の関係により、クロックバッファ出力の立ち䞊がりが急峻である堎合には貫通電流が流れる時間が短いので、この所䞎の倀が小さくおもピヌク電流を䜎枛させるこずができるので、電圧降䞋を効果的に抑制するこずができる。逆に、クロックバッファ出力の立ち䞊がりが緩やかな堎合には貫通電流が流れる時間が長いので、この所䞎の倀が倧きくなければピヌク電流を䜎枛させるこずができず、電圧降䞋を効果的に抑制するこずができない。   At time T0, the output of the clock buffer 350 rises. The delay from the output of the clock buffer 350 to the clock input 112 of the flip-flop 110 includes the delay from the input to the output of the clock buffer 320 (1 ns), the delay from the input to the output of the clock buffer 324 (1 ns), and the delay of the clock buffer 326. This corresponds to the sum of delay from input to output (1 ns) and wiring delay (1 ns), and is 4 ns. The delay from the output of the clock buffer 350 to the clock input 122 of the flip-flop 120 includes the delay from the input to the output of the clock buffer 320 (1 ns), the delay from the input to the output of the clock buffer 322 (1 ns), and the wiring delay (1 ns). ) And 3 ns. The delay from the output of the clock buffer 350 to the clock input 132 of the flip-flop 130 corresponds to the sum of the delay (1 ns) from the input to the output of the clock buffer 320 and the wiring delay (1 ns), and is 2 ns. On the other hand, the delay from the output of the clock buffer 350 to the clock input 212 of the flip-flop 210 is the delay from the input to the output of the clock buffer 330 (1 ns), the delay from the input to the output of the clock buffer 340 (1 ns), and the clock buffer. This corresponds to the sum of the delay (1 ns) from the input to the output 344 and the wiring delay (0 ns), which is 3 ns. The delay from the output of the clock buffer 350 to the clock inputs 222 and 232 of the flip-flops 220 and 230 is the delay from the input to the output of the clock buffer 330 (1 ns) and the delay from the input to the output of the clock buffer 340 (1 ns). Equivalent to the sum of the wiring delay (0 ns) and 2 ns. Therefore, at time T1, the clock inputs 132, 222, and 232 of the flip-flops 130, 220, and 230 rise simultaneously, and at time T2, the clock inputs 122 and 212 of the flip-flops 120 and 210 rise simultaneously, and at time T3, The clock input 112 of the flip-flop 110 rises. As described above, the rising timing of the clock input of each flip-flop is different from the output of the clock buffer 350 to the clock input of each flip-flop as long as the clock tree construction tool of this embodiment does not cause a timing error. This is because the clock tree is constructed so as to make a difference of 1 ns or more as long as possible. This delay difference is such that the timing of through current distribution is distributed based on the circuit scale, the characteristics of the clock buffer used, etc., the peak current is reduced, and the voltage drop of the power supply potential can be effectively suppressed. Must be set to a given value. For example, due to the relationship between the clock buffer drive capability and the clock wire parasitic resistance / parasitic capacitance, when the rise of the clock buffer output is steep, the time for the through current to flow is short, so even if this given value is small Since the peak current can be reduced, the voltage drop can be effectively suppressed. On the contrary, when the rise of the clock buffer output is slow, the through current flows for a long time. Therefore, if this given value is not large, the peak current cannot be reduced and the voltage drop is effectively suppressed. I can't.

図は、本実斜の圢態の集積回路装眮の蚭蚈方法補造方法に぀いお説明するためのフロヌチャヌト図である。   FIG. 5 is a flowchart for explaining a design method (manufacturing method) of the integrated circuit device according to the present embodiment.

たず、ゲヌトレベルで蚘述されたネットリストを読み蟌み、各セルの物理的な配眮セル配眮を行うステップ。   First, the net list described at the gate level is read, and the physical arrangement (cell arrangement) of each cell is performed (step S10).

次に、クロックのルヌト䟋えば、クロックが入力されるバッファの出力から各フリップフロップのクロック入力たでの遅延クロック遅延の差、すなわちクロックスキュヌが所定の倀以䞋になるように、各クロックラむンにバッファ又は偶数個のむンバヌタ等の遅延玠子を挿入するこずにより、クロックツリヌを構築するステップ。クロックツリヌの構築においおは、ステップで埗られたセル配眮の情報に基づいお、各クロックラむンの仮想配線を行い、配線長や寄生抵抗・寄生容量が考慮される。各フリップフロップに察するホヌルドタむムやセットアップタむムの制玄が厳しい堎合などは、理想的にはクロックスキュヌがになるようにクロックツリヌを構築するのが望たしいが、挿入可胜なバッファの皮類の制玄が倧きい堎合やクロック遅延の増加を抑える必芁がある堎合などは、クロックスキュヌは所定の倀ホヌルドタむム゚ラヌ及びセットアップタむム゚ラヌを起こさない皋床の倀以䞋になるようにすればよい。   Next, each clock is set such that the difference in delay (clock delay) from the clock root (for example, the output of the buffer to which the clock is input) to the clock input of each flip-flop, that is, the clock skew is equal to or less than a predetermined value. A clock tree is constructed by inserting delay elements such as buffers (or an even number of inverters) into the line (step S12). In the construction of the clock tree, the virtual wiring of each clock line is performed based on the information on the cell arrangement obtained in step S10, and the wiring length, parasitic resistance and parasitic capacitance are taken into consideration. When there are severe restrictions on hold time and setup time for each flip-flop, it is ideal to construct a clock tree so that the clock skew is zero, but there are large restrictions on the types of buffers that can be inserted. When it is necessary to suppress an increase in clock delay, the clock skew may be set to a predetermined value (a value that does not cause a hold time error and a setup time error) or less.

次に、クロックツリヌを構築した埌の回路に察しおタむミング解析を行いステップ、セットアップタむム゚ラヌ及びホヌルドタむム゚ラヌがなくなるたで、セル配眮ステップおよびクロックツリヌの構築ステップを繰り返し行うステップ。図の同期回路は、ステップ〜によりクロックツリヌが構築された回路であっおもよい。   Next, timing analysis is performed on the circuit after the clock tree is constructed (step S14), and cell arrangement (step S10) and clock tree construction (step S12) are performed until the setup time error and the hold time error are eliminated. Repeatedly (step S16). The synchronization circuit 10 in FIG. 1 may be a circuit in which a clock tree is constructed in steps S10 to S16.

次に、このタむミング解析結果から、すべおのパスに぀いお、クロックルヌトから圓該パスの終点ずなるフリップフロップ第の蚘憶玠子に盞圓するのクロック入力たでの遅延ずクロックルヌトから圓該パスの始点ずなるフリップフロップ第の蚘憶玠子に盞圓するのクロック入力たでの遅延の差を圓該パスに察するクロックスキュヌずしお蚈算するステップ。䟋えば、図においお、パス〜に察するクロックスキュヌはすべおである。なお、信号の䌝搬遅延を考慮する必芁のないパスダミヌパスやクロックスキュヌを考慮する必芁がないクロックスキュヌが倧きくおもよいパス等がある堎合は、これらのパスを陀いたパスに぀いおのみクロックスキュヌを蚈算すればよい。   Next, from this timing analysis result, for all paths, the delay from the clock root to the clock input of the flip-flop (corresponding to the second storage element) that is the end point of the path and the start point of the path from the clock root The difference in delay until the clock input of the flip-flop (corresponding to the first memory element) is calculated as the clock skew for the path (step S18). For example, in FIG. 1, the clock skews for the paths p1 to p6 are all zero. If there are paths that do not need to consider signal propagation delay (dummy paths) or paths that do not need to consider clock skew (clock skew may be large), only paths other than these paths are excluded. What is necessary is just to calculate a clock skew.

さらに、圓該パスの終点ずなるフリップフロップのセットアップタむム゚ラヌに察するマヌゞンを、圓該パスに察するクロックスキュヌの䜙裕床ずしお蚈算するステップ。䟋えば、図においお、䞊述した通り、セットアップタむム゚ラヌを起こさないためには各パスの遅延は以䞋でなければならないのに察しお、パスの遅延はなので、パスに察するクロックスキュヌの䜙裕床は、−ずなる。同様の蚈算により、パス、、、、に察するクロックスキュヌの䜙裕床は、それぞれ、、、、、ずなる。   Further, the margin for the setup time error of the flip-flop serving as the end point of the path is calculated as a margin of clock skew for the path (step S18). For example, in FIG. 1, as described above, in order not to cause a setup time error, the delay of each path must be 8 ns or less, whereas the delay of path p1 is 5.5 ns. Is 8 ns−5.5 ns = 2.5 ns. By similar calculations, the clock skew margins for paths p2, p3, p4, p5, and p6 are 1.5 ns, 6 ns, 5.5 ns, 1.5 ns, and 0.5 ns, respectively.

次に、すべおのパスに察しお、ステップで蚈算したクロックスキュヌが所䞎の倀以䞋、刀定倀ずいうよりも小さいか吊か刀定するステップ。ここで、回路が誀動䜜を起こすほどの電源電䜍の電圧降䞋を匕き起こすピヌク電流が流れないために芁求される、぀のフリップフロップ間におけるクロックスキュヌを蚈算やシミュレヌションにより求め、刀定倀ずしお䜿甚する。䟋えば、図においお、クロックスキュヌが以䞊あれば電源電䜍の電圧降䞋を抑制する効果があるずするず刀定倀をずする。パス〜に察するクロックスキュヌはいずれもであるので、すべお刀定倀より小さい。   Next, it is determined whether or not the clock skew calculated in step S18 is smaller than a given value (hereinafter referred to as a determination value) for all paths (step S20). Here, the clock skew between the two flip-flops required to prevent a peak current that causes a voltage drop of the power supply potential to cause a malfunction of the circuit is obtained by calculation or simulation and used as a determination value. For example, in FIG. 1, if the clock skew is 1 ns or more, the determination value is 1 ns if there is an effect of suppressing the voltage drop of the power supply potential. Since the clock skews for the paths p1 to p6 are all 0, they are all smaller than the determination value.

ステップにおいお、すべおのパスに察するクロックスキュヌが刀定倀よりも倧きい堎合には、実配線を行うステップ。䞀方、ステップにおいお、クロックスキュヌが刀定倀よりも小さいパスがある堎合には、圓該パスに察するクロックスキュヌの䜙裕床がステップにおける刀定倀ず圓該パスのクロックスキュヌの差よりも倧きいか吊か刀定するステップ。䟋えば、図においお、パスのクロックスキュヌの䜙裕床は、刀定倀ずパスのクロックスキュヌの差よりも倧きい。同様に、パス、、、のクロックスキュヌの䜙裕床は、刀定倀ず各パスのクロックスキュヌの差よりも倧きい。パスのクロックスキュヌの䜙裕床はであり、刀定倀ずパスのクロックスキュヌの差よりも小さい。   In step S20, when the clock skew for all paths is larger than the determination value, actual wiring is performed (step S26). On the other hand, if there is a path whose clock skew is smaller than the determination value in step S20, it is determined whether or not the clock skew margin for the path is larger than the difference between the determination value in step S20 and the clock skew of the path. (Step S22). For example, in FIG. 1, the clock skew margin (2.5 ns) of the path p1 is larger than the difference (1 ns) between the determination value (1 ns) and the clock skew (0 ns) of the path p1. Similarly, the margin of clock skew of paths p2, p3, p4, and p5 is larger than the difference between the judgment value and the clock skew of each path. The margin of clock skew of path p6 is 0.5 ns, which is smaller than the difference (1 ns) between the judgment value (1 ns) and the clock skew (0 ns) of path p6.

ステップにおいお、すべおのパスに察するクロックスキュヌの䜙裕床がステップにおける刀定倀ずクロックスキュヌの差よりも小さい堎合は、電源電䜍に倚少の電圧降䞋を生じる可胜性があるが、セットアップタむム゚ラヌを発生させないためにクロックスキュヌの再構築は行わず、実配線を行うステップ。䞀方、ステップにおいお、クロックスキュヌの䜙裕床がステップにおける刀定倀ずクロックスキュヌの差よりも倧きいパスが存圚する堎合は、曎に、クロックスキュヌを調敎する堎所がクロックゲヌティングセルよりも埌段であるか吊かを刀定するステップ。そしお、クロックスキュヌを調敎する堎所がクロックゲヌティングセルよりも埌段である堎合には、クロックスキュヌの䜙裕床すなわち、セットアップタむム゚ラヌに察するマヌゞンが小さいパスから順に、クロックスキュヌがステップにおける刀定倀よりも倧きくなるように圓該パスの始点ずなるフリップフロップに接続されたクロックラむンに又は以䞊の遅延玠子バッファたたは偶数個のむンバヌタなどをクロックゲヌティングセルよりも埌段に挿入するこずにより、クロックツリヌを再構築するステップ。図においおは、クロックスキュヌの䜙裕床の小さいパスの順に、パス、、、、、ずなる。たず、パスのクロックスキュヌの䜙裕床はであり、刀定倀ずパスのクロックスキュヌの差よりも小さいため、パスの始点ずなるフリップフロップに接続されたクロックラむンにはクロックバッファは挿入されない。次に、パスのクロックスキュヌの䜙裕床はであり、刀定倀ずパスのクロックスキュヌの差よりも倧きいため、パスの始点ずなるフリップフロップに接続されたクロックラむンには、以䞊以䞋の遅延玠子が挿入される。䟋えば、図においおは、の遅延玠子ずしお機胜するクロックバッファが挿入されおいる。クロックバッファの挿入により、パスのクロックスキュヌは枛少しお−ずなり、クロックスキュヌの䜙裕床は増加しおずなる。次に、パスのクロックスキュヌの䜙裕床はであり、刀定倀ずパスのクロックスキュヌの差よりも倧きいため、パスの始点ずなるフリップフロップに接続されたクロックラむンには、以䞊以䞋の遅延玠子が挿入される。䟋えば、図においおは、の遅延玠子ずしお機胜するクロックバッファが挿入されおいる。次に、パスのクロックスキュヌの䜙裕床はであり、刀定倀ずパスのクロックスキュヌ−の差よりも倧きいため、パスの始点ずなるフリップフロップに接続されたクロックラむンには、以䞊以䞋の遅延玠子が挿入される。䟋えば、図においおは、の遅延玠子ずしお機胜するクロックバッファ及びが挿入されおいる。ここで、぀のクロックバッファ及びが挿入されおいるのは、クロックバッファが先に挿入されたこずを考慮しお、パスのクロックスキュヌを刀定倀以䞊にするためである。クロックバッファ及びの挿入により、パスのクロックスキュヌは増加しおずなり、クロックスキュヌの䜙裕床は枛少しおずなる。次に、パスに぀いおは、クロックバッファ及びの挿入により、パスのクロックスキュヌはずなり、刀定倀以䞊であるので、パスの始点ずなるフリップフロップに接続されたクロックラむンにはさらにクロックバッファを挿入するこずはしない。次に、パスのクロックスキュヌの䜙裕床はであり、刀定倀ずパスのクロックスキュヌの差よりも倧きいが、パスの始点ずなるフリップフロップに接続されたクロックラむンに以䞊の遅延玠子を挿入するず、パスに関しおセットアップタむム゚ラヌが発生するため、図においおは、クロックバッファが挿入されおいない。なお、同期回路ず他の同期回路図瀺せずずの間のクロックスキュヌを調敎する等のため、クロックバッファがクロックゲヌティングセルずクロックバッファずの間に挿入されおいる。   In step S22, if the clock skew margin for all paths is smaller than the difference between the judgment value and clock skew in step S20, a slight voltage drop may occur in the power supply potential, but a setup time error occurs. In order to prevent this, the clock skew is not reconstructed and actual wiring is performed (step S26). On the other hand, in step S22, when there is a path whose clock skew margin is greater than the difference between the determination value in step S20 and the clock skew, the location where the clock skew is adjusted is further downstream than the clock gating cell. It is determined whether or not (step S23). If the clock skew is adjusted after the clock gating cell, the clock skew is determined in step S20 in order from the path with the smallest clock skew margin (that is, the margin for the setup time error). By inserting one or more delay elements (such as a buffer or an even number of inverters) in the subsequent stage of the clock gating cell in the clock line connected to the flip-flop that is the starting point of the path Then, the clock tree is reconstructed (step S24). In FIG. 1, paths p6, p2, p5, p1, p4, and p3 are in order of paths with the smallest clock skew margin. First, the margin of the clock skew of the path p6 is 0.5 ns, which is smaller than the difference (1 ns) between the determination value (1 ns) and the clock skew (0 ns) of the path p6, and thus the flip-flop 220 serving as the starting point of the path p6. A clock buffer is not inserted into the clock line connected to. Next, the margin of the clock skew of path p2 is 1.5 ns, which is larger than the difference (1 ns) between the determination value (1 ns) and the clock skew (0 ns) of path p2, so that the flip-flop serving as the starting point of path p2 A delay element of 1 ns to 1.5 ns is inserted into the clock line connected to 220. For example, in FIG. 3, a clock buffer 322 that functions as a 1 ns delay element is inserted. By inserting the clock buffer 322, the clock skew of the path p1 decreases by 1 ns to −1 ns, and the margin of the clock skew increases by 1 ns to 3.5 ns. Next, the margin of the clock skew of path p5 is 1.5 ns, which is larger than the difference (1 ns) between the determination value (1 ns) and the clock skew (0 ns) of path p5, so that the flip-flop serving as the starting point of path p5 A delay element of 1 ns to 1.5 ns is inserted in the clock line connected to 210. For example, in FIG. 3, a clock buffer 344 that functions as a 1 ns delay element is inserted. Next, since the margin of the clock skew of the path p1 is 3.5 ns, which is larger than the difference (2 ns) between the determination value (1 ns) and the clock skew (−1 ns) of the path p1, the flip-flop serving as the starting point of the path p1 A delay element of 2 ns to 3.5 ns is inserted into the clock line connected to the group 110. For example, in FIG. 3, clock buffers 324 and 326 functioning as 1 ns delay elements are inserted. Here, the two clock buffers 324 and 326 are inserted in order to make the clock skew of the path p1 equal to or greater than the determination value (1 ns) in consideration of the clock buffer 322 being inserted first. . By inserting the clock buffers 324 and 326, the clock skew of the path p4 increases by 2 ns to 2 ns, and the margin of the clock skew decreases by 2 ns to 3.5 ns. Next, for the path p4, due to the insertion of the clock buffers 324 and 326, the clock skew of the path p4 is 2 ns, which is equal to or greater than the determination value (1 ns), so the clock connected to the flip-flop 110 that is the starting point of the path p4 No further clock buffers are inserted into the line. Next, the margin of clock skew of path p3 is 6 ns, which is larger than the difference (1 ns) between the judgment value (1 ns) and the clock skew (0 ns) of path p3, but the flip-flop 220 that is the starting point of path p3 When a delay element of 0.5 ns or more is inserted into the connected clock line, a setup time error occurs with respect to the path p6, and therefore no clock buffer is inserted in FIG. A clock buffer 364 is inserted between the clock gating cell 360 and the clock buffer 350 in order to adjust a clock skew between the synchronization circuit 30 and another synchronization circuit (not shown).

次に、クロックツリヌを再構築した埌の回路に察しお実配線を行いステップ、クロックツリヌを再構築した埌の回路に察しお、実配線を考慮したタむミング解析を行いステップ、タむミング゚ラヌがあれば圓該゚ラヌがなくなるたで、ステップで挿入したバッファたたは偶数個のむンバヌタを削陀するこずにより、クロックツリヌの修正ステップおよび実配線ステップを繰り返し行うステップ。タむミング゚ラヌがなくなれば、実行フロヌを終了する。   Next, actual wiring is performed on the circuit after the clock tree is reconstructed (step S26), and timing analysis is performed on the circuit after the clock tree is reconstructed in consideration of the actual wiring (step S28). If there is a timing error, the correction of the clock tree (step S32) and the actual wiring (step S26) are repeated by deleting the buffer (or even number of inverters) inserted in step S24 until the error disappears (step S26). Step S30). When there is no timing error, the execution flow ends.

なお、本実斜の圢態の集積回路装眮の蚭蚈方法では、図の同期回路を生成するために、ステップ〜によりクロックツリヌの構築を行ったが、本発明に係る集積回路装眮の蚭蚈方法では、同䞀のクロックに基づいお動䜜する耇数の蚘憶玠子を有し、第の蚘憶玠子の出力から第の蚘憶玠子の入力に至る信号経路䞊に他の蚘憶玠子を含たない前蚘第の蚘憶玠子ず前蚘第の蚘憶玠子の間におけるクロックスキュヌが所定の倀以䞋ずなるようにクロックツリヌが構築されおいる同期回路に察しお適甚するこずができるため、ステップからは本発明に係る集積回路装眮の蚭蚈方法の必須の構成芁玠ではない。䟋えば、手蚭蚈によりクロックツリヌを構成した同期回路に察しおも本発明に係る集積回路装眮の蚭蚈方法を適甚するこずができる。   In the integrated circuit device design method of the present embodiment, the clock tree is constructed in steps S10 to S16 in order to generate the synchronous circuit 10 of FIG. 1, but the integrated circuit device design according to the present invention is designed. In the method, the first memory element includes a plurality of memory elements that operate based on the same clock, and does not include another memory element on a signal path from the output of the first memory element to the input of the second memory element. Steps S10 to S16 can be applied to the synchronous circuit in which the clock tree is constructed so that the clock skew between the second storage element and the second storage element is a predetermined value or less. It is not an indispensable component of the integrated circuit device design method. For example, the integrated circuit device design method according to the present invention can be applied to a synchronous circuit in which a clock tree is configured by hand design.

マむクロコンピュヌタ
図は、本実斜の圢態のマむクロコンピュヌタのハヌドり゚アブロック図の䞀䟋である。
2. Microcomputer FIG. 6 is an example of a hardware block diagram of the microcomputer of this embodiment.

本マむクロコンピュヌタは、、キャッシュメモリ、、、コントロヌラ、リセット回路、プログラマブルタむマ、リアルタむムクロック、コントロヌラ、割り蟌みコントロヌラ、通信制埡装眮、バスコントロヌラ、倉換噚、倉換噚、入力ポヌト、出力ポヌト、ポヌト、クロック発生装眮、プリスケヌラ、クロック停止制埡回路及びそれらを接続する汎甚バス、専甚バス等、各皮ピン等を含む。   The microcomputer 700 includes a CPU 510, a cache memory 520, a RAM 710, a ROM 720, an MMU 730, an LCD controller 530, a reset circuit 540, a programmable timer 550, a real time clock (RTC) 560, a DRAM controller 570, an interrupt controller 580, a communication control device 590, The bus controller 600, A / D converter 610, D / A converter 620, input port 630, output port 640, I / O port 650, clock generator 660, prescaler 670, clock stop control circuit 740 and these are connected. A general-purpose bus 680, a dedicated bus 750, etc., and various pins 690, etc. are included.

電子機噚
図に、本実斜の圢態の電子機噚のブロック図の䞀䟋を瀺す。本電子機噚は、マむクロコンピュヌタたたは、入力郚、メモリ、電源生成郚、、音出力郚を含む。
3. Electronic Device FIG. 7 shows an example of a block diagram of the electronic device of this embodiment. The electronic apparatus 800 includes a microcomputer (or ASIC) 810, an input unit 820, a memory 830, a power generation unit 840, an LCD 850, and a sound output unit 860.

ここで、入力郚は、皮々のデヌタを入力するためのものである。マむクロコンピュヌタは、この入力郚により入力されたデヌタに基づいお皮々の凊理を行うこずになる。メモリは、マむクロコンピュヌタなどの䜜業領域ずなるものである。電源生成郚は、電子機噚で䜿甚される各皮電源を生成するためのものである。は、電子機噚が衚瀺する各皮の画像文字、アむコン、グラフィック等を出力するためのものである。   Here, the input unit 820 is for inputting various data. The microcomputer 810 performs various processes based on the data input by the input unit 820. The memory 830 serves as a work area for the microcomputer 810 and the like. The power generation unit 840 is for generating various power sources used in the electronic device 800. The LCD 850 is for outputting various images (characters, icons, graphics, etc.) displayed by the electronic device.

音出力郚は、電子機噚が出力する各皮の音音声、ゲヌム音等を出力するためのものであり、その機胜は、スピヌカなどのハヌドりェアにより実珟できる。   The sound output unit 860 is for outputting various sounds (sound, game sound, etc.) output from the electronic device 800, and the function can be realized by hardware such as a speaker.

図に、電子機噚の぀である携垯電話の倖芳図の䟋を瀺す。この携垯電話は、入力郚ずしお機胜するダむダルボタンや、電話番号や名前やアむコンなどを衚瀺するや、音出力郚ずしお機胜し音声を出力するスピヌカを備える。   FIG. 8A illustrates an example of an external view of a mobile phone 950 which is one of electronic devices. The cellular phone 950 includes a dial button 952 that functions as an input unit, an LCD 954 that displays a telephone number, a name, an icon, and the like, and a speaker 956 that functions as a sound output unit and outputs sound.

図に、電子機噚の぀である携垯型ゲヌム装眮の倖芳図の䟋を瀺す。この携垯型ゲヌム装眮は、入力郚ずしお機胜する操䜜ボタン、十字キヌや、ゲヌム画像を衚瀺するや、音出力郚ずしお機胜しゲヌム音を出力するスピヌカを備える。   FIG. 8B illustrates an example of an external view of a portable game device 960 that is one of electronic devices. The portable game device 960 includes an operation button 962 that functions as an input unit, a cross key 964, an LCD 966 that displays a game image, and a speaker 968 that functions as a sound output unit and outputs game sound.

図に、電子機噚の぀であるパヌ゜ナルコンピュヌタの倖芳図の䟋を瀺す。このパヌ゜ナルコンピュヌタは、入力郚ずしお機胜するキヌボヌドや、文字、数字、グラフィックなどを衚瀺する、音出力郚を備える。   FIG. 8C illustrates an example of an external view of a personal computer 970 that is one of electronic devices. The personal computer 970 includes a keyboard 972 that functions as an input unit, an LCD 974 that displays characters, numbers, graphics, and the like, and a sound output unit 976.

本実斜の圢態のマむクロコンピュヌタを図〜図の電子機噚に組み蟌むこずにより、䜎䟡栌で画像凊理速床の速いコストパフォヌマンスの高い電子機噚を提䟛するこずができる。   By incorporating the microcomputer of this embodiment into the electronic devices in FIGS. 8A to 8C, an electronic device with low cost and high image processing speed can be provided.

なお、本実斜圢態を利甚できる電子機噚ずしおは、図、、に瀺すもの以倖にも、携垯型情報端末、ペヌゞャヌ、電子卓䞊蚈算機、タッチパネルを備えた装眮、プロゞェクタ、ワヌドプロセッサ、ビュヌファむンダ型又はモニタ盎芖型のビデオテヌプレコヌダ、カヌナビゲヌション装眮等のを䜿甚する皮々の電子機噚を考えるこずができる。   As electronic devices that can use this embodiment, in addition to those shown in FIGS. 8A, 8B, and 8C, a portable information terminal, a pager, an electronic desk calculator, a device including a touch panel, Various electronic devices using an LCD such as a projector, a word processor, a viewfinder type or a monitor direct view type video tape recorder, and a car navigation device can be considered.

なお、本発明は本実斜圢態に限定されず、本発明の芁旚の範囲内で皮々の倉圢実斜が可胜である。   In addition, this invention is not limited to this embodiment, A various deformation | transformation implementation is possible within the range of the summary of this invention.

䟋えば、䞊蚘実斜の圢態では、クロックスキュヌの䜙裕床が小さいパスの順にセットアップタむム゚ラヌに察するマヌゞンの小さいパスの順に、クロックツリヌの再構築を行う堎合を䟋にずり説明したが、これに限られない。クロックスキュヌの䜙裕床が倧きいパスの順やランダムにクロックツリヌの再構築を行っおもよい。たた、クロックラむンに遅延玠子を挿入する床に、関連するパスのクロックスキュヌの䜙裕床を蚈算し盎し、動的にクロックスキュヌの䜙裕床が小さいパスの順を倉曎するようにしおもよい。   For example, in the above embodiment, the case where the clock tree is reconstructed in the order of the paths with the smallest clock skew margin (in the order of the paths with the smallest margin for the setup time error) has been described as an example. Absent. The clock tree may be reconstructed in order of paths with a large margin of clock skew or randomly. Alternatively, every time a delay element is inserted into the clock line, the clock skew margin of the associated path may be recalculated to dynamically change the order of the paths with the small clock skew margin.

たた、䞊蚘実斜の圢態では、クロックスキュヌの䜙裕床が小さく、クロックスキュヌを所䞎の倀刀定倀よりも倧きくするこずができない堎合には、遅延玠子を挿入しない堎合を䟋にずり説明したが、これに限られない。クロックスキュヌを少しでも倧きくするために、クロックスキュヌの䜙裕床を超えない範囲内で、できるだけ遅延玠子を挿入するようにしおもよい。   In the above embodiment, the case where the delay of the delay element is not inserted has been described as an example when the clock skew margin is small and the clock skew cannot be made larger than a given value (determination value). Not limited to this. In order to increase the clock skew as much as possible, a delay element may be inserted as much as possible within a range not exceeding the margin of the clock skew.

本発明は、実斜の圢態で説明した構成ず実質的に同䞀の構成䟋えば、機胜、方法及び結果が同䞀の構成、あるいは目的及び効果が同䞀の構成を含む。たた、本発明は、実斜の圢態で説明した構成の本質的でない郚分を眮き換えた構成を含む。たた、本発明は、実斜の圢態で説明した構成ず同䞀の䜜甚効果を奏する構成又は同䞀の目的を達成するこずができる構成を含む。たた、本発明は、実斜の圢態で説明した構成に公知技術を付加した構成を含む。   The present invention includes configurations that are substantially the same as the configurations described in the embodiments (for example, configurations that have the same functions, methods, and results, or configurations that have the same objects and effects). In addition, the invention includes a configuration in which a non-essential part of the configuration described in the embodiment is replaced. In addition, the present invention includes a configuration that exhibits the same operational effects as the configuration described in the embodiment or a configuration that can achieve the same object. Further, the invention includes a configuration in which a known technique is added to the configuration described in the embodiment.

本実斜の圢態のクロックツリヌ構成ツヌルの察象ずなる同期回路の䟋を説明するための図。The figure for demonstrating the example of the synchronous circuit used as the object of the clock tree structure tool of this Embodiment. 埓来技術のクロックツリヌ構築ツヌルを䜿甚し、クロックツリヌを再構築した埌の同期回路の䟋に぀いお説明するための図。The figure for demonstrating the example of the synchronous circuit after reconstructing a clock tree using the clock tree construction tool of a prior art. 本実斜の圢態のクロックツリヌ構築ツヌルを䜿甚し、クロックツリヌを再構築した埌の同期回路の䟋に぀いお説明するための図。The figure for demonstrating the example of the synchronous circuit after reconstructing a clock tree using the clock tree construction tool of this Embodiment. 図は、本実斜の圢態のクロックツリヌ構成ツヌルの察象ずなる同期回路におけるメむンクロックバッファの出力ず各フリップフロップのクロック入力に関するタむミングを説明するための図であり、図は、本実斜の圢態のクロックツリヌ構築ツヌルを䜿甚し、クロックツリヌを再構築した埌の同期回路におけるメむンクロックバッファの出力ず各フリップフロップのクロック入力に関するタむミングを説明するための図である。FIG. 4A is a diagram for explaining timings related to the output of the main clock buffer and the clock input of each flip-flop in the synchronous circuit that is the target of the clock tree configuration tool of the present embodiment. () Is a figure for demonstrating the timing regarding the output of the main clock buffer in the synchronous circuit after reconstructing a clock tree using the clock tree construction tool of this Embodiment, and the clock input of each flip-flop. 本実斜の圢態の集積回路の蚭蚈方法補造方法に぀いお説明するためのフロヌチャヌト図。FIG. 5 is a flowchart for explaining a design method (manufacturing method) of the integrated circuit according to the present embodiment. 本実斜の圢態のマむクロコンピュヌタのハヌドり゚アブロック図の䞀䟋である。It is an example of the hardware block diagram of the microcomputer of this Embodiment. マむクロコンピュヌタを含む電子機噚のブロック図の䞀䟋を瀺す。An example of a block diagram of an electronic device including a microcomputer is shown. 図は、皮々の電子機噚の倖芳図の䟋である。8A, 8B, and 8C are examples of external views of various electronic devices.

笊号の説明Explanation of symbols

 同期回路、 同期回路、 同期回路、 サブブロック、 フリップフロップ、 クロック入力、 フリップフロップ、 クロック入力、 フリップフロップ、 クロック入力、 組み合わせ回路、 倖郚入力、 組み合わせ回路、 サブブロック、 フリップフロップ、 クロック入力、 フリップフロップ、 クロック入力、 フリップフロップ、 クロック入力、 組み合わせ回路、 組み合わせ回路、 倖郚入力、 クロックツリヌ、 クロックツリヌ、 クロックツリヌ、 メむンクロックバッファ、 メむンクロック、〜、、、 クロックバッファ、 クロックゲヌティングセル、 制埡信号入力、 、 キャッシュメモリ、 コントロヌラ、 リセット回路、 プログラマブルタむマ、 リアルタむムクロック、 コントロヌラ兌バス、 割り蟌みコントロヌラ、 通信制埡回路シリアルむンタヌフェヌス、 バスコントロヌラ、 倉換噚、 倉換噚、 入力ポヌト、 出力ポヌト、 ポヌト、 クロック発生装眮、 プリスケヌラ、 汎甚バス、 各皮ピン、 マむクロコンピュヌタ、 、 、 、 クロック停止制埡回路、 専甚バス、 電子機噚、 マむクロコンピュヌタ、 入力郚、 メモリ、 電源生成郚 、 音出力郚、 携垯電話、 ダむダルボタン、 、 スピヌカ、 携垯型ゲヌム装眮、 操䜜ボタン、 十字キヌ、 、 スピヌカ、 パヌ゜ナルコンピュヌタ、 キヌボヌド、 、 音出力郚 10 synchronization circuit, 20 synchronization circuit, 30 synchronization circuit, 100 sub-block A, 110 flip-flop, 112 clock input, 120 flip-flop, 122 clock input, 130 flip-flop, 132 clock input, 140 combinational circuit, 142 external input, 150 Combinational circuit, 200 sub-block B, 210 flip-flop, 212 clock input, 220 flip-flop, 222 clock input, 230 flip-flop, 232 clock input, 240 combinational circuit, 250 combinational circuit, 252 external input, 300 clock tree, 302 clock Tree, 304 clock tree, 310 main clock buffer, 312 main clock, 320-344, 350, 362370, 372 clock buffer 360 clock gating cell, 362 control signal input, 510 CPU, 520 cache memory, 530 LCD controller, 540 reset circuit, 550 programmable timer, 560 real-time clock (RTC), 570 DMA controller / bus I / F, 580 interrupt controller 590 Communication control circuit (serial interface), 600 bus controller, 610 A / D converter, 620 D / A converter, 630 input port, 640 output port, 650 I / O port, 660 clock generator (PLL), 670 Prescaler, 680 General purpose bus, 690 Various pins, 700 Microcomputer, 710 ROM, 720 RAM, 730 MMU, 740 Clock stop control circuit, 750 Dedicated bus, 800 Device, 810 microcomputer (ASIC), 820 input unit, 830 memory, 840 power generation unit 850 LCD, 860 sound output unit, 950 mobile phone, 952 dial button, 954 LCD, 956 speaker, 960 portable game device, 962 operation Button, 964 Cross key, 966 LCD, 968 Speaker, 970 Personal computer, 972 Keyboard, 974 LCD, 976 Sound output section

Claims (9)

同䞀のクロックに基づいお動䜜する耇数の蚘憶玠子を有し、第の蚘憶玠子の出力から第の蚘憶玠子の入力に至る信号経路䞊に他の蚘憶玠子を含たない前蚘第の蚘憶玠子ず前蚘第の蚘憶玠子の間におけるクロックスキュヌが所定の倀以䞋ずなるようにクロックツリヌが構築され䞔぀クロックの䌝送経路䞊にクロックゲヌティングセルが配眮されおいる同期回路を含む集積回路装眮の蚭蚈方法であっお、
所䞎の前蚘第の蚘憶玠子ず前蚘第の蚘憶玠子の間におけるクロックスキュヌが所䞎の倀よりも小さく䞔぀クロックスキュヌを調敎する堎所が前蚘クロックゲヌティングセルの埌段である堎合には、前蚘同期回路に察するタむミング解析結果に基づき、前蚘クロックスキュヌが所䞎の倀以䞊になるように前蚘クロックゲヌティングセルの埌段においお前蚘クロックスキュヌを倉化させる凊理を行うこずにより、前蚘同期回路に察しおクロックツリヌを再構築するクロックツリヌ再構築ステップを含むこずを特城ずする集積回路装眮の蚭蚈方法。
The first storage element having a plurality of storage elements that operate based on the same clock and not including other storage elements on a signal path from the output of the first storage element to the input of the second storage element And an integrated circuit device including a synchronization circuit in which a clock tree is constructed such that a clock skew between the second storage element and the second storage element is less than or equal to a predetermined value and a clock gating cell is disposed on a clock transmission path A design method,
When the clock skew between the given first storage element and the second storage element is smaller than a given value and the place where the clock skew is adjusted is after the clock gating cell, Based on a timing analysis result for the synchronization circuit, a process for changing the clock skew in a subsequent stage of the clock gating cell so that the clock skew is equal to or greater than a given value is performed. A design method of an integrated circuit device, comprising a clock tree restructuring step of restructuring a tree.
請求項においお、
前蚘クロックツリヌ再構築ステップは、
前蚘同期回路に察するタむミング解析結果に基づき、前蚘クロックスキュヌを倉化させるこずによりタむミング゚ラヌが発生するず刀断した堎合は、前蚘クロックスキュヌを倉化させる凊理を行わないこずを特城ずする集積回路装眮の蚭蚈方法。
In claim 1,
The clock tree reconstruction step includes:
A design method of an integrated circuit device, characterized in that, when it is determined that a timing error occurs by changing the clock skew based on a timing analysis result for the synchronous circuit, a process for changing the clock skew is not performed.
請求項又はにおいお、
前蚘クロックツリヌ再構築ステップは、
前蚘クロックゲヌティングセルの埌段においお前蚘第の蚘憶玠子に接続されたクロックラむンに又は以䞊の遅延玠子を挿入するこずにより前蚘クロックスキュヌを倉化させる凊理を行うこずを特城ずする集積回路装眮の蚭蚈方法。
In claim 1 or 2,
The clock tree reconstruction step includes:
An integrated circuit device that performs processing for changing the clock skew by inserting one or more delay elements into a clock line connected to the first memory element at a subsequent stage of the clock gating cell. Design method.
請求項乃至のいずれかにおいお、
前蚘クロックツリヌ再構築ステップは、
前蚘クロックゲヌティングセルの埌段においおセットアップタむム゚ラヌに察するマヌゞンが小さい信号経路䞊にある前蚘第の蚘憶玠子ず前蚘第の蚘憶玠子の間におけるクロックスキュヌを優先的に倉化させる凊理を行うこずを特城ずする集積回路装眮の蚭蚈方法。
In any one of Claims 1 thru | or 3,
The clock tree reconstruction step includes:
A process of preferentially changing a clock skew between the first storage element and the second storage element on a signal path having a small margin for a setup time error at a subsequent stage of the clock gating cell is performed. A method for designing an integrated circuit device.
請求項乃至のいずれかにおいお、
前蚘クロックツリヌ再構築ステップず、
前蚘クロックツリヌ再構築ステップによりクロックツリヌを再構築した埌の同期回路に察しお、レむアりト䞊で実配線を行うステップず、
前蚘クロックツリヌを再構築した埌の同期回路に察しお、前蚘レむアりト䞊での実配線を考慮したタむミング解析を行うステップず、
前蚘レむアりト䞊での実配線を考慮したタむミング解析結果に基づき、セットアップタむム゚ラヌが発生する信号経路䞊にある前蚘第の蚘憶玠子に接続されたクロックラむンから又は以䞊の遅延玠子を削陀するこずによりセットアップタむム゚ラヌを解消するようにクロックツリヌを修正するステップずを含むこずを特城ずする集積回路装眮の蚭蚈方法。
In any one of Claims 1 thru | or 4,
The clock tree reconstruction step;
For the synchronous circuit after reconstructing the clock tree by the clock tree restructuring step, performing the actual wiring on the layout;
For the synchronous circuit after reconstructing the clock tree, performing a timing analysis in consideration of actual wiring on the layout;
One or more delay elements are deleted from the clock line connected to the first storage element on the signal path where the setup time error occurs based on the timing analysis result considering the actual wiring on the layout. Modifying the clock tree so as to eliminate the setup time error, thereby designing the integrated circuit device.
同䞀のクロックに基づいお動䜜する耇数の蚘憶玠子を有し、第の蚘憶玠子の出力から第の蚘憶玠子の入力に至る信号経路䞊に他の蚘憶玠子を含たない前蚘第の蚘憶玠子ず前蚘第の蚘憶玠子の間におけるクロックスキュヌが所定の倀以䞋ずなるようにクロックツリヌが構築され䞔぀クロックの䌝送経路䞊にクロックゲヌティングセルが配眮されおいる同期回路に察しおクロックツリヌを再構築するクロックツリヌ構築ツヌルであっお、
所䞎の前蚘第の蚘憶玠子ず前蚘第の蚘憶玠子の間におけるクロックスキュヌが所䞎の倀よりも小さく䞔぀クロックスキュヌを調敎する堎所が前蚘クロックゲヌティングセルの埌段である堎合には、前蚘同期回路に察するタむミング解析結果に基づき、前蚘クロックスキュヌが所䞎の倀以䞊になるように前蚘クロックゲヌティングセルの埌段においお前蚘クロックスキュヌを倉化させおもタむミング゚ラヌが発生しないず刀断した堎合には、前蚘クロックゲヌティングセルの埌段においお前蚘第の蚘憶玠子に接続されたクロックラむンに又は以䞊の遅延玠子を挿入するこずにより、前蚘クロックスキュヌが所䞎の倀以䞊になるように前蚘クロックゲヌティングセルの埌段においお前蚘クロックスキュヌを倉化させる凊理を行い前蚘同期回路に察しおクロックツリヌを再構築するクロックツリヌ再構築ステップず、
前蚘クロックツリヌ再構築ステップによりクロックツリヌを再構築した埌の同期回路に察しお、レむアりト䞊で実配線を行うステップず、
前蚘クロックツリヌを再構築した埌の同期回路に察しお、前蚘レむアりト䞊での実配線を考慮したタむミング解析を行うステップず、
前蚘レむアりト䞊での実配線を考慮したタむミング解析結果に基づき、セットアップタむム゚ラヌが発生する信号経路䞊にある前蚘第の蚘憶玠子に接続されたクロックラむンから又は以䞊の遅延玠子を削陀するこずによりセットアップタむム゚ラヌを解消するようにクロックツリヌを修正するステップずを含むこずを特城ずするクロックツリヌ構築ツヌル。
The first storage element having a plurality of storage elements that operate based on the same clock and not including other storage elements on a signal path from the output of the first storage element to the input of the second storage element And the second memory element, the clock tree is constructed so that the clock skew is equal to or less than a predetermined value, and the clock tree is provided to the synchronous circuit in which the clock gating cell is arranged on the clock transmission path. A clock tree construction tool to reconstruct,
When the clock skew between the given first storage element and the second storage element is smaller than a given value and the place where the clock skew is adjusted is after the clock gating cell, When it is determined that a timing error does not occur even if the clock skew is changed in the subsequent stage of the clock gating cell so that the clock skew is equal to or greater than a given value based on the timing analysis result for the synchronous circuit , By inserting one or more delay elements in a clock line connected to the first memory element at a subsequent stage of the clock gating cell, the clock skew is set to a given value or more. A process of changing the clock skew is performed at the subsequent stage of the gating cell. And the clock tree restructuring step to reconstruct the clock tree for the circuit,
For the synchronous circuit after reconstructing the clock tree by the clock tree restructuring step, performing the actual wiring on the layout;
For the synchronous circuit after reconstructing the clock tree, performing a timing analysis in consideration of actual wiring on the layout;
One or more delay elements are deleted from the clock line connected to the first storage element on the signal path where the setup time error occurs based on the timing analysis result considering the actual wiring on the layout. And modifying the clock tree to eliminate setup time errors.
請求項乃至のいずれかに蚘茉された集積回路装眮の蚭蚈方法又は請求項に蚘茉されたクロックツリヌ構築ツヌルを甚いお蚭蚈補造されたこずを特城ずする集積回路装眮。   An integrated circuit device designed and manufactured using the integrated circuit device design method according to claim 1 or the clock tree construction tool according to claim 6. 請求項に蚘茉の集積回路装眮を含むこずを特城ずするマむクロコンピュヌタ。   A microcomputer comprising the integrated circuit device according to claim 7. 請求項に蚘茉のマむクロコンピュヌタず、
前蚘マむクロコンピュヌタの凊理察象ずなるデヌタの入力手段ず、
前蚘マむクロコンピュヌタにより凊理されたデヌタを出力するための出力手段ずを含むこずを特城ずする電子機噚。
A microcomputer according to claim 8;
Means for inputting data to be processed by the microcomputer;
An electronic device comprising: output means for outputting data processed by the microcomputer.
JP2008229477A 2008-09-08 2008-09-08 Method of designing integrated circuit device, clock tree construction tool, integrated circuit device, microcomputer, and electronic equipment Withdrawn JP2010061613A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008229477A JP2010061613A (en) 2008-09-08 2008-09-08 Method of designing integrated circuit device, clock tree construction tool, integrated circuit device, microcomputer, and electronic equipment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008229477A JP2010061613A (en) 2008-09-08 2008-09-08 Method of designing integrated circuit device, clock tree construction tool, integrated circuit device, microcomputer, and electronic equipment

Publications (1)

Publication Number Publication Date
JP2010061613A true JP2010061613A (en) 2010-03-18

Family

ID=42188301

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008229477A Withdrawn JP2010061613A (en) 2008-09-08 2008-09-08 Method of designing integrated circuit device, clock tree construction tool, integrated circuit device, microcomputer, and electronic equipment

Country Status (1)

Country Link
JP (1) JP2010061613A (en)

Similar Documents

Publication Publication Date Title
KR102191167B1 (en) Clock switch device and system-on-chip having the same
US11442103B2 (en) Multibit vectored sequential with scan
WO2010100871A1 (en) Delay library generation system
CN106452394A (en) Clock switching structure having automatic resetting function
US6425115B1 (en) Area efficient delay circuits
US8930862B2 (en) System, method, and computer program product for automatic two-phase clocking
US8191024B2 (en) Customizable H-tree synthesis tool
US10432182B2 (en) Semiconductor integrated circuit
JP2009042905A (en) Integrated circuit device noise analysis method, integrated circuit device noise analysis system, integrated circuit device, electronic equipment, integrated circuit device noise analysis program, and information storage medium
US20050251776A1 (en) Integrated circuit design system
JP2008152550A (en) Integrated circuit device design method, clock construction tool, integrated circuit device, microcomputer and electronic apparatus
US20070129923A1 (en) Dynamic synchronizer simulation
US7735038B2 (en) Design structure to reduce power consumption within a clock gated synchronous circuit and clock gated synchronous circuit
JP2010061613A (en) Method of designing integrated circuit device, clock tree construction tool, integrated circuit device, microcomputer, and electronic equipment
JP2008250396A (en) Semiconductor integrated circuit device design method, semiconductor integrated circuit device, microcomputer, electronic device
JP4999379B2 (en) Semiconductor integrated circuit design method and semiconductor integrated circuit design apparatus
JP2011164988A (en) Design device
US7589565B2 (en) Low-power multi-output local clock buffer
JP2003273222A (en) Circuit design method and program
JP2008250583A (en) Layout design device and layout method
JP4691791B2 (en) Data processing system
JP2011134072A (en) Method for designing semiconductor integrated circuit and program
JP2013036960A (en) Delay scan test method, semiconductor device, and semiconductor device design method
JP2011077426A (en) Method for manufacturing semiconductor device, and semiconductor device
JP2009070325A (en) Semiconductor integrated circuit device design program, semiconductor integrated circuit device design support system, semiconductor integrated circuit device design method, semiconductor integrated circuit device, and electronic apparatus

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20111206