[go: up one dir, main page]

JP2011210053A - Method and device for designing semiconductor integrated circuit, and program - Google Patents

Method and device for designing semiconductor integrated circuit, and program Download PDF

Info

Publication number
JP2011210053A
JP2011210053A JP2010077785A JP2010077785A JP2011210053A JP 2011210053 A JP2011210053 A JP 2011210053A JP 2010077785 A JP2010077785 A JP 2010077785A JP 2010077785 A JP2010077785 A JP 2010077785A JP 2011210053 A JP2011210053 A JP 2011210053A
Authority
JP
Japan
Prior art keywords
clock
delay
mesh net
enable signal
gating
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
JP2010077785A
Other languages
Japanese (ja)
Inventor
Takumi Okamoto
匠 岡本
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2010077785A priority Critical patent/JP2011210053A/en
Publication of JP2011210053A publication Critical patent/JP2011210053A/en
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

PROBLEM TO BE SOLVED: To minimize power consumption in a clock signal part while minimizing a clock skew and a clock delay under manufacturing variations.SOLUTION: A device for designing a semiconductor integrated circuit includes: a mesh network delay calculation part 103 for calculating a delay of a mesh network; a mesh network driving structure delay calculation part 105 for calculating a delay of a mesh network driving structure; a clock element hierarchical cluster generation part 106 for hierarchically generating clusters of clock elements; a clock gating structure generation part 107; a local clock structure generation part 108; a local clock structure delay calculation part 109; a clock structure evaluation part 110 for calculating a clock skew by taking into consideration a maximum clock delay and delay variations, for an entire generated clock structure; and a clock structure selecting means 111 for selecting a clock structure from a set of local clock structure candidates on the basis of respective calculated local clock structure delays and respective calculated clock skews.

Description

本発明は、半導体集積回路の設計方法、設計装置および、コンピュータプログラムに関し、特に、クロックゲーティング構造およびメッシュ構造を持つクロック分配回路を含む半導体集積回路の配置配線を行う設計方法、設計装置および、コンピュータプログラムに関する。   The present invention relates to a semiconductor integrated circuit design method, a design apparatus, and a computer program, and more particularly, a design method, a design apparatus, and a design apparatus for arranging and wiring a semiconductor integrated circuit including a clock distribution circuit having a clock gating structure and a mesh structure. It relates to a computer program.

同期式半導体集積回路は、演算および演算の制御を行うための論理素子(以後、論理セルまたは論理ゲートとも称する)と、論理素子群の動作の同期を取るための順序回路素子(以後、クロック素子、フリップフロップ、またはFFとも称する)から構成されている。各フリップフロップには、ひとつのクロック供給源(以後、クロックソースとも称する)から周期的に発振するクロック信号が供給され、クロック信号の立ち上がりまたは立下りに応じて、フリップフロップが保持しているデータは論理素子群に供給される。論理素子は供給されたデータを入力として演算および演算の制御を行い、その結果をフリップフロップに保存する。以上の処理は周期的に変化するクロック信号の立ち上がりまたは立下りに応じて繰り返される。   A synchronous semiconductor integrated circuit includes a logic element (hereinafter also referred to as a logic cell or a logic gate) for performing operations and control of operations and a sequential circuit element (hereinafter referred to as a clock element) for synchronizing operations of the logic element group. , Flip-flop, or FF). Each flip-flop is supplied with a clock signal that periodically oscillates from one clock supply source (hereinafter also referred to as a clock source), and the data held by the flip-flop according to the rising or falling edge of the clock signal. Is supplied to the logic element group. The logic element uses the supplied data as an input to perform operations and control operations, and stores the results in flip-flops. The above processing is repeated according to the rising or falling edge of the periodically changing clock signal.

上述の同期式回路を、クロック信号を基準にして、正常なタイミングで動作させるための、理想的なクロック信号分配回路の配置配線の条件は、いずれのフリップフロップのクロック入力端子においても、全く同じクロック信号波形が得られるようにすることである。しかし、実際には、クロック信号を引き回す配線、接続しているクロック素子の配置分布の疎密により、フリップフロップ毎にクロック信号が到着する時間を全く同じにすることは困難である。   The ideal clock signal distribution circuit placement and wiring conditions for operating the above-described synchronous circuit at normal timing with reference to the clock signal are exactly the same at any flip-flop clock input terminal. It is to obtain a clock signal waveform. However, in reality, it is difficult to make the time for arrival of the clock signal exactly the same for each flip-flop due to the density of the distribution of the clock signal wiring and the connected clock elements.

フリップフロップ対における、クロック信号が到達する時間の差をクロックスキューと称し、クロックスキューが大きいと回路は正常動作しなくなる可能性がある。従って、クロック分配回路の配置配線では、可能な限りクロックスキューを小さくすることが重要となる。   The difference in the arrival time of the clock signal in the flip-flop pair is called clock skew. If the clock skew is large, the circuit may not operate normally. Therefore, it is important to reduce the clock skew as much as possible in the placement and routing of the clock distribution circuit.

クロック信号を分配する回路の構成として、クロックソースから複数のバッファを経由するツリー状の配線経路を設定し、クロック信号をツリー状に各クロック素子へ分配するものがある。ここで、クロックソースから各クロック素子までのクロック信号の伝搬経路が同じ長さ、同じバッファ段数となるようにツリー形状を設定することにより、クロックスキューを低減することが可能となる。例えば特許文献1に上述のようなツリー構造を生成する技術が示されている。この技術によるクロック分配回路の配置配線例を図16に示す。ここでは、クロックソース16-01からクロック素子16-03へ、中継バッファ16-04を介して、クロック信号を分配する経路16-02が設定されている。   As a circuit configuration for distributing the clock signal, there is a configuration in which a tree-like wiring path passing through a plurality of buffers is set from a clock source and the clock signal is distributed to each clock element in a tree shape. Here, by setting the tree shape so that the propagation path of the clock signal from the clock source to each clock element has the same length and the same number of buffer stages, the clock skew can be reduced. For example, Patent Document 1 discloses a technique for generating a tree structure as described above. An example of the arrangement and wiring of the clock distribution circuit according to this technique is shown in FIG. Here, a path 16-02 for distributing a clock signal from the clock source 16-01 to the clock element 16-03 via the relay buffer 16-04 is set.

しかしながら、このような分配回路構成にしても、実際の設計では、各経路形状のずれ、製造プロセスのバラつきなどの影響でクロックスキューが発生してしまうことは避けられない。特に、近年、半導体プロセスの微細化により、製造における品質バラツキによる遅延バラツキ問題が深刻化しており、これに従い、クロックスキューの最小化は、さらに困難なものになっている。   However, even with such a distribution circuit configuration, in actual design, it is inevitable that clock skew will occur due to the influence of deviation of each path shape, variation in manufacturing process, and the like. In particular, in recent years, with the miniaturization of semiconductor processes, the delay variation problem due to quality variations in manufacturing has become serious, and accordingly, minimization of clock skew has become more difficult.

特許文献1の方法を、製造バラツキ耐性が強くなるように拡張する技術の公知例として、特許文献2があるが、ツリー状の構造では、信号分岐先の遅延バラツキの差が生じることは避けられないため、スキュー最小化には限界がある。   As a well-known example of a technique for extending the method of Patent Document 1 so that manufacturing variation tolerance becomes strong, there is Patent Document 2, but in a tree-like structure, it is unavoidable that a difference in delay variation at the signal branch destination occurs. Therefore, there is a limit to minimizing skew.

そこで、このような製造バラツキ問題に対処するために、ツリー構造を持つクロック分配回路の末端バッファの出力を配線短絡することにより、クロックソースからの各クロック素子へのクロック信号到着時間差を小さくする技術が提案されている。この技術によれば、バッファの出力を配線短絡することにより、クロック供給源から異なる経路を経由してきたクロック信号が平均化され、製造バラツキによるクロックスキューを低減することが可能となる。例えば、クロックツリー構造の末端バッファの出力端子をメッシュ構造 (格子構造とも称する) を持った配線に接続し、メッシュ形状配線から、クロック素子へクロック信号を分配する技術が、特許文献4、特許文献5、特許文献6で提案されている。図17に、クロック分配ツリー(17-01)の末端バッファ(17-03)出力を、メッシュ構造配線(17-02および17-04)で短絡した例を示す。   Therefore, in order to cope with such a manufacturing variation problem, a technique for reducing the difference in clock signal arrival time from the clock source to each clock element by wiring-shorting the output of the terminal buffer of the clock distribution circuit having a tree structure. Has been proposed. According to this technique, by short-circuiting the output of the buffer, clock signals that have passed through different paths from the clock supply source are averaged, and clock skew due to manufacturing variations can be reduced. For example, Patent Document 4, Patent Document 4 discloses a technique for connecting a clock tree structure terminal buffer output terminal to a wiring having a mesh structure (also referred to as a lattice structure) and distributing a clock signal from a mesh-shaped wiring to a clock element. 5, proposed in Patent Document 6. FIG. 17 shows an example in which the terminal buffer (17-03) output of the clock distribution tree (17-01) is short-circuited by the mesh structure wiring (17-02 and 17-04).

一方で、近年の半導体回路の大規模化および高速化の進歩は、クロック信号部での消費電力の増大を招いており、クロックスキュー削減に加えて、低消費電力化を実現するクロック配置配線設計技術も重要となってきている。   On the other hand, recent advances in semiconductor circuit scale and speed have led to an increase in power consumption at the clock signal section, and clock layout and wiring design that realizes low power consumption in addition to clock skew reduction Technology is also becoming important.

クロック信号部の消費電力を削減する効果的な方法としては、ゲーティッドクロック回路設計手法が提案され、広く普及している(例えば特許文献7)。これは、回路が動作しない場合に、クロックの動作も止めることにより、低消費電力化を図る技術であり、論理回路からゲーティング信号と称する(または、イネーブル信号と称する)制御信号をクロック分配回路上に接続し、クロック信号の伝搬を制御する。   As an effective method for reducing the power consumption of the clock signal unit, a gated clock circuit design method has been proposed and widely used (for example, Patent Document 7). This is a technique for reducing power consumption by stopping clock operation when the circuit does not operate. A control signal called a gating signal (or called an enable signal) from a logic circuit is a clock distribution circuit. Connect to the top to control the propagation of the clock signal.

クロックゲーティングの例を、図18に示す。ゲーティング信号(18-01、 18-02)と、クロックソース16-01からのクロック信号の論理積を取ることにより、クロック信号のクロック素子への分配を制御する論理ゲート18-04をゲーティングセルと称し、同一ゲーティング信号が接続するゲーティングセルからクロック信号が分配されるクロック素子16-03の集合を、ゲーティッド回路18-03と称する。ゲーティング信号が接続するゲーティングセルの入力端子をイネーブル端子と称する。   An example of clock gating is shown in FIG. Gating logic gate 18-04 that controls the distribution of the clock signal to the clock elements by taking the logical product of the gating signal (18-01, 18-02) and the clock signal from clock source 16-01 A set of clock elements 16-03, which is called a cell and to which a clock signal is distributed from a gating cell to which the same gating signal is connected, is called a gated circuit 18-03. An input terminal of the gating cell to which the gating signal is connected is referred to as an enable terminal.

さらに、近年では、低消費電力と低スキューの双方を実現するために、クロックゲーティングとメッシュ構造を組み合わせる技術が、例えば、特許文献8、 特許文献9で提案されている。ここでは、図19に示すように、クロックゲーティングを適用する部分回路毎にメッシュ構造17-02を適用している。これを、レイアウト構造で見ると、図20に示すように、それぞれのゲーティッド回路に対して生成したメッシュ構造17-02を同一レイアウト領域上に重ね合わせることになる。   Furthermore, in recent years, in order to realize both low power consumption and low skew, techniques for combining clock gating and a mesh structure have been proposed in, for example, Patent Document 8 and Patent Document 9. Here, as shown in FIG. 19, a mesh structure 17-02 is applied to each partial circuit to which clock gating is applied. Looking at this in the layout structure, as shown in FIG. 20, the mesh structure 17-02 generated for each gated circuit is superimposed on the same layout region.

しかしながら、従来のクロックゲーティングとメッシュ構造を組み合わせる技術では、図19、図20に示すように、クロックゲーティングを適用する部分回路毎にメッシュ構造を適用しているため、異なるメッシュ構造に接続するクロック素子対のスキューを十分に小さくすることができないという問題が存在する。すなわち、ゲーティング構造を含むクロック構成では、チップ内のクロック素子入力端子に接続する全てのバッファ出力を配線短絡するメッシュ形状配線を適用できず、ゲーティッド回路毎にメッシュ形状配線を設定することになるため、同一ゲーティッド回路内でのクロックスキューは低減できるものの、異なるゲーティッド回路間では、クロック信号の伝搬経路が異なり、クロックスキューが増大してしまう。   However, in the conventional technology combining clock gating and mesh structure, as shown in FIGS. 19 and 20, since the mesh structure is applied to each partial circuit to which clock gating is applied, connection to different mesh structures is performed. There is a problem that the skew of the clock element pair cannot be made sufficiently small. That is, in a clock configuration including a gating structure, mesh-shaped wiring that short-circuits all buffer outputs connected to the clock element input terminal in the chip cannot be applied, and mesh-shaped wiring is set for each gated circuit. Therefore, although the clock skew in the same gated circuit can be reduced, the propagation path of the clock signal differs between different gated circuits, and the clock skew increases.

また、通常、チップ上には異なるゲーティッド回路に属するクロック素子が混在して分布することが多いため、メッシュ構造を重ねて設定することは、多くの配線資源を消費することになり、配線性の悪化、消費電力の増加につながるという問題がある。   In addition, usually, clock elements belonging to different gated circuits are often mixed and distributed on the chip. Therefore, setting the mesh structure in an overlapping manner consumes a lot of wiring resources, and wiring properties are reduced. There is a problem that it leads to deterioration and an increase in power consumption.

この課題を解決するために、特願2009−283886号では、図21に示すように、ゲーティングセルを複製し、異なるイネーブル信号で駆動されるゲーティッド回路を同一メッシュ構造17-02以下に接続する技術を提案している。   In order to solve this problem, in Japanese Patent Application No. 2009-283886, as shown in FIG. 21, a gating cell is duplicated and gated circuits driven by different enable signals are connected to the same mesh structure 17-02 or lower. Proposing technology.

特開平5−054100号公報JP-A-5-054100 特開2007−123336号公報JP 2007-123336 A 特開2004−334468号公報JP 2004-334468 A 特開2003−092352号公報Japanese Patent Laid-Open No. 2003-092352 特開2003−282712号公報JP 2003-282712 A 特開2007−214334号公報JP 2007-214334 A 特開2009−053830号公報JP 2009-053830 A 特開2003−109382号公報JP 2003-109382 A 特開2007−019414号公報JP 2007-019414 A

特願2009−283886号で提案されているメッシュ構造とクロックゲーティング構造の組み合わせ技術を、図3のクロック(クロックソース16-01からゲーティングセル18-04を介して、クロック素子16-03へクロック信号を分配する)に対して適用した場合、図4に示すようなクロック構造(メッシュ構造17-02と、メッシュ構造を駆動するバッファツリー17-02と、メッシュ以降のローカル構造と、複製されたゲーティングセル集合18-04と、イネーブル信号の組合せ)が生成される。   The combination technique of the mesh structure and the clock gating structure proposed in Japanese Patent Application No. 2009-283886 is applied to the clock element 16-03 from the clock source 16-01 via the gating cell 18-04. When applied to the distribution of clock signals, the clock structure (mesh structure 17-02, buffer tree 17-02 that drives the mesh structure, and local structure after the mesh is replicated as shown in FIG. A combination of gating cell sets 18-04 and enable signals).

