Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP4389701B2 - 集積回路階層設計システム及び集積回路階層設計プログラム - Google Patents
[go: Go Back, main page]

JP4389701B2 - 集積回路階層設計システム及び集積回路階層設計プログラム - Google Patents

集積回路階層設計システム及び集積回路階層設計プログラム Download PDF

Info

Publication number
JP4389701B2
JP4389701B2 JP2004202554A JP2004202554A JP4389701B2 JP 4389701 B2 JP4389701 B2 JP 4389701B2 JP 2004202554 A JP2004202554 A JP 2004202554A JP 2004202554 A JP2004202554 A JP 2004202554A JP 4389701 B2 JP4389701 B2 JP 4389701B2
Authority
JP
Japan
Prior art keywords
circuit
hierarchy
flip
cut
flop
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.)
Expired - Fee Related
Application number
JP2004202554A
Other languages
English (en)
Other versions
JP2006024053A (ja
Inventor
祐一 中村
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 JP2004202554A priority Critical patent/JP4389701B2/ja
Priority to US11/176,211 priority patent/US7401309B2/en
Publication of JP2006024053A publication Critical patent/JP2006024053A/ja
Application granted granted Critical
Publication of JP4389701B2 publication Critical patent/JP4389701B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Description

本発明は集積回路階層設計の最適化に関し、特に、階層間を接続するフリップフロップ間経路における、伝播遅延の分配を不要とする集積回路階層設計システム及び集積回路階層設計プログラムに関する。
階層ブロックを含む大規模な集積回路を合成する際、階層構造を維持しつつ最適化が行われる。最適化においては、集積回路の動作周波数を決定するフリップフロップ間を伝播する信号の遅延解析が行われる。
この場合、階層毎に設計を行うために、複数の階層にまたがって伝播する信号では、信号伝播遅延を階層毎に分割する必要があり、精度を得ることの難しい、予測に頼る伝播遅延の計算が必要であった。
このような問題の解決に類する方法の一例が、例えば特開平05−258006号公報(特許文献1)、特開平06−76012号公報(特許文献2)、特開2002−83002号公報(特許文献3)及び”HDLによるデジタル設計の基礎”、桜井至著、テクノプレス発行、128から129頁、図5−18(非特許文献1)に記載されている。
特許文献1に開示される方法では、時刻格納手段によって、階層間のタイミングを定義し、階層間を伝播する信号の遅延分配を行うというものである。特許文献1の方法によれば、各階層間を信号が通過する時刻を設定した後に、設計を行う。すなわち、下位階層の設計を行う時点で、上位階層のタイミングを確定するようにすることにより、設計の後側で行う上位階層の設計を行った時点で、設計の前側で行った下位階層の設計とのタイミングの不一致に起因する問題は解決される。
また、特許文献2の方法では、階層展開参照データを用いて、階層間を伝播する信号の遅延分配を行うというものである。
また、特許文献3に開示される方法では、フリップフロップを抽出し、階層変更部で、階層間の伝播信号に関して、フリップフロップを経由しないような経路が存在しないように、フリップフロップの入力を階層切り口付近になるように、切り口を入れ、階層構造の変更を行うというものである。
特許文献3の方法によれば、入力端子からフリップフロップを経由せずに出力端子に至る経路の場合には、階層破壊や制約値再作成など特別な処理をすることなく、最適化処理を行うことができる。
図9に特許文献3の方法による最適化例を示す。
また、非特許文献1では、集積回路の動作周波数を決定するフリップフロップ間を伝播する信号のうち、特に信号伝播遅延値の最小化が難しい、階層にまたがって伝播する信号に関して、フリップフロップ間の信号伝播は、階層設計されているため、出力フリップフロップから階層出口、階層出口から階層入り口、階層入り口から入力フリップフロップまでに対して分配して扱う必要があることを指摘している。
さらに、非特許文献1では、外部の見積もり精度を向上させる目的で、ブロックの入出力に必ずフリップフロップによるレジスタを置く設計規則を推奨している。
特開平05−258006号公報 特開平06−76012号公報 特開2002−83002号公報 "HDLによるデジタル設計の基礎"、桜井至著、テクノプレス発行、128から129頁、図5−18。
上述した従来の技術は、いずれも以下に述べるような問題点があった。
特許文献1に開示される方法では、時刻格納手段によって、階層間のタイミングを定義し、階層間を伝播する信号の遅延分配を行うというものである。特許文献1の方法は、分割された階層間を伝播する信号において、信号伝播遅延を複数に分割する必要があるという問題を解決するものではない。
また、特許文献1の方法の場合、下位階層の設計を完了して、上位階層設計を行った時点で、下位階層の設計に起因する問題をなくすることを課題としており、信号伝播遅延を複数に分割する必要があるという問題解決を狙ったものではない。
また、特許文献2の方法も同様であって、信号伝播遅延を複数に分割する必要があるという問題を解決するものではない。
また、特許文献3に開示される方法では、切り口を入れ階層構造を変化させることにより、入力端子からフリップフロップを経由せずに出力端子に至る経路があった場合に、階層構造を変化させる階層破壊や制約値再作成など特別な処理をすることなく、最適化処理を行うことができるというものである。
特許文献3の方法は階層構造を変化させるが、これは階層を通過するようなフリップフロップ間伝播信号の回避が目的であり、階層構造を変更した後においても、図9に示したように、少なくとも、フリップフロップから階層出口に至る経路及び階層出口から階層入り口に至る経路が残り、これら2つの経路に対する遅延の分配は避けられず、信号伝播遅延を複数に分割する必要があるという問題を解決するものではない。
また、非特許文献1では、外部の見積もり精度を向上させる目的で、ブロックの入出力に必ずフリップフロップによるレジスタを置く設計規則を推奨しているが、具体的な方法は明示されておらず、やはり、信号伝播遅延を複数に分割する必要があるという問題を解決するものではない。
本発明の第1の目的は、上記従来技術の欠点を解決し、階層構造を有する集積回路を最適化する際に、階層間を伝播するフリップフロップ間経路の伝播遅延の分配を不要とする、階層切り口を移動する集積回路階層設計システム及び集積回路階層設計プログラムを提供することにある。
本発明の第2の目的は、階層切り口の移動に伴う回路の階層外への移動を最小とする集積回路階層設計システム及び集積回路階層設計プログラムを提供することにある。
本発明の第3の目的は、上記階層構造の切り口を変更した際に、遅延検証、論理検証などを容易とする、回路構造の変換履歴を記憶する集積回路階層設計システム及び集積回路階層設計プログラムを提供することにある。
本発明の第1の集積回路階層設計システムは、集積回路を構成する階層のうち、上位の階層を介して、下位の階層に含まれるフリップフロップ間に位置する回路を最適化するための、集積回路階層設計システムであって、回路上に位置する、上位の階層と下位の階層の境界である階層切り口をフリップフロップとフリップフロップに隣接する回路との接続部に移動し回路上位の階層又は下位の階層の一方に含める階層切り口移動手段を備え、階層切り口の移動後に、回路が階層の外に出る割合を最小とするために、階層切り口の移動前に、回路論理を等価に保ったまま回路の複製である多重化回路を挿入する回路多重化手段を備え、下位の階層に含まれる信号伝播方向と逆方向側のフリップフロップが、フリップフロップ間に位置する回路と異なる他の複数の回路を介して他のフリップフロップに接続され、複数の回路及びフリップフロップが共に下位の階層に含まれ、複数の回路のうち何れか1つの回路の出力より分岐して接続された回路が上位の階層に含まれる場合、回路多重化手段が、1つの回路の複製である多重化回路を、1つの回路と分岐して接続された回路の間に挿入すると共に、階層切り口移動手段が、階層切り口の位置を多重化回路の入力に移動し、また分岐の位置を1つの回路の入力に変更する
本発明によれば、最初に、下位の階層に含まれるフリップフロップ間に位置する回路を抽出する。次に、抽出された回路について、前記回路上に位置する、下位の階層と上位の階層との境界である階層切り口を特定する。下位の階層に含まれるフリップフロップ間に位置する回路が1つの下位の階層から、上位の階層に入り、他の下位の階層に入る場合には、回路上に位置する階層切り口は、2ヶ所ある。これら2ヶ所の階層切り口の各々について、回路上の位置を特定し、階層切り口の回路上の位置が、前記フリップフロップと回路との接続部近傍の場合には、階層切り口の移動は不要である。
階層切り口の回路上の位置が、前記フリップフロップと回路との接続部近傍でない場合には、階層切り口を前記回路と前記フリップフロップとの接続部に移動する。このようにすることにより、階層切り口移動前は、1つの下位の階層と、上位の階層と、他の下位の階層の3つの階層に含まれていた前記回路は、階層切り口移動後は1つの上位の階層だけに含まれる。このため、回路部の伝播遅延解析は、階層切り口移動前は、前記1つの下位の階層と、上位の階層と、他の下位の階層の3つに分割して行う必要のあったものが、階層切り口移動後は、前記上位の階層の1つにまとめて行うことができるようになり、前記回路の伝播遅延の分配は不要となる。
本発明の集積回路階層設計システム及び集積回路階層設計プログラムによれば、以下の効果が達成される。
第1に、集積回路を構成する階層のうち、上位の階層を介して、下位の階層に含まれるフリップフロップ間に位置する回路を最適化する場合、回路上に位置する、上位の階層と下位の階層の境界である階層切り口をフリップフロップと回路との接続部近傍に移動して、回路を上位の階層又は他の下位の階層の一方に含めることにより、フリップフロップ間を接続する回路の伝播遅延の分配が不要となり、最適化処理を容易に精度良く行うことができる。
第2に、回路論理を等価に保ったままで、回路を多重化することにより、階層切り口の移動に伴う回路の階層外への移動を最小とすることができる。
第3に、上記階層切り口の位置を移動した際にも、フリップフロップの位置を記憶するためのバッファを挿入することにより、フリップフロップを移動する前の状態で回路を検証することが可能となり、遅延検証、論理検証などを精度良く行うことができる。
以下、本発明の好適な実施例について図面を参照して詳細に説明する。
図1は、本実施例による集積回路階層設計システムの構成を示すブロック図である。
図1を参照すると、本実施例による集積回路階層設計システムは、階層化回路入力手段1と、階層間フリップフロップ(FF)伝播経路検索手段2と、検証用アンカーバッファ挿入手段3と、仮階層切り口移動手段4と、階層化回路判定手段5と、回路多重化手段6と、階層切り口移動手段7と、階層切り口回路出力手段8による構成となっている。
階層化回路入力手段1は、複数の下位階層ブロック回路と、これらの階層ブロック回路を接続する回路から構成される、遅延解析の対象とする回路を入力することができる。
階層間フリップフロップ伝播経路検索手段2は、階層の異なるフリップフロップ間の伝播信号経路を検索することができる。
検証用アンカーバッファ挿入手段3は、タイミング検証及び論理検証をする際のキーパラメータとなるフリップフロップの位置を記憶するためのバッファを、フリップフロップの入力の近傍に挿入することができる。
仮階層切り口移動手段4は、各階層間フリップフロップ間伝播信号経路に対して、階層の切り口がフリップフロップの入力、または出力の近傍になるように仮に移動することができる。
階層化回路判定手段5は、階層内の回路規模が予め設定した回路規模を上回るかどうかを判定し、上回ると判定した場合には階層切り口回路出力手段8に処理を移行し、そうでない場合は回路多重化手段6に処理を移行する。
回路多重化手段6は、階層切り口の移動によって、階層外に出る回路の割合を最小化するために、回路論理を等価に保ったまま回路の複製を行い、多重化回路を挿入することができる。
階層切り口移動手段7は、多重化された回路を対象に、階層の切り口を、各階層間フリップフロップ伝播信号経路に対して、フリップフロップの入力、あるいは出力の近傍になるように階層の切り口を移動することができる。
階層切り口回路出力手段8は、全ての階層間フリップフロップ伝播経路に対して、階層の切り口が、フリップフロップの入力、あるいは出力の近傍となるように階層の切り口を移動した回路を出力することができる。
次に、本実施例による集積回路階層設計システムの処理の流れを簡略に説明する。
図2は、本実施例による集積回路階層設計システムの処理の流れを示すフローチャートである。
図2を参照すると、最初に、階層化回路入力手段1が、回路を下位階層に属する回路と下位階層に属さない回路に分割した、階層化した回路を入力する(ステップ501)。
次に、入力された階層化回路に対して、階層間フリップフロップ伝播経路検索手段2は全ての下位階層間をまたがるフリップフロップ間経路を検出する(ステップ502)。
この際、検証用のバッファを検証用アンカーバッファ挿入手段3により予め挿入する(ステップ503)。
次に、仮階層切り口移動手段4で、階層切り口をフリップフロップ出力の近傍に仮に移動する(ステップ504)。
ここで階層化回路判定手段5により、階層内の回路規模が予め設定した回路規模を上回るかどうかを判定し、階層切り口を再度移動するための多重化などの回路操作が必要かどうかを判定する(ステップ505)。
判定の結果、階層切り口を移動するための回路操作が必要な場合には(ステップ506)、回路多重化手段6に処理を移行する。
回路多重化手段6では、仮階層切り口移動手段4で移動した切り口を階層内部に残る回路を増やす目的で階層切り口を移動するため、回路論理を等価に保ったまま回路の多重化を行う(ステップ507)。
回路の多重化後、ステップ505に戻る。
次に、判定の結果、階層切り口を移動するような操作が不要な場合は(ステップ506)、仮移動した階層切り口を新階層切り口とする(ステップ508)。
階層切り口移動手段7による対象FFの入力側にバッファを挿入する(ステップ509)。
すべての下位階層間伝播経路に関して、遅延分配不要化が処理されているかどうかを、階層化回路判定手段5により判定する(ステップ510)。
判定の結果、処理されていない場合には、ステップ504に戻る。
判定の結果、全ての遅延分配不要化が処理されている場合には、階層切り口回路出力手段8により、結果を出力する(ステップ511)。
次に、図1を参照して、本実施例による集積回路階層設計システムの動作について詳細に説明する。
まず、階層化回路入力手段1が、複数の階層ブロック回路と、これらの階層ブロック回路間を接続する全ての回路を入力する。ここで階層ブロックは下位階層を言い換えた記述である。
次に、入力された回路の階層間を伝播する各信号伝播経路に沿って、その起点となるフリップフロップと、信号伝播経路、終点のフリップフロップを、階層間フリップフロップ伝播経路検索手段2で検索する。
なお、後から行うタイミング検証及び論理検証を容易にするために、フリップフロップの入力の近傍に、移動前のフリップフロップの位置を記憶するためのアンカーバッファを挿入する検証用アンカーバッファ挿入手段3が、ダミーの印を付けたバッファ(目印のための素子)を挿入する。検証用アンカーバッファ挿入手段3は、当該バッファに、近傍のフリップフロップの名称と所属階層名を確定できる識別情報を付与する。
このようにすることにより、フリップフロップが移動した後でも、移動前のフリップフロップの位置を容易に確定することができる。
次に、入力された回路に対して、仮階層切り口移動手段4が、全ての階層間フリップフロップ伝播経路に対して、階層の切り口がフリップフロップの入力の近傍、あるいは出力の近傍となるように、階層切り口を移動する。仮階層切り口移動手段4による階層切り口の移動は回路多重化前の仮の移動であって、最終の階層切り口の位置とならない場合がある。
階層化回路判定手段5は、階層内に残る回路規模が予め設定した回路規模を上回るかどうかを判定し、上回る場合には階層切り口回路出力手段8に処理が移り、そうでない場合は回路多重化手段6に処理を移行する。
また、回路多重化手段6を予め指定された回数の適用をしたものの、予め与えられた回路規模に満たない場合にも、階層切り口出力手段8に処理を移行する。
仮階層切り口移動手段4により、移動された切り口では、階層内に残る回路が非常に小さくなってしまうため、階層化回路判定手段5による判定の後、階層内に残る回路を増やす目的で、回路多重化手段6が回路を多重化する。
このように一部を多重化した回路に対して、改めてフリップフロップの入力の近傍、あるいは出力の近傍が階層の切り口になるように、階層の切り口を階層切り口移動手段7で移動させる。移動後、階層化回路判定手段5に処理を移し、多重化などが再度必要かどうかを判定する。
次に、以上に述べた集積回路階層設計システムの特長を説明する。
本発明の集積回路階層設計システムによれば、階層間をまたがるフリップフロップ間に位置する回路に対して、仮階層切り口移動手段4又は階層切り口移動手段7を用いて、階層切り口をフリップフロップと回路との接続部近傍に移動し、回路を上位の階層又は下位の階層の一方に含める。
このため、階層間をまたがるフリップフロップ間伝播経路に対して、フリップフロップから階層出口と、階層出口から階層入り口と、階層入り口からフリップフロップまでの3つの経路部での伝播遅延の調整を行う必要がなくなり、階層出口から階層入口迄の1つの伝播遅延の調整さえ行えばよい。
また、階層切り口の移動に伴って階層内に残る回路が極端に小さくなってしまう場合があるが、それを回路多重化手段6が、多重化によって防止する。一例であるが、ある回路では、仮階層切り口移動手段4を使うと、階層内に残る回路は全体の5%程度になってしまう。しかし、回路多重化手段7を使えば、多重化によって回路規模は全体で24%増大するが、階層内に残る回路は80%まで増加する。
さらに、このような階層切り口の移動によって、フリップフロップが多重化されたり、移動してしまうことによって、論理検証や遅延検証が困難、複雑になることが予想されるが、検証用アンカーバッファ挿入手段3が挿入するバッファによって、移動前のフリップフロップの位置を記憶するため、フリップフロップを移動する前の状態で回路を検証することが可能となり、検証が容易となる。
次に、本実施例による具体的な動作例について説明する。
図3は、本実施例を説明するための階層構造に構成された集積回路を示すブロック図である。
図3を参照すると、階層化回路入力手段1において入力された、階層構造を持つ回路において、階層間フリップフロップ伝播経路検索手段2により、階層X100内のフリップフロップA(FFA)101の出力から、階層Y150内のフリップフロップB105の入力に至る経路が検索される。
この経路では、信号は階層X100のフリップフロップA101から出力され、回路P102を経由して、階層切り口11で階層X100の外に出た後、上位階層Z10に属する回路Q103を経由して、階層切り口12で階層Y150に入り、回路R104を経由して、フリップフロップB105の入力に伝播する。
このような経路の場合、階層を個別に設計するため、フリップフロップ間の遅延制約を、回路P102の伝播遅延Pと、回路Q103の伝播遅延Qと、回路R104の伝播遅延Rに分配する必要がある。
ところが、この分配した遅延制約は、予測に基づいた分配か、実測に基づく制約しか与えられないため、分配を正確に決定することは非常に困難である。そのため、例えば、余裕のある(目標値よりも遅延の短い)伝播遅延Pに大きな値を制約として割り当てたり、余裕のない伝播遅延Qに厳しい制約を割り当てるなどの場合が発生する。
図4は、本実施例を説明するための階層切り口の移動を示す図である。
図4を参照すると、図3に示した階層X100の階層切り口11をフリップフロップA101の出力の近傍に移動し階層切り口13に変更すると、切り口移動前の階層X100は新しい階層X110に変更され、回路P102は階層Z10に含まれるようになる。
同様に、図3に示した階層Y150の階層切り口12をフリップフロップB105の入力の近傍に移動し、階層切り口14に変更すると、切り口移動前の階層Y150は新しい階層Y160に変更され、回路R104は階層Z10に含まれるようになる。
このようにすることによって、回路P102、回路Q103、回路R104が1つの階層に含まれるようになり、従来方法のような遅延制約の分配は不要となる。このような階層切り口の移動は、回路の多重化の操作前は、仮階層切り口移動手段4により、また、回路の多重化の操作以降は階層切り口移動手段7により行う。
しかし、このような階層切り口の移動は、常によい結果をもたらすとは限らない。
図5は、本実施例を説明するための階層切り口の移動を示す図である。
図5を参照すると、階層W20に含まれる回路は、フリップフロップC201、回路E202、回路F203、フリップフロップD204、回路H205及び回路G206で構成される。回路G206は回路E202の出力より分岐している。
なお、階層W20は、図3に示した階層X100に相当する。このため、図の右端は図3の階層切り口11に相当する。
図4に示した方法を、図5の階層W20の回路に適用することを検討する。
この場合、回路H205を上位階層に出して、フリップフロップD204の出力の近傍に階層切り口U22を入れる方法が考えられる。なお、この段階では階層切り口V21は挿入されていない。
しかし、フリップフロップC201に対しては、階層切り口U22の位置では、回路E202と回路G206の間に階層切り口U22が存在し、フリップフロップの出力の近傍に階層の切り口がある状態とはならない。
そこで、回路E202、回路F203、フリップフロップD204、回路H205、回路G206を階層W20の外に出し、階層切り口U22の位置から階層切り口V21の位置に新しい階層切り口を移動させる必要がある。しかし、新しい階層切り口を階層切り口V21の位置に挿入すると、階層W20に最初に存在した回路はフリップフロップC201を除いて、全て階層W20の外に出てしまう。
このような階層内回路のほとんどが階層外に出てしまう状況を防止するため、回路多重化を用いる。
なお、回路E202から分岐する回路G206がない場合には、階層切り口U22の位置で回路H205に接続する回路が図3に示した階層Z10に含まれることになり、フリップフロップD204の出力に接続する回路が1つの階層に含まれることにより、この状態で伝播遅延分配は不要となる。
図6は、本実施例を説明するための回路の多重化を示す図である。
図6を参照すると、回路E202の多重化コピーである回路E’252を生成する。回路の多重化は回路多重化手段6が行う。回路の多重化は回路論理を等価に保ったまま、回路を挿入することにより行われる。
回路E202のコピーである回路E’252を挿入することにより、フリップフロップC201の出力も回路を介さずに階層切り口に接続するようになるが、フリップフロップC201の出力と階層切り口U22の近傍とはなっていない。そこで、次の多重化を行う。
図7は、本実施例を説明するための回路の多重化を示す図である。
図7を参照すると、フリップフロップC201の多重化コピーであるフリップフロップC’251を生成することによって、階層切り口U22の位置でもフリップフロップD204の出力とフリップフロップC201の出力が共に階層の近傍に位置するように階層構造を生成することができる。
階層切り口移動手段7による階層切り口の移動は、フリップフロップの多重化や、フリップフロップの階層間移動を伴うので、階層切り口移動前のフリップフロップの位置が消滅してしまい、論理検証やタイミング検証の際に困難が生じる。そこで、このような問題を起こさないために、フリップフロップの入力に切り口移動前のフリップフロップの位置を示すバッファを、検証用アンカーバッファ挿入手段3が挿入し、それにフリップフロップの名前や階層位置を記憶させておく。
図8は、本実施例を説明するためのバッファの挿入を示す図である。
図8を参照すると、検証用アンカーバッファ挿入手段3は、フリップフロップE301の入力にバッファ401を挿入し、フリップフロップの多重化が発生して、フリップフロップE301のコピーであるフリップフロップE’351が生成した場合においても、バッファ401を使って元のフリップフロップの位置が保存されることを示している。
以上説明した実施例によれば、下位階層X100、下位階層Y150に配置されたフリップフロップA101、フリップフロップB105間に位置する回路を最適化する場合、階層切り口11、12をそれぞれフリップフロップA101、フリップフロップB105と回路との接続部近傍に移動し、回路を上位の階層Z10に含めることにより、フリップフロップ間を接続する回路の伝播遅延の分配が不要となり、最適化処理を容易に精度良く行うことができる。
上記実施例では、下位階層のフリップフロップ間に位置する回路を上位階層に含めて伝播遅延の分配を不要とする例について説明したが、上位階層の代わりに当該下位階層とは別の下位階層に当該回路を含めることによっても、上記実施例と同様に伝播遅延の分配を不要とすることができる。
本発明の集積回路階層設計システムは、その動作をハードウェア的に実現することは勿論として、上述した各手段を実行する集積回路階層設計プログラム(アプリケーション)50をコンピュータ処理装置である集積回路階層設計システムで実行することにより、ソフトウェア的に実現することができる。この集積回路階層設計プログラム50は、磁気ディスク、半導体メモリその他の記録媒体に格納され、その記録媒体から集積回路階層設計システムにロードされ、その動作を制御することにより、上述した各機能を実現する。
以上好ましい実施例をあげて本発明を説明したが、本発明は必ずしも、上記実施例に限定されるものでなく、その技術的思想の範囲内において様々に変形して実施することができる。
本発明の実施例による集積回路階層設計システムの構成を示すブロック図である。 本発明の実施例による集積回路階層設計システムの処理の流れを示すフローチャートである。 本発明の実施例を説明するための階層構造に構成された集積回路を示す図である。 本発明の実施例を説明するための階層切り口の移動を示す図である。 本発明の実施例を説明するための階層切り口の移動を示す図である。 本発明の実施例を説明するための回路の多重化を示す図である。 本発明の実施例を説明するための回路の多重化を示す図である。 本発明の実施例を説明するためのバッファの挿入を示す図である。 従来技術を説明するための図である。
符号の説明
1:階層化回路入力手段
2:階層間フリップフロップ伝播経路検索手段
3:検証用アンカーバッファ挿入手段
4:仮階層切り口移動手段
5:階層化回路判定手段
6:回路多重化手段
7:階層切り口移動手段
8:階層切り口回路出力手段
10:階層Z
11、12、13、14:階層切り口
20:階層W
21:階層切り口V
22:階層切り口U
50:集積回路階層設計プログラム
100、110:階層X
101:FFA(フリップフロップA)
102:回路P
103:回路Q
104:回路R
105:FFB(フリップフロップB)
106:回路ブロックPQR
150、160:階層Y
201:FFC(フリップフロップC)
202:回路E
203:回路F
204:FFD(フリップフロップD)
205:回路H
206:回路G
251:FFC’(フリップフロップC’)
252:回路E’
301:FFE(フリップフロップE)
351:FFE’(フリップフロップE’)
401:アンカーバッファ
FF1、FF2、FF3、FF4:フリップフロップ
G1、G2、G3、G4、G5:論理素子
SUB2’、SUB3’、SUB4’:階層回路

Claims (10)

  1. 集積回路を構成する階層のうち、上位の階層を介して、下位の階層に含まれるフリップフロップ間に位置する回路を最適化するための、集積回路階層設計システムであって、
    前記回路上に位置する、前記上位の階層と前記下位の階層の境界である階層切り口を前記フリップフロップと前記フリップフロップに隣接する前記回路との接続部に移動し、前記回路を前記上位の階層又は下位の階層の一方に含める階層切り口移動手段を備え、
    前記階層切り口の前記移動後に、前記回路が前記階層の外に出る割合を最小とするために、前記階層切り口の前記移動前に、回路論理を等価に保ったまま回路の複製である多重化回路を挿入する回路多重化手段を備え、
    前記下位の階層に含まれる信号伝播方向と逆方向側のフリップフロップが、前記フリップフロップ間に位置する回路と異なる他の複数の回路を介して他のフリップフロップに接続され、前記複数の回路及び前記フリップフロップが共に前記下位の階層に含まれ、前記複数の回路のうち何れか1つの回路の出力より分岐して接続された回路が前記上位の階層に含まれる場合、前記回路多重化手段が、前記1つの回路の複製である多重化回路を、前記1つの回路と前記分岐して接続された回路の間に挿入すると共に、前記階層切り口移動手段が、前記階層切り口の位置を前記多重化回路の入力に移動し、また前記分岐の位置を前記1つの回路の入力に変更することを特徴とする集積回路階層設計システム。
  2. 前記回路がフリップフロップである場合、前記回路の入力に前記回路の名称又は前記回路の階層内での位置を記憶させるバッファ回路を挿入するバッファ挿入手段を備えることを特徴とする請求項1に記載の集積回路階層設計システム。
  3. 前記階層切り口移動手段が、前記フリップフロップ間に位置する回路上の複数の階層切り口のうち、信号伝播方向と逆方向側に位置する階層切り口を、前記逆方向側に配置されたフリップフロップの出力に移動することを特徴とする請求項1に記載の集積回路階層設計システム。
  4. 前記階層切り口移動手段が、前記回路上の複数の階層切り口のうち、信号伝播方向側に位置する階層切り口を、前記信号伝播方向側に配置されたフリップフロップの入力に移動することを特徴とする請求項3に記載の集積回路階層設計システム。
  5. 前記フリップフロップの出力より分岐して接続された回路が前記上位の階層に含まれる場合、前記回路多重化手段が、前記フリップフロップの複製である多重化回路を、前記フリップフロップと前記分岐して接続された回路の間に挿入すると共に、前記階層切り口移動手段が、前記階層切り口の位置を前記多重化回路の出力に移動し、また前記分岐の位置を前記フリップフロップの入力に変更することを特徴とする請求項1に記載の集積回路階層設計システム。
  6. コンピュータ上で実行され、集積回路を構成する階層のうち、上位の階層を介して、下位の階層に含まれるフリップフロップ間に位置する回路を最適化するための、集積回路階層設計プログラムであって、
    前記回路上に位置する、前記上位の階層と前記下位の階層の境界である階層切り口を前記フリップフロップと前記フリップフロップに隣接する前記回路との接続部に移動して、前記回路を前記上位の階層又は下位の階層の一方に含める機能を実行し、
    前記階層切り口の前記移動後に、前記回路が前記階層の外に出る割合を最小とするために、前記階層切り口の前記移動前に、回路論理を等価に保ったまま回路の複製である多重化回路を挿入する機能を有し、
    前記下位の階層に含まれる信号伝播方向と逆方向側のフリップフロップが、前記フリップフロップ間に位置する回路と異なる他の複数の回路を介して他のフリップフロップに接続され、前記複数の回路及び前記フリップフロップが共に前記下位の階層に含まれ、前記複数の回路のうち何れか1つの回路の出力より分岐して接続された回路が前記上位の階層に含まれる場合、前記1つの回路の複製である多重化回路を、前記1つの回路と前記分岐して接続された回路の間に挿入すると共に、前記階層切り口の位置を前記多重化回路の入力に移動し、また前記分岐の位置を前記1つの回路の入力に変更する機能を有することを特徴とする集積回路階層設計プログラム。
  7. 前記回路がフリップフロップである場合、前記回路の入力に前記回路の名称又は前記回路の階層内での位置を記憶させるバッファ回路を挿入する機能を有することを特徴とする請求項6に記載の集積回路階層設計プログラム。
  8. 前記フリップフロップ間に位置する回路上の複数の階層切り口のうち、信号伝播方向と逆方向側に位置する階層切り口を、前記逆方向側に配置されたフリップフロップの出力に移動する機能を有することを特徴とする請求項6に記載の集積回路階層設計プログラム。
  9. 前記回路上の複数の階層切り口のうち、信号伝播方向側に位置する階層切り口を、前記信号伝播方向側に配置されたフリップフロップの入力に移動する機能を有することを特徴とする請求項8に記載の集積回路階層設計プログラム。
  10. 前記フリップフロップの出力より分岐して接続された回路が前記上位の階層に含まれる場合、前記フリップフロップの複製である多重化回路を、前記フリップフロップと前記分岐して接続された回路の間に挿入すると共に、前記階層切り口の位置を前記多重化回路の出力に移動し、また前記分岐の位置を前記フリップフロップの入力に変更する機能を有することを特徴とする請求項6に記載の集積回路階層設計プログラム。
JP2004202554A 2004-07-09 2004-07-09 集積回路階層設計システム及び集積回路階層設計プログラム Expired - Fee Related JP4389701B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2004202554A JP4389701B2 (ja) 2004-07-09 2004-07-09 集積回路階層設計システム及び集積回路階層設計プログラム
US11/176,211 US7401309B2 (en) 2004-07-09 2005-07-08 Integrated circuit hierarchical design system, integrated circuit hierarchical design program and integrated circuit hierarchical design method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004202554A JP4389701B2 (ja) 2004-07-09 2004-07-09 集積回路階層設計システム及び集積回路階層設計プログラム

Publications (2)

Publication Number Publication Date
JP2006024053A JP2006024053A (ja) 2006-01-26
JP4389701B2 true JP4389701B2 (ja) 2009-12-24

Family

ID=35540413

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004202554A Expired - Fee Related JP4389701B2 (ja) 2004-07-09 2004-07-09 集積回路階層設計システム及び集積回路階層設計プログラム

Country Status (2)

Country Link
US (1) US7401309B2 (ja)
JP (1) JP4389701B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11232458B2 (en) * 2010-02-17 2022-01-25 JBF Interlude 2009 LTD System and method for data mining within interactive multimedia
US8549461B2 (en) * 2010-12-09 2013-10-01 Synopsys, Inc. Generation of independent logical and physical hierarchy

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2993239B2 (ja) * 1991-11-28 1999-12-20 株式会社日立製作所 階層間ディレイ配分方法
JP2943491B2 (ja) 1992-03-16 1999-08-30 日本電気株式会社 遅延設計方式
JPH0676012A (ja) 1992-04-22 1994-03-18 Nec Corp 階層データ構造の展開データ格納方式
JPH07114580A (ja) * 1993-10-18 1995-05-02 Fujitsu Ltd 論理装置の遅延時間解析システム
US5475607A (en) * 1994-04-12 1995-12-12 International Business Machines Corporation Method of target generation for multilevel hierarchical circuit designs
US5778216A (en) * 1995-06-30 1998-07-07 Cadence Design Systems, Inc. Method for hierarchical time drive circuit layout by rebudgeting timing constraints of plurality of logical blocks after placement
JPH0962716A (ja) * 1995-08-18 1997-03-07 Sony Corp 回路設計方法及び回路設計装置
US5831869A (en) * 1995-12-15 1998-11-03 Unisys Corporation Method of compacting data representations of hierarchical logic designs used for static timing analysis
US5790830A (en) * 1995-12-29 1998-08-04 Synopsys, Incorporated Extracting accurate and efficient timing models of latch-based designs
JP2874628B2 (ja) * 1996-01-30 1999-03-24 日本電気株式会社 論理回路の最適化装置及びその方法
US6430726B1 (en) * 1997-12-19 2002-08-06 Nec Corporation Logic circuit synthesizing method and logic synthesizing system
US6295636B1 (en) * 1998-02-20 2001-09-25 Lsi Logic Corporation RTL analysis for improved logic synthesis
US6336205B1 (en) * 1998-11-12 2002-01-01 Matsushita Electric Industrial Co., Ltd. Method for designing semiconductor integrated circuit
JP3090136B2 (ja) * 1999-01-25 2000-09-18 日本電気株式会社 論理合成用制約生成処理装置及び論理合成用制約生成処理方法
JP2001357090A (ja) * 2000-06-13 2001-12-26 Hitachi Ltd 論理合成方法及び論理合成装置
JP4690527B2 (ja) * 2000-07-19 2011-06-01 ルネサスエレクトロニクス株式会社 ブロックピンの位置決定方法およびその方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体
JP3555569B2 (ja) * 2000-09-08 2004-08-18 日本電気株式会社 論理回路最適化方法、装置およびプログラムを記録した記録媒体
JP4031905B2 (ja) * 2000-11-09 2008-01-09 富士通株式会社 回路設計装置及び回路設計方法

Also Published As

Publication number Publication date
JP2006024053A (ja) 2006-01-26
US7401309B2 (en) 2008-07-15
US20060006473A1 (en) 2006-01-12

Similar Documents

Publication Publication Date Title
US7131081B2 (en) Scalable scan-path test point insertion technique
US7017132B2 (en) Methodology to optimize hierarchical clock skew by clock delay compensation
CN106096070B (zh) 使用去填充和再填充操作来实现集成电路设计
JP3001403B2 (ja) 論理回路のレイアウト方法
CN106503282B (zh) 集成电路设计的增量寄存器重定时
JPH1140677A (ja) クロストークエラー改善方式及び方法
US6480996B1 (en) System and method for transposing wires in a circuit design
US6763513B1 (en) Clock tree synthesizer for balancing reconvergent and crossover clock trees
JP4918934B2 (ja) 半導体集積回路の遅延解析装置及び遅延解析方法並びにそのプログラム
US6564353B2 (en) Method and apparatus for designing a clock distributing circuit, and computer readable storage medium storing a design program
JP4389701B2 (ja) 集積回路階層設計システム及び集積回路階層設計プログラム
US7028272B2 (en) Reducing cell library development cycle time
KR100317543B1 (ko) 테스트용이화설계방법과장치,정보기억매체및집적회로장치
JP2001337143A (ja) 論理回路における故障箇所推定システム、及び、故障箇所推定方法、並びに、記録媒体
JP2010073136A (ja) ホールドタイムエラーの収束方法、収束装置、及び収束プログラム
US6532584B1 (en) Circuit synthesis method
WO2009110615A1 (ja) 半導体集積回路の設計装置、半導体集積回路の設計方法、並びに半導体集積回路を設計するコンピュータ・プログラム
US6507939B1 (en) Net delay optimization with ramptime violation removal
JP4587754B2 (ja) クロック合成方法、半導体装置及びプログラム
US6109201A (en) Resynthesis method for significant delay reduction
JPH10154793A (ja) 半導体集積回路のレイアウト設計方法
US6519746B1 (en) Method and apparatus for minimization of net delay by optimal buffer insertion
US20030066000A1 (en) Failure propagation path estimate system
US20180285486A1 (en) Method to synthesize a cross bar switch in a highly congested environment
WO2010101029A1 (ja) 半導体集積回路設計装置、半導体集積回路設計方法、及び半導体集積回路設計プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070313

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090623

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090626

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090825

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090915

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090928

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121016

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4389701

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131016

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees