JPWO2010100830A1 - 半導体装置、回路修正方法、設計支援装置及び設計支援プログラム - Google Patents
半導体装置、回路修正方法、設計支援装置及び設計支援プログラム Download PDFInfo
- Publication number
- JPWO2010100830A1 JPWO2010100830A1 JP2011502611A JP2011502611A JPWO2010100830A1 JP WO2010100830 A1 JPWO2010100830 A1 JP WO2010100830A1 JP 2011502611 A JP2011502611 A JP 2011502611A JP 2011502611 A JP2011502611 A JP 2011502611A JP WO2010100830 A1 JPWO2010100830 A1 JP WO2010100830A1
- Authority
- JP
- Japan
- Prior art keywords
- trigger
- wiring
- additional supply
- supply element
- additional
- 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.)
- Pending
Links
- 238000012937 correction Methods 0.000 title claims abstract description 139
- 238000000034 method Methods 0.000 title claims abstract description 80
- 239000004065 semiconductor Substances 0.000 title claims abstract description 78
- 238000013461 design Methods 0.000 title claims description 144
- 238000004458 analytical method Methods 0.000 claims description 36
- 238000012938 design process Methods 0.000 claims description 8
- 230000008569 process Effects 0.000 abstract description 37
- 238000012942 design verification Methods 0.000 description 23
- 238000012545 processing Methods 0.000 description 16
- 238000010586 diagram Methods 0.000 description 12
- 238000012795 verification Methods 0.000 description 11
- 230000003071 parasitic effect Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 230000015572 biosynthetic process Effects 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 3
- 238000003786 synthesis reaction Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 238000004904 shortening Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/10—Distribution of clock signals, e.g. skew
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/394—Routing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/396—Clock trees
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Computer Networks & Wireless Communication (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
従来の半導体装置は、回路修正に伴う後戻り工程に膨大な時間が必要になる問題があった。本発明にかかる半導体装置は、トリガ信号に同期して動作する複数のトリガ信号駆動素子(FFa、FFb)と、トリガ信号を複数のトリガ信号駆動素子に分配するトリガ配線(CW0〜CW3)と、トリガ配線(CW0〜CW3)から分岐して設けられる追加トリガ配線(CWb)と、追加トリガ配線(CWb)を介してトリガ信号が供給され、複数のトリガ信号駆動素子から分離して設けられる追加供給素子(30)と、を有する。
Description
本発明は、半導体装置、回路修正方法、設計支援装置及び設計支援プログラムに関し、特にトリガ信号駆動素子にクロック信号を分配するクロック配線を有する半導体装置と、半導体装置の回路修正方法、設計支援装置及び設計支援プログラムに関する。
半導体装置の設計においては、回路の不具合や改良のために、機能上又は性能上の回路修正が発生する場合がある。これらの回路修正が設計前期に発生する場合は特に問題はないが、半導体装置の設計が進んだ段階(例えば、レイアウト設計が完了した段階)で回路修正が発生すると修正のために設計工程に大きな戻り工程が発生する。すなわち、レイアウトが完了した回路に対して修正を行う場合、既存のレイアウトを維持したままでは不具合を改善できず、再レイアウトを必要とすることが多い。そこで、特許文献1において、設計の後戻り工程にかかる時間を削減する設計手法の例が開示されている。
特許文献1では、予め回路に切れ目を入れて分割しておき、分割単位で回路修正を行う。これにより、修正が必要のない分割単位を現在の設計情報(例えばレイアウト情報)を維持したまま、回路修正が必要になった分割単位に対してのみ修正処理を行うことができる。つまり、特許文献1では再レイアウトを行う領域を最小限とすることで戻り工程にかかる時間を削減する。
また、近年の半導体装置では、クロック信号に応じて駆動されるフリップフロップ等を用いた論理回路が多く用いられている。半導体装置では、クロック信号を伝達するクロック配線の寄生容量により、複数のフリップフロップ間でクロック信号の到達時間に誤差が生じる。そこで、論理回路の設計では、クロック信号の到着時刻の遅延量や、互いに接続されるトリガ信号駆動素子間のトリガ信号の到着時刻差を事前に見積もり、クロック信号の伝搬遅延に起因する不具合を回避するタイミング設計が行われる。このタイミング設計によって、論理回路では、トリガ信号の伝搬遅延に起因する不具合を回避している。なお、クロック信号は、広くはトリガ信号に含まれ、トリガ信号はクロック信号以外にも、セット信号、リセット信号、非同期通信におけるリクエスト信号、アクノリッジ信号等が含まれる。また、フリップフロップは、広くはトリガ信号駆動素子に含まれ、トリガ信号駆動素子には、フリップフロップ以外にもラッチ、メモリ等が含まれる。さらに、タイミング設計は、複数のフリップフロップの間で送受信されるデータ信号についても行われる。
このような論理回路を用いた半導体装置では、レイアウト終了後にフリップフロップを追加すると、クロック信号のタイミング設計を再度行う必要がなる。これは、追加したフリップフロップ(例えば、追加フリップフロップ)及び追加フリップフロップにクロック信号を供給する追加クロック配線を既存のクロック配線に追加することで、既存のクロック配線の寄生容量が変化し、この変化に伴いクロック信号の遅延量が変化するためである。そこで、特許文献2では、既存のクロック配線の寄生容量の変化をクロック配線の調整のみにより対応し、後戻り作業を極力削減する方法が記載されている。
上述したように、レイアウト又はクロック配線の設計が完了した後に、フリップフロップ等を追加場合、追加のタイミング設計及びレイアウトのやり直しのための戻り工程が発生する。この戻り工程にかかる時間は非常に膨大であり、設計期間が大幅に増大する問題が発生する。しかし、特許文献1、2に記載の設計手法ではこの設計期間の増大する問題に対処することができない。
より具体的には、特許文献1に記載の設計手法であっても、フリップフロップを追加した場合、該当分割単位に対してタイミング設計及びレイアウトのやり直しを行わなければならないためである。戻り工程においてチップの一部のみを修正する場合であってもこの戻り工程は、多くの時間を必要とする。そのため、特許文献1に記載の設計手法では、戻り工程の時間を十分に削減できない問題がある。
また、特許文献2に記載の設計手法を用いてフリップフロップを追加した場合、クロック配線の調整だけでは追加フリップフロップに対するクロック信号の到達時刻を適切に設定することができず、不具合を十分に解決できない問題がある。このような問題が発生した場合、特許文献2においても、適切なタイミング設計及びレイアウトのために初期段階から設計をやり直す必要があり、戻り工程に多くの時間を必要とする。つまり、特許文献2に記載の設計手法においても、戻り工程の時間を十分に削減できない問題がある。
本発明にかかる半導体装置の一態様は、トリガ信号に基づき動作する複数のトリガ信号駆動素子と、前記トリガ信号を前記複数のトリガ信号駆動素子に分配するトリガ配線と、前記クロック配線から分岐して設けられる追加トリガ配線と、前記追加トリガ配線を介して前記クロック信号が供給され、前記複数のトリガ信号駆動素子から分離して設けられる追加供給素子と、を有する。
本発明にかかる半導体装置の回路修正方法は、トリガ信号を伝達するトリガ配線と、前記トリガ信号に基づき動作する複数のトリガ信号駆動素子と、を有する半導体装置の回路修正方法であって、前記トリガ配線に追加トリガ配線を介して接続され、かつ、前記複数のトリガ駆動素子のいずれとも接続されない追加供給素子を予め設け、前記複数のトリガ信号駆動素子のうち修正対象とする修正対象素子を検索し、前記修正対象素子と前記追加供給素子とを接続する。
本発明にかかる設計支援装置の一態様は、半導体装置の設計工程において、トリガ信号駆動素子にトリガ信号を分配するトリガ配線に追加供給素子及び前記追加供給素子と前記トリガ配線とを接続する追加トリガ配線を配置する設計支援装置であって、前記追加供給素子の個数と、前記追加供給素子の制約条件と、に基づき前記制約条件毎の前記追加供給素子の個数を示す追加供給素子統計情報を生成する追加供給素子条件設定部と、複数の前記トリガ駆動素子を含む回路の接続情報を記述した第1のネットリストから前記トリガ配線の情報を抽出し、抽出した前記トリガ配線の分岐段数に基づき前記追加供給素子統計情報に含まれる前記追加供給素子を配置する位置を決定し、前記追加供給素子の位置情報を記述した分岐位置情報を出力する分岐位置決定部と、前記分岐位置情報に基づき前記第1のネットリストに前記追加供給素子及び前記追加トリガ配線の接続情報を追加して第2のネットリストを生成するトリガ配線修正部と、を有する。
本発明にかかる設計支援装置の一態様は、レイアウト完了後に生成される第1のネットリストに含まれるトリガ信号に基づき動作するトリガ信号駆動素子と、前記トリガ信号を伝達するトリガ配線と追加トリガ配線を介して接続され、かつ、前記トリガ信号駆動素子と接続されない追加供給素子と、を接続する設計支援装置であって、前記第1のネットリストから修正対象とする素子追加ノードの両端に位置する前記トリガ信号駆動素子を検索し、検索した前記トリガ信号駆動素子を修正対象素子として登録する修正対象素子検索部と、前記修正対象素子に接続される前記トリガ配線の分岐段数を解析し、解析した分岐段数を示すクロック供給元解析情報を出力するクロック供給元解析部と、前記クロック供給元解析情報に基づき前記修正対象素子に前記トリガ信号を供給する前記トリガ配線と一致する又は近似する前記分岐段数を有するトリガ配線に接続された前記追加供給素子を検索し、検索した前記追加供給素子を追加対象の追加供給素子として決定する追加先決定部と、前記追加先決定部において決定された前記追加供給素子と前記トリガ信号駆動素子とを接続した第2のネットリストを生成する回路修正部と、を有する。
本発明にかかる設計支援プログラムの一態様は、演算装置で実行され、半導体装置の設計工程において、トリガ信号駆動素子にトリガ信号を分配するトリガ配線に追加供給素子及び前記追加供給素子と前記トリガ配線とを接続する追加トリガ配線を配置する設計支援装置プログラムであって、メモリから前記追加供給素子の個数を示す追加供給素子個数情報と、前記追加供給素子の制約条件を示す追加供給素子制約情報と、を読み出して前記制約条件毎の前記追加供給素子の個数を示す追加供給素子統計情報を前記メモリに格納する追加供給素子条件設定部と、複数の前記トリガ駆動素子を含む回路の接続情報を記述した第1のネットリストを前記メモリから読み出して前記第1のネットリストから前記トリガ配線の情報を抽出し、抽出した前記トリガ配線の分岐段数に基づき前記追加供給素子統計情報に含まれる前記追加供給素子を配置する位置を決定し、前記追加供給素子の位置情報を記述した分岐位置情報を前記メモリに格納する分岐位置決定部と、前記メモリから読み出した前記分岐位置情報に基づき前記第1のネットリストに前記追加供給素子及び前記追加トリガ配線の接続情報を追加して第2のネットリストを生成し、前記メモリに第2のネットリストを格納するトリガ配線修正部と、を有する。
本発明にかかる設計支援プログラムの一態様は、演算装置で実行され、レイアウト完了後に生成される第1のネットリストに含まれるトリガ信号に基づき動作するトリガ信号駆動素子と、前記トリガ信号を伝達するトリガ配線と追加トリガ配線を介して接続され、かつ、前記トリガ信号駆動素子と接続されない追加供給素子と、を接続する設計支援プログラムであって、メモリから前記第1のネットリストを読み出し、前記第1のネットリストから修正対象とする素子追加ノードの両端に位置する前記トリガ信号駆動素子を検索し、検索した前記トリガ信号駆動素子を示す修正対象素子解析情報を前記メモリに格納する修正対象素子検索部と、前記メモリから前記第1のネットリスト及び前記修正対象素子解析情報を読み出し、前記修正対象素子に接続される前記トリガ配線の分岐段数を解析し、解析した分岐段数を示すクロック供給元解析情報を前記メモリに格納するクロック供給元解析部と、前記メモリから前記クロック供給元解析情報を読み出し、前記修正対象素子に前記トリガ信号を供給する前記トリガ配線と一致する又は近似する前記分岐段数を有するトリガ配線に接続された前記追加供給素子を検索し、検索した前記追加供給素子を追加対象の追加供給素子として決定する追加先決定部と、前記追加先決定部が決定した前記追加供給素子と前記トリガ信号駆動素子とを接続した第2のネットリストを生成し、前記第2のネットリストを前記メモリに格納する回路修正部と、を有する。
本発明にかかる半導体装置、回路修正方法、設計支援装置及び設計支援プログラムによれば、回路修正に伴う戻り工程の時間を短縮することができる。
実施の形態1
以下、図面を参照して本発明の実施の形態について説明する。まず、実施の形態1にかかる半導体装置1のブロック図を図1に示す。図1に示すように半導体装置1は、クロック生成回路10、論理回路20、追加供給素子30、トリガ配線CW0〜CW3及び追加トリガ配線CWbを有する。を有する。また、半導体装置1では、論理回路20を複数有する。
以下、図面を参照して本発明の実施の形態について説明する。まず、実施の形態1にかかる半導体装置1のブロック図を図1に示す。図1に示すように半導体装置1は、クロック生成回路10、論理回路20、追加供給素子30、トリガ配線CW0〜CW3及び追加トリガ配線CWbを有する。を有する。また、半導体装置1では、論理回路20を複数有する。
クロック生成回路10は、トリガ配線(例えば、クロック配線)CW0〜CW3を介して論理回路20にトリガ信号(例えば、クロック信号)を分配する。論理回路20は、トリガ配線を介して供給されるトリガ信号に基づき動作する複数のトリガ信号駆動素子を有する。図1では、論理回路20の1つがフリップフロップ回路FFa、FFbを有する。ここで、本実施の形態では、トリガ信号駆動素子の一例としてフリップフロップ回路を用いる。また、トリガ信号としては、クロック信号を用い、トリガ配線をクロック配線と称す。しかし、トリガ信号駆動素子は、トリガ信号に基づき動作する回路素子であれば良く、フリップフロップ回路の他にもラッチ回路、メモリ回路などがある。また、トリガ信号には、クロック信号の他にセット信号、リセット信号、非同期通信におけるリクエスト信号、アクノリッジ信号等が含まれる。
また、図1においては、クロック配線には符号CWの後ろに数字が付されている。この数字は、クロック配線の分岐段数を示すものであり、本実施の形態では、クロック生成回路10の出力端子に接続されるクロック配線CW0を基準とした。なお、クロック配線の分岐段数の始点は任意に設定することができる。
また、図1においては、クロック配線の分岐点にND0〜ND3を付した。分岐点は、符号NDの後ろに数字が付されているが、この数字はクロック配線の分岐段数を示すものである。本実施の形態では、クロック生成回路10の出力端子を分岐点の始点とした。なお、分岐点の段数の始点は任意に設定することができる。
また、本実施の形態にかかる半導体装置1では、クロック配線CW0〜CW3毎に制約条件(例えば、スキュー値)が設定される。つまり、クロック配線CW1は、クロック配線CW0に対して一定のスキュー値が設定される。クロック配線CW2のスキュー値は、クロック配線CW0に対して一定であって、クロック配線CW1とは異なる値で設定される。クロック配線CW3のスキュー値は、クロック配線CW0に対して一定であって、クロック配線CW1、CW2とは異なる値で設定される。
追加供給素子30は、追加トリガ配線(例えば、追加クロック配線)を介してクロック信号が供給され、複数のフリップフロップ回路から分離して設けられる。そして、回路修正において複数のフリップフロップ回路と接続される。この追加供給素子30の例を図2A乃至Cに示す。追加トリガ配線CWbは、クロック配線から分岐して設けられる配線であって、分岐元のクロック配線と同一の制約条件(例えば、スキュー値)が設定される。また、追加供給素子30は、後の利用状態を考慮した制約条件(例えば、スキュー値)が予め設定されており、この制約条件に基づき配置される。つまり、追加供給素子30は、追加供給素子の制約条件とクロック配線CW0〜CW3の制約条件が一致する場所に配置される。
図2Aに示す例は、追加供給素子としてバッファBUFを用いたものである。バッファBUFは、入力端子が追加クロック配線CWbを介してクロック配線に接続され、出力端子は回路修正に用いられないときに開放端となる。図2Bに示す例は、追加供給素子としてバッファBUFとフリップフロップ回路FFを用いたものである。バッファBUFは、入力端子が追加クロック配線CWbを介してクロック配線に接続され、出力端子はフリップフロップ回路FFのクロック入力端子に接続される。フリップフロップ回路FFは、回路修正に用いられない状態において入力端子と出力端子が互いに接続される。図2Cに示す例は、追加供給素子としてフリップフロップ回路FFを用いたものである。フリップフロップ回路FFは、回路修正に用いられない状態において入力端子と出力端子が互いに接続され、クロック入力端子が追加クロック配線CWbを介してクロック配線に接続される。
本実施の形態にかかる半導体装置1は、回路修正を行う場合に追加供給素子30を用いる。そこで、図1に示す半導体装置1を本実施の形にかかる回路修正方法を用いて修正した半導体装置1aのブロック図を図3に示す。図3に示すように、本実施の形にかかる回路修正方法では、論理回路20において元々利用されていたフリップフロップ回路FFa、FFbとの間に追加供給素子30に含まれるフリップフロップ回路FFcが接続される。このフリップフロップ回路FFcには、クロック配線CW1から分岐して設けられる追加クロック配線CWbと、バッファBUFを介してクロック信号が供給される。
このように、本実施の形態にかかる半導体装置の回路修正は、クロック信号を伝達するクロック配線と、クロック信号に基づき動作する複数のフリップフロップ回路と、を有する半導体装置の回路修正方法であって、クロック配線CW0〜CW3に追加クロック配線を介して接続され、かつ、複数のフリップフロップ回路のいずれとも接続されない追加供給素子30を予め設け、複数のフリップフロップ回路うち修正対象とする修正対象素子(図3に示す例では、フリップフロップ回路FFa、FFb)を検索し、フリップフロップ回路FFa、FFbと追加供給素子30とを接続するものである。
このように、本実施の形態にかかる半導体装置では、予め追加クロック配線及び追加供給素子30を組み込んでおき、その後の回路修正においてこの追加供給素子30を用いる。このとき、半導体装置1では、追加供給素子30及び追加クロック配線CWbに起因する寄生容量を含めてクロック配線CW0〜CW3のスキュー値を設計の初期段階で設定する。これにより、回路修正に伴い、クロック配線CW0〜CW3からクロック信号の供給を受ける回路素子が追加され場合においても、追加供給素子を用いることでクロック配線CW0〜CW3の寄生容量の値を一定に保つことができる。言い換えれば、クロック配線CW0〜CW3のスキュー値は、追加供給素子を用いている限り、回路修正により変動することがない。従って、本実施の形態にかかる半導体装置では、追加供給素子30及び追加クロック配線CWbを回路修正工程で用いたとしても、再度クロック信号のスキュー値の計算(タイミング設計)を行う必要がない。つまり、本実施の形態にかかる半導体装置では、回路修正に伴う戻り工程にかかる時間を短縮することができる。
また、一般的には、半導体装置に利用しない素子を追加することはチップ面積の増大を招くため行われない。しかし、本実施の形態にかかる追加供給素子30は、バッファ回路又はフリップフロップ回路FFa等を1つ又は2つ程度の小さな回路であり、追加供給素子30を追加してもチップ面積の増大はほとんどない。近年の微細化されたプロセスでは、このような小さなチップ面積の増大によるデメリットよりも回路修正に伴う戻り工程によるコスト及び時間の増大によるデメリットの方が大きい傾向がある。例えば、半導体装置に元々なかった回路素子を後に追加する場合、ウェハの下層(回路形成層)に対応するレチクルを修正しなければならならず、この場合全てのレチクルを製造し直す必要がある。近年の微細化された半導体素子では、全てのレチクルを製造し直すためには莫大な時間とコストが必要になる。しかし、本実施の形態にかかる半導体装置では、回路配線層に対応するレチクルのみを製造し直せば良い。そのため、本実施の形態にかかる半導体装置では、回路修正に伴うレチクル製造のコストの抑制及び時間の抑制が可能になる。つまり、近年の微細化されたプロセスでは、本発明による設計時間の短縮及びコスト抑制の効果はより顕著なものとなる。
追加供給素子30及び追加クロック配線CWbは、設計者が任意に配置することができる。しかし、近年の半導体装置の設計では、コンピュータ等の設計支援装置を用いて、複雑な処理を自動化することが一般的である。そこで、以下の実施の形態2では、設計支援装置を用いた半導体装置1の設計手順を説明し、実施の形態3において設計支援装置を用いた回路修正方法を説明する。
実施の形態2
実施の形態2では、実施の形態1において説明した半導体装置1の設計手順について説明する。そこで、半導体装置1の設定手順のフローチャートを図3に示す。図3に示すように、半導体装置1の設計では、まず、回路設計が行われる(ステップS1)。この回路設計では、半導体装置1の機能及び仕様に基づき回路の設計が行われる。ステップS1の設計では、Velirog等のHDL(Hardware Description Language)を用いた設計(この設計をRTL(Register Transfer Level)設計と称す)が行われる。続いて、ステップS1で設計した回路の論理合成を行い第1の設計検証用ネットリストM1を生成する(ステップS2)。論理合成処理は、ステップS1で行った設計により作成された記述に基づき具体的な回路構成(素子間の接続を含む)を記述した第1の設計検証用ネットリストM1を生成する。
実施の形態2では、実施の形態1において説明した半導体装置1の設計手順について説明する。そこで、半導体装置1の設定手順のフローチャートを図3に示す。図3に示すように、半導体装置1の設計では、まず、回路設計が行われる(ステップS1)。この回路設計では、半導体装置1の機能及び仕様に基づき回路の設計が行われる。ステップS1の設計では、Velirog等のHDL(Hardware Description Language)を用いた設計(この設計をRTL(Register Transfer Level)設計と称す)が行われる。続いて、ステップS1で設計した回路の論理合成を行い第1の設計検証用ネットリストM1を生成する(ステップS2)。論理合成処理は、ステップS1で行った設計により作成された記述に基づき具体的な回路構成(素子間の接続を含む)を記述した第1の設計検証用ネットリストM1を生成する。
続いて、第1の設計検証用ネットリストM1に追加クロック配線CWb及び追加供給素子30を追加し、第2の設計検証用ネットリストM2を生成する(ステップS3)。このステップS3により、半導体装置1の追加供給素子30及び追加クロック配線CWbが回路に追加されるが、ステップS3の詳細な処理手順については後述する。また、本実施の形態では、ステップS3において追加クロック配線CWb及び追加供給素子30を追加したが、追加クロック配線CWb及び追加供給素子30を追加する処理は、半導体装置1のレチクル用ネットリスト(製造工程において用いられるレチクルの基準となるネットリスト)が生成される前の段階であれば、いずれの工程において行われても良い。例えば、追加供給素子30は、ステップS1の回路設計において追加することも可能であるし、後に行われるレイアウト処理後の回路に対して追加することも可能である。
次いで、ステップS3において生成された第2の設計検証用ネットリストM2に対してCTS(Clock Tree Synthesis)バッファを挿入する(ステップS4)。CTSバッファは、クロック配線CW0〜CW3に挿入されるバッファであって、クロック配線CW0〜CW3のスキュー値を調節する。そして、ステップS4において挿入されたCTSバッファによるスキュー値の調節が適切に行われているかを検証する(ステップS5、S6)。この検証は、タイミング検証と1つであって、クロック信号のスキュー値に対して行われる検証を特にクロックスキュー検証と称す。
ステップS6において、タイミング検証結果が妥当でなければ(ステップS6のNOの枝)、第2の設計検証用ネットリストを修正し(ステップS7)、再度ステップS5及びステップS6の検証作業を行う。一方、ステップS6において、タイミング検証結果が妥当なものであれば(ステップS6のYESの枝)、第2の設計検証用ネットリストにCTSバッファの情報を加えたレイアウト用ネットリストM3を生成する。
レイアウト工程では、レイアウト用ネットリストに基づき半導体装置のレイアウトパターンを生成する(ステップS8)。このステップS8により回路配置及び回路素子間を接続する配線長及び配線幅が決定する。続いて、ステップS8のレイアウトパターンから抽出される配線の寄生抵抗及び寄生容量を加味した信号遅延検証(バックアノテーション)を行う(ステップS9)。このバックアノテーションでは主にフリップフロップ回路等のセットアップタイム及びホールドタイムが基準を満たしているかを検証する。バックアノテーションの検証結果が妥当でない場合(ステップS10のNOの枝)、レイアウト用ネットリストを修正し(ステップS11)、再度レイアウト(ステップS8)及びバックアノテーション(ステップS9)を行う。一方、バックアノテーションの検証結果が妥当であった場合(ステップS10のYESの枝)、レイアウト用ネットリストに基づきレチクル用ネットリストM4を生成する。そして、レチクル用ネットリストに基づき半導体装置1が製造される。
上記のように、実施の形態2では、ステップS3において追加供給素子30及び追加クロック配線CWbを追加する。このとき、実施の形態2では、ステップS3の処理を設計支援装置100を用いて行う。そこで、設計支援装置100のブロック図を図5に示す。なお、設計支援装置100は、コンピュータ等にステップS3の処理を実行するための設計支援プログラムを実装したものでも良く、ステップS3の処理を行う専用の装置であっても良い。以下では、設計支援装置100の例としてコンピュータ等にステップS3の処理を実行するための設計支援プログラムを実装したもの説明する。
図5に示すように、設計支援装置100は、演算装置(例えば、CPU:Central Processing Unit)40、入力装置41、表示装置42、プログラムメモリ50、データベースメモリ60を有する。演算装置40は、プログラムメモリ50から読み出した各種プログラム及びデータベースメモリ60から読み出した各種情報に基づきプログラムに応じた処理を行うと共に、処理により生成された情報をデータベースメモリ60に格納する。演算装置40は、プログラムメモリ50及びデータベースメモリ60とバス配線を介して接続される。入力装置41は、演算装置40に動作の指示を与えるものである。表示装置42は、演算装置40において実行されるプログラムのインタフェース画面を表示するものである。
プログラムメモリ50には、半導体装置の設計工程(例えば、上記ステップS3)において、フリップフロップ回路にクロック信号を分配するクロック配線に追加供給素子30及び追加供給素子30とクロック配線とを接続する追加クロック配線を配置する設計支援プログラムが格納される。設計支援プログラムは、追加供給素子条件設定部51、分岐位置決定部52、トリガ配線修正部53を有する。設計支援プログラムは、これら3つの部分が1つのプログラムとして実装されていても良く、個別のプログラムとして実装されていても構わない。
また、データベースメモリ60には、追加供給素子個数情報61、追加供給素子制約情報62、追加供給素子統計情報63、分岐位置情報64、第1の設計検証用ネットリスト65、第2の設計検証用ネットリスト66が格納される。追加供給素子個数情報61、及び、追加供給素子制約情報62は、入力装置41及び演算装置40を介して設計者が入力する情報である。追加供給素子統計情報63は、追加供給素子条件設定部51が生成する情報である。分岐位置情報64は、分岐位置決定部52が生成する情報である。第1の設計検証用ネットリスト65は、図4のステップS2において生成されるネットリストであって、設計支援装置100及び設計支援装置100で実行される設計支援プログラムの説明では場合に応じて第1のネットストと称す。第2の設計検証用ネットリスト66は、トリガ配線修正部53が生成するネットリストであって、設計支援装置100及び設計支援装置100で実行される設計支援プログラムの説明では場合に応じて第2のネットリストと称す。
追加供給素子条件設定部51は、データベースメモリ60から追加供給素子の個数を示す追加供給素子個数情報61と、追加供給素子の制約条件を示す追加供給素子制約情報62と、を読み出して制約条件毎の追加供給素子の個数を示す追加供給素子統計情報63を生成する。この追加供給素子統計情報63はメモリに格納される。
分岐位置決定部52は、複数のフリップフロップ回路を含む回路の接続情報を記述した第1のネットリスト(例えば、第1の設計検証用ネットリスト65)をデータベースメモリ60から読み出して第1の設計検証用ネットリスト65からクロック配線の情報を抽出する。そして、分岐位置決定部52は、抽出したクロック配線の分岐段数に基づき追加供給素子統計情報に含まれる追加供給素子を配置する位置を決定する。より具体的には、分岐位置決定部52は、統計情報に含まれる制約条件を満たすクロック配線の分岐段数を検索し、検索された分岐段数に該当するクロック配線の位置を追加供給素子及び追加トリガ配線として決定する。その後、分岐位置決定部52は、追加供給素子30の位置情報を記述した分岐位置情報64をデータベースメモリに格納する。本実施の形態では、クロック配線は分岐段数毎に制約条件が設定される。そこで、分岐位置決定部52は、クロック配線に設定された制約条件と追加供給素子30に設定された制約条件との整合性に基づき追加供給素子30を追加する位置を決定する。この決定処理の詳細は後述する。
トリガ配線修正部51は、データベースメモリ60から読み出した分岐位置情報64に基づき第1の設計検証用ネットリスト65に追加供給素子30及び追加クロック配線CWbの接続情報を追加して第2のネットリスト(例えば、第2の設計検証用ネットリスト66)を生成する。そしてトリガ配線修正部51は第2の設計検証用ネットリストをデータベースメモリ60に格納する。
続いて、設計支援装置100による処理手順について説明する。設計支援装置100による処理手順のフローチャートを図6に示す。設計支援装置100では、まず、演算装置40において追加供給素子条件設定部51が実行される。追加供給素子条件設定部51は、追加供給素子個数情報61と追加供給素子制約情報62とを読み込み追加供給素子統計情報63を生成する(ステップS21)。追加供給素子統計情報63には、制約条件(例えば、スキュー値)が100psの追加供給素子30が30個、スキュー値が50psの追加供給素子が100個などの情報を含む。つまり、追加供給素子統計情報63には、同一の制約条件を有する追加供給素子の統計情報が含まれる。
続いて、設計支援装置100では、演算装置40において分岐位置決定部52を実行する。分岐位置決定部52は、まず、追加供給素子統計情報63及び第1の設計検証用ネットリスト65を読み込む。そして、分岐位置決定部52は、第1の設計検証用ネットリスト65から既存のクロック配線の分岐段数を解析する(ステップS22)。より具体的には、本実施の形態の例では、クロック配線CW0を基準として、計算対象のクロック配線がクロック配線CW0から何段の分岐点NDを経由しているかを計算する。
次いで、分岐位置決定部52は、追加供給素子の分布を決定する(ステップS23)。具体的には、追加供給素子統計情報63に含まれる情報に基づき、分岐段数毎にクロック配線に設定された制約条件により許容できる制約条件を有する追加供給素子を当該クロック配線に分配する。ここで、分配方法の一例を以下において説明する。
まず、追加供給素子の制約条件には、最大クロックスキュー値Skew_maxと最小クロックスキュー値Skew_minが含まれる。そこで、係数δを式(1)により定める。
δ=(Skew_max−Skew_min) ・・・(1)
また、式(2)において係数θを求める。なお、式(2)においてBRCHは、クロック配線の分岐段数のうち最も大きな値(つまり、クロック配線の総分岐段数)である。
θ=δ/BRCH ・・・(2)
δ=(Skew_max−Skew_min) ・・・(1)
また、式(2)において係数θを求める。なお、式(2)においてBRCHは、クロック配線の分岐段数のうち最も大きな値(つまり、クロック配線の総分岐段数)である。
θ=δ/BRCH ・・・(2)
そして、追加供給素子を追加供給素子の制約条件に応じて式(31)〜(3n)を用いて分類する。なお、式(31)〜(3n)においてnはクロック配線の分岐段数を示す整数である。また、λはクロック配線に設定されたスキュー値であって、クロック配線の段数毎に異なる値となる(例えば、n段の分岐数を有するクロック配線のクロックスキュー値はλnで表される)。
Skew_min≦λ1≦Skew_min+θ ・・・(31)
Skew_min≦λ2≦Skew_min+2θ ・・・(32)
Skew_min≦λ3≦Skew_min+3θ ・・・(33)
・・・・・
Skew_min≦λn≦Skew_min+nθ ・・・(3n)
Skew_min≦λ1≦Skew_min+θ ・・・(31)
Skew_min≦λ2≦Skew_min+2θ ・・・(32)
Skew_min≦λ3≦Skew_min+3θ ・・・(33)
・・・・・
Skew_min≦λn≦Skew_min+nθ ・・・(3n)
上記式(1)〜(3)を用いて、例えば、最大クロックスキュー値Skew_maxとして100ps、最小クロックスキュー値Skew_minとして40psが設定される追加供給素子30を3段の分岐段数を有するクロック配線に供給する場合について説明する。この場合、δ=60psとなり、かつ、θ=20psとなる。このとき、λ1〜λ3が、それぞれ30ps、60ps、90psと設定されていた場合、式(32)が最も少ない段数であって、かつ、式で表される条件を満たすものとなる。そこで、2段の分岐段数を有するクロック配線CW2がこの追加供給素子の分岐先として決定される。
そして、分岐位置決定部52は、ステップS23の処理により決定された追加クロック配線CWbの位置及び追加供給素子の情報を分岐位置情報64として出力する(ステップS24)。続いて、トリガ配線修正部53は、分岐位置情報64に基づき第1の設計検証用ネットリスト65に追加供給素子30と追加クロック配線CWbの素子情報及び接続情報を追加して第2の設計検証用ネットリスト66を生成する(ステップS25)。
上記説明より、実施の形態2にかかる設計支援装置100では、追加したい追加供給素子30の制約条件を追加供給素子毎に入力することで、複数の追加供給素子とクロック配線とを適切(制約条件を満たす状態)に挿入することができる。この設計支援装置100は、追加する追加供給素子の個数が増加するほどに設計時間を短縮することができる。つまり、設計者が自ら追加するクロック配線を探し、そこに追加供給素子を設ける場合、追加対象とするクロック配線が膨大になるとその探索に時間がかかる。一方、本実施の形態にかかる設計支援装置100では、追加したい追加供給素子30の制約条件を追加供給素子毎に入力ことで、追加供給素子の制約条件を満たす制約条件を有するクロック配線を計算により瞬時に判断し、該当クロック配線に追加供給素子を自動で設けることができる。つまり、設計支援装置100を用いることで、追加供給素子の挿入処理にかかる時間(図4のステップS3にかかる時間)を短縮することが可能になる。
実施の形態3
実施の形態3では、実施の形態1において説明した半導体装置1の回路修正手順について説明する。そこで、半導体装置1の回路修正手順のフローチャートを図7に示す。図7に示すように、半導体装置1の回路修正では、まず、半導体装置1の製造において用いられたレチクル用ネットリストM4が読み込まれる。そして、レチクル用ネットリストM4に対して追加クロック配線CWb及び追加供給素子30を用いた回路修正が行われる(ステップS12)。ステップS12の回路修正により修正済みレイアウト用ネットリストM5が生成される。
実施の形態3では、実施の形態1において説明した半導体装置1の回路修正手順について説明する。そこで、半導体装置1の回路修正手順のフローチャートを図7に示す。図7に示すように、半導体装置1の回路修正では、まず、半導体装置1の製造において用いられたレチクル用ネットリストM4が読み込まれる。そして、レチクル用ネットリストM4に対して追加クロック配線CWb及び追加供給素子30を用いた回路修正が行われる(ステップS12)。ステップS12の回路修正により修正済みレイアウト用ネットリストM5が生成される。
そして、回路修正工程では、修正済みレイアウト用ネットリストに基づきレイアウト及びバックアノテーション処理(ステップS13〜S16の処理)が行われ、修正済みレチクル用ネットリストM6が生成される。ステップS13〜S16の処理は、それぞれ図4において説明したステップS8〜S11の処理に対応するものである。回路修正工程を経て、修正済みレチクル用ネットリストに基づき、例えば、図3において示した半導体装置1aが製造される。
上記のように、実施の形態3では、ステップS12において追加供給素子30及び追加クロック配線CWbを用いた回路修正を行う。このとき、実施の形態3では、ステップS12の処理を設計支援装置200を用いて行う。そこで、設計支援装置200のブロック図を図8に示す。なお、設計支援装置200は、コンピュータ等にステップS12の処理を実行するための設計支援プログラムを実装したものでも良く、ステップS12の処理を行う専用の装置であっても良い。以下では、設計支援装置200の例としてコンピュータ等にステップS12の処理を実行するための設計支援プログラムを実装したもの説明する。
図8に示すように、設計支援装置200は、演算装置(例えば、CPU:Central Processing Unit)40、入力装置41、表示装置42、プログラムメモリ70、データベースメモリ80を有する。演算装置40は、プログラムメモリ70から読み出した各種プログラム及びデータベースメモリ80から読み出した各種情報に基づきプログラムに応じた処理を行うと共に、処理により生成された情報をデータベースメモリ80に格納する。演算装置40は、プログラムメモリ70及びデータベースメモリ80とバス配線を介して接続される。入力装置41は、演算装置40に動作の指示を与えるものである。表示装置42は、演算装置40において実行されるプログラムのインタフェース画面を表示するものである。
プログラムメモリ70には、レイアウト完了後に生成される第1のネットリスト(例えば、レチクル用ネットリストM4)に含まれるクロック信号に基づき動作するフリップフロップ回路と、クロック信号を伝達するクロック配線と追加クロック配線を介して接続され、かつ、フリップフロップ回路と接続されない追加供給素子30と、を接続する設計支援プログラムが格納される。設計支援プログラムは、修正対象素子検索部71、クロック供給元解析部72、追加先決定部73、回路修正部74を有する。設計支援プログラムは、これら4つの部分が1つのプログラムとして実装されていても良く、個別のプログラムとして実装されていても構わない。
また、データベースメモリ80には、レチクル用ネットリスト81、修正済みレイアウト用ネットリスト82、修正対象素子解析情報83、クロック供給元解析情報84が格納される。レチクル用ネットリスト81は、図4において説明した設計フローに従って生成されるものである。修正済みレイアウト用ネットリストは、設計支援装置200が最終的に出力するネットリストであって、回路修正後の半導体装置の基礎となるものである。修正対象素子解析情報83は、修正対象素子検索部71が生成する情報である。クロック供給元解析情報84は、クロック供給元解析部72が生成する情報である。なお、設計支援装置200及び設計支援装置200で実行される設計支援プログラムの説明では場合に応じてレチクル用ネットリスト81を第1のネットストと称す。また、設計支援装置200及び設計支援装置200で実行される設計支援プログラムの説明では場合に応じて修正済みレイアウト用ネットリスト82を第2のネットリストと称す。
修正対象素子検索部71は、データベースメモリ80からレチクル用ネットリスト81を読み出す。そして、修正対象素子検索部71は、修正対象とする追加対象ノードの両端に位置するフリップフロップ回路(以下、このフリップフロップ回路を修正対象素子と称す)を検索し、検索したフリッププロップ回路の位置を示す修正対象素子解析情報83をデータベースメモリ80に格納する。
クロック供給元解析部72は、データベースメモリ80から第1のネットリスト(例えば、レチクル用ネットリスト81)及び修正対象素子解析情報83を読み出す。そしてクロック供給元解析部72は、修正対象素子に接続されるクロック配線の分岐段数を解析し、解析した分岐段数を示すクロック供給元解析情報84をデータベースメモリ80に格納する。
追加先決定部73は、データベースメモリ80からクロック供給元解析情報84を読み出し、修正対象素子にクロック信号を供給するクロック配線と一致する又は近似する分岐段数を有するクロック配線に接続された追加供給素子を検索し、検索した追加供給素子を追加対象の追加供給素子として決定する。
回路修正部74は、追加先決定部73が決定した追加供給素子とフリップフロップ回路とを接続した第2のネットリスト(例えば、修正済みレイアウト用ネットリスト)を生成し、前記第2のネットリストを前記メモリに格納する。
続いて、設計支援装置200による処理手順について説明する。設計支援装置200による処理手順のフローチャートを図9に示す。設計支援装置200では、まず、演算装置40において修正対象素子検索部71が実行される。修正対象素子検索部71は、レチクル用ネットリスト81を読み込む。そして、修正対象素子検索部71は、レチクル用ネットリスト81に記述された回路情報に基づき追加供給素子を挿入する素子追加ノードの両端に配置されたフリップフロップ回路(このフリップフロップ回路を修正対象素子と称す)を特定する(ステップS31)。つまり、修正対象素子は、少なくとも2つのフリップフロップ回路を含む。そして、修正対象素子検索部71は、特定された修正対象素子の情報を含む修正対象素子解析情報83を出力する。
続いて、設計支援装置200は、クロック供給元解析部72を実行する。クロック供給元解析部72は、修正対象素子解析情報83とレチクル用ネットリスト81とに基づき修正対象素子にクロック信号を供給するクロック配線の分岐段数を解析する(ステップS32)。ステップS32では、例えば、修正対象素子に2つのフリップフロップ回路が含まれている場合に、一方のフリップフロップ回路にクロック信号を供給するクロック配線の分岐段数と、他方のフリップフロップ回路にクロック信号を供給するクロック配線の分岐段数とを解析する。そして、クロック供給元解析部72は、解析によって得られた修正対象素子にクロック信号を供給するクロック配線の分岐段数情報を含むクロック供給元解析情報84を生成する。
続いて、設計支援装置200は、追加先決定部73を実行する。追加先決定部73は、まず、クロック供給元解析情報84を読み込む。そして、修正対象素子に含まれる複数のフリップフロップ回路にクロック信号を供給するクロック配線の分岐段数が、複数のフリップフロップ回路で同じか否かを判断する(ステップS33)。このステップS33において修正対象素子に含まれる複数のフリップフロップ回路に同じ分岐段数を有するクロック配線からクロック信号が供給されていると判断された場合(ステップS33のYESの枝)、この修正対象素子に接続されるクロック配線と第1の選択クロック配線として設定する(ステップS34)。そして、第1のクロック配線に追加クロック配線があるか否かを判断する(ステップS35)。ステップS35において第1のクロック配線に追加クロック配線があった場合(ステップS35のYESの枝)、第1の選択クロック配線に設けられた追加クロック配線に接続された追加供給素子を追加する素子として決定する。そして、追加先決定部73の決定を受けて、回路修正部74は、追加対象として決定された追加供給素子と既存のフリップフロップ回路との接続情報を含む第2のネットリスト(例えば、修正済みレイアウト用ネットリスト82)を生成する(ステップS36)。
一方、ステップS33において修正対象素子に含まれる複数のフリップフロップ回路に異なる分岐段数を有するクロック配線からクロック信号が供給されていると判断された場合(ステップS33のNOの枝)及びステップS35において第1のクロック配線に追加クロック配線がなかった場合(ステップS35のNOの枝)、ステップS34において選択される第1の選択クロック配線に次いで最適と考えられるクロック配線を検索する(ステップS37)。このステップS37の処理では、追加先決定部73は、修正対象素子にクロック信号を供給するクロック配線の分岐段数に近い分岐段数を有するクロック配線を順に検索し、追加クロック配線を有するクロック配線を検出する。そして、追加先決定部73は、検出されたクロック配線を第2の選択クロック配線として選択する。そして、追加先決定部73は、第2の選択クロック配線に接続される追加供給素子のうち修正対象素子に最も近いものを追加する追加供給素子として決定する。つまり、追加先決定部73は、修正対象素子にクロック信号を供給するクロック配線に近い分岐段数を有するクロック配線に接続された追加供給素子を優先的に追加先として選択する。回路修正部74は、追加先決定部73の決定に基づき決定された追加供給素子と修正対象素子との接続情報を追加した第2のネットリスト(例えば、修正済みレイアウト用ネットリスト82)を生成する(ステップS38)。
ここで、上記ステップS33〜S36の処理を経て追加供給素子が決定された半導体装置1bのブロック図の例を図10に示す。図10に示すように、論理回路20に含まれるフリップフロップ回路FFa、FFbが同じ分岐段数を有するクロック配線CW1からクロック信号の供給を受けており、かつ、クロック配線CW1に追加供給素子30が接続されている場合、当該追加供給素子30に含まれるフリップフロップ回路FFcを既存のフリップフロップ回路FFa、FFbの間に挿入する。
また、上記ステップS33〜S38の処理を経て追加供給素子が決定された半導体装置1cのブロック図の例を図11に示す。図11に示すように、論理回路20に含まれるフリップフロップ回路FFa、FFbが異なる分岐段数を有するクロック配線CW1、CW3からそれぞれクロック信号の供給を受けており、かつ、クロック配線CW1及びクロック配線CW3に追加供給素子30が接続されてない場合、クロック配線CW1とクロック配線CW3とは異なるクロック配線が検索される。このとき、図11に示す例では、クロック配線CW2に追加供給素子30が設けられているため、クロック配線CW2に接続される追加供給素子30に含まれるフリップフロップ回路FFcを既存のフリップフロップ回路FFa、FFbの間に挿入する。
上記説明より、実施の形態3にかかる設計支援装置200では、追加供給素子30を用いた回路修正を行う場合に、修正対象素子を特定した後の追加供給素子の決定を計算により行うことができる。これにより、設計者は利用する追加供給素子を検索する必要がなくなるため設計期間を短縮することができる。また、設計支援装置200では、回路修正に利用する追加供給素子を修正対象素子にクロック信号を供給するクロック配線に近い分岐段数を有するクロック配線に接続されたものから順に選択する。そのため、回路修正に用いられる追加供給素子より回路動作が不安定になる可能性を低くすることができる。
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、追加供給素子30を回路修正においてどのように利用するかは設計者の選択により可能である。また、図9に示した回路修正手順のステップS37において、第2の選択クロック配線が複数検出された場合には、設計者が複数の選択候補の中から選択しても良い。
また実施の形態1乃至3において説明した回路修正方法は、コンピュータに実行させるプログラムとして提供することもできる。このプログラムは、記録媒体に記録して提供することも可能であり、また、インターネットその他の通信媒体を介して伝送することにより提供することも可能である。また、記憶媒体には、例えば、フレキシブルディスク、ハードディスク、磁気ディスク、光磁気ディスク、CD−ROM、DVD、ROMカートリッジ、バッテリバックアップ付きRAMメモリカートリッジ、フラッシュメモリカートリッジ、不揮発性RAMカートリッジ等が含まれる。また、通信媒体には、電話回線等の有線通信媒体、マイクロ波回線等の無線通信媒体等が含まれる。
この出願は、2009年3月5日に出願された日本出願特願2009−051880を基礎とする優先権を主張し、その開示の全てをここに取り込む。
本発明は、半導体装置、回路修正方法、設計支援装置及び設計支援プログラムに関し、特にトリガ信号駆動素子にクロック信号を分配するクロック配線を有する半導体装置と、半導体装置の回路修正方法、設計支援装置及び設計支援プログラムに利用することができる。
1、1a〜1c 半導体装置
10 クロック生成回路
20 論理回路
30 追加供給素子
40 演算装置
41 入力装置
42 表示装置
50 プログラムメモリ
51 追加供給素子条件設定部
51 追加供給素子条件設定部
52 分岐位置決定部
53 トリガ配線修正部
60 データベースメモリ
61 追加供給素子個数情報
62 追加供給素子制約情報
63 追加供給素子統計情報
64 分岐位置情報
65 第1の設計検証用ネットリスト
66 第2の設計検証用ネットリスト
70 プログラムメモリ
71 修正対象素子検索部
72 クロック供給元解析部
73 追加先決定部
74 回路修正部
80 データベースメモリ
81 レチクル用ネットリスト
82 修正済みレイアウト用ネットリスト
83 修正対象素子解析情報
84 クロック供給元解析情報
100 設計支援装置
200 設計支援装置
BUF バッファ
CW0〜CW3 クロック配線
CWb 追加クロック配線
FF、FFa〜FFc フリップフロップ回路
10 クロック生成回路
20 論理回路
30 追加供給素子
40 演算装置
41 入力装置
42 表示装置
50 プログラムメモリ
51 追加供給素子条件設定部
51 追加供給素子条件設定部
52 分岐位置決定部
53 トリガ配線修正部
60 データベースメモリ
61 追加供給素子個数情報
62 追加供給素子制約情報
63 追加供給素子統計情報
64 分岐位置情報
65 第1の設計検証用ネットリスト
66 第2の設計検証用ネットリスト
70 プログラムメモリ
71 修正対象素子検索部
72 クロック供給元解析部
73 追加先決定部
74 回路修正部
80 データベースメモリ
81 レチクル用ネットリスト
82 修正済みレイアウト用ネットリスト
83 修正対象素子解析情報
84 クロック供給元解析情報
100 設計支援装置
200 設計支援装置
BUF バッファ
CW0〜CW3 クロック配線
CWb 追加クロック配線
FF、FFa〜FFc フリップフロップ回路
本発明にかかる半導体装置の回路修正方法は、トリガ信号を伝達するトリガ配線と、前記トリガ信号に基づき動作する複数のトリガ信号駆動素子と、を有する半導体装置の回路修正方法であって、前記トリガ配線に追加トリガ配線を介して接続され、かつ、前記複数のトリガ信号駆動素子のいずれとも接続されない追加供給素子を予め設け、前記複数のトリガ信号駆動素子のうち修正対象とする修正対象素子を検索し、前記修正対象素子と前記追加供給素子とを接続する。
本発明にかかる設計支援装置の一態様は、半導体装置の設計工程において、トリガ信号駆動素子にトリガ信号を分配するトリガ配線に追加供給素子及び前記追加供給素子と前記トリガ配線とを接続する追加トリガ配線を配置する設計支援装置であって、前記追加供給素子の個数と、前記追加供給素子の制約条件と、に基づき前記制約条件毎の前記追加供給素子の個数を示す追加供給素子統計情報を生成する追加供給素子条件設定部と、複数の前記トリガ信号駆動素子を含む回路の接続情報を記述した第1のネットリストから前記トリガ配線の情報を抽出し、抽出した前記トリガ配線の分岐段数に基づき前記追加供給素子統計情報に含まれる前記追加供給素子を配置する位置を決定し、前記追加供給素子の位置情報を記述した分岐位置情報を出力する分岐位置決定部と、前記分岐位置情報に基づき前記第1のネットリストに前記追加供給素子及び前記追加トリガ配線の接続情報を追加して第2のネットリストを生成するトリガ配線修正部と、を有する。
本発明にかかる設計支援プログラムの一態様は、演算装置で実行され、半導体装置の設計工程において、トリガ信号駆動素子にトリガ信号を分配するトリガ配線に追加供給素子及び前記追加供給素子と前記トリガ配線とを接続する追加トリガ配線を配置する設計支援装置プログラムであって、メモリから前記追加供給素子の個数を示す追加供給素子個数情報と、前記追加供給素子の制約条件を示す追加供給素子制約情報と、を読み出して前記制約条件毎の前記追加供給素子の個数を示す追加供給素子統計情報を前記メモリに格納する追加供給素子条件設定部と、複数の前記トリガ信号駆動素子を含む回路の接続情報を記述した第1のネットリストを前記メモリから読み出して前記第1のネットリストから前記トリガ配線の情報を抽出し、抽出した前記トリガ配線の分岐段数に基づき前記追加供給素子統計情報に含まれる前記追加供給素子を配置する位置を決定し、前記追加供給素子の位置情報を記述した分岐位置情報を前記メモリに格納する分岐位置決定部と、前記メモリから読み出した前記分岐位置情報に基づき前記第1のネットリストに前記追加供給素子及び前記追加トリガ配線の接続情報を追加して第2のネットリストを生成し、前記メモリに第2のネットリストを格納するトリガ配線修正部と、を有する。
Claims (24)
- トリガ信号に同期して動作する複数のトリガ信号駆動素子と、
前記トリガ信号を前記複数のトリガ信号駆動素子に分配するトリガ配線と、
前記トリガ配線から分岐して設けられる追加トリガ配線と、
前記追加トリガ配線を介して前記トリガ信号が供給され、前記複数のトリガ信号駆動素子から分離して設けられる追加供給素子と、
を有する半導体装置。 - 前記追加供給素子は、出力端子が他の素子に接続されないバッファ回路である請求項1に記載の半導体装置。
- 前記追加供給素子は、出力端子と入力端子とがループ接続され、トリガ信号入力端子に前記追加クロック配線を介して前記クロック信号が入力されるフリップフロップ回路である請求項1に記載の半導体装置。
- 前記追加供給素子は、出力端子と入力端子とがループ接続されるフリップフロップ回路と、前記追加クロック配線を介して入力される前記クロック信号を前記フリップフロップ回路のトリガ信号入力端子に供給するバッファ回路と、を有する請求項1に記載の半導体装置。
- トリガ信号を伝達するトリガ配線と、前記トリガ信号に基づき動作する複数のトリガ信号駆動素子と、を有する半導体装置の回路修正方法であって、
前記トリガ配線に追加トリガ配線を介して接続され、かつ、前記複数のトリガ駆動素子のいずれとも接続されない追加供給素子を予め設け、
前記複数のトリガ信号駆動素子のうち修正対象とする修正対象素子を検索し、
前記修正対象素子と前記追加供給素子とを接続する
回路修正方法。 - 前記追加供給素子は、予め設定された制約条件に応じて前記トリガ配線のいずれの位置に接続されるか決定される請求項5に記載の回路修正方法。
- 前記トリガ配線は、複数の分岐配線を有し、前記分岐配線毎に制約条件が設定される請求項5又は6に記載の回路修正方法。
- 前記制約条件は、トリガ信号のスキュー値である請求項5乃至7のいずれか1項に記載の回路修正方法。
- この設計支援装置は、
半導体装置の設計工程において、トリガ信号駆動素子にトリガ信号を分配するトリガ配線に追加供給素子及び前記追加供給素子と前記トリガ配線とを接続する追加トリガ配線を配置する、
ここで、前記設計支援装置は、
前記追加供給素子の個数と、前記追加供給素子の制約条件と、に基づき前記制約条件毎の前記追加供給素子の個数を示す追加供給素子統計情報を生成する追加供給素子条件設定手段と、
複数の前記トリガ駆動素子を含む回路の接続情報を記述した第1のネットリストから前記トリガ配線の情報を抽出し、抽出した前記トリガ配線の分岐段数に基づき前記追加供給素子統計情報に含まれる前記追加供給素子を配置する位置を決定し、前記追加供給素子の位置情報を記述した分岐位置情報を出力する分岐位置決定手段と、
前記分岐位置情報に基づき前記第1のネットリストに前記追加供給素子及び前記追加トリガ配線の接続情報を追加して第2のネットリストを生成するトリガ配線修正手段と、を有する。 - 前記分岐位置決定手段は、前記統計情報に含まれる前記制約条件を満たす前記トリガ配線の前記分岐段数を検索し、検索された前記分岐段数に該当する前記トリガ配線の位置を前記追加供給素子及び前記追加トリガ配線として決定する請求項9に記載の設計支援装置。
- 前記トリガ配線は、複数の分岐配線を有し、前記分岐配線毎に制約条件が設定される請求項9又は10に記載の設計支援装置。
- 前記制約条件は、トリガ信号のスキュー値である請求項9乃至11のいずれか1項に記載の設計支援装置。
- この設計支援装置は、レイアウト完了後に生成される第1のネットリストに含まれるトリガ信号に基づき動作するトリガ信号駆動素子と、前記トリガ信号を伝達するトリガ配線と追加トリガ配線を介して接続され、かつ、前記トリガ信号駆動素子と接続されない追加供給素子と、を接続する、
ここで、前記設計支援装置は、
前記第1のネットリストから修正対象とする素子追加ノードの両端に位置する前記トリガ信号駆動素子を検索し、検索した前記トリガ信号駆動素子を修正対象素子として登録する修正対象素子検索手段と、
前記修正対象素子に接続される前記トリガ配線の分岐段数を解析し、解析した分岐段数を示すクロック供給元解析情報を出力するクロック供給元解析手段と、
前記クロック供給元解析情報に基づき前記修正対象素子に前記トリガ信号を供給する前記トリガ配線と一致する又は近似する前記分岐段数を有するトリガ配線に接続された前記追加供給素子を検索し、検索した前記追加供給素子を追加対象の追加供給素子として決定する追加先決定手段と、
前記追加先決定手段において決定された前記追加供給素子と前記トリガ信号駆動素子とを接続した第2のネットリストを生成する回路修正手段と、を有する。 - 前記追加先決定手段は、前記修正対象素子に前記トリガ信号を供給する前記トリガ配線に近い前記分岐段数を有するトリガ配線に接続された前記追加供給素子を優先的に追加先として選択する請求項13に記載の設計支援装置。
- 前記トリガ配線は、複数の分岐配線を有し、前記分岐配線毎に制約条件が設定される請求項13又は14に記載の設計支援装置。
- 前記制約条件は、トリガ信号のスキュー値である請求項13乃至15のいずれか1項に記載の設計支援装置。
- この記録媒体は、演算装置で実行され、半導体装置の設計工程において、トリガ信号駆動素子にトリガ信号を分配するトリガ配線に追加供給素子及び前記追加供給素子と前記トリガ配線とを接続する追加トリガ配線を配置する設計支援プログラムが格納されている、
ここで、前記設計支援プログラムは、
メモリから前記追加供給素子の個数を示す追加供給素子個数情報と、前記追加供給素子の制約条件を示す追加供給素子制約情報と、を読み出して前記制約条件毎の前記追加供給素子の個数を示す追加供給素子統計情報を前記メモリに格納する追加供給素子条件設定手段と、
複数の前記トリガ駆動素子を含む回路の接続情報を記述した第1のネットリストを前記メモリから読み出して前記第1のネットリストから前記トリガ配線の情報を抽出し、抽出した前記トリガ配線の分岐段数に基づき前記追加供給素子統計情報に含まれる前記追加供給素子を配置する位置を決定し、前記追加供給素子の位置情報を記述した分岐位置情報を前記メモリに格納する分岐位置決定手段と、
前記メモリから読み出した前記分岐位置情報に基づき前記第1のネットリストに前記追加供給素子及び前記追加トリガ配線の接続情報を追加して第2のネットリストを生成し、前記メモリに第2のネットリストを格納するトリガ配線修正手段と、を有する。 - 前記分岐位置決定手段は、前記統計情報に含まれる前記制約条件を満たす前記トリガ配線の前記分岐段数を検索し、検索された前記分岐段数に該当する前記トリガ配線の位置を前記追加供給素子及び前記追加トリガ配線として決定する請求項17に記載の設計支援プログラムが格納された記録媒体。
- 前記トリガ配線は、複数の分岐配線を有し、前記分岐配線毎に制約条件が設定される請求項17又は18に記載の設計支援プログラムが格納された記録媒体。
- 前記制約条件は、トリガ信号のスキュー値である請求項17乃至19のいずれか1項に記載の設計支援プログラムが格納された記録媒体。
- この記録媒体は、設計支援プログラム演算装置で実行され、レイアウト完了後に生成される第1のネットリストに含まれるトリガ信号に基づき動作するトリガ信号駆動素子と、前記トリガ信号を伝達するトリガ配線と追加トリガ配線を介して接続され、かつ、前記トリガ信号駆動素子と接続されない追加供給素子と、を接続する設計支援プログラムが格納されている、
ここで、前記設計支援プログラムは、
メモリから前記第1のネットリストを読み出し、前記第1のネットリストから修正対象とする素子追加ノードの両端に位置する前記トリガ信号駆動素子を検索し、検索した前記トリガ信号駆動素子を示す修正対象素子解析情報を前記メモリに格納する修正対象素子検索手段と、
前記メモリから前記第1のネットリスト及び前記修正対象素子解析情報を読み出し、前記修正対象素子に接続される前記トリガ配線の分岐段数を解析し、解析した分岐段数を示すクロック供給元解析情報を前記メモリに格納するクロック供給元解析手段と、
前記メモリから前記クロック供給元解析情報を読み出し、前記修正対象素子に前記トリガ信号を供給する前記トリガ配線と一致する又は近似する前記分岐段数を有するトリガ配線に接続された前記追加供給素子を検索し、検索した前記追加供給素子を追加対象の追加供給素子として決定する追加先決定手段と、
前記追加先決定手段が決定した前記追加供給素子と前記トリガ信号駆動素子とを接続した第2のネットリストを生成し、前記第2のネットリストを前記メモリに格納する回路修正手段と、を有する。 - 前記追加先決定手段は、前記修正対象素子に前記トリガ信号を供給する前記トリガ配線に近い前記分岐段数を有するトリガ配線に接続された前記追加供給素子を優先的に追加先として選択する請求項21に記載の設計支援プログラムが格納された記録媒体。
- 前記トリガ配線は、複数の分岐配線を有し、前記分岐配線毎に制約条件が設定される請求項21又は22に記載の設計支援プログラムが格納された記録媒体。
- 前記制約条件は、トリガ信号のスキュー値である請求項21乃至23のいずれか1項に記載の設計支援プログラムが格納された記録媒体。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009051880 | 2009-03-05 | ||
JP2009051880 | 2009-03-05 | ||
PCT/JP2010/000794 WO2010100830A1 (ja) | 2009-03-05 | 2010-02-09 | 半導体装置、回路修正方法、設計支援装置及び設計支援プログラムが格納された記録媒体 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPWO2010100830A1 true JPWO2010100830A1 (ja) | 2012-09-06 |
Family
ID=42709403
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011502611A Pending JPWO2010100830A1 (ja) | 2009-03-05 | 2010-02-09 | 半導体装置、回路修正方法、設計支援装置及び設計支援プログラム |
Country Status (3)
Country | Link |
---|---|
US (1) | US20120013373A1 (ja) |
JP (1) | JPWO2010100830A1 (ja) |
WO (1) | WO2010100830A1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10684642B2 (en) * | 2018-03-20 | 2020-06-16 | International Business Machines Corporation | Adaptive clock mesh wiring |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1131747A (ja) * | 1997-07-10 | 1999-02-02 | Toshiba Corp | 半導体集積回路のクロック設計装置及び半導体集積回路の設計方法ならびに半導体集積回路のクロック供給回路網 |
JP2001308186A (ja) * | 2000-04-24 | 2001-11-02 | Nec Microsystems Ltd | フリップフロップ追加修正が可能なレイアウト方法およびレイアウトプログラムを記録した記録媒体 |
JP2002329784A (ja) * | 2001-05-07 | 2002-11-15 | Matsushita Electric Ind Co Ltd | 半導体回路 |
JP2005116793A (ja) * | 2003-10-08 | 2005-04-28 | Toshiba Corp | 半導体集積回路及びそのクロック配線方法 |
JP2006128635A (ja) * | 2004-09-30 | 2006-05-18 | Matsushita Electric Ind Co Ltd | 半導体集積回路 |
JP2006518095A (ja) * | 2002-10-25 | 2006-08-03 | アトメル・コーポレイション | 製造された集積回路の設計ミスを修正するための予備のセル構造 |
JP2007311485A (ja) * | 2006-05-17 | 2007-11-29 | Matsushita Electric Ind Co Ltd | 標準セル |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001022816A (ja) * | 1999-07-12 | 2001-01-26 | Matsushita Electric Ind Co Ltd | 半導体集積回路装置のレイアウト方法 |
US6910195B2 (en) * | 2003-02-05 | 2005-06-21 | Intel Corporation | Flip-flop insertion in a circuit design |
US7363606B1 (en) * | 2005-08-23 | 2008-04-22 | Sun Microsystems, Inc. | Flip-flop insertion method for global interconnect pipelining |
US7546568B2 (en) * | 2005-12-19 | 2009-06-09 | Lsi Corporation | Automation of tie cell insertion, optimization and replacement by scan flip-flops to increase fault coverage |
US8164345B2 (en) * | 2008-05-16 | 2012-04-24 | Rutgers, The State University Of New Jersey | Spectral and information theoretic method of test point, partial-scan, and full-scan flip-flop insertion to improve integrated circuit testability |
-
2010
- 2010-02-09 JP JP2011502611A patent/JPWO2010100830A1/ja active Pending
- 2010-02-09 WO PCT/JP2010/000794 patent/WO2010100830A1/ja active Application Filing
- 2010-02-09 US US13/203,197 patent/US20120013373A1/en not_active Abandoned
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1131747A (ja) * | 1997-07-10 | 1999-02-02 | Toshiba Corp | 半導体集積回路のクロック設計装置及び半導体集積回路の設計方法ならびに半導体集積回路のクロック供給回路網 |
JP2001308186A (ja) * | 2000-04-24 | 2001-11-02 | Nec Microsystems Ltd | フリップフロップ追加修正が可能なレイアウト方法およびレイアウトプログラムを記録した記録媒体 |
JP2002329784A (ja) * | 2001-05-07 | 2002-11-15 | Matsushita Electric Ind Co Ltd | 半導体回路 |
JP2006518095A (ja) * | 2002-10-25 | 2006-08-03 | アトメル・コーポレイション | 製造された集積回路の設計ミスを修正するための予備のセル構造 |
JP2005116793A (ja) * | 2003-10-08 | 2005-04-28 | Toshiba Corp | 半導体集積回路及びそのクロック配線方法 |
JP2006128635A (ja) * | 2004-09-30 | 2006-05-18 | Matsushita Electric Ind Co Ltd | 半導体集積回路 |
JP2007311485A (ja) * | 2006-05-17 | 2007-11-29 | Matsushita Electric Ind Co Ltd | 標準セル |
Also Published As
Publication number | Publication date |
---|---|
WO2010100830A1 (ja) | 2010-09-10 |
US20120013373A1 (en) | 2012-01-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7809971B2 (en) | Clock distribution circuit, semiconductor integrated circuit and method of designing clock distribution circuit | |
JP2010146047A (ja) | バッファ回路挿入方法、バッファ回路挿入装置及びバッファ回路挿入プログラム | |
US8255851B1 (en) | Method and system for timing design | |
WO2012124117A1 (ja) | タイミングエラー除去方法、設計支援装置、及びプログラム | |
JP5040758B2 (ja) | シミュレーション装置、シミュレーション方法及びプログラム | |
JP4118578B2 (ja) | 半導体集積回路の設計方法および設計プログラム | |
JP2004013720A (ja) | 論理回路のタイミング制約モデル生成方法、論理回路のタイミング制約モデル生成プログラム、およびタイミング制約モデルを用いるタイミングドリブンレイアウト方法 | |
JP4918934B2 (ja) | 半導体集積回路の遅延解析装置及び遅延解析方法並びにそのプログラム | |
JP4706738B2 (ja) | 遅延解析装置、遅延解析方法、及びプログラム | |
JP5444985B2 (ja) | 情報処理装置 | |
US8510693B2 (en) | Changing abstraction level of portion of circuit design during verification | |
WO2010100830A1 (ja) | 半導体装置、回路修正方法、設計支援装置及び設計支援プログラムが格納された記録媒体 | |
JP4017583B2 (ja) | 半導体集積回路の設計データの回路表示方法 | |
JP2007199951A (ja) | 半導体集積回路の設計支援装置、設計支援方法および設計支援プログラム | |
US8266564B2 (en) | Verification apparatus, verification method, and computer-readable recording medium for supporting engineering change order | |
JP2005136286A (ja) | 半導体集積回路の設計方法、及びその装置 | |
US11023646B2 (en) | Hierarchical clock tree construction based on constraints | |
US9563736B2 (en) | Placement aware functional engineering change order extraction | |
JP4886559B2 (ja) | 半導体設計支援装置、半導体設計支援方法および半導体設計支援プログラム | |
JP4587754B2 (ja) | クロック合成方法、半導体装置及びプログラム | |
JP2008152329A (ja) | 回路解析方法、及び回路解析プログラム、回路シミュレーション装置 | |
JP3116915B2 (ja) | クロックネットのレイアウト設計変更方式 | |
JP5515757B2 (ja) | スキャンフリップフロップ追加システム及びスキャンフリップフロップ追加方法 | |
JP2010160580A (ja) | ホールドエラー修正方法、装置及びプログラム | |
JP2005215934A (ja) | Lsi設計システム及びlsi設計プログラム及びlsi設計装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20130111 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130709 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20131105 |