この場合、クロックソースからクロック素子までの遅延時間は、メッシュネットを駆動するバッファツリー構造の遅延時間D1(図4の04-01)と、メッシュネット自体を駆動する遅延時間D2(図4の04-02)と、ゲーティッド回路を駆動する遅延時間D3(図4の04-03)、の合計になる。ここで、D3 はクロック素子毎に異なる値となるため、このクロック構造の最小遅延時間はD1 + D2 + min{D3}、最大遅延時間はD1+D2+max{D3} となる。min{D3}はD3の最小値、max{D3}はD3の最大値を示す。   In this case, the delay time from the clock source to the clock element is the delay time D1 (04-01 in FIG. 4) of the buffer tree structure for driving the mesh net and the delay time D2 (04 in FIG. 4) for driving the mesh net itself. -02) and the delay time D3 (04-03 in FIG. 4) for driving the gated circuit. Here, since D3 has a different value for each clock element, the minimum delay time of this clock structure is D1 + D2 + min {D3}, and the maximum delay time is D1 + D2 + max {D3}. min {D3} indicates the minimum value of D3, and max {D3} indicates the maximum value of D3.

このクロック構造の主なスキューは、メッシュネットまで(D1+D2)は、短絡配線の効果により、ほぼ0に抑えることが可能であるため、ゲーティッド回路を駆動する遅延時間D3において発生する。ゲーティッド回路部分は、配線短絡を行っていないため、遅延バラつきの影響を緩和することができず、遅延バラつき係数をkとすると、このクロック構造のスキューは、max{D3}* (1 + k) - min{D3} * (1 - k) となる。ここで、k は0以上1未満の少数として与えられる。   The main skew of this clock structure occurs up to the mesh net (D1 + D2) due to the effect of the short-circuit wiring, and can be suppressed to almost zero, and therefore occurs in the delay time D3 for driving the gated circuit. Since the gated circuit part is not short-circuited, the effect of delay variation cannot be mitigated. If the delay variation coefficient is k, the skew of this clock structure is max {D3} * (1 + k) -min {D3} * (1-k) Here, k is given as a decimal number between 0 and 1.

上述したクロック構造の遅延とスキューに加えて、設計においては、ゲーティングセルを駆動するためのイネーブル信号の遅延時間D4(図4の04-04)についても上限制約が与えられる。複製されるゲーティングセルの数が多くなると、イネーブル信号のファンアウト数が大きくなり、遅延時間制約をみたすことが困難になることがある。   In addition to the clock structure delay and skew described above, the design places an upper limit on the delay time D4 of the enable signal for driving the gating cell (04-04 in FIG. 4). As the number of duplicated gating cells increases, the fanout number of the enable signal increases, and it may be difficult to satisfy the delay time constraint.

クロック構造の設計では、以下のいずれかの課題について、メッシュネット構造、メッシュネット駆動バッファツリー構造、およびゲーティッドクロック構造の最良な組合せを求めることが望まれる。
1) イネーブル信号の遅延時間D4とクロック最大遅延 D1 + D2 + max{D3} に、それぞれ上限制約が与えられた下で、クロックスキューmax{D3}* (1 + k) - min{D3} * (1 - k)を最小化する。
2) イネーブル信号の遅延時間D4とクロックスキューmax{D3}* (1 + k) - min{D3} * (1 - k)に、それぞれ上限制約が与えられた下で、クロック最大遅延 D1 + D2 + max{D3}を最小化する。
In the design of the clock structure, it is desired to find the best combination of the mesh net structure, the mesh net driving buffer tree structure, and the gated clock structure for any of the following problems.
1) Clock skew max {D3} * (1 + k)-min {D3} * under the upper limit constraints on enable signal delay time D4 and clock maximum delay D1 + D2 + max {D3} Minimize (1-k).
2) Maximum delay of clock D1 + D2 under the upper limit constraint on enable signal delay time D4 and clock skew max {D3} * (1 + k)-min {D3} * (1-k) + Minimize max {D3}.

この問題を効率良く解く設計技術は、いまだ提案されていない。   A design technique for efficiently solving this problem has not yet been proposed.

本発明は、このような課題を解決するためになされたものであって、クロックゲーティング構造を持つクロック分配回路を含む半導体集積回路について、イネーブル信号遅延とクロック遅延とクロックスキューを総合的に考慮した配置配線を行う設計方法、設計装置および、コンピュータプログラムを提供することにある。   The present invention has been made to solve the above-described problems, and comprehensively considers enable signal delay, clock delay, and clock skew in a semiconductor integrated circuit including a clock distribution circuit having a clock gating structure. Another object of the present invention is to provide a design method, a design apparatus, and a computer program for performing placement and routing.

本発明の半導体集積回路の設計装置は、
クロックゲーティング構造を含む半導体集積回路のチップ情報を記憶する記憶装置と、メッシュネット格子数候補から格子数を1つ選択し、前記チップ情報に含まれる全てのクロック素子の入力端子位置を考慮して、前記選択した格子数のメッシュネットを生成するメッシュネット生成手段と、前記メッシュネット生成手段で生成した前記メッシュネットの遅延を計算するメッシュネット遅延計算手段と、前記メッシュネットを駆動するバッファツリーを生成するメッシュネット駆動構造生成手段と、前記メッシュネット駆動構造生成手段で生成したメッシュネット駆動構造の遅延を計算するメッシュネット駆動構造遅延計算手段と、前記チップ情報に含まれる、クロック素子の配置分布とクロックゲーティング構造を考慮して、異なるゲーティッド回路に含まれるクロック素子が混在せず、かつ、近傍に配置されたクロック素子の集合が含まれるようなクロック素子のクラスタを階層的に生成するクロック素子階層クラスタ生成手段と、前記クロック素子階層クラスタ生成手段で生成した各クロック素子階層クラスタに対して、イネーブル信号の遅延制約を満たすように、イネーブル信号接続対象となるクロック素子階層を選択し、選択したクラスタ階層以下に含まれるクロック素子が属するゲーティッド回路にクロック信号を分配するゲーティングセルを複製して、前記階層クラスタを駆動するゲーティングセルとして挿入するクロックゲーティング構造生成手段と、前記メッシュネットと前記複製した各ゲーティングセル入力端子を接続し、ゲーティングセルからクロック素子までの接続構造を生成するローカルクロック構造生成手段と、前記ローカルクロック構造生成手段により生成した各ローカルクロック構造について、メッシュネットの入力端子から各クロック素子までの遅延を計算するとローカルクロック構造遅延計算手段と、前記生成したクロック構造全体について、クロック最大遅延と遅延バラつきを考慮したクロックスキューを計算するクロック構造評価手段と、全てのメッシュネット格子数候補に対して行われた、ローカルクロック構造候補の集合から、計算された各ローカルクロック構造遅延と計算された各クロックスキューとに基づいてクロック構造を選択するクロック構造選択手段と、を備える。
The semiconductor integrated circuit design apparatus of the present invention comprises:
A memory device for storing chip information of a semiconductor integrated circuit including a clock gating structure, and selecting one lattice number from the mesh net lattice number candidates, taking into account the input terminal positions of all clock elements included in the chip information. A mesh net generating means for generating a mesh net of the selected number of lattices, a mesh net delay calculating means for calculating a delay of the mesh net generated by the mesh net generating means, and a buffer tree for driving the mesh net A mesh net driving structure generating means for generating a mesh net driving structure delay calculating means for calculating a delay of the mesh net driving structure generated by the mesh net driving structure generating means, and an arrangement of clock elements included in the chip information Consider different distributions and clock gating structures Clock element hierarchy cluster generating means for hierarchically generating a cluster of clock elements that do not include clock elements included in the head circuit and include a set of clock elements arranged in the vicinity, and the clock element hierarchy For each clock element hierarchy cluster generated by the cluster generation means, select a clock element hierarchy to be connected to the enable signal so as to satisfy the delay constraint of the enable signal, and the clock elements included below the selected cluster hierarchy belong. Duplicating a gating cell that distributes a clock signal to a gated circuit and inserting it as a gating cell that drives the hierarchical cluster; and a mesh net and each duplicated gating cell input terminal Connect the clock source from the gating cell. Local clock structure generating means for generating a connection structure up to and a local clock structure delay calculating means for calculating the delay from the input terminal of the mesh net to each clock element for each local clock structure generated by the local clock structure generating means And a clock structure evaluation means for calculating a clock skew considering the maximum clock delay and delay variation for the entire generated clock structure, and a set of local clock structure candidates performed for all mesh net lattice number candidates To clock structure selection means for selecting a clock structure based on each calculated local clock structure delay and each calculated clock skew.

本発明の半導体集積回路の設計方法は、
クロックゲーティング構造を含む半導体集積回路のチップ情報を記憶し、メッシュネット格子数候補から格子数を1つ選択し、前記チップ情報に含まれる全てのクロック素子の入力端子位置を考慮して、前記選択した格子数のメッシュネット構造を生成し、前記メッシュネット構造の遅延を計算し、前記メッシュネット構造を駆動するメッシュネット駆動バッファツリー構造を生成し、前記メッシュネット駆動バッファツリー構造の遅延を計算し、前記チップ情報に含まれるクロック素子の配置分布とクロックゲーティング構造を考慮して、異なるゲーティッド回路に含まれるクロック素子が混在せず、かつ、近傍に配置されたクロック素子の集合が含まれるようなクロック素子のクラスタを階層的に生成し、前記各クロック素子階層クラスタに対して、イネーブル信号の遅延制約を満たすように、イネーブル信号接続対象となるクロック素子階層を選択し、選択したクラスタ階層以下に含まれるクロック素子が属するゲーティッド回路にクロック信号を分配するゲーティングセルを複製して、前記階層クラスタを駆動するゲーティングセルとして挿入し、前記メッシュネットと前記複製した各ゲーティングセル入力端子を接続し、ゲーティングセルからクロック素子までの接続構造を生成し、前記ローカルクロック構造生成手段により生成した各ローカルクロック構造について、メッシュネットの入力端子から各クロック素子までの遅延を計算し、前記生成したクロック構造全体について、クロック最大遅延と遅延バラつきを考慮したクロックスキューを計算し、全てのメッシュネット格子数候補に対してローカルクロック構造候補の集合を生成し、その中から、計算された各ローカルクロック構造遅延と計算された各クロックスキューとに基づいてクロック構造を選択する。
A method for designing a semiconductor integrated circuit according to the present invention includes:
The chip information of the semiconductor integrated circuit including the clock gating structure is stored, one lattice number is selected from the mesh net lattice number candidates, and the input terminal positions of all the clock elements included in the chip information are considered, Generate a mesh net structure of the selected number of lattices, calculate the delay of the mesh net structure, generate a mesh net drive buffer tree structure that drives the mesh net structure, and calculate the delay of the mesh net drive buffer tree structure In consideration of the clock element arrangement distribution and the clock gating structure included in the chip information, the clock elements included in different gated circuits are not mixed, and a set of clock elements arranged in the vicinity is included. The cluster of clock elements is generated hierarchically, and each clock element hierarchical class On the other hand, a gating cell that selects a clock element hierarchy to be connected to the enable signal so as to satisfy the delay constraint of the enable signal and distributes the clock signal to the gated circuit to which the clock element included in the selected cluster hierarchy or lower belongs. Is duplicated and inserted as a gating cell for driving the hierarchical cluster, the mesh net and each duplicated gating cell input terminal are connected, and a connection structure from the gating cell to the clock element is generated, For each local clock structure generated by the local clock structure generating means, the delay from the input terminal of the mesh net to each clock element is calculated, and the clock skew considering the maximum clock delay and delay variation is calculated for the entire generated clock structure. Calculate all meshes Tsu generates a set of local clock structure candidate against preparative grating number candidates, from among them, selects a clock structure based was calculated to calculated each local clock structure delays were in each clock skew.

本発明のコンピュータプログラムは、半導体集積回路の設計装置として機能させるコンピュータに、クロックゲーティング構造を含む半導体集積回路のチップ情報を記憶する手順と、メッシュネット格子数候補から格子数を1つ選択し、前記チップ情報に含まれる全てのクロック素子の入力端子位置を考慮して、前記選択した格子数のメッシュネット構造を生成する手順と、前記メッシュネット構造の遅延を計算する手順と、前記メッシュネット構造を駆動するメッシュネット駆動バッファツリー構造を生成する手順と、前記メッシュネット駆動バッファツリー構造の遅延を計算する手順と、前記チップ情報に含まれる、クロック素子の配置分布とクロックゲーティング構造を考慮して、異なるゲーティッド回路に含まれるクロック素子が混在せず、かつ、近傍に配置されたクロック素子の集合が含まれるようなクロック素子のクラスタを階層的に生成する手順と、前記各クロック素子階層クラスタに対して、イネーブル信号の遅延制約を満たすように、イネーブル信号接続対象となるクロック素子階層を選択し、選択したクラスタ階層以下に含まれるクロック素子が属するゲーティッド回路にクロック信号を分配するゲーティングセルを複製して、前記階層クラスタを駆動するゲーティングセルとして挿入する手順と、前記メッシュネットと前記複製した各ゲーティングセル入力端子を接続し、ゲーティングセルからクロック素子までの接続構造を生成する手順と、前記ローカルクロック構造生成手段により生成した各ローカルクロック構造について、メッシュネットの入力端子から各クロック素子までの遅延を計算する手順と、前記生成したクロック構造全体について、クロック最大遅延と遅延バラつきを考慮したクロックスキューを計算する手順と、全てのメッシュネット格子数候補に対して、ローカルクロック構造候補の集合を生成し、その中から、計算された各ローカルクロック構造遅延と計算された各クロックスキューとに基づいてクロック構造を選択する手順と、を実行させる。   The computer program of the present invention selects a lattice number from a mesh net lattice number candidate and a procedure for storing chip information of a semiconductor integrated circuit including a clock gating structure in a computer that functions as a semiconductor integrated circuit design device. Taking into account input terminal positions of all clock elements included in the chip information, generating a mesh net structure of the selected number of lattices, calculating a delay of the mesh net structure, and the mesh net Considering a procedure for generating a mesh net driving buffer tree structure for driving a structure, a procedure for calculating a delay of the mesh net driving buffer tree structure, and an arrangement distribution of clock elements and a clock gating structure included in the chip information Therefore, clock elements included in different gated circuits are mixed. And a hierarchical generation of a clock element cluster including a set of clock elements arranged in the vicinity so that the delay constraint of the enable signal is satisfied for each of the clock element hierarchical clusters Then, a clock element hierarchy to be connected to the enable signal is selected, a gating cell that distributes a clock signal to a gated circuit to which a clock element included in the selected cluster hierarchy or lower belongs is duplicated, and a gate that drives the hierarchical cluster is copied. A procedure for inserting as a gating cell, a procedure for connecting the mesh net and each duplicated gating cell input terminal, generating a connection structure from the gating cell to the clock element, and the local clock structure generating means Mesh net input terminal for each local clock structure The procedure for calculating the delay to each clock element, the procedure for calculating the clock skew considering the clock maximum delay and delay variation for the entire generated clock structure, and the local number for all mesh net lattice number candidates A set of clock structure candidates is generated, from which a procedure for selecting a clock structure based on each calculated local clock structure delay and each calculated clock skew is executed.

なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。   It should be noted that any combination of the above-described constituent elements and a conversion of the expression of the present invention between a method, an apparatus, a system, a recording medium, a computer program, etc. are also effective as an aspect of the present invention.

また、本発明の各種の構成要素は、必ずしも個々に独立した存在である必要はなく、複数の構成要素が一個の部材として形成されていること、一つの構成要素が複数の部材で形成されていること、ある構成要素が他の構成要素の一部であること、ある構成要素の一部と他の構成要素の一部とが重複していること、等でもよい。   The various components of the present invention do not necessarily have to be independent of each other. A plurality of components are formed as a single member, and a single component is formed of a plurality of members. It may be that a certain component is a part of another component, a part of a certain component overlaps with a part of another component, or the like.

また、本発明の方法およびコンピュータプログラムには複数の手順を順番に記載してあるが、その記載の順番は複数の手順を実行する順番を限定するものではない。このため、本発明の方法およびコンピュータプログラムを実施する時には、その複数の手順の順番は内容的に支障しない範囲で変更することができる。   Moreover, although the several procedure is described in order in the method and computer program of this invention, the order of the description does not limit the order which performs a several procedure. For this reason, when implementing the method and computer program of this invention, the order of the several procedure can be changed in the range which does not interfere in content.

さらに、本発明の方法およびコンピュータプログラムの複数の手順は個々に相違するタイミングで実行されることに限定されない。このため、ある手順の実行中に他の手順が発生すること、ある手順の実行タイミングと他の手順の実行タイミングとの一部ないし全部が重複していること、等でもよい。   Furthermore, the plurality of procedures of the method and the computer program of the present invention are not limited to being executed at different timings. For this reason, another procedure may occur during the execution of a certain procedure, or some or all of the execution timing of a certain procedure and the execution timing of another procedure may overlap.

本発明によれば、低消費電力化に有効であるゲーティング構造を含むクロック分配回路に対して、製造バラつきを含むスキューの削減のために有効であるメッシュ構造を分割することなく、クロック構造全体の遅延とスキューおよびイネーブル信号遅延を総合的に考慮して、全クロック素子を同一のメッシュ構造以下に接続する最良なクロック構造を生成することが可能となる。これにより、クロック分配回路の低消費電力化と低遅延化および低遅延スキュー化が可能となる。   According to the present invention, a clock distribution circuit including a gating structure that is effective for reducing power consumption is divided into an entire clock structure without dividing a mesh structure that is effective for reducing skew including manufacturing variations. In consideration of the overall delay, skew, and enable signal delay, it is possible to generate the best clock structure in which all clock elements are connected to the same mesh structure or lower. As a result, the power consumption, the delay, and the delay skew of the clock distribution circuit can be reduced.

本発明の実施の形態に係る半導体集積回路の設計装置の構成を示す機能ブロック図である。It is a functional block diagram which shows the structure of the design apparatus of the semiconductor integrated circuit which concerns on embodiment of this invention. 本発明の実施の形態に係る半導体集積回路の設計方法の処理手順の一例を示すフローチャートである。It is a flowchart which shows an example of the process sequence of the design method of the semiconductor integrated circuit which concerns on embodiment of this invention. 本発明の設計装置および設計方法への入力となるクロック構造の一例を示す図である。It is a figure which shows an example of the clock structure used as the input to the design apparatus and design method of this invention. 本発明の設計装置および設計方法により生成されるクロック構造の一例を示す図である。It is a figure which shows an example of the clock structure produced | generated by the design apparatus and design method of this invention. メッシュネット構造の一例である。It is an example of a mesh net structure. メッシュネット構造の遅延を計算するために用いられる、メッシュネット駆動バッファ数とメッシュネット容量の各組合せについて、メッシュネット自体の遅延を保持する表の一例を示す図である。It is a figure which shows an example of the table | surface which hold | maintains the delay of mesh net itself about each combination of the number of mesh net drive buffers and mesh net capacity | capacitance used in order to calculate the delay of a mesh net structure. メッシュネット構造を駆動するために用いられるバッファツリー構造の一例を示す図である。It is a figure which shows an example of the buffer tree structure used in order to drive a mesh net structure. ゲーティング構造とクロック素子配置を考慮したクロック素子階層クラスタリングの一例を示す図である。It is a figure which shows an example of the clock element hierarchy clustering which considered the gating structure and clock element arrangement | positioning. ゲーティング構造とクロック素子配置を考慮したクロック素子階層クラスタリングの一例をレイアウトの観点から示した図である。It is the figure which showed an example of the clock element hierarchy clustering which considered the gating structure and clock element arrangement | positioning from a layout viewpoint. 最階層クラスタへイネーブル信号を接続した例を示す図である。It is a figure which shows the example which connected the enable signal to the highest hierarchy cluster. 最階層クラスタへイネーブル信号を接続した例をレイアウトの観点から示した図である。It is the figure which showed the example which connected the enable signal to the highest hierarchy cluster from a layout viewpoint. 下から2番目の階層クラスタへイネーブル信号を接続した例を示す図である。It is a figure which shows the example which connected the enable signal to the 2nd hierarchy cluster from the bottom. 下から2番目の階層クラスタへイネーブル信号を接続した例をレイアウトの観点で示した図である。It is the figure which showed the example which connected the enable signal to the 2nd hierarchy cluster from the bottom in terms of layout. 下から2番目の階層クラスタへイネーブル信号を接続することにより得られるメッシュネット構造以降のゲーティングクロック構造の例を示す図である。It is a figure which shows the example of the gating clock structure after the mesh net structure obtained by connecting an enable signal to the 2nd hierarchy cluster from the bottom. 下から2番目の階層クラスタへイネーブル信号を接続することにより得られるメッシュネット構造以降のゲーティングクロック構造の例をレイアウトの観点から示した図である。It is the figure which showed the example of the gating clock structure after the mesh net structure obtained by connecting an enable signal to the 2nd hierarchy cluster from the bottom from a layout viewpoint. 特許文献記載のクロック分配方法を示す図である。It is a figure which shows the clock distribution method of patent document description. 特許文献記載のメッシュ構造挿入を示す図である。It is a figure which shows mesh structure insertion of patent document description. 特許文献記載のゲーティングクロック回路構成を示す図である。It is a figure which shows the gating clock circuit structure of a patent document description. 特許文献記載のゲーティングクロックとメッシュ構造の組合せの回路構成を示す図である。It is a figure which shows the circuit structure of the combination of the gating clock and mesh structure of patent document description. 特許文献記載のゲーティングクロックとメッシュ構造の組合せのレイアウトを示す図である。It is a figure which shows the layout of the combination of the gating clock and mesh structure of patent document description. 特願2009−283886号記載のゲーティングクロックとメッシュ構造の組合せ構造を示す図である。It is a figure which shows the combination structure of gating clock and mesh structure of Japanese Patent Application No. 2009-283886. コンピュータの一構成例を示す図である。It is a figure which shows the example of 1 structure of a computer.

以下、本発明の実施の形態について、図面を用いて説明する。尚、すべての図面において、同様な構成要素には同一の符号を付し、適宜説明を省略する。
(第1の実施の形態)
図1は、本発明の実施の形態に係る半導体集積回路の設計装置の構成を示す機能ブロック図である。
Hereinafter, embodiments of the present invention will be described with reference to the drawings. In all the drawings, the same components are denoted by the same reference numerals, and description thereof will be omitted as appropriate.
(First embodiment)
FIG. 1 is a functional block diagram showing a configuration of a semiconductor integrated circuit design apparatus according to an embodiment of the present invention.

本実施形態の半導体集積回路設計装置100は、クロックゲーティング構造を含む半導体集積回路のチップ情報を記憶するチップ情報記憶部90と、チップ情報受付部101と、メッシュネット格子数候補から格子数を1つ選択し、チップ情報に含まれる全てのクロック素子の入力端子位置を考慮して、前記選択した格子数のメッシュネットを生成するメッシュネット生成部102と、メッシュネット生成部102で生成したメッシュネットの遅延を計算するメッシュネット遅延計算部103と、前記メッシュネットを駆動するバッファツリーを生成するメッシュネット駆動構造生成部104と、メッシュネット駆動構造生成部104で生成したメッシュネット駆動構造の遅延を計算するメッシュネット駆動構造遅延計算部105と、を備える。   The semiconductor integrated circuit design device 100 of this embodiment includes a chip information storage unit 90 that stores chip information of a semiconductor integrated circuit including a clock gating structure, a chip information reception unit 101, and a lattice number from a mesh net lattice number candidate. A mesh net generation unit 102 that generates a mesh net having the selected number of lattices in consideration of input terminal positions of all clock elements included in the chip information, and a mesh generated by the mesh net generation unit 102 Mesh net delay calculation unit 103 for calculating net delay, mesh net drive structure generation unit 104 for generating a buffer tree for driving the mesh net, and delay of mesh net drive structure generated by mesh net drive structure generation unit 104 And a mesh net driving structure delay calculating unit 105 for calculating.

また、本実施形態の半導体集積回路設計装置100は、チップ情報に含まれる、クロック素子の配置分布とクロックゲーティング構造を考慮して、異なるゲーティッド回路に含まれるクロック素子が混在せず、かつ、近傍に配置されたクロック素子の集合が含まれるようなクロック素子のクラスタを階層的に生成するクロック素子階層クラスタ生成部106と、前記各クロック素子階層クラスタに対して、イネーブル信号の遅延制約を満たすように、イネーブル信号接続対象となるクロック素子階層を選択し、選択したクラスタ階層以下に含まれるクロック素子が属するゲーティッド回路にクロック信号を分配するゲーティングセルを複製して、前記階層クラスタを駆動するゲーティングセルとして挿入するクロックゲーティング構造生成部107と、を備える。   In addition, the semiconductor integrated circuit design device 100 of the present embodiment takes into account the clock element arrangement distribution and the clock gating structure included in the chip information, and the clock elements included in different gated circuits are not mixed, and A clock element hierarchy cluster generation unit 106 that hierarchically generates a cluster of clock elements that includes a set of clock elements arranged in the vicinity, and satisfies the delay constraint of the enable signal for each of the clock element hierarchy clusters. As described above, the clock element hierarchy to be connected to the enable signal is selected, the gating cell that distributes the clock signal to the gated circuit to which the clock element included in the selected cluster hierarchy or lower belongs is duplicated, and the hierarchical cluster is driven. A clock gating structure generation unit 107 to be inserted as a gating cell; Obtain.

さらに、本実施形態の半導体集積回路設計装置100は、前記メッシュネットと前記複製した各ゲーティングセル入力端子を接続し、ゲーティングセルからクロック素子までの接続構造を生成するローカルクロック構造生成部108と、ローカルクロック構造生成部108により生成した各ローカルクロック構造について、メッシュネットの入力端子から各クロック素子までの遅延を計算するとローカルクロック構造遅延計算部109と、前記生成したクロック構造全体について、クロック最大遅延と遅延バラつきを考慮したクロックスキューを計算するクロック構造評価部110と、全てのメッシュネット格子数候補に対して行われた、ローカルクロック構造候補の集合から、計算された各ローカルクロック構造遅延と計算された各クロックスキューとに基づいてクロック構造を選択するクロック構造選択部111と、を備える。   Furthermore, the semiconductor integrated circuit design device 100 of the present embodiment connects the mesh net and each duplicated gating cell input terminal, and generates a connection structure from the gating cell to the clock element. For each local clock structure generated by the local clock structure generation unit 108, the delay from the input terminal of the mesh net to each clock element is calculated, and the local clock structure delay calculation unit 109 and the generated clock structure The clock structure evaluation unit 110 that calculates the clock skew considering the maximum delay and delay variation, and each local clock structure delay calculated from the set of local clock structure candidates performed for all mesh net lattice number candidates And each calculated clock skew It includes a clock structure selection unit 111 for selecting a clock structure.

チップ情報記憶部90は、メッシュネット生成部102からクロック構造評価選択部111までの各部と接続され、各部で生成された生成データ、計算された計算結果及び評価された評価結果はチップ情報記憶部90に記憶される。各生成部で生成された生成データはチップ情報記憶部90に記憶され、各計算部で計算するデータはチップ情報記憶部90から受ける。しかし、計算部で計算するデータを対応する生成部から受けてもよい。また、データの一部を生成部から受け、他のデータをチップ情報記憶部90から受けるようにしてもよい。例えば、メッシュネット遅延計算部103はメッシュネット生成部102で生成されたメッシュネットを、チップ情報記憶部90から受けても、メッシュネット生成部102から受けても、データの一部をメッシュネット生成部102から受け、チップ情報記憶部90から他のデータを受けてもよい。したがって、図1では、メッシュネット生成部102からクロック構造選択部111までが、一方向の矢印で接続されているが、必ずデータが矢印の方向に送られることを意味するものでなく、チップ情報記憶部90を介してデータが送られる場合もある。   The chip information storage unit 90 is connected to each unit from the mesh net generation unit 102 to the clock structure evaluation selection unit 111, and the generation data generated by each unit, the calculated calculation result, and the evaluated evaluation result are the chip information storage unit 90. Generation data generated by each generation unit is stored in the chip information storage unit 90, and data calculated by each calculation unit is received from the chip information storage unit 90. However, data calculated by the calculation unit may be received from the corresponding generation unit. Further, a part of the data may be received from the generation unit and other data may be received from the chip information storage unit 90. For example, the mesh net delay calculation unit 103 generates a mesh net by generating part of the data regardless of whether the mesh net generated by the mesh net generation unit 102 is received from the chip information storage unit 90 or the mesh net generation unit 102. Other data may be received from the chip information storage unit 90. Therefore, in FIG. 1, the mesh net generation unit 102 to the clock structure selection unit 111 are connected by an arrow in one direction. However, this does not necessarily mean that data is sent in the direction of the arrow. Data may be sent via the storage unit 90.

また、メッシュネット生成部102で用いる、全てのクロック素子の入力端子位置のデータは、チップ情報記憶部90を介さずに、直接、チップ情報受付部101から受けてもよい。   Further, the data of the input terminal positions of all clock elements used in the mesh net generation unit 102 may be received directly from the chip information reception unit 101 without going through the chip information storage unit 90.

なお、本実施形態の半導体集積回路設計装置100は、専用IC等のハードウエアで構成することができるが、制御装置、記憶装置、入力装置および表示装置からなる一般的なコンピュータにより構成することができる。これらの各部については図22を用いて説明する。また、上記の各ユニットは、記憶装置に格納されたコンピュータプログラムにより動作する制御装置により、ROM(Read Only Memory)、RAM(Random Access Memory)などの記憶装置上に構築されて制御される。すなわち、半導体集積回路設計装置の各構成要素は、任意のコンピュータの制御装置としてのCPU(Central Processing Unit)1104、ROM(Read Only Memory)、RAM(Random Access Memory)など記憶装置としてのメモリ1103、メモリにロードされた本図の構成要素を実現するプログラム、そのプログラムを格納するハードディスクなどの記憶ユニット1105、液晶ディスプレイ等の表示部1102、ネットワーク接続用インタフェース等の入出力部1101、各部を接続するバス1106を中心にハードウエアとソフトウエアの任意の組合せによって実現される。そして、その実現方法、装置にはいろいろな変形例があることは、当業者には理解されるところである。   The semiconductor integrated circuit design device 100 of this embodiment can be configured by hardware such as a dedicated IC, but can be configured by a general computer including a control device, a storage device, an input device, and a display device. it can. Each of these parts will be described with reference to FIG. Each unit is constructed and controlled on a storage device such as a ROM (Read Only Memory) and a RAM (Random Access Memory) by a control device that operates according to a computer program stored in the storage device. That is, each component of the semiconductor integrated circuit design device includes a CPU (Central Processing Unit) 1104 as a control device of an arbitrary computer, a memory 1103 as a storage device such as a ROM (Read Only Memory), a RAM (Random Access Memory), A program that realizes the components shown in the figure loaded in the memory, a storage unit 1105 such as a hard disk for storing the program, a display unit 1102 such as a liquid crystal display, an input / output unit 1101 such as a network connection interface, and the like. It is realized by an arbitrary combination of hardware and software centering on the bus 1106. It will be understood by those skilled in the art that there are various modifications to the implementation method and apparatus.

以下説明する各図は、ハードウエア単位の構成ではなく、機能単位のブロックを示している。なお、以下の図において、本実施形態の本質に関わらない部分の構成については省略してあり、図示されていない。   Each drawing described below shows a functional unit block, not a hardware unit configuration. In the following drawings, the configuration of parts not related to the essence of the present embodiment is omitted and not shown.

チップ情報記憶部90は、設計対象となる半導体集積回路チップのクロック素子を含むゲートレベルのネットリストに関する情報(チップデータ)を記憶する。ここで、クロック素子の集合は、回路の論理構造から同一のゲーティング論理でクロック信号の伝搬を制御できる部分集合に分割されている。この各部分集合の単位をゲーティッド回路とも称する。また、各クロック素子には配置座標が与えられている。   The chip information storage unit 90 stores information (chip data) on a gate level netlist including clock elements of a semiconductor integrated circuit chip to be designed. Here, the set of clock elements is divided into subsets that can control the propagation of the clock signal with the same gating logic from the logic structure of the circuit. The unit of each subset is also referred to as a gated circuit. In addition, arrangement coordinates are given to each clock element.

チップ情報受付部101は、チップデータを受け付け、チップ情報記憶部90に記憶する。チップ情報受付部101は、例えば、半導体集積回路設計装置100の図示されない、入出力インタフェースを介して、各種記録媒体または記憶装置、あるいはネットワークなどを介した他の装置からデータを入力して受け付けてもよいし、ユーザが操作入力したデータを受け付けてもよい。チップ情報記憶部90の情報は、必ずしも毎回受け付けて更新する必要はなく、既にチップ情報記憶部90に記憶されている情報を利用することもできる。   The chip information receiving unit 101 receives chip data and stores it in the chip information storage unit 90. The chip information receiving unit 101 receives and receives data from various recording media or storage devices, or other devices via a network, for example, via an input / output interface (not shown) of the semiconductor integrated circuit design device 100. Alternatively, data input by a user may be accepted. The information in the chip information storage unit 90 does not necessarily have to be received and updated every time, and information already stored in the chip information storage unit 90 can be used.

メッシュネット生成部102は、メッシュネット格子数候補から格子数を1つ選択し、チップ情報記憶部90に記憶される、全てのクロック素子の入力端子位置を考慮して、前記選択した格子数のメッシュネット構造を生成する。ここで、メッシュ配線構造としては、格子状配線などの構造を利用することが考えられる。メッシュネット格子数候補としては、例えば、2x2、4x4、8x8、のような縦横格子数の組合せで与えられる。メッシュネット形状は、全てのクロック素子を覆う縦横格子を生成し、各格子の中心を隣接する格子の中心と結ぶことにより生成され、各格子の中心にメッシュネット駆動バッファが配置され、その出力端子がメッシュネットと接続される。   The mesh net generation unit 102 selects one lattice number from the mesh net lattice number candidates, and considers the input terminal positions of all clock elements stored in the chip information storage unit 90, and the selected mesh number. Generate a mesh net structure. Here, as the mesh wiring structure, it is conceivable to use a structure such as a grid-like wiring. As the mesh net lattice number candidates, for example, combinations of vertical and horizontal lattice numbers such as 2 × 2, 4 × 4, and 8 × 8 are given. The mesh net shape is generated by creating a vertical and horizontal grid that covers all clock elements, connecting the center of each grid to the center of the adjacent grid, and a mesh net drive buffer is placed at the center of each grid, and its output terminal Is connected to the mesh net.

メッシュネット遅延計算部103は、メッシュネット生成部102で生成したメッシュネットの遅延を計算する。   The mesh net delay calculation unit 103 calculates the delay of the mesh net generated by the mesh net generation unit 102.

メッシュネット駆動構造生成部104は、メッシュネットを駆動するバッファツリーを生成する。ここでは、メッシュネットを直接駆動するバッファがバッファツリーの末端バッファとなり、クロックソースから、これら末端バッファ集合へクロック信号を分配するバッファツリーの構成および形状を決定する。ここでは、各末端バッファまでの遅延が同一になるように構成および形状を決定するが、このようなバッファツリーの生成には、例えば、Hツリー型、2分木型などの形状を利用することが可能である。   The mesh net drive structure generation unit 104 generates a buffer tree that drives the mesh net. Here, the buffer that directly drives the mesh net becomes the end buffer of the buffer tree, and the configuration and shape of the buffer tree that distributes the clock signal from the clock source to the end buffer set are determined. Here, the configuration and shape are determined so that the delay to each end buffer is the same, but for the generation of such a buffer tree, for example, a shape such as an H-tree type or a binary tree type should be used. Is possible.

メッシュネット駆動構造遅延計算部105は、メッシュネット駆動構造生成部104が生成したメッシュネット駆動構造における、クロックソースから末端バッファ入力端子までの遅延を計算する。   The mesh net drive structure delay calculation unit 105 calculates the delay from the clock source to the terminal buffer input terminal in the mesh net drive structure generated by the mesh net drive structure generation unit 104.

クロック素子階層クラスタ生成部106は、回路の論理構造から判断される同一のゲーティング論理でクロック信号の伝搬を制御できる集合単位とクロック素子の配置分布を考慮して、クロック素子のクラスタを生成する。具体的には、同一のゲーティング論理でクロック信号の伝搬を制御できるクロック素子集合を分割し、配置座標が近いクロック素子が同一クラスタに含まれるように、複数のクロック素子クラスタを生成する。この時、ひとつのクロック素子クラスタに含まれるクロック素子の数に上限が与えられる。この処理を繰り返すことにより階層的なクラスタリング構造が生成される。   The clock element hierarchy cluster generation unit 106 generates a cluster of clock elements in consideration of a set unit that can control the propagation of the clock signal with the same gating logic determined from the logic structure of the circuit and the arrangement distribution of the clock elements. . Specifically, a set of clock elements that can control the propagation of a clock signal with the same gating logic is divided, and a plurality of clock element clusters are generated so that clock elements with close arrangement coordinates are included in the same cluster. At this time, an upper limit is given to the number of clock elements included in one clock element cluster. By repeating this process, a hierarchical clustering structure is generated.

クロックゲーティング構造生成部107は、クロック素子階層クラスタ生成部106で生成した各クロック素子階層クラスタに対して、イネーブル信号の遅延制約を満たすように、イネーブル信号接続対象となるクロック素子階層を選択し、選択したクラスタ階層以下に含まれるクロック素子が属するゲーティッド回路にクロック信号を分配するゲーティングセルを複製して、前記階層クラスタを駆動するゲーティングセルとして挿入する。この処理は、例えば、選択対象となる階層を、最下位階層のクラスタから開始し、イネーブル信号の遅延制約を満たすまで、ひとつづつ上位階層に上げていく方法が考えられる。   The clock gating structure generation unit 107 selects the clock element hierarchy to be connected to the enable signal so that the delay constraint of the enable signal is satisfied for each clock element hierarchy cluster generated by the clock element hierarchy cluster generation unit 106. The gating cell that distributes the clock signal to the gated circuit to which the clock element included below the selected cluster hierarchy belongs is duplicated and inserted as a gating cell that drives the hierarchical cluster. In this process, for example, a method may be considered in which the hierarchy to be selected is started from the cluster of the lowest hierarchy and is raised to the upper hierarchy one by one until the delay constraint of the enable signal is satisfied.

ローカルクロック構造生成部108は、メッシュネットと複製した各ゲーティングセル入力端子を接続し、ゲーティングセルからクロック素子までの接続構造を生成する。ここでは、例えば、ゲーティングセル毎に、ゲーティングセルの入力端子から最も近いメッシュネット構造上の点付近にバッファを配置し、このバッファ入力端子とメッシュネットを接続し、前記挿入したバッファ出力端子から該ゲーティングセルの入力端子への配線を生成し、前記各ゲーティングセルとゲーティングセルが駆動するクロック素子クラスタ内のクロック素子を接続する。このゲーティングセルの出力端子とクロック素子の接続には、既存のクロックツリー生成手段を用いることもでき、本実施形態の本質に関わらないので詳細な説明は省略する。   The local clock structure generation unit 108 connects the mesh net and each duplicated gating cell input terminal, and generates a connection structure from the gating cell to the clock element. Here, for example, for each gating cell, a buffer is arranged near a point on the mesh net structure closest to the input terminal of the gating cell, the buffer input terminal and the mesh net are connected, and the inserted buffer output terminal To the input terminal of the gating cell is generated, and each gating cell is connected to a clock element in a clock element cluster driven by the gating cell. The connection between the output terminal of the gating cell and the clock element can use an existing clock tree generation means, which is not related to the essence of the present embodiment, and therefore will not be described in detail.

ローカルクロック構造遅延計算部109は、ローカルクロック構造生成手段108により生成した各ローカルクロック構造について、メッシュネットの入力端子から各クロック素子までの遅延を計算する。   The local clock structure delay calculation unit 109 calculates the delay from the input terminal of the mesh net to each clock element for each local clock structure generated by the local clock structure generation means 108.

クロック構造評価部110は、生成したクロック構造全体について、クロック最大遅延と遅延バラつきを考慮したクロックスキューを計算する。メッシュネットを駆動するバッファツリー構造の遅延時間をD1、メッシュネット自体を駆動する遅延時間をD2、ゲーティッド回路を駆動する遅延時間D3とすると、D3 はクロック素子毎に異なる値となるため、このクロック構造の最小遅延時間はD1 + D2 + min{D3}、最大遅延時間はD1+D2+max{D3} となる。min{D3}はD3の最小値、max{D3}はD3の最大値を示す。このクロック構造の主なスキューは、メッシュネットまでは、短絡配線の効果により、ほぼ0に抑えることが可能であるため、ゲーティッド回路を駆動する遅延時間D3において発生する。ゲーティッド回路部分は、配線短絡を行っていないため、遅延バラつきの影響を緩和することができず、遅延バラつき係数をkとすると、このクロック構造のスキューは、max{D3}* (1 + k) - min{D3} * (1 - k) となる。ここで、k は0以上1未満の少数として与えられる。   The clock structure evaluation unit 110 calculates the clock skew considering the maximum clock delay and delay variation for the entire generated clock structure. If the delay time of the buffer tree structure that drives the mesh net is D1, the delay time that drives the mesh net itself is D2, and the delay time D3 that drives the gated circuit, D3 has a different value for each clock element. The minimum delay time of the structure is D1 + D2 + min {D3}, and the maximum delay time is D1 + D2 + max {D3}. min {D3} indicates the minimum value of D3, and max {D3} indicates the maximum value of D3. The main skew of this clock structure occurs in the delay time D3 for driving the gated circuit, because the mesh net can be suppressed to almost zero due to the effect of the short-circuit wiring. Since the gated circuit part is not short-circuited, the effect of delay variation cannot be mitigated. If the delay variation coefficient is k, the skew of this clock structure is max {D3} * (1 + k) -min {D3} * (1-k) Here, k is given as a decimal number between 0 and 1.

クロック構造選択部111は、一連のクロック構造生成部群を、全てのメッシュネット格子数候補に対して適用することにより、クロック構造候補の集合を生成し、その中から、目的に合うクロック構造を選択する。   The clock structure selection unit 111 generates a set of clock structure candidates by applying a series of clock structure generation units to all mesh net lattice number candidates, and selects a clock structure suitable for the purpose from the set. select.

本実施形態の半導体集積回路設計装置100において、CPUが、ハードディスクに記憶されるプログラムをメモリに読み出して実行することにより、上記各ユニットの各機能を実現することができる。   In the semiconductor integrated circuit design device 100 of the present embodiment, the CPU can realize each function of each unit by reading a program stored in the hard disk into the memory and executing it.

本実施形態のコンピュータプログラムは、半導体集積回路設計装置100を実現させるためのコンピュータに、クロックゲーティング構造を含む半導体集積回路のチップ情報を記憶する手順と、メッシュネット格子数候補から格子数を1つ選択し、前記チップ情報に含まれる全てのクロック素子の入力端子位置を考慮して、前記選択した格子数のメッシュネット構造を生成する手順と、前記メッシュネット構造の遅延を計算する手順と、前記メッシュネット構造を駆動するメッシュネット駆動バッファツリー構造を生成する手順と、前記メッシュネット駆動バッファツリー構造の遅延を計算する手順と、前記チップ情報に含まれるクロック素子の配置分布とクロックゲーティング構造を考慮して、異なるゲーティッド回路に含まれるクロック素子が混在せず、かつ、近傍に配置されたクロック素子の集合が含まれるようなクロック素子のクラスタを階層的に生成する手順と、前記各クロック素子階層クラスタに対して、イネーブル信号の遅延制約を満たすように、イネーブル信号接続対象となるクロック素子階層を選択し、選択したクラスタ階層以下に含まれるクロック素子が属するゲーティッド回路にクロック信号を分配するゲーティングセルを複製して、前記階層クラスタを駆動するゲーティングセルとして挿入する手順と、前記メッシュネットと前記複製した各ゲーティングセル入力端子を接続し、ゲーティングセルからクロック素子までの接続構造を生成する手順と、前記ローカルクロック構造生成手段により生成した各ローカルクロック構造について、メッシュネットの入力端子から各クロック素子までの遅延を計算する手順と、前記生成したクロック構造全体について、クロック最大遅延と遅延バラつきを考慮したクロックスキューを計算する手順と、全てのメッシュネット格子数候補に対して、ローカルクロック構造候補の集合を生成し、その中から、計算された各ローカルクロック構造遅延と計算された各クロックスキューとに基づいてクロック構造を選択する手順と、を実行させるように記述されている。   The computer program of the present embodiment is a computer for realizing the semiconductor integrated circuit design apparatus 100. The computer program for realizing the semiconductor integrated circuit design apparatus 100 stores the chip information of the semiconductor integrated circuit including the clock gating structure, and sets the number of grids from one mesh net lattice number candidate. A step of generating a mesh net structure of the selected number of lattices in consideration of input terminal positions of all clock elements included in the chip information, a step of calculating a delay of the mesh net structure, A procedure for generating a mesh net driving buffer tree structure for driving the mesh net structure, a procedure for calculating a delay of the mesh net driving buffer tree structure, an arrangement distribution of clock elements included in the chip information, and a clock gating structure In consideration of clock elements included in different gated circuits A procedure for hierarchically generating a cluster of clock elements that includes a set of clock elements that are not mixed and arranged in the vicinity, and the delay constraint of the enable signal is satisfied for each of the clock element hierarchical clusters As described above, the clock element hierarchy to be connected to the enable signal is selected, the gating cell that distributes the clock signal to the gated circuit to which the clock element included in the selected cluster hierarchy or lower belongs is duplicated, and the hierarchical cluster is driven. A procedure for inserting as a gating cell, a procedure for connecting the mesh net and each duplicated gating cell input terminal to generate a connection structure from the gating cell to the clock element, and generation by the local clock structure generation means Mesh net input for each local clock structure The procedure for calculating the delay from the child to each clock element, the procedure for calculating the clock skew considering the clock maximum delay and delay variation for the entire generated clock structure, and all the mesh net lattice number candidates, It is described to generate a set of local clock structure candidates, from which a procedure for selecting a clock structure based on each calculated local clock structure delay and each calculated clock skew is executed. .

このように構成された本実施形態の半導体集積回路設計装置100の動作について、以下に説明する。図2は、本発明の実施の形態に係る半導体集積回路の設計方法の処理手順の一例を示すフローチャートである。   The operation of the semiconductor integrated circuit design apparatus 100 of the present embodiment configured as described above will be described below. FIG. 2 is a flowchart showing an example of the processing procedure of the method for designing a semiconductor integrated circuit according to the embodiment of the present invention.

本実施形態の半導体集積回路の設計方法は、
クロックゲーティング構造を含む半導体集積回路のチップ情報を受け付けて記憶し(ステップS101)、メッシュネット格子数候補から格子数を1つ選択し(ステップS102)、前記チップ情報に含まれる全てのクロック素子の入力端子位置を考慮して、前記選択した格子数のメッシュネット構造を生成し(ステップS103)、前記メッシュネット構造の遅延を計算し(ステップS104)、前記メッシュネット構造を駆動するメッシュネット駆動バッファツリー構造を生成し(ステップS105)、前記メッシュネット駆動バッファツリー構造の遅延を計算し(ステップS106)、前記チップ情報に含まれるクロック素子の配置分布とクロックゲーティング構造を考慮して、異なるゲーティッド回路に含まれるクロック素子が混在せず、かつ、近傍に配置されたクロック素子の集合が含まれるようなクロック素子のクラスタを階層的に生成し(ステップS107)、前記各クロック素子階層クラスタに対して、まず、クロック素子の最下位階層を、イネーブル信号の接続対象として選択し(ステップS108)、選択したクロック素子階層にイネーブル信号を接続した時に、イネーブル信号の遅延が遅延制約を満たすかどうか確認し(ステップS109)、イネーブル信号の遅延制約を満たさなければ、イネーブル信号接続対象となるクロック素子階層を1階層上げて選択し直し(ステップS110)、再度、ステップS109で、イネーブル信号の遅延が遅延制約を満たすかどうか確認することを、イネーブル信号の遅延が遅延制約を満たすまで繰り返し、その結果、選択されたクラスタ階層以下に含まれるクロック素子が属するゲーティッド回路にクロック信号を分配するゲーティングセルを複製して、前記階層クラスタを駆動するゲーティングセルとして挿入し(ステップS111)、前記メッシュネットと前記複製した各ゲーティングセル入力端子を接続し、ゲーティングセルからクロック素子までの接続構造を生成し(ステップS112)、前記ローカルクロック構造生成手段により生成した各ローカルクロック構造について、メッシュネットの入力端子から各クロック素子までの遅延を計算し(ステップS113)、前記生成したクロック構造全体について、クロック最大遅延と遅延バラつきを考慮したクロックスキューを計算し(ステップS114)、前記一連のクロック構造生成方法群を、全てのメッシュネット格子数候補に対して適用したかどうかを確認し(ステップS115)、まだ未適用のメッシュネット格子数が存在すれば、再度、ステップS102からS114までの処理を繰り返し、最終的に得られたクロック構造候補の集合の中から、計算された各ローカルクロック構造遅延と計算された各クロックスキューとに基づいてクロック構造を選択する(ステップS116)。
The method for designing the semiconductor integrated circuit of this embodiment is as follows:
Receive and store chip information of a semiconductor integrated circuit including a clock gating structure (step S101), select one of the mesh net lattice number candidates (step S102), and select all clock elements included in the chip information Generating a mesh net structure having the selected number of lattices in consideration of the input terminal position (step S103), calculating a delay of the mesh net structure (step S104), and driving the mesh net structure Generate a buffer tree structure (step S105), calculate the delay of the mesh net drive buffer tree structure (step S106), and take into account the clock element arrangement distribution and the clock gating structure included in the chip information The clock elements included in the gated circuit are not mixed, and the set of clock elements arranged in the vicinity is The clock element cluster is generated hierarchically (step S107), and for each clock element hierarchy cluster, first, the lowest hierarchy of the clock elements is selected as the connection target of the enable signal (step S108). ) When the enable signal is connected to the selected clock element hierarchy, it is checked whether the delay of the enable signal satisfies the delay constraint (step S109) .If the delay constraint of the enable signal is not satisfied, the clock to which the enable signal is to be connected is checked. The element level is increased by one level and selected again (step S110) .In step S109, it is repeated until whether the delay of the enable signal satisfies the delay constraint until the enable signal delay satisfies the delay constraint. As a result, the clock signal is sent to the gated circuit to which the clock elements included below the selected cluster hierarchy belong. Duplicating the distributed gating cell, inserting it as a gating cell for driving the hierarchical cluster (step S111), connecting the mesh net and each duplicated gating cell input terminal, and from the gating cell to the clock element (Step S112), for each local clock structure generated by the local clock structure generation means, calculate the delay from the input terminal of the mesh net to each clock element (step S113), the generated Calculate the clock skew considering the maximum clock delay and delay variation for the entire clock structure (step S114), and check whether the series of clock structure generation methods are applied to all mesh net lattice number candidates (Step S115), if there are still unapplied mesh net lattice numbers, Repeat steps S102 through S114, and select a clock structure from the set of finally obtained clock structure candidates based on each calculated local clock structure delay and each calculated clock skew. (Step S116).

以下、図2乃至図15を用いて具体的に説明する。   Hereinafter, this will be specifically described with reference to FIGS.

はじめに、チップ情報受付部101により、設計対象となる半導体集積回路チップのクロック素子を含むゲートレベルのネットリストに関する情報(チップデータ)の入力を受け付け、チップ情報記憶部90に記憶する(ステップS101)。ここで、フリップフロップの集合は、回路の論理構造から同一のゲーティング論理でクロック信号の伝搬を制御できる部分集合に分割されている。この各部分集合をゲーティッド回路とも称する。入力データに含まれるクロック分配回路は、図18に示すような、クロックゲーティング構造を持っている。すなわち、クロックソース(16-01)からクロック素子(16-03)まで、ゲーティングセル(18-04)を介してクロック信号が分配され、ゲーティングセルはクロック信号とゲーティング信号(18-01、 18-02)の論理積(AND)を取ることにより、クロック信号の伝搬を制御する。ここで、同一のゲーティング信号以下にあるクロック素子をまとめて、ひとつのゲーティッド回路と呼ぶ。また、各クロック素子には配置座標が与えられているものとする。   First, the chip information receiving unit 101 receives input of information (chip data) related to a gate level netlist including clock elements of a semiconductor integrated circuit chip to be designed and stores it in the chip information storage unit 90 (step S101). . Here, the set of flip-flops is divided into subsets that can control the propagation of the clock signal with the same gating logic from the logic structure of the circuit. Each subset is also referred to as a gated circuit. The clock distribution circuit included in the input data has a clock gating structure as shown in FIG. That is, the clock signal is distributed from the clock source (16-01) to the clock element (16-03) via the gating cell (18-04), and the gating cell receives the clock signal and the gating signal (18-01). , 18-02) is used to control clock signal propagation. Here, clock elements below the same gating signal are collectively referred to as a single gated circuit. Further, it is assumed that arrangement coordinates are given to each clock element.

次に、メッシュネット生成部102が、図5に示すように、メッシュネット格子数候補から格子数を1つ選択し(ステップS102)、チップ情報記憶部90に記憶された、全てのクロック素子の入力端子位置を考慮して、前記選択した格子数のメッシュネット構造(17-02)を生成する(ステップS103)。ここで、メッシュ配線構造としては、格子状配線などの構造を利用することが考えられる。メッシュネット格子数候補としては、例えば、2x2、4x4、8x8、のような縦横格子数の組合せで与えられる。メッシュネット形状は、全てのクロック素子を覆う縦横格子を生成し、各格子の中心を隣接する格子の中心と結ぶことにより生成され、各格子の中心にメッシュネット駆動バッファ(17-03)が配置され、その出力端子がメッシュネットと接続される。図5では、(a)に4x4の格子点数、(b)に2x2の格子点数の例を、それぞれ、示している。   Next, as shown in FIG. 5, the mesh net generation unit 102 selects one lattice number from the mesh net lattice number candidates (step S102), and all the clock elements stored in the chip information storage unit 90 are selected. Considering the input terminal position, a mesh net structure (17-02) having the selected number of lattices is generated (step S103). Here, as the mesh wiring structure, it is conceivable to use a structure such as a grid-like wiring. As the mesh net lattice number candidates, for example, combinations of vertical and horizontal lattice numbers such as 2 × 2, 4 × 4, and 8 × 8 are given. The mesh net shape is generated by creating a vertical and horizontal grid that covers all clock elements and connecting the center of each grid to the center of the adjacent grid, and a mesh net drive buffer (17-03) is placed at the center of each grid. The output terminal is connected to the mesh net. FIG. 5 shows an example of the number of 4 × 4 lattice points in (a) and the number of 2 × 2 lattice points in (b).

次に、メッシュネット遅延計算部103が、メッシュネット生成部102で生成したメッシュネット構造をチップ情報記憶部90から受け、メッシュネットの遅延を計算する(ステップS104)。複数の駆動バッファを持つネットの遅延を精度良く、短時間で計算する方法は知られておらず、spiceのような回路シミュレーションを用いるのが一般的である。しかし、ここでは、最良なクロック構造探索が目的であるため、各構造に対して、回路シミュレーションを実行するのは現実的でない。この問題を解決するために、ここでは、メッシュネット駆動バッファ数とメッシュネット容量の各組合せについて、あらかじめ、回路シミュレーションにより計算した遅延を保持しておき、利用する。図6に、メッシュネット構造の遅延を計算するために用いられる、メッシュネット駆動バッファ数とメッシュネット容量の各組合せについて、メッシュネット自体の遅延(06-01)を保持する表の一例を示す。   Next, the mesh net delay calculation unit 103 receives the mesh net structure generated by the mesh net generation unit 102 from the chip information storage unit 90, and calculates the delay of the mesh net (step S104). A method for calculating the delay of a net having a plurality of drive buffers with high accuracy in a short time is not known, and circuit simulation such as spice is generally used. However, since the purpose here is to search for the best clock structure, it is not practical to perform circuit simulation for each structure. In order to solve this problem, here, for each combination of the number of mesh net drive buffers and the mesh net capacity, a delay calculated by circuit simulation is held in advance and used. FIG. 6 shows an example of a table that holds the delay (06-01) of the mesh net itself for each combination of the number of mesh net drive buffers and the mesh net capacity used to calculate the delay of the mesh net structure.

メッシュネット駆動構造生成部104は、メッシュネットを駆動するバッファツリーを生成する(ステップS105)。ここでは、メッシュネットを直接駆動するバッファがバッファツリーの末端バッファとなり、クロックソース(16-01)から、これら末端バッファ集合(17-03)へクロック信号(07-01)を分配するバッファツリーの構成および形状を決定する。ここでは、各末端バッファまでの遅延(クロック信号07-01の経路の遅延)が同一になるように、ツリー上の中継バッファ(16-04)を含む、構成および形状(17-01)を決定するが、このようなバッファツリーの生成には、例えば、Hツリー型、2分木型などの形状を利用することが可能である。 図7にメッシュネット駆動バッファツリー構造の例を示す。図7(a)が4x4の格子数の場合、図7(b)が2x2の格子数の場合を、それぞれ示している。なお、ここでは簡単のため、16個または4個の末端バッファを持つ完全対称なクロック分配信号レイアウトの一例としてHツリー型の構造を示しているが、これに限定されない。   The mesh net drive structure generation unit 104 generates a buffer tree for driving the mesh net (step S105). Here, the buffer that directly drives the mesh net becomes the end buffer of the buffer tree, and the buffer tree that distributes the clock signal (07-01) from the clock source (16-01) to these end buffer sets (17-03) Determine configuration and shape. Here, the configuration and shape (17-01) including the relay buffer (16-04) on the tree are determined so that the delay to each end buffer (the delay of the path of the clock signal 07-01) is the same. However, for generation of such a buffer tree, for example, a shape such as an H-tree type or a binary tree type can be used. FIG. 7 shows an example of a mesh net driving buffer tree structure. FIG. 7A shows the case where the number of lattices is 4 × 4, and FIG. 7B shows the case where the number of lattices is 2 × 2. Here, for the sake of simplicity, an H-tree structure is shown as an example of a completely symmetric clock distribution signal layout having 16 or 4 terminal buffers, but the present invention is not limited to this.

次に、メッシュネット駆動構造遅延計算部105が、メッシュネット駆動構造生成部104が生成したメッシュネット駆動バッファツリー構造における、クロックソースから末端バッファ入力端子までの遅延(クロック信号07-01の経路の遅延)を計算する(ステップS106)。図7に、遅延計算対象となるバッファツリー上の経路を示す。   Next, the mesh net drive structure delay calculation unit 105 performs a delay from the clock source to the terminal buffer input terminal (the path of the clock signal 07-01 in the mesh net drive buffer tree structure generated by the mesh net drive structure generation unit 104. (Delay) is calculated (step S106). FIG. 7 shows a path on the buffer tree to be subjected to delay calculation.

次にクロック素子階層クラスタ生成部106が、チップ情報記憶部90に記憶される、回路の論理構造から判断される同一のゲーティング論理でクロック信号の伝搬を制御できる集合単位とクロック素子の配置分布を考慮して、クロック素子のクラスタを生成する(ステップS107)。具体的には、同一のゲーティング論理でクロック信号の伝搬を制御できるクロック素子集合を分割し、配置座標が近いクロック素子が同一クラスタに含まれるように、複数のクロック素子クラスタを生成する。この時、ひとつのクロック素子クラスタに含まれるクロック素子の数に上限が与えられる。この処理を繰り返すことにより階層的なクラスタリング構造が生成される。図8に、メッシュ構造(17-02)以下に接続するクロック素子(16-03)の階層クラスタリングの例を示す。まず、階層レベル1では、クロック素子数が、それぞれ、2、 3、 3、 2、 2、 3、 3、 2 である8つのクラスタ(08-01)が作られる。次に各クラスタの重心を参考に、レベル2のクラスタリングが行われ、クロック素子数が、それぞれ、5、 5、 8、 2である4つのクラスタ(08-02)が作られる。次に、レベル3のクラスタリングが行われ、クロック素子数が、それぞれ、10、 10 である2つのクラスタ(08-03)が作られる。図9は、図8の階層クラスタリングをレイアウトの観点から示した図である。図9(a)は、クロック素子(16-03)に対して、レベル1のクラスタリング(08-01)を終えた状態、図9(b)は、レベル2(08-02)および3のクラスタリング(08-03)を終えた状態を、それぞれ、示している。   Next, the clock element hierarchy cluster generation unit 106 can control the propagation of the clock signal with the same gating logic stored in the chip information storage unit 90 and determined from the logic structure of the circuit, and the distribution distribution of the clock elements In consideration of the above, a cluster of clock elements is generated (step S107). Specifically, a set of clock elements that can control the propagation of a clock signal with the same gating logic is divided, and a plurality of clock element clusters are generated so that clock elements with close arrangement coordinates are included in the same cluster. At this time, an upper limit is given to the number of clock elements included in one clock element cluster. By repeating this process, a hierarchical clustering structure is generated. FIG. 8 shows an example of hierarchical clustering of clock elements (16-03) connected to the mesh structure (17-02) or lower. First, at hierarchical level 1, eight clusters (08-01) having the number of clock elements of 2, 3, 3, 2, 2, 3, 3, 2 are created. Next, referring to the center of gravity of each cluster, level 2 clustering is performed, and four clusters (08-02) having the number of clock elements of 5, 5, 8, and 2 are created. Next, level 3 clustering is performed to create two clusters (08-03) with 10 and 10 clock elements, respectively. FIG. 9 is a diagram showing the hierarchical clustering of FIG. 8 from the viewpoint of layout. FIG. 9A shows a state in which level 1 clustering (08-01) has been completed for the clock element 16-03, and FIG. 9B shows levels 2 (08-02) and 3 clustering. Each state after (08-03) is shown.

次に、クロックゲーティング構造生成部107が、クロック素子階層クラスタ生成部106で生成した各クロック素子階層クラスタに対して、イネーブル信号の遅延制約を満たすように、イネーブル信号接続対象となるクロック素子階層を選択し、選択したクラスタ階層以下に含まれるクロック素子が属するゲーティッド回路にクロック信号を分配するゲーティングセルを複製して、前記階層クラスタを駆動するゲーティングセルとして挿入する。より具体的には、まず、クロック素子の最下位階層クラスタを、イネーブル信号の接続対象として選択し(ステップS108)、選択したクロック素子階層にイネーブル信号を接続した時に、イネーブル信号の遅延が遅延制約を満たすかどうか確認し(ステップS109)、イネーブル信号の遅延制約を満たさなければ、イネーブル信号接続対象となるクロック素子階層を1階層上げて選択し直し(ステップS110)、再度、ステップS109で、イネーブル信号の遅延が遅延制約を満たすかどうか確認することを、イネーブル信号の遅延が遅延制約を満たすまで繰り返す。例えば、図8、図9の最下位階層クラスタをイネーブル信号接続対象とする、図10のクロックゲーティング構造が生成される(04-04はイネーブル信号を示す)。これに対して、図10に示したイネーブル信号(04-04)の遅延が上限制約を満たしているかどうかを確認する。図11は、図10の構造をレイアウト観点で表した図であり、16-04はイネーブル信号分配ツリー上の中継バッファを示す。図10のイネーブル信号遅延(イネーブル信号のソースからゲーティングセル18-04への遅延)が上限制約以下でない場合、イネーブル信号の接続対象階層をひとつ上げた図12のゲーティング構造が評価対象となる。図10の場合と同様に各クラスタのルートに接続するイネーブル信号(04-04)の遅延が上限制約以下になっているかどうかがチェックされる。図13は、図12のゲーティング構造をレイアウト観点から表した図であり、図11同様、16-04はイネーブル信号分配ツリー上の中継バッファを示している。その結果、選択されたクラスタ階層以下に含まれるクロック素子が属するゲーティッド回路にクロック信号を分配するゲーティングセルを複製して、前記階層クラスタを駆動するゲーティングセル(18-04)として挿入する(ステップS111)。   Next, the clock gating structure generation unit 107 applies the enable signal connection target clock element hierarchy to each clock element hierarchy cluster generated by the clock element hierarchy cluster generation unit 106 so as to satisfy the delay constraint of the enable signal. And the gating cell that distributes the clock signal to the gated circuit to which the clock element included in the selected cluster hierarchy or lower belongs is copied and inserted as a gating cell that drives the hierarchical cluster. More specifically, first, the lowest hierarchy cluster of the clock elements is selected as the connection target of the enable signal (step S108), and when the enable signal is connected to the selected clock element hierarchy, the delay of the enable signal is a delay constraint. If the delay constraint of the enable signal is not satisfied, the clock element layer to which the enable signal is to be connected is increased by one layer (step S110), and the enable signal is enabled again in step S109. Checking whether the delay of the signal satisfies the delay constraint is repeated until the delay of the enable signal satisfies the delay constraint. For example, the clock gating structure of FIG. 10 is generated with the lowest layer cluster of FIGS. 8 and 9 as the enable signal connection target (04-04 indicates the enable signal). On the other hand, it is confirmed whether or not the delay of the enable signal (04-04) shown in FIG. 10 satisfies the upper limit constraint. FIG. 11 is a diagram showing the structure of FIG. 10 from the viewpoint of layout, and 16-04 indicates a relay buffer on the enable signal distribution tree. When the enable signal delay (the delay from the source of the enable signal to the gating cell 18-04) in FIG. 10 is not less than the upper limit constraint, the gating structure in FIG. . As in the case of FIG. 10, it is checked whether the delay of the enable signal (04-04) connected to the root of each cluster is below the upper limit constraint. FIG. 13 is a diagram illustrating the gating structure of FIG. 12 from a layout viewpoint. Like FIG. 11, 16-04 indicates a relay buffer on the enable signal distribution tree. As a result, the gating cell that distributes the clock signal to the gated circuit to which the clock element included below the selected cluster hierarchy belongs is duplicated and inserted as a gating cell (18-04) that drives the hierarchical cluster ( Step S111).

次にローカルクロック構造生成部108が、前記メッシュネットと前記複製した各ゲーティングセル入力端子を接続し、ゲーティングセルからクロック素子までの接続構造を生成する(ステップS112)。ここでは、例えば、ゲーティングセル毎に、ゲーティングセルの入力端子から最も近いメッシュネット構造上の点付近にバッファを配置し、このバッファ入力端子とメッシュネットを接続し、前記挿入したバッファ出力端子から該ゲーティングセルの入力端子への配線を生成し、前記各ゲーティングセルとゲーティングセルが駆動するクロック素子クラスタ内のクロック素子を接続する。このゲーティングセルの出力端子とクロック素子の接続には、既存のクロックツリー生成手段を用いることもでき、本実施形態の本質に関わらないので詳細な説明は省略する。図14に、図12および図13で選択されたイネーブル信号接続階層から生成されたゲーティングクロック構造を示す。図15は、図14のゲーティングクロック構造をレイアウト観点から示した図である。メッシュ構造17-04の直後に中継バッファ16-04を挿入し、ゲーティングセル18-04との接続を行っている。ゲーティングセルからは、クロック素子16-03へのクロック信号分配が行われる。中継バッファ16-04、 ゲーティングセル18-04のバッファ駆動能力は、メッシュ構造17-02以降の各クロック素子への遅延04-03が全てのクロック素子で同一であり、かつ、できるだけ小さくなるように、調整される。   Next, the local clock structure generation unit 108 connects the mesh net and the duplicated gating cell input terminals, and generates a connection structure from the gating cell to the clock element (step S112). Here, for example, for each gating cell, a buffer is arranged near a point on the mesh net structure closest to the input terminal of the gating cell, the buffer input terminal and the mesh net are connected, and the inserted buffer output terminal To the input terminal of the gating cell is generated, and each gating cell is connected to a clock element in a clock element cluster driven by the gating cell. The connection between the output terminal of the gating cell and the clock element can use an existing clock tree generation means, which is not related to the essence of the present embodiment, and therefore will not be described in detail. FIG. 14 shows a gating clock structure generated from the enable signal connection hierarchy selected in FIG. 12 and FIG. FIG. 15 is a diagram showing the gating clock structure of FIG. 14 from the viewpoint of layout. A relay buffer 16-04 is inserted immediately after the mesh structure 17-04 to connect to the gating cell 18-04. The clock signal distribution to the clock element 16-03 is performed from the gating cell. The buffer drive capability of the relay buffer 16-04 and the gating cell 18-04 is such that the delay 04-03 to each clock element after the mesh structure 17-02 is the same for all clock elements and is as small as possible. Adjusted.

次に、ローカルクロック構造遅延計算部109が、前記ローカルクロック構造生成手段により生成した各ローカルクロック構造について、メッシュネットの入力端子から各クロック素子までの遅延を計算する(ステップS113)。具体的には、図14に示す各ローカル構造の遅延04-03を計算することになる。   Next, the local clock structure delay calculation unit 109 calculates the delay from the input terminal of the mesh net to each clock element for each local clock structure generated by the local clock structure generation means (step S113). Specifically, the delay 04-03 of each local structure shown in FIG. 14 is calculated.

次に、クロック構造評価部110が、前記生成したクロック構造全体について、クロック最大遅延と遅延バラつきを考慮したクロックスキューを計算する(ステップS114)。メッシュネットを駆動するバッファツリー構造の遅延時間をD1、メッシュネット自体を駆動する遅延時間をD2、ゲーティッド回路を駆動する遅延時間D3とすると、D3 はクロック素子毎に異なる値となるため、このクロック構造の最小遅延時間はD1 + D2 + min{D3}、最大遅延時間はD1+D2+max{D3} となる。このクロック構造の主なスキューは、メッシュネットまでは、短絡配線の効果により、ほぼ0に抑えることが可能であるため、ゲーティッド回路を駆動する遅延時間D3において発生する。ゲーティッド回路部分は、配線短絡を行っていないため、遅延バラつきの影響を緩和することができず、遅延バラつき係数をkとすると、このクロック構造のスキューは、max{D3}* (1 + k) - min{D3} * (1 - k) となる。ここで、k は0以上1未満の少数として与えられる。   Next, the clock structure evaluation unit 110 calculates a clock skew considering the maximum clock delay and delay variation for the entire generated clock structure (step S114). If the delay time of the buffer tree structure that drives the mesh net is D1, the delay time that drives the mesh net itself is D2, and the delay time D3 that drives the gated circuit, D3 has a different value for each clock element. The minimum delay time of the structure is D1 + D2 + min {D3}, and the maximum delay time is D1 + D2 + max {D3}. The main skew of this clock structure occurs in the delay time D3 for driving the gated circuit, because the mesh net can be suppressed to almost zero due to the effect of the short-circuit wiring. Since the gated circuit part is not short-circuited, the effect of delay variation cannot be mitigated. If the delay variation coefficient is k, the skew of this clock structure is max {D3} * (1 + k) -min {D3} * (1-k) Here, k is given as a decimal number between 0 and 1.

次に、クロック構造選択部111が、前記一連のクロック構造生成方法群を、全てのメッシュネット格子数候補に対して適用したかどうかを確認し(ステップS115)、まだ未適用のメッシュネット格子数が存在すれば、再度、ステップS102からS114までの処理を繰り返し、最終的に得られたクロック構造候補の集合の中から、目的に合うクロック構造を選択する(ステップS116)。ここで、クロック構造の選択手段は、クロック最大遅延 D1 + D2 + max{D3}が上限制約以内で、クロックスキューmax{D3}* (1 + k) - min{D3} * (1 - k)が最小であるクロック構造、または、クロックスキューmax{D3}* (1 + k) - min{D3} * (1 - k)が上限制約以内で、クロック最大遅延 D1 + D2 + max{D3}を最小であるクロック構造を選択する。   Next, the clock structure selection unit 111 confirms whether or not the series of clock structure generation method groups has been applied to all mesh net lattice number candidates (step S115), and the number of mesh net lattices that have not yet been applied. Is present again, the processing from step S102 to S114 is repeated again, and a clock structure suitable for the purpose is selected from the finally obtained set of clock structure candidates (step S116). Here, the clock structure selection means is that clock maximum delay D1 + D2 + max {D3} is within the upper limit constraint, clock skew max {D3} * (1 + k)-min {D3} * (1-k) Or clock skew max {D3} * (1 + k)-min {D3} * (1-k) is within upper bounds and clock maximum delay D1 + D2 + max {D3} Select the clock structure that is the smallest.

以上説明したフローは、ステップS101からステップS116までの処理が順次シリーズに処理されている。しかし、ステップS101からステップS106までを第1の処理、ステップS107からステップS111までを第2の処理、ステップS112からステップS113までを第3の処理としたとき、第1の処理と第2の処理は並行に処理してもよく、第2の処理が第1の処理に先立って行われてもよい。   In the flow described above, the processes from step S101 to step S116 are sequentially processed in series. However, when steps S101 to S106 are the first processing, steps S107 to S111 are the second processing, and steps S112 to S113 are the third processing, the first processing and the second processing are performed. May be processed in parallel, and the second process may be performed prior to the first process.

以上、説明したように、本実施形態の半導体集積回路の設計装置および設計方法によれば、低消費電力化に有効であるゲーティング構造を含むクロック分配回路に対して、製造バラつきを含むスキューの削減のために有効であるメッシュ構造を分割することなく、クロック構造全体の遅延とスキューおよびイネーブル信号遅延を総合的に考慮して、全クロック素子を同一のメッシュ構造以下に接続する最良なクロック構造を生成することが可能となる。これにより、クロック分配回路の低消費電力化と低遅延化および低遅延スキュー化が可能となる。   As described above, according to the semiconductor integrated circuit design apparatus and design method of the present embodiment, the skew distribution including the manufacturing variation is reduced with respect to the clock distribution circuit including the gating structure effective for reducing the power consumption. The best clock structure that connects all clock elements to the same mesh structure or less, considering the delay and skew of the entire clock structure and the enable signal delay without dividing the mesh structure that is effective for reduction Can be generated. As a result, the power consumption, the delay, and the delay skew of the clock distribution circuit can be reduced.

以上、図面を参照して本発明の実施形態について述べたが、これらは本発明の例示であり、上記以外の様々な構成を採用することもできる。   As mentioned above, although embodiment of this invention was described with reference to drawings, these are the illustrations of this invention, Various structures other than the above are also employable.

以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。   While the present invention has been described with reference to the embodiments, the present invention is not limited to the above embodiments. Various changes that can be understood by those skilled in the art can be made to the configuration and details of the present invention within the scope of the present invention.

上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下の構成には限られない。
(付記1)
クロックゲーティング構造を含む半導体集積回路のチップ情報を記憶する記憶装置と、
メッシュネット格子数候補から格子数を1つ選択し、前記チップ情報に含まれる全てのクロック素子の入力端子位置を考慮して、前記選択した格子数のメッシュネットを生成するメッシュネット生成手段と、
前記メッシュネット生成手段で生成した前記メッシュネットの遅延を計算するメッシュネット遅延計算手段と、
前記メッシュネットを駆動するバッファツリーを生成するメッシュネット駆動構造生成手段と、
前記メッシュネット駆動構造生成手段で生成したメッシュネット駆動構造の遅延を計算するメッシュネット駆動構造遅延計算手段と、
前記チップ情報に含まれる、クロック素子の配置分布とクロックゲーティング構造を考慮して、異なるゲーティッド回路に含まれるクロック素子が混在せず、かつ、近傍に配置されたクロック素子の集合が含まれるようなクロック素子のクラスタを階層的に生成するクロック素子階層クラスタ生成手段と、
前記クロック素子階層クラスタ生成手段で生成した各クロック素子階層クラスタに対して、イネーブル信号の遅延制約を満たすように、イネーブル信号接続対象となるクロック素子階層を選択し、選択したクラスタ階層以下に含まれるクロック素子が属するゲーティッド回路にクロック信号を分配するゲーティングセルを複製して、前記階層クラスタを駆動するゲーティングセルとして挿入するクロックゲーティング構造生成手段と、
前記メッシュネットと前記複製した各ゲーティングセル入力端子を接続し、ゲーティングセルからクロック素子までの接続構造を生成するローカルクロック構造生成手段と、
前記ローカルクロック構造生成手段により生成した各ローカルクロック構造について、メッシュネットの入力端子から各クロック素子までの遅延を計算するとローカルクロック構造遅延計算手段と、
前記生成したクロック構造全体について、クロック最大遅延と遅延バラつきを考慮したクロックスキューを計算するクロック構造評価手段と、
全てのメッシュネット格子数候補に対して行われた、ローカルクロック構造候補の集合から、計算された各ローカルクロック構造遅延と計算された各クロックスキューとに基づいてクロック構造を選択するクロック構造選択手段と、
を備えた、半導体集積回路の設計装置。
(付記2)
付記1記載の半導体集積回路の設計装置において、
前記クロックゲーティング構造生成手段は、
クロック素子の最下位階層クラスタを、イネーブル信号の接続対象として選択する手段と、選択したクロック素子階層にイネーブル信号を接続した時に、イネーブル信号の遅延が遅延制約を満たすかどうか確認する手段と、イネーブル信号の遅延制約を満たさなければ、イネーブル信号接続対象となるクロック素子階層を1階層上げて選択し直し、再度イネーブル信号の遅延が遅延制約を満たすかどうか確認する手段と、これらの手段による処理をイネーブル信号の遅延が遅延制約を満たすまで繰り返す手段と、を備える半導体集積回路の設計装置。
(付記3)
付記1記載の半導体集積回路の設計装置において、
前記メッシュネット遅延計算手段は、メッシュネット駆動バッファ数とメッシュネット容量の各組合せについて、あらかじめ、回路シミュレーションにより計算した遅延を保持した表をライブラリとして備え、該ライブラリを遅延計算に利用することを特徴とする半導体集積回路の設計装置。
(付記4)
クロックゲーティング構造を含む半導体集積回路のチップ情報を記憶し、
メッシュネット格子数候補から格子数を1つ選択し、前記チップ情報に含まれる全てのクロック素子の入力端子位置を考慮して、前記選択した格子数のメッシュネット構造を生成し、前記メッシュネット構造の遅延を計算し、
前記メッシュネット構造を駆動するメッシュネット駆動バッファツリー構造を生成し、前記メッシュネット駆動バッファツリー構造の遅延を計算し、
前記チップ情報に含まれる、クロック素子の配置分布とクロックゲーティング構造を考慮して、異なるゲーティッド回路に含まれるクロック素子が混在せず、かつ、近傍に配置されたクロック素子の集合が含まれるようなクロック素子のクラスタを階層的に生成し、
前記各クロック素子階層クラスタに対して、イネーブル信号の遅延制約を満たすように、イネーブル信号接続対象となるクロック素子階層を選択し、選択したクラスタ階層以下に含まれるクロック素子が属するゲーティッド回路にクロック信号を分配するゲーティングセルを複製して、前記階層クラスタを駆動するゲーティングセルとして挿入し、
前記メッシュネットと前記複製した各ゲーティングセル入力端子を接続し、ゲーティングセルからクロック素子までの接続構造を生成し、生成した各ローカルクロック構造について、メッシュネットの入力端子から各クロック素子までの遅延を計算し、
前記生成したクロック構造全体について、クロック最大遅延と遅延バラつきを考慮したクロックスキューを計算し、
全てのメッシュネット格子数候補に対してローカルクロック構造候補の集合を生成し、その中から、計算された各ローカルクロック構造遅延と計算された各クロックスキューとに基づいてクロック構造を選択する、半導体集積回路の設計方法。
(付記5)
付記4記載の半導体集積回路の設計方法において、
クロックゲーティング構造生成において、まず、クロック素子の最下位階層クラスタを、イネーブル信号の接続対象として選択し、選択したクロック素子階層にイネーブル信号を接続した時に、イネーブル信号の遅延が遅延制約を満たすかどうか確認し、イネーブル信号の遅延制約を満たさなければ、イネーブル信号接続対象となるクロック素子階層を1階層上げて選択し直し、再度イネーブル信号の遅延が遅延制約を満たすかどうか確認し、これらの処理をイネーブル信号の遅延が遅延制約を満たすまで繰り返す、半導体集積回路の設計方法。
(付記6)
付記4記載の半導体集積回路の設計方法のメッシュネット遅延計算において、メッシュネット駆動バッファ数とメッシュネット容量の各組合せについて、あらかじめ、回路シミュレーションにより計算した遅延を保持した表をライブラリとして用意しておき、遅延計算に利用する、半導体集積回路の設計方法。
(付記7)
半導体集積回路の設計装置として機能させるコンピュータに、
クロックゲーティング構造を含む半導体集積回路のチップ情報を記憶する手順と、
メッシュネット格子数候補から格子数を1つ選択し、前記チップ情報に含まれる全てのクロック素子の入力端子位置を考慮して、前記選択した格子数のメッシュネット構造を生成する手順と、
前記メッシュネット構造の遅延を計算する手順と、
前記メッシュネット構造を駆動するメッシュネット駆動バッファツリー構造を生成する手順と、
前記メッシュネット駆動バッファツリー構造の遅延を計算する手順と、
前記チップ情報に含まれる、クロック素子の配置分布とクロックゲーティング構造を考慮して、異なるゲーティッド回路に含まれるクロック素子が混在せず、かつ、近傍に配置されたクロック素子の集合が含まれるようなクロック素子のクラスタを階層的に生成する手順と、
前記各クロック素子階層クラスタに対して、イネーブル信号の遅延制約を満たすように、イネーブル信号接続対象となるクロック素子階層を選択し、選択したクラスタ階層以下に含まれるクロック素子が属するゲーティッド回路にクロック信号を分配するゲーティングセルを複製して、前記階層クラスタを駆動するゲーティングセルとして挿入する手順と、
前記メッシュネットと前記複製した各ゲーティングセル入力端子を接続し、ゲーティングセルからクロック素子までの接続構造を生成する手順と、
前記ローカルクロック構造生成手段により生成した各ローカルクロック構造について、メッシュネットの入力端子から各クロック素子までの遅延を計算する手順と、
前記生成したクロック構造全体について、クロック最大遅延と遅延バラつきを考慮したクロックスキューを計算する手順と、
全てのメッシュネット格子数候補に対して、ローカルクロック構造候補の集合を生成し、その中から、計算された各ローカルクロック構造遅延と計算された各クロックスキューとに基づいてクロック構造を選択する手順と、
を実行させるコンピュータプログラム。
(付記8)
付記7記載のコンピュータプログラムにおいて、
前記クロックゲーティング構造生成手順は、
クロック素子の最下位階層クラスタを、イネーブル信号の接続対象として選択する手順と、
選択したクロック素子階層にイネーブル信号を接続した時に、イネーブル信号の遅延が遅延制約を満たすかどうか確認する手順と、
イネーブル信号の遅延制約を満たさなければ、イネーブル信号接続対象となるクロック素子階層を1階層上げて選択し直し、再度イネーブル信号の遅延が遅延制約を満たすかどうか確認する手順と、
これらの手順をイネーブル信号の遅延が遅延制約を満たすまで繰り返す手順とを含むことを特徴とするコンピュータプログラム。
(付記9)
付記7記載のコンピュータプログラムにおいて、
前記メッシュネット遅延計算手順は、メッシュネット駆動バッファ数とメッシュネット容量の各組合せについて、あらかじめ、回路シミュレーションにより計算した遅延を保持した表をライブラリとして用意しておき、遅延計算に利用する手順を含むことを特徴とするコンピュータプログラム。
A part or all of the above embodiment can be described as in the following supplementary notes, but is not limited to the following configuration.
(Appendix 1)
A storage device for storing chip information of a semiconductor integrated circuit including a clock gating structure;
Selecting one lattice number from mesh net lattice number candidates, and considering the input terminal positions of all clock elements included in the chip information, mesh net generating means for generating a mesh net of the selected lattice number;
Mesh net delay calculating means for calculating a delay of the mesh net generated by the mesh net generating means;
Mesh net driving structure generating means for generating a buffer tree for driving the mesh net;
A mesh net driving structure delay calculating means for calculating a delay of the mesh net driving structure generated by the mesh net driving structure generating means;
In consideration of the clock element arrangement distribution and clock gating structure included in the chip information, the clock elements included in different gated circuits are not mixed, and a set of clock elements arranged in the vicinity is included. Clock element hierarchical cluster generating means for hierarchically generating a cluster of various clock elements;
For each clock element hierarchy cluster generated by the clock element hierarchy cluster generation means, a clock element hierarchy to be connected to the enable signal is selected so as to satisfy the delay constraint of the enable signal, and is included below the selected cluster hierarchy. A clock gating structure generating means for duplicating a gating cell that distributes a clock signal to a gated circuit to which the clock element belongs, and inserting it as a gating cell for driving the hierarchical cluster;
A local clock structure generating means for connecting the mesh net and each duplicated gating cell input terminal and generating a connection structure from the gating cell to the clock element;
For each local clock structure generated by the local clock structure generating means, calculating the delay from the input terminal of the mesh net to each clock element, local clock structure delay calculating means,
Clock structure evaluation means for calculating a clock skew considering the clock maximum delay and delay variation for the entire generated clock structure;
Clock structure selection means for selecting a clock structure based on each calculated local clock structure delay and each calculated clock skew from a set of local clock structure candidates performed for all mesh net lattice number candidates When,
A device for designing a semiconductor integrated circuit.
(Appendix 2)
In the semiconductor integrated circuit design device according to appendix 1,
The clock gating structure generating means includes
Means for selecting the lowest hierarchy cluster of clock elements as a connection target of the enable signal, means for checking whether the delay of the enable signal satisfies the delay constraint when the enable signal is connected to the selected clock element hierarchy, and enable If the signal delay constraint is not satisfied, the clock element layer to which the enable signal is to be connected is increased by one layer, the selection is performed again, and a check is performed again to check whether the delay of the enable signal satisfies the delay constraint. And a means for repeating until the delay of the enable signal satisfies the delay constraint.
(Appendix 3)
In the semiconductor integrated circuit design device according to appendix 1,
The mesh net delay calculating means includes a table holding delays calculated by circuit simulation in advance as a library for each combination of the number of mesh net driving buffers and mesh net capacity, and uses the library for delay calculation. A semiconductor integrated circuit design device.
(Appendix 4)
Storing chip information of a semiconductor integrated circuit including a clock gating structure;
One mesh number is selected from the mesh net lattice number candidates, and the mesh net structure of the selected lattice number is generated in consideration of the input terminal positions of all clock elements included in the chip information. Calculate the delay of
Generating a mesh net driving buffer tree structure for driving the mesh net structure, calculating a delay of the mesh net driving buffer tree structure;
In consideration of the clock element arrangement distribution and clock gating structure included in the chip information, the clock elements included in different gated circuits are not mixed, and a set of clock elements arranged in the vicinity is included. Hierarchical cluster of clock elements,
For each clock element hierarchy cluster, select a clock element hierarchy to be connected to the enable signal so as to satisfy the delay constraint of the enable signal, and the clock signal to the gated circuit to which the clock element included below the selected cluster hierarchy belongs Is copied as a gating cell for driving the hierarchical cluster,
The mesh net and the duplicated gating cell input terminals are connected to generate a connection structure from the gating cell to the clock element, and for each generated local clock structure, from the mesh net input terminal to each clock element. Calculate the delay,
For the entire generated clock structure, calculate the clock skew considering the clock maximum delay and delay variation,
A semiconductor that generates a set of local clock structure candidates for all mesh net lattice number candidates, and selects a clock structure based on the calculated local clock structure delays and calculated clock skews. Integrated circuit design method.
(Appendix 5)
In the method for designing a semiconductor integrated circuit according to appendix 4,
When generating the clock gating structure, first, select the lowest hierarchy cluster of clock elements as the connection target of the enable signal, and when the enable signal is connected to the selected clock element hierarchy, does the delay of the enable signal satisfy the delay constraint? If the delay constraint of the enable signal is not satisfied, the clock element layer to which the enable signal is to be connected is increased by one layer and selected again, and it is checked again whether the delay of the enable signal satisfies the delay constraint and these processes are performed. Is repeated until the delay of the enable signal satisfies the delay constraint.
(Appendix 6)
In the mesh net delay calculation of the semiconductor integrated circuit design method described in appendix 4, for each combination of the number of mesh net drive buffers and the mesh net capacity, a table holding the delay calculated by circuit simulation is prepared in advance as a library. A method for designing a semiconductor integrated circuit used for delay calculation.
(Appendix 7)
To a computer functioning as a semiconductor integrated circuit design device,
A procedure for storing chip information of a semiconductor integrated circuit including a clock gating structure;
Selecting one lattice number from mesh net lattice number candidates, taking into account the input terminal positions of all clock elements included in the chip information, and generating a mesh net structure of the selected lattice number;
Calculating a delay of the mesh net structure;
Generating a mesh net driving buffer tree structure for driving the mesh net structure;
Calculating a delay of the mesh net driven buffer tree structure;
In consideration of the clock element arrangement distribution and clock gating structure included in the chip information, the clock elements included in different gated circuits are not mixed, and a set of clock elements arranged in the vicinity is included. To generate a cluster of clock elements hierarchically,
For each clock element hierarchy cluster, select a clock element hierarchy to be connected to the enable signal so as to satisfy the delay constraint of the enable signal, and the clock signal to the gated circuit to which the clock element included below the selected cluster hierarchy belongs Duplicating the gating cell that distributes and inserting as a gating cell that drives the hierarchical cluster;
Connecting the mesh net and each duplicated gating cell input terminal, and generating a connection structure from the gating cell to the clock element;
For each local clock structure generated by the local clock structure generating means, a procedure for calculating a delay from the input terminal of the mesh net to each clock element;
Calculating the clock skew considering the clock maximum delay and delay variation for the entire generated clock structure;
A procedure for generating a set of local clock structure candidates for all mesh net lattice number candidates, and selecting a clock structure based on the calculated local clock structure delays and calculated clock skews When,
A computer program that executes
(Appendix 8)
In the computer program according to appendix 7,
The clock gating structure generation procedure includes:
A procedure for selecting the lowest hierarchy cluster of clock elements as the connection target of the enable signal;
A procedure for checking whether the delay of the enable signal satisfies the delay constraint when the enable signal is connected to the selected clock element hierarchy,
If the delay constraint for the enable signal is not satisfied, the clock element layer to be connected to the enable signal is increased by one layer and reselected, and the procedure for checking again whether the delay of the enable signal satisfies the delay constraint,
A computer program comprising: repeating these procedures until the delay of the enable signal satisfies a delay constraint.
(Appendix 9)
In the computer program according to appendix 7,
The mesh net delay calculation procedure includes a procedure in which a table holding delays calculated by circuit simulation is prepared in advance as a library for each combination of the number of mesh net drive buffers and mesh net capacity, and used for delay calculation. A computer program characterized by the above.

本発明は、クロックゲーティング構造およびメッシュ構造を持つクロック分配回路を含む半導体集積回路の配置配線を行う設計方法、設計装置および、コンピュータプログラムに適用される。   The present invention is applied to a design method, a design apparatus, and a computer program for arranging and wiring a semiconductor integrated circuit including a clock distribution circuit having a clock gating structure and a mesh structure.

04-01 メッシュネット駆動バッファツリー構造の遅延時間
04-02 メッシュネット自体の遅延時間
04-03 ローカルクロック構造の遅延時間
04-04 イネーブル信号の遅延時間
06-01 対応するメッシュネット容量を対応する駆動バッファ数で駆動する時の遅延時間
07-01 メッシュネット駆動バッファツリー構造の遅延計算対象経路
08-01 クロック素子クラスタレベル1
08-02 クロック素子クラスタレベル2
08-03 クロック素子クラスタレベル3
16-01 クロックソース
16-02 配線経路
16-03 クロック素子
16-04 中継バッファ
17-01 グローバル構造(Hツリー)
17-02 メッシュ構造
17-03 グローバル構造末端バッファ
17-04 グローバル構造・メッシュ接続配線
18-01 ゲーティング信号1
18-02 ゲーティング信号2
18-03 ゲーティッド回路
18-04 ゲーティングセル
90 チップ情報記憶部
100 半導体集積回路設計装置
101 チップ情報受付部
102 メッシュネット生成部
103 メッシュネット遅延計算部
104 メッシュネット駆動構造生成部
105 メッシュネット駆動構造遅延計算部
106 クロック素子階層クラスタ生成部
107 クロックゲーティング構造生成部
108 ローカルクロック構造生成部
109 ローカルクロック構造遅延計算部
110 クロック構造評価部
111 クロック構造選択部
04-01 Delay time of mesh net drive buffer tree structure
04-02 Delay time of mesh net itself
04-03 Delay time of local clock structure
04-04 Delay time of enable signal
06-01 Delay time when driving the corresponding mesh net capacity with the corresponding number of drive buffers
07-01 Delay calculation target path of mesh net drive buffer tree structure
08-01 Clock element cluster level 1
08-02 Clock element cluster level 2
08-03 Clock element cluster level 3
16-01 Clock source
16-02 Wiring route
16-03 Clock element
16-04 Relay buffer
17-01 Global structure (H-tree)
17-02 Mesh structure
17-03 Global structure end buffer
17-04 Global Structure / Mesh Connection Wiring
18-01 Gating signal 1
18-02 Gating signal 2
18-03 gated circuit
18-04 Gating cell
90 Chip information storage
100 Semiconductor integrated circuit design equipment
101 Chip information reception
102 Mesh net generator
103 Mesh net delay calculator
104 Mesh net drive structure generator
105 Mesh net drive structure delay calculator
106 Clock element hierarchy cluster generator
107 Clock gating structure generator
108 Local clock structure generator
109 Local clock structure delay calculator
110 Clock structure evaluation section
111 Clock structure selector

Claims (9)

クロックゲーティング構造を含む半導体集積回路のチップ情報を記憶する記憶装置と、
メッシュネット格子数候補から格子数を1つ選択し、前記チップ情報に含まれる全てのクロック素子の入力端子位置を考慮して、前記選択した格子数のメッシュネットを生成するメッシュネット生成手段と、
前記メッシュネット生成手段で生成した前記メッシュネットの遅延を計算するメッシュネット遅延計算手段と、
前記メッシュネットを駆動するバッファツリーを生成するメッシュネット駆動構造生成手段と、
前記メッシュネット駆動構造生成手段で生成したメッシュネット駆動構造の遅延を計算するメッシュネット駆動構造遅延計算手段と、
前記チップ情報に含まれる、クロック素子の配置分布とクロックゲーティング構造を考慮して、異なるゲーティッド回路に含まれるクロック素子が混在せず、かつ、近傍に配置されたクロック素子の集合が含まれるようなクロック素子のクラスタを階層的に生成するクロック素子階層クラスタ生成手段と、
前記クロック素子階層クラスタ生成手段で生成した各クロック素子階層クラスタに対して、イネーブル信号の遅延制約を満たすように、イネーブル信号接続対象となるクロック素子階層を選択し、選択したクラスタ階層以下に含まれるクロック素子が属するゲーティッド回路にクロック信号を分配するゲーティングセルを複製して、前記階層クラスタを駆動するゲーティングセルとして挿入するクロックゲーティング構造生成手段と、
前記メッシュネットと前記複製した各ゲーティングセル入力端子を接続し、ゲーティングセルからクロック素子までの接続構造を生成するローカルクロック構造生成手段と、
前記ローカルクロック構造生成手段により生成した各ローカルクロック構造について、メッシュネットの入力端子から各クロック素子までの遅延を計算するとローカルクロック構造遅延計算手段と、
前記生成したクロック構造全体について、クロック最大遅延と遅延バラつきを考慮したクロックスキューを計算するクロック構造評価手段と、
全てのメッシュネット格子数候補に対して行われた、ローカルクロック構造候補の集合から、計算された各ローカルクロック構造遅延と計算された各クロックスキューとに基づいてクロック構造を選択するクロック構造選択手段と、
を備えた、半導体集積回路の設計装置。
A storage device for storing chip information of a semiconductor integrated circuit including a clock gating structure;
Selecting one lattice number from mesh net lattice number candidates, and considering the input terminal positions of all clock elements included in the chip information, mesh net generating means for generating a mesh net of the selected lattice number;
Mesh net delay calculating means for calculating a delay of the mesh net generated by the mesh net generating means;
Mesh net driving structure generating means for generating a buffer tree for driving the mesh net;
A mesh net driving structure delay calculating means for calculating a delay of the mesh net driving structure generated by the mesh net driving structure generating means;
In consideration of the clock element arrangement distribution and clock gating structure included in the chip information, the clock elements included in different gated circuits are not mixed, and a set of clock elements arranged in the vicinity is included. Clock element hierarchical cluster generating means for hierarchically generating a cluster of various clock elements;
For each clock element hierarchy cluster generated by the clock element hierarchy cluster generation means, a clock element hierarchy to be connected to the enable signal is selected so as to satisfy the delay constraint of the enable signal, and is included below the selected cluster hierarchy. A clock gating structure generating means for duplicating a gating cell that distributes a clock signal to a gated circuit to which the clock element belongs, and inserting it as a gating cell for driving the hierarchical cluster;
A local clock structure generating means for connecting the mesh net and each duplicated gating cell input terminal and generating a connection structure from the gating cell to the clock element;
For each local clock structure generated by the local clock structure generating means, calculating the delay from the input terminal of the mesh net to each clock element, local clock structure delay calculating means,
Clock structure evaluation means for calculating a clock skew considering the clock maximum delay and delay variation for the entire generated clock structure;
Clock structure selection means for selecting a clock structure based on each calculated local clock structure delay and each calculated clock skew from a set of local clock structure candidates performed for all mesh net lattice number candidates When,
A device for designing a semiconductor integrated circuit.
請求項1記載の半導体集積回路の設計装置において、
前記クロックゲーティング構造生成手段は、
クロック素子の最下位階層クラスタを、イネーブル信号の接続対象として選択する手段と、選択したクロック素子階層にイネーブル信号を接続した時に、イネーブル信号の遅延が遅延制約を満たすかどうか確認する手段と、イネーブル信号の遅延制約を満たさなければ、イネーブル信号接続対象となるクロック素子階層を1階層上げて選択し直し、再度イネーブル信号の遅延が遅延制約を満たすかどうか確認する手段と、これらの手段による処理をイネーブル信号の遅延が遅延制約を満たすまで繰り返す手段と、を備える半導体集積回路の設計装置。
In the design apparatus of the semiconductor integrated circuit of Claim 1,
The clock gating structure generating means includes
Means for selecting the lowest hierarchy cluster of clock elements as a connection target of the enable signal, means for checking whether the delay of the enable signal satisfies the delay constraint when the enable signal is connected to the selected clock element hierarchy, and enable If the signal delay constraint is not satisfied, the clock element layer to which the enable signal is to be connected is increased by one layer, the selection is performed again, and a check is performed again to check whether the delay of the enable signal satisfies the delay constraint. And a means for repeating until the delay of the enable signal satisfies the delay constraint.
請求項1記載の半導体集積回路の設計装置において、
前記メッシュネット遅延計算手段は、メッシュネット駆動バッファ数とメッシュネット容量の各組合せについて、あらかじめ、回路シミュレーションにより計算した遅延を保持した表をライブラリとして備え、該ライブラリを遅延計算に利用することを特徴とする半導体集積回路の設計装置。
In the design apparatus of the semiconductor integrated circuit of Claim 1,
The mesh net delay calculating means includes a table holding delays calculated by circuit simulation in advance as a library for each combination of the number of mesh net driving buffers and mesh net capacity, and uses the library for delay calculation. A semiconductor integrated circuit design device.
クロックゲーティング構造を含む半導体集積回路のチップ情報を記憶し、
メッシュネット格子数候補から格子数を1つ選択し、前記チップ情報に含まれる全てのクロック素子の入力端子位置を考慮して、前記選択した格子数のメッシュネット構造を生成し、前記メッシュネット構造の遅延を計算し、
前記メッシュネット構造を駆動するメッシュネット駆動バッファツリー構造を生成し、前記メッシュネット駆動バッファツリー構造の遅延を計算し、
前記チップ情報に含まれる、クロック素子の配置分布とクロックゲーティング構造を考慮して、異なるゲーティッド回路に含まれるクロック素子が混在せず、かつ、近傍に配置されたクロック素子の集合が含まれるようなクロック素子のクラスタを階層的に生成し、
前記各クロック素子階層クラスタに対して、イネーブル信号の遅延制約を満たすように、イネーブル信号接続対象となるクロック素子階層を選択し、選択したクラスタ階層以下に含まれるクロック素子が属するゲーティッド回路にクロック信号を分配するゲーティングセルを複製して、前記階層クラスタを駆動するゲーティングセルとして挿入し、
前記メッシュネットと前記複製した各ゲーティングセル入力端子を接続し、ゲーティングセルからクロック素子までの接続構造を生成し、生成した各ローカルクロック構造について、メッシュネットの入力端子から各クロック素子までの遅延を計算し、
前記生成したクロック構造全体について、クロック最大遅延と遅延バラつきを考慮したクロックスキューを計算し、
全てのメッシュネット格子数候補に対してローカルクロック構造候補の集合を生成し、その中から、計算された各ローカルクロック構造遅延と計算された各クロックスキューとに基づいてクロック構造を選択する、半導体集積回路の設計方法。
Storing chip information of a semiconductor integrated circuit including a clock gating structure;
One mesh number is selected from the mesh net lattice number candidates, and the mesh net structure of the selected lattice number is generated in consideration of the input terminal positions of all clock elements included in the chip information. Calculate the delay of
Generating a mesh net driving buffer tree structure for driving the mesh net structure, calculating a delay of the mesh net driving buffer tree structure;
In consideration of the clock element arrangement distribution and clock gating structure included in the chip information, the clock elements included in different gated circuits are not mixed, and a set of clock elements arranged in the vicinity is included. Hierarchical cluster of clock elements,
For each clock element hierarchy cluster, select a clock element hierarchy to be connected to the enable signal so as to satisfy the delay constraint of the enable signal, and the clock signal to the gated circuit to which the clock element included below the selected cluster hierarchy belongs Is copied as a gating cell for driving the hierarchical cluster,
The mesh net and the duplicated gating cell input terminals are connected to generate a connection structure from the gating cell to the clock element, and for each generated local clock structure, from the mesh net input terminal to each clock element. Calculate the delay,
For the entire generated clock structure, calculate the clock skew considering the clock maximum delay and delay variation,
A semiconductor that generates a set of local clock structure candidates for all mesh net lattice number candidates, and selects a clock structure based on the calculated local clock structure delays and calculated clock skews. Integrated circuit design method.
請求項4記載の半導体集積回路の設計方法において、
クロックゲーティング構造生成において、まず、クロック素子の最下位階層クラスタを、イネーブル信号の接続対象として選択し、選択したクロック素子階層にイネーブル信号を接続した時に、イネーブル信号の遅延が遅延制約を満たすかどうか確認し、イネーブル信号の遅延制約を満たさなければ、イネーブル信号接続対象となるクロック素子階層を1階層上げて選択し直し、再度イネーブル信号の遅延が遅延制約を満たすかどうか確認し、これらの処理をイネーブル信号の遅延が遅延制約を満たすまで繰り返す、半導体集積回路の設計方法。
The method of designing a semiconductor integrated circuit according to claim 4,
When generating the clock gating structure, first, select the lowest hierarchy cluster of clock elements as the connection target of the enable signal, and when the enable signal is connected to the selected clock element hierarchy, does the delay of the enable signal satisfy the delay constraint? If the delay constraint of the enable signal is not satisfied, the clock element layer to which the enable signal is to be connected is increased by one layer and selected again, and it is checked again whether the delay of the enable signal satisfies the delay constraint and these processes are performed. Is repeated until the delay of the enable signal satisfies the delay constraint.
請求項4記載の半導体集積回路の設計方法のメッシュネット遅延計算において、メッシュネット駆動バッファ数とメッシュネット容量の各組合せについて、あらかじめ、回路シミュレーションにより計算した遅延を保持した表をライブラリとして用意しておき、遅延計算に利用する、半導体集積回路の設計方法。   5. In the mesh net delay calculation of the semiconductor integrated circuit design method according to claim 4, for each combination of the number of mesh net drive buffers and the mesh net capacity, a table holding delays calculated by circuit simulation is prepared in advance as a library. A method for designing a semiconductor integrated circuit used for delay calculation. 半導体集積回路の設計装置として機能させるコンピュータに、
クロックゲーティング構造を含む半導体集積回路のチップ情報を記憶する手順と、
メッシュネット格子数候補から格子数を1つ選択し、前記チップ情報に含まれる全てのクロック素子の入力端子位置を考慮して、前記選択した格子数のメッシュネット構造を生成する手順と、
前記メッシュネット構造の遅延を計算する手順と、
前記メッシュネット構造を駆動するメッシュネット駆動バッファツリー構造を生成する手順と、
前記メッシュネット駆動バッファツリー構造の遅延を計算する手順と、
前記チップ情報に含まれる、クロック素子の配置分布とクロックゲーティング構造を考慮して、異なるゲーティッド回路に含まれるクロック素子が混在せず、かつ、近傍に配置されたクロック素子の集合が含まれるようなクロック素子のクラスタを階層的に生成する手順と、
前記各クロック素子階層クラスタに対して、イネーブル信号の遅延制約を満たすように、イネーブル信号接続対象となるクロック素子階層を選択し、選択したクラスタ階層以下に含まれるクロック素子が属するゲーティッド回路にクロック信号を分配するゲーティングセルを複製して、前記階層クラスタを駆動するゲーティングセルとして挿入する手順と、
前記メッシュネットと前記複製した各ゲーティングセル入力端子を接続し、ゲーティングセルからクロック素子までの接続構造を生成する手順と、
前記ローカルクロック構造生成手段により生成した各ローカルクロック構造について、メッシュネットの入力端子から各クロック素子までの遅延を計算する手順と、
前記生成したクロック構造全体について、クロック最大遅延と遅延バラつきを考慮したクロックスキューを計算する手順と、
全てのメッシュネット格子数候補に対して、ローカルクロック構造候補の集合を生成し、その中から、計算された各ローカルクロック構造遅延と計算された各クロックスキューとに基づいてクロック構造を選択する手順と、
を実行させるコンピュータプログラム。
To a computer functioning as a semiconductor integrated circuit design device,
A procedure for storing chip information of a semiconductor integrated circuit including a clock gating structure;
Selecting one lattice number from mesh net lattice number candidates, taking into account the input terminal positions of all clock elements included in the chip information, and generating a mesh net structure of the selected lattice number;
Calculating a delay of the mesh net structure;
Generating a mesh net driving buffer tree structure for driving the mesh net structure;
Calculating a delay of the mesh net driven buffer tree structure;
In consideration of the clock element arrangement distribution and clock gating structure included in the chip information, the clock elements included in different gated circuits are not mixed, and a set of clock elements arranged in the vicinity is included. To generate a cluster of clock elements hierarchically,
For each clock element hierarchy cluster, select a clock element hierarchy to be connected to the enable signal so as to satisfy the delay constraint of the enable signal, and the clock signal to the gated circuit to which the clock element included below the selected cluster hierarchy belongs Duplicating the gating cell that distributes and inserting as a gating cell that drives the hierarchical cluster;
Connecting the mesh net and each duplicated gating cell input terminal, and generating a connection structure from the gating cell to the clock element;
For each local clock structure generated by the local clock structure generating means, a procedure for calculating a delay from the input terminal of the mesh net to each clock element;
Calculating the clock skew considering the clock maximum delay and delay variation for the entire generated clock structure;
A procedure for generating a set of local clock structure candidates for all mesh net lattice number candidates, and selecting a clock structure based on the calculated local clock structure delays and calculated clock skews When,
A computer program that executes
請求項7記載のコンピュータプログラムにおいて、
前記クロックゲーティング構造生成手順は、
クロック素子の最下位階層クラスタを、イネーブル信号の接続対象として選択する手順と、
選択したクロック素子階層にイネーブル信号を接続した時に、イネーブル信号の遅延が遅延制約を満たすかどうか確認する手順と、
イネーブル信号の遅延制約を満たさなければ、イネーブル信号接続対象となるクロック素子階層を1階層上げて選択し直し、再度イネーブル信号の遅延が遅延制約を満たすかどうか確認する手順と、
これらの手順をイネーブル信号の遅延が遅延制約を満たすまで繰り返す手順とを含むことを特徴とするコンピュータプログラム。
The computer program according to claim 7, wherein
The clock gating structure generation procedure includes:
A procedure for selecting the lowest hierarchy cluster of clock elements as the connection target of the enable signal;
A procedure for checking whether the delay of the enable signal satisfies the delay constraint when the enable signal is connected to the selected clock element hierarchy,
If the delay constraint for the enable signal is not satisfied, the clock element layer to be connected to the enable signal is increased by one layer and reselected, and the procedure for checking again whether the delay of the enable signal satisfies the delay constraint,
A computer program comprising: repeating these procedures until the delay of the enable signal satisfies a delay constraint.
請求項7記載のコンピュータプログラムにおいて、
前記メッシュネット遅延計算手順は、メッシュネット駆動バッファ数とメッシュネット容量の各組合せについて、あらかじめ、回路シミュレーションにより計算した遅延を保持した表をライブラリとして用意しておき、遅延計算に利用する手順を含むことを特徴とするコンピュータプログラム。
The computer program according to claim 7, wherein
The mesh net delay calculation procedure includes a procedure in which a table holding delays calculated by circuit simulation is prepared in advance as a library for each combination of the number of mesh net drive buffers and mesh net capacity, and used for delay calculation. A computer program characterized by the above.
JP2010077785A 2010-03-30 2010-03-30 Method and device for designing semiconductor integrated circuit, and program Withdrawn JP2011210053A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010077785A JP2011210053A (en) 2010-03-30 2010-03-30 Method and device for designing semiconductor integrated circuit, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010077785A JP2011210053A (en) 2010-03-30 2010-03-30 Method and device for designing semiconductor integrated circuit, and program

Publications (1)

Publication Number Publication Date
JP2011210053A true JP2011210053A (en) 2011-10-20

Family

ID=44941029

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010077785A Withdrawn JP2011210053A (en) 2010-03-30 2010-03-30 Method and device for designing semiconductor integrated circuit, and program

Country Status (1)

Country Link
JP (1) JP2011210053A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8566771B1 (en) 2012-09-20 2013-10-22 International Business Machines Corporation Automation of interconnect and routing customization

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8566771B1 (en) 2012-09-20 2013-10-22 International Business Machines Corporation Automation of interconnect and routing customization

Similar Documents

Publication Publication Date Title
US7795943B2 (en) Integrated circuit device and layout design method therefor
US10068048B1 (en) Generating clock trees for a circuit design
CN103793483B (en) Clock tree generating method and system based on clock node clusters
US12079558B2 (en) On-the-fly multi-bit flip flop generation
CN107967372A (en) A kind of FPGA total arrangements legalize method
US11003827B1 (en) Multiprocessing flow and massively multi-threaded flow for multi-die devices
JP2017123010A (en) Semiconductor design support device and semiconductor design support method
JP5444985B2 (en) Information processing device
US6487707B1 (en) Layout design system of semiconductor ic device, layout design method of semiconductor ic device and computer-readable recording medium on which programs for allowing computer to execute respective means in the system or respective steps in the method are recorded
CN119886040A (en) Clock tree comprehensive optimization method and system based on hierarchical region division and buffer insertion
JP2011210053A (en) Method and device for designing semiconductor integrated circuit, and program
EP1701279A1 (en) Manufacturing a clock distribution network in an integrated circuit
JP2010062227A (en) Automatic wiring device, automatic wiring method, and automatic wiring program
CN119998813A (en) Clock Timing in Replicated Arrays
JP5321185B2 (en) Semiconductor integrated circuit design method, design apparatus, and computer program
KR20190019817A (en) Standard cell library, Integrated circuit including synchronous circuit, and Computing system for designing the integrated circuit
JP2009188093A (en) Method and device for designing semiconductor integrated circuit, and program
JP2011238011A (en) Semiconductor integrated circuit design device, semiconductor integrated circuit design method and program
Zha et al. Defect-tolerant mapping of CMOL circuits with delay optimization
US20250190671A1 (en) Design method for semiconductor device
US20250004521A1 (en) Timing and power modeling in flexmbff compilers
US20160154904A1 (en) Design method and design apparatus
MohammadZadeh et al. Multi-domain clock skew scheduling-aware register placement to optimize clock distribution network
Liu et al. Bi-Partition Four-Branch Tree: Topologies for Sub-10ps Skew with Co-Optimized Latency Buffer
Liu et al. Hybrid Structured Clock Network Construction with GPUs for Large Designs

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: 20130604