JP6070100B2 - 回路設計方法、回路設計プログラムおよび回路設計装置 - Google Patents

回路設計方法、回路設計プログラムおよび回路設計装置 Download PDF

Info

Publication number
JP6070100B2
JP6070100B2 JP2012253541A JP2012253541A JP6070100B2 JP 6070100 B2 JP6070100 B2 JP 6070100B2 JP 2012253541 A JP2012253541 A JP 2012253541A JP 2012253541 A JP2012253541 A JP 2012253541A JP 6070100 B2 JP6070100 B2 JP 6070100B2
Authority
JP
Japan
Prior art keywords
flip
groups
group
flop
circuit design
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
JP2012253541A
Other languages
English (en)
Other versions
JP2014102640A (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.)
Socionext Inc
Original Assignee
Socionext Inc
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 Socionext Inc filed Critical Socionext Inc
Priority to JP2012253541A priority Critical patent/JP6070100B2/ja
Publication of JP2014102640A publication Critical patent/JP2014102640A/ja
Application granted granted Critical
Publication of JP6070100B2 publication Critical patent/JP6070100B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Design And Manufacture Of Integrated Circuits (AREA)

Description

本発明は、回路設計方法、回路設計プログラムおよび回路設計装置に関し、例えば、フリップフロップを配置する回路設計方法、回路設計プログラムおよび回路設計装置に関する。
高集積回路には、複数のクロック周波数で動作する複数のフリップフロップ(FF:Flip Flop)が用いられている。FFはリセット信号によりリセットされる。FFを複数のグループに分けて配置することが知られている(例えば、特許文献1から3)
特開平3−43811号公報 特開2005−182378号公報 特開平7−142963号公報
異なるクロック周波数が供給される複数のFFにリセット信号を分配すると、クロックスキューが生じることがある。例えば、クロックスキューがクロック周期を越えてしまうと、FFが正常に動作しない。このように、クロックスキューがクロック周期を越えないように、集積回路上のFFの配置を行なう。しかしながら、クロックスキューを所定内に収めるようにFFを配置することが難しくなることがある。
本回路設計方法、回路設計プログラムおよび回路設計装置は、FFを容易に配置することを目的とする。
複数の第1フリップフロップを、クロック周波数ごとに複数の第1グループにグループ分けするステップと、前記複数の第1グループごとに、前記複数の第1フリップフロップにリセット信号を供給する第2フリップフロップを配置するステップと、前記第2フロップフリップから対応する第1グループに含まれる前記複数の第1フリップフロップへの前記リセット信号の遅延時間が所望値を満足しない場合、前記対応する第1グループを複数の第2グループにグループ分けするステップと、前記複数の第2グループごとに、前記第2フリップフロップを配置するステップと、を含むことを特徴とする回路設計方法、回路設計プログラムおよび回路設計装置を用いる。
本回路設計方法、回路設計プログラムおよび回路設計装置によれば、FFを容易に配置することができる。
図1は、クロックツリーについて説明する図である。 図2は、同期リセット回路について説明する図である。 図3は、実施例1に係る回路設計装置として機能するコンピュータのブロック図である。 図4は、実施例1が用いられる集積回路の設計フローを示すフローチャートである。 図5は、実施例1に係る回路設計方法を示すフローチャートである。 図6は、実施例1に係る回路設計方法により配置されたFFの同期リセット回路を示す図である。 図7は、実施例2に係る回路設計方法を示すフローチャートである。 図8(a)から図8(f)は、データ構造を示す図である。 図9(a)から図9(c)は、FFの配置を示す図である。 図10は、余裕時間を説明する図である。 図11は、図7のステップS42における回路設計方法を示すフローチャートである。 図12(a)から図12(c)は、FFの配置を示す図である。 図13は、データ構造を示す図である。 図14は、図11のステップS60における回路設計方法を示すフローチャートである。 図15(a)から図15(c)は、FFの配置を示す図である。 図16は、データ構造を示す図である。
図1は、クロックツリーについて説明する図である。図1を参照し、1つの集積回路100には、例えば数万から数百万個の第1FF31および32が配置される。PLL(Phase
Locked Loop)等の発振器39は、クロックを出力する。FF34は、第1FF31に高周波数クロック信号CKHを供給するFFである。FF34のクロック端子CKにクロックが入力する。FF34の出力端子Qから出力された信号はインバータ37を介しFF34のデータ端子Dに入力する。これにより、FF34は、発振器39の出力信号を1回分周して出力する。FF34の出力は、各第1FF31のクロック端子CKに入力する。FF35は、第1FF32に低周波数クロック信号CKLを供給するFFである。FF35のクロック端子CKにFF34の出力が入力する。FF35の出力端子Qから出力された信号はインバータ37を介しFF35のデータ端子Dに入力する。これにより、FF35は、FF34の出力信号を1回分周して出力する。FF35の出力は、各第1FF32のクロック端子CKに入力する。バッファ38は、クロック信号の駆動能力を向上させる。
以上により、第1FF31には、発振器39の発振周波数の1/2の周波数の高周波数クロック信号CKHが入力する。第1FF32には、発振器39の発振周波数の1/4の低周波数クロック信号CKLが入力する。集積回路100には、発振器39の発振周波数の1/8、1/16等の3以上の周波数のクロック信号が用いられる場合もある。しかしながら、簡単に説明するため、以下の実施例においては、2つのクロック周波数の場合を例に説明する。
図2は、同期リセット回路について説明する図である。図1において説明したように第1FF31および32は、クロック周波数が異なる。図2を参照し、第1FF31は高周波数クロック信号CKHで動作し、第1FF32は低周波数クロック信号CKLで動作する。第2FF33は、クロック端子CKに高周波数クロック信号CKHが入力し、第1FF31および32のリセット端子Rにリセット信号Resetを供給する。リセット信号Resetは、FF間のリセットの同期をとるための同期リセット信号である。バッファ35は、リセット信号Resetの駆動能力を向上させる。
図1のように、周波数の異なるクロック信号は、クロック信号の生成場所が異なる。また、駆動する第1FF31および32の数が異なる。また、低周波数クロック信号CKLは、高周波数クロック信号CKHから生成される。これらにより、周波数の異なるクロック信号間でクロックスキューが発生し易くなる。これにより、FFを集積回路に配置する際に、クロック信号のタイミング収束が難しくなる。例えば、クロック信号のタイミングが規定内に収まるようFFを配置することが難しくなる。さらに、リセット信号の収束も難しくなる。例えば、リセット信号のタイミングが規定内に収まるようFFを配置することが難しくなる。よって、集積回路上へのFFの配置が難しくなる
以下に、集積回路上へのFFの配置を容易とする実施例について説明する。
図3は、実施例1に係る回路設計装置として機能するコンピュータのブロック図である。コンピュータ10は、回路設計方法および回路設計プログラムを実行する。コンピュータ10は、プロセッサであるCPU(Central
Processing Unit)11、表示装置12、入力装置13および出力装置14を備えている。さらに、コンピュータ10は、主記憶装置15、ハードディスクドライブ(HDD)16、記憶媒体用ドライブ17、通信インターフェース18および内部バス19を備えている。表示装置12は、例えば液晶パネル等の表示パネルを含み、処理結果等を表示する。入力装置13は、例えばキーボード、マウスおよびタッチパネル等であり、処理データ等を入力する。出力装置14は、例えばプリンタであり、処理結果等を出力する。主記憶装置15は、例えばDRAM(Dynamic
Random Access Memory)等の揮発性メモリであり、処理中のデータを記憶する。HDD16は、例えば処理中または処理後のデータを記憶する。記憶媒体用ドライブ17は、記憶媒体21に格納されたプログラムをインストールする際に用いる。または、処理後のデータを記憶媒体21に記憶させる。通信インターフェース18は、他のコンピュータ20と接続し、他のコンピュータ20とデータの送受信を行なう。内部バス19は、コンピュータ10内の各装置を接続する。コンピュータ10は、ソフトウエアと協働し、第1ユニットおよび第2ユニットとして機能する。
プログラムを格納するコンピュータ10が読み取り可能な記憶媒体21として可搬型記憶媒体を用いることができる。可搬型記憶媒体としては、例えば、CD−ROM(Compact
Disc Read Only Memory)ディスク、DVD(Digital Video Disc)ディスク、ブルーレイディスクまたはUSB(Universal
Serial Bus)メモリ等を用いることができる。記憶媒体21として、フラッシュメモリまたはHDD等を用いてもよい。
図4は、実施例1が用いられる集積回路の設計フローを示すフローチャートである。図4を参照し、FFのネットワークを示すネットリストと、FFのクロック周波数および位置情報を含むSDC(Synopsys
Design Constraints)等を用い初期のFF配置を行なう(ステップS10)。例えば、フロアプランを用い、ハードマクロの位置を検証し、ネットリスト上の全てのセルの配置をフレーム上に実施する。次に、CTS(Clock
Tree Synthesys)前のFF配置の最適化を行なう(ステップS12)。例えば、クロックが同期したレジスタおよびハードマクロにクロック信号のスキューが0として、DRC(Design
Rule Check)のエラー修正、タイミングの最適化、面積の削減および消費電力ー削減を行なう。次に、クロックツリーを作成する(ステップS14)。例えば、クロック信号用のバッファ等を配置する。
次に、CTS後のデータに最適化を行なう(ステップS16)。クロック信号のスキューは実際の値となる。この状態で、DRCのエラー修正、タイミングの最適化、面積の削減および消費電力ー削減を行なう。次に、データに対して配線処理を行なう(ステップS18)。例えば、各セルおよび各ハードマクロのデジタル信号端子に対し、タイミングを考慮しながら、配線処理を行なう。これにより、ソフトウエア上において各セルおよび各ハードマクロが物理的な配線で繋がる。
実施例1および2は、例えばステップS12および/またはS16におけるタイミングの最適化において用いられる。
図5は、実施例1に係る回路設計方法を示すフローチャートである。図6は、実施例1に係る回路設計方法により配置されたFFの同期リセット回路を示す図である。複数の第1FF31が配置されている。図5および図6に示すように、第1ユニットは、配置された複数の第1FF31および32を、クロック周波数ごとの第1グループ41および42にグループ分けする(ステップS20)。例えば第1グループ41内の第1FF31は、高周波数クロック動作するFFであり、第1グループ42内の第1FF32は、低周波数クロック動作するFFである。第2ユニットは、第1グループ41および42ごとに複数の第1FF31および32にリセット信号Resetを供給する第2FF33aから33cを配置する(ステップS22)。例えば、第1グループ41は、さらに第2グループ43および44に分割されている。第2グループ43内の第1FF31は、第2FF33aの出力端子からリセット信号Resetの供給を受ける。第2グループ44内の第1FF31は、第2FF33bの出力端子からリセット信号Resetの供給を受ける。第1グループ42内の第1FF32は、第2FF33cの出力端子からリセット信号Resetの供給を受ける。
実施例1によれば、クロック周波数ごとに複数の第1FF31および32にリセット信号Resetを供給する第2FF33aから33cを配置する。これにより、リセット信号のタイミングが収束しやすくなる。よって、第2FF33aから33cの配置が容易となる。
実施例2は、実施例1の具体例である。実施例2として機能するコンピュータは、実施例1の図3と同じであり説明を省略する。実施例2が用いられる集積回路の設計フローを示すフローチャートは、実施例1の図4と同じであり説明を省略する。
図7は、実施例2に係る回路設計方法を示すフローチャートである。図8(a)から図8(f)は、データ構造を示す図である。図9(a)から図9(c)は、FFの配置を示す図である。図7を参照し、コンピュータ10はネットリスト、SDC、DEF(Definition)、Lib(Library)を用い、以下のフローを行なう。DEFは、セルの配置座標、電源配線、信号配線の情報を含む。Libは、セルの遅延時間、セットアップおよびホールド等の規格値、電力情報を含む。コンピュータ10は、第1FF31および32並びに第2FF33を配置する(ステップS30)。例えば、図8(a)に示すように、コンピュータ10は、集積回路全体のリセットおよびプリセット付き第1FFを抽出する。図8(a)の例では、第1FF31は、Reg1からReg4であり、それぞれのクロック周波数は270MHz、270MHz、60MHzおよび60MHzである。位置情報は、各第1FF31が配置される座標を示しており、例えばX座標およびY座標を示している。コンピュータ10は、第1FF、周波数及び位置情報を例えばHDD16内のデータベースに記憶する。図8(b)に示すように、第1FF31にリセット信号を供給する第2FF33を抽出する。第2FF33は、Reg01であり、クロック周波数は270MHzである。コンピュータ10は、第2FF、周波数及び位置情報をデータベースに記憶する。図9(a)に示すように、第1FF31および第2FF33を配置する。第2FF33の前段のFFは第3FF50である。
コンピュータ10は、第1FF31と第2FF33との位置情報と、ファンアウト(F/O)数と、から、バッファ36を配置した後の遅延時間を予想する。図8(c)は、遅延時間の予想のためのテーブル例である。図8(c)に示すように、第2FF33から第1FF31を接続する配線の総配線長と第2FF33のファンアウト数と、リセット信号Resetの遅延時間と、が対応付けられている。図8(c)のテーブルは、例えばHDD16にデータベースとして記憶されている。これにより、第2FF33に接続される総配線長およびファンアウト数が決まれば、遅延時間が予想できる。なお、図8(c)のテーブルは、例えばバッファ36を配置した後のものである。図8(d)に示すように、第2FF33であるReg01から第1FF31であるReg1からReg4へのリセット信号の遅延時間はそれぞれ8nsと予想される。コンピュータ10は、遅延時間をデータベースに記憶する。
図7を参照し、コンピュータ10は、各第1FF31における遅延時間が所望値を満足するかを判断する(ステップS32)。例えば、コンピュータ10は、予想した各第1FF31の予想遅延時間がタイミングコンストレイントに違反するかを判断する。違反する場合Noと判断する。違反しない場合Yesと判断する。ここで、タイミングコンストレイントは、各FFにおけるリセット信号等のタイミングの許容範囲を規定したものである。Yesの場合、終了する。Noの場合、コンピュータ10は、再度、第2FF33を配置する(ステップS34)。
例えば、コンピュータ10は、第2FF33の第3FF50とのタイミングの余裕時間を取得する。図10は、余裕時間を説明する図である。図10に示すように、第1FF31にリセット信号Resetを供給する第2FF33のデータ端子Dには、前段の第3FF50の出力端子Qからの信号が入力する。コンピュータ10は、第3FF50と第2FF33とを接続する配線長T1から信号の遅延時間を算出する。コンピュータ10は、第2FF33に許容されるタイミングとの余裕時間を算出する。余裕時間は、第3FF50から第2FF33への信号がさらに余裕時間以上遅延すると許容できないことを示している。図10のように、第3FF50から第2FF33までの経路が複数ある場合は、最も余裕時間の小さい時間を余裕時間とする。図8(e)に示すように、第2FF33であるReg01の余裕時間は、例えば1.2nsである。コンピュータ10は、余裕時間をデータベースに記憶する。
コンピュータ10は、図9(b)に示すように、第2FF33を第1FF31の平均座標55に配置する。例えば第1FF31のX座標およびY座標のそれぞれの平均を平均座標55とする。図8(f)に示すように、第2FF33の位置情報は、第1FF31であるReg1からReg4の平均座標となる。コンピュータ10は、余裕時間を算出する。図9(b)においては、図9(a)に比べ、第2FF33と第3FF50との距離が長くなる。よって、図8(e)に比べ図8(f)は、余裕時間が短くなる。コンピュータ10は、余裕時間をデータベースに記憶する。
図7を参照し、コンピュータ10は、余裕時間が所望値を満足するかを判断する(ステップS36)。すなわち、コンピュータ10は、第3FF50から第2FF33への遅延時間が所望値を満足するか判断する。例えば、コンピュータ10は、余裕時間がタイミングコンストレイントに違反する場合、Noと判断する。違反しない場合、Yesと判断する。Yesの場合ステップS40に進む。Noの場合、コンピュータ10は、第2FF33を移動する(ステップS38)。ステップS36に戻る。図9(c)に示すように、例えば、コンピュータ10は、第2FF33を、余裕時間が改善するように、所定距離移動させる。例えば最小グリッド移動させる。これにより、第2FF33は、余裕時間が所望値を満足する程度まで、第3FF50に近づく。第3FF50から第2FF33に接続する配線長が短くなる。図9(c)に示すように、第2FF33の座標は、平均座標55から座標56に移動する。ステップS38を複数回実行しても余裕時間が所望値を満足しない場合は、図9(b)の第2FF33の位置に戻ることもある。
ステップS40において、コンピュータ10は、各第1FF31における遅延時間が所望値を満足するかを判断する。例えば、コンピュータ10は、第2FF33が第1FF31を接続する総配線長および第2FF33のファンアウト数から各第1FF31の遅延時間を予想する。コンピュータ10は、予想した各第1FF31の予想遅延時間がタイミングコンストレイントに違反するかを判断する。違反する場合Noと判断する。違反しない場合Yesと判断する。Yesの場合、終了する。Noの場合、ステップS42に進む。
ステップS42において、コンピュータ10はクロック周波数ごとに第2FF33を配置する。その後終了する。
図11は、図7のステップS42における回路設計方法を示すフローチャートである。図12(a)から図12(c)は、FFの配置を示す図である。図13は、データ構造を示す図である。図11を参照し、コンピュータ10は、第1FFをクロック周波数ごとに第1グループに分割する(ステップS50)。例えば、図12(a)に示すように、第1FFとして、高周波数クロック動作するFF31と低周波数クロック動作するFF32とが配置されている。第1FF31および32には、同じ第2FF33からリセット信号が供給されている。コンピュータ10は、第1FFをFF31を含む第1グループ41とFF32を含む第1グループ42とに分割する。
図11を参照し、ステップS52からS60は、第1グループごとに行なうが、以下の説明では、第1グループ41および42についてまとめて説明する。また、第1グループの数が2つの場合を例に説明するが、第1グループの数は3以上でもよい。コンピュータ10は、第2FF33aおよび33cを配置する(ステップS52)。図12(b)に示すように、コンピュータ10は、第1グループ41に対応し第2FF33aを配置し、第1グループ42に対応し第2FF33cを配置する。第2FF33cは、第2FF33aのクローンである。例えば、第2FF33cは第2FF33aと同じ仕様のFFである。第2FF33aおよび33cは、それぞれ第1FF31および32にリセット信号を供給する。コンピュータ10は、第2FF33aおよび33cを、例えばそれぞれ第1FF31および32の平均座標57および58に配置する。コンピュータ10は、第2FF33aおよび33cの余裕時間を算出する。
図11を参照し、コンピュータ10は、余裕時間が所望値を満足するかを判断する(ステップS54)。すなわち、第3FF50から第2FF33aおよび33cへの遅延時間が所望値を満足するか判断する。例えば、コンピュータ10は、余裕時間がタイミングコンストレイントに違反する場合、Noと判断する。違反しない場合、Yesと判断する。Yesの場合ステップS58に進む。Noの場合、コンピュータ10は、第2FF33aおよび33cを移動する(ステップS56)。ステップS54に戻る。図12(c)に示すように、例えば、コンピュータ10は、第2FF33aおよび33cを余裕時間が改善するように、所定距離移動させる。例えば最小グリッド移動させる。これにより、第2FF33aおよび33cは、余裕時間が所望値を満足する程度まで、第3FF50に近づく。図12(c)に示すように、第2FF33aおよび33cの座標は、それぞれ平均座標57および58から座標59および60に移動する。ステップS56を複数回実行しても余裕時間が所望値を満足しない場合は、図12(b)の第2FF33aおよび33cの位置に戻ることもある。
ステップS58において、コンピュータ10は、各第1FF31および32における遅延時間が所望値を満足するかを判断する。例えば、コンピュータ10は、各第2FF33aおよび33cが各第1FF31および32を接続する総配線長および各第2FF33aおよび33cのファンアウト数から各第1FF31および32の遅延時間を予想する。コンピュータ10は、予想した各第1FF31および32の予想遅延時間がタイミングコンストレイントに違反するかを判断する。違反する場合Noと判断する。違反しない場合Yesと判断する。Yesの場合、ステップS62に進む。Noの場合、ステップS60に進む。
ステップS60において、コンピュータ10は、第1グループ41および42を第2グループに分割し、第2グループごとに第2FFを配置する。その後、ステップS62に進む。
ステップS62において、コンピュータ10は、最後の第1グループか判断する。例えば、全ての第1グループ(クロック周波数)の第2FFの配置が終了した場合、Yesと判断する。Yesの場合終了し、図7に戻る。Noの場合、次の第1グループとする(ステップS64)。例えば、コンピュータ10は、次のクロック周波数の第1グループに対しステップS52からS60を実行する。
図13に示すように、クロック周波数が270MHzのReg1からReg3にリセット信号を供給する第2FF33aであるReg01が設けられる。さらに、クロック周波数が66MHzのReg4から6にリセット信号を供給するReg02とが設けられる。Reg1からReg3は第1FF31であり、Reg4からReg6は第1FF32である。Reg01は第2FF33aであり、Reg02は第2FF33cである。コンピュータ10は、第2FF33aおよび33cの位置情報、余裕時間、各第1FFの遅延時間をデータベースに記憶する。
図14は、図11のステップS60における回路設計方法を示すフローチャートである。図15(a)から図15(c)は、FFの配置を示す図である。図16は、データ構造を示す図である。図15(a)から図15(c)および図16は、第1グループ42の第1FF32については記載を省略している。図14を参照し、コンピュータ10は、第1FF31を座標に基づき複数の第2グループ43および44に分割する(ステップS70)。例えば、図15(a)に示すように、複数の第1FF31と、複数の第1FF31にリセット信号を供給する1つの第2FF33が配置されている。コンピュータ10は、第1FF31の座標に基づき第1FF31が含まれる第1グループ41を複数の第2グループ43および44に分割する。例えば、コンピュータ10は、第1FF31の平均座標(Xa、Ya)を算出する。コンピュータ10は、Y座標がYaより大きい第1FF31を第2グループ43とし、Y座標がYaより小さい第1FF31を第2グループ44とする。
図14を参照し、ステップS72からS80は、第2グループ43および44ごとに行なうが、以下の説明では、第2グループ43および44についてまとめて説明する。また、第2グループの数が2つの場合について説明するが、第2グループの数は3以上でもよい。コンピュータ10は、第2FF33aおよび33bを配置する(ステップS72)。図15(b)に示すように、第2グループ43に対応し第2FF33aを配置し、第2グループ44に対応し第2FF33bを配置する。第2FF33bは、第2FF33aのクローンである。例えば、第2FF33bは第2FF33aと同じ仕様のFFである。コンピュータ10は、第2FF33aおよび33bを、例えばそれぞれ第2グループ43および44に含まれる第1FF31の平均座標62および63に配置する。コンピュータ10は、余裕時間を算出する。
図14を参照し、コンピュータ10は、余裕時間が所望値を満足するかを判断する(ステップS74)。すなわち、第3FF50から第2FF33aおよび33bへの遅延時間が所望値を満足するか判断する。例えば、コンピュータ10は、余裕時間がタイミングコンストレイントに違反する場合、Noと判断する。違反しない場合、Yesと判断する。Yesの場合ステップS78に進む。Noの場合、コンピュータ10は、第2FF33aおよび33bを移動する(ステップS76)。ステップS74に戻る。図15(c)に示すように、例えば、コンピュータ10は、第2FF33aおよび33bを余裕時間が改善するように、所定距離移動させる。例えば最小グリッド移動させる。これにより、第2FF33aおよび33bは、余裕時間が所望値を満足する程度まで、第3FF50に近づく。図15(c)に示すように、第2FF33aおよび33bの座標は、それぞれ平均座標62および63から座標64および65に移動する。ステップS76を複数回実行しても余裕時間が所望値を満足しない場合は、図15(b)の第2FF33aおよび33bの位置に戻ることもある。
ステップS78において、コンピュータ10は、各第1FF31における遅延時間が所望値を満足するかを判断する。例えば、コンピュータ10は、各第2FF33aおよび33bが各第1FF31を接続する総配線長および各第2FF33aおよび33bのファンアウト数から各第1FF31の遅延時間を予想する。コンピュータ10は、予想した各第1FF31の予想遅延時間がタイミングコンストレイントに違反するかを判断する。違反する場合Noと判断する。違反しない場合Yesと判断する。Yesの場合、ステップS82に進む。Noの場合、ステップS80に進む。
ステップS80において、コンピュータ10は、FFの配置が難しくフロアプラン等の見直しを推奨する報告を行なう。その後、終了する。
ステップS82において、コンピュータ10は、最後の第2グループか判断する。例えば、全ての第2グループの第2FFの配置が終了した場合、Yesと判断する。Yesの場合終了し、図12に戻る。Noの場合、次の第2グループとする(ステップS84)。例えば、コンピュータ10は、次の第2グループに対しステップS52からS60を実行する。
図16に示すように、第1グループ41に含まれるクロック周波数が270MHzのReg1からReg4を第2グループ43および44に分割する。第2グループ43にはReg03を設け、第2グループ44にはReg04を設ける。Reg1からReg4は第1FF31であり、Reg03は第2FF33aであり、Reg04は第2FF33bである。コンピュータ10は、第2FF33aおよび33bの位置情報、余裕時間、各第1FFの遅延時間およびグループをデータベースに記憶する。
実施例2によれば、図11のステップS50のように配置された複数の第1FF31および32を、クロック周波数ごとに複数の第1グループ41および42にグループ分けする。ステップS52のように複数の第1グループ41および42ごとに複数の第1FF31および32にリセット信号を供給する第2FF33aおよび33cを配置する。これにより、実施例1と同様に、クロック周波数ごとに、リセット信号のタイミングが収束しやすくなる。
また、図12(b)に示すように、第1グループ41および42に含まれる複数の第1FF31および32の座標に基づき、それぞれ第1グループ41および42に対応する第2FF33aおよび33cを配置する。なお、複数の第1グループの少なくとも一つの第1グループ41または42について、第1FF31または32に基づき、第2FF33aまたは33cを配置してもよい。これにより、第2FFから第1FFへのリセット信号の遅延時間を短くできる。例えば、少なくとも一つの第1グループ41または42に含まれる複数の第1FF31または32の平均座標に、少なくとも一つの第1グループ41または42に対応する第2FF33aまたは33cを配置する。
さらに、図12(c)に示すように、第3FF50から第2FF33aおよび33cへのリセット信号の遅延時間が所望値を満足しない場合、第2FF33aおよび33cの配置位置を第3FF50に近づける。これにより、第3FF50から第2FF33aおよび33cへのリセット信号の遅延時間を短くできる。
さらに、図14のステップS70のように、第2FF33から第1グループ41に含まれる複数の第1FF31へのリセット信号の遅延時間が所望値を満足しない場合、第1グループ41を複数の第2グループ43および44にグループ分けする。これにより、第2FF33から第1FF41へのリセット信号の遅延時間をより短くできる。例えば、対応する第1グループ41に含まれる複数の第1FF31の座標に基づき、複数の第2グループ43および44にグループ分けする。第2グループ43および44のグループ分けは、例えば第1FF31の平均座標に基づき行なうことができる。
さらに、図15(b)に示すように、第2グループ43および44ごとに、第2FF33aおよび33bを配置する。これにより、第2FFから第1FFへのリセット信号の遅延時間を短くできる。例えば、複数の第2グループ43および44に含まれる複数の第1FF31の座標に基づき、それぞれ第2グループ43および44に対応する第2FF33aまたは33bを配置する。なお、複数の第2グループの少なくとも一つの第1グループ43または44について、第1FF31の座標に基づき、第2FF33aまたは33bを配置してもよい。例えば、少なくとも一つの第2グループ43または44に含まれる複数の第1FF31の平均座標に、少なくとも一つの第2グループ43または44に対応する第2FF33aまたは33bを配置する。
さらに、図15(c)に示すように、第3FF50から第2FF33aおよび33bへのリセット信号の遅延時間が所望値を満足しない場合、第2FF33aおよび33bの配置位置を第3FF50に近づける。これにより、第3FFから第2FFへのリセット信号の遅延時間を短くできる。
以上、発明の好ましい実施例について詳述したが、本発明は係る特定の実施例に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
なお、以上の説明に関して更に以下の付記を開示する。
(付記1):コンピュータが実行する回路設計方法であって、複数の第1フリップフロップを、クロック周波数ごとに複数の第1グループにグループ分けするステップと、前記複数の第1グループごとに、前記複数の第1フリップフロップにリセット信号を供給する第2フリップフロップを配置するステップと、を含むことを特徴とする回路設計方法。
(付記2):前記第2フリップフロップを配置するステップは、前記複数の第1グループのうち少なくとも一つの第1グループに含まれる前記複数の第1フリップフロップの座標に基づき、前記少なくとも一つの第1グループに対応する前記第2フリップフロップを配置するステップを含むことを特徴とする付記1記載の回路設計方法。
(付記3):前記第2フリップフロップを配置するステップは、前記少なくとも一つの第1グループに含まれる前記複数の第1フリップフロップの平均座標に、前記少なくとも一つの第1グループに対応する前記第2フリップフロップを配置するステップを含むことを特徴とする付記2記載の回路設計方法。
(付記4):前記第2フリップフロップに前記リセット信号を供給する第3フリップフロップから前記第2フリップフロップへの前記リセット信号の遅延時間が所望値を満足しない場合、前記第2フリップフロップの配置位置を前記第3フリップフロップに近づけるステップを含むことを特徴とする付記2または3記載の回路設計方法。
(付記5):前記第2フロップフリップから対応する第1グループに含まれる前記複数の第1フリップフロップへの前記リセット信号の遅延時間が所望値を満足しない場合、前記対応する第1グループを複数の第2グループにグループ分けするステップと、前記複数の第2グループごとに、前記第2フリップフロップを配置するステップと、を含むことを特徴とする付記1から4のいずれか一項記載の回路設計方法。
(付記6):前記対応する第1グループを複数の第2グループにグループ分けするステップは、前記対応する第1グループに含まれる前記複数の第1フリップフロップの座標に基づき、前記複数の第2グループにグループ分けするステップを含むことを特徴とする付記5記載の回路設計方法。
(付記7):前記複数の第2グループごとに、前記第2フリップフロップを配置するステップは、前記複数の第2グループのうち少なくとも一つの第2グループに含まれる前記複数の第1フリップフロップの座標に基づき、前記少なくとも一つの第2グループに対応する前記第2フリップフロップを配置するステップを含むことを特徴とする付記5または6記載の回路設計方法。
(付記8):コンピュータに、複数の第1フリップフロップを、クロック周波数ごとに複数の第1グループにグループ分けさせ、前記複数の第1グループごとに、前記複数の第1フリップフロップにリセット信号を供給する第2フリップフロップを配置させることを特徴とする回路設計プログラム。
(付記9):複数の第1フリップフロップを、クロック周波数ごとに複数の第1グループにグループ分けする第1ユニットと、前記複数の第1グループごとに、前記複数の第1フリップフロップにリセット信号を供給する第2フリップフロップを配置する第2ユニットと、を具備することを特徴とする回路設計装置。
10 コンピュータ
31、32 第1FF
33 第2FF
41、42 第1グループ
43、44 第2グループ
50 第3FF

Claims (6)

  1. コンピュータが実行する回路設計方法であって、
    複数の第1フリップフロップを、クロック周波数ごとに複数の第1グループにグループ分けするステップと、
    前記複数の第1グループごとに、前記複数の第1フリップフロップにリセット信号を供給する第2フリップフロップを配置するステップと、
    前記第2フロップフリップから対応する第1グループに含まれる前記複数の第1フリップフロップへの前記リセット信号の遅延時間が所望値を満足しない場合、前記対応する第1グループを複数の第2グループにグループ分けするステップと、
    前記複数の第2グループごとに、前記第2フリップフロップを配置するステップと、
    を含むことを特徴とする回路設計方法。
  2. 前記第2フリップフロップを配置するステップは、前記複数の第1グループのうち少なくとも一つの第1グループに含まれる前記複数の第1フリップフロップの座標に基づき、前記少なくとも一つの第1グループに対応する前記第2フリップフロップを配置するステップを含むことを特徴とする請求項1記載の回路設計方法。
  3. 前記第2フリップフロップを配置するステップは、前記少なくとも一つの第1グループに含まれる前記複数の第1フリップフロップの平均座標に、前記少なくとも一つの第1グループに対応する前記第2フリップフロップを配置するステップを含むことを特徴とする請求項2記載の回路設計方法。
  4. 前記第2フリップフロップに前記リセット信号を供給する第3フリップフロップから前記第2フリップフロップへの前記リセット信号の遅延時間が所望値を満足しない場合、前記第2フリップフロップの配置位置を前記第3フリップフロップに近づけるステップを含むことを特徴とする請求項2または3記載の回路設計方法。
  5. コンピュータに、
    複数の第1フリップフロップを、クロック周波数ごとに複数の第1グループにグループ分けさせ、
    前記複数の第1グループごとに、前記複数の第1フリップフロップにリセット信号を供給する第2フリップフロップを配置させ
    前記第2フロップフリップから対応する第1グループに含まれる前記複数の第1フリップフロップへの前記リセット信号の遅延時間が所望値を満足しない場合、前記対応する第1グループを複数の第2グループにグループ分けさせ、
    前記複数の第2グループごとに、前記第2フリップフロップを配置させることを特徴とする回路設計プログラム。
  6. 複数の第1フリップフロップを、クロック周波数ごとに複数の第1グループにグループ分けする第1ユニットと、
    前記複数の第1グループごとに、前記複数の第1フリップフロップにリセット信号を供給する第2フリップフロップを配置する第2ユニットと、
    前記第2フロップフリップから対応する第1グループに含まれる前記複数の第1フリップフロップへの前記リセット信号の遅延時間が所望値を満足しない場合、前記対応する第1グループを複数の第2グループにグループ分けする第3ユニットと、
    前記複数の第2グループごとに、前記第2フリップフロップを配置する第4ユニットと、
    を具備することを特徴とする回路設計装置。
JP2012253541A 2012-11-19 2012-11-19 回路設計方法、回路設計プログラムおよび回路設計装置 Expired - Fee Related JP6070100B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012253541A JP6070100B2 (ja) 2012-11-19 2012-11-19 回路設計方法、回路設計プログラムおよび回路設計装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012253541A JP6070100B2 (ja) 2012-11-19 2012-11-19 回路設計方法、回路設計プログラムおよび回路設計装置

Publications (2)

Publication Number Publication Date
JP2014102640A JP2014102640A (ja) 2014-06-05
JP6070100B2 true JP6070100B2 (ja) 2017-02-01

Family

ID=51025106

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012253541A Expired - Fee Related JP6070100B2 (ja) 2012-11-19 2012-11-19 回路設計方法、回路設計プログラムおよび回路設計装置

Country Status (1)

Country Link
JP (1) JP6070100B2 (ja)

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3851782B2 (ja) * 2001-03-07 2006-11-29 株式会社東芝 半導体集積回路及びそのテスト方法
JP4131119B2 (ja) * 2002-04-19 2008-08-13 富士通株式会社 半導体集積回路設計方法及び半導体集積回路設計プログラム
JP4437741B2 (ja) * 2004-11-26 2010-03-24 富士通マイクロエレクトロニクス株式会社 半導体集積回路の設計装置、半導体集積回路および半導体集積回路の設計プログラム
JP4314233B2 (ja) * 2005-11-07 2009-08-12 富士通株式会社 設計支援装置、設計支援方法、設計支援プログラム、および記録媒体
JP2007300067A (ja) * 2006-04-07 2007-11-15 Toshiba Corp 半導体集積回路装置およびその設計方法
US7676768B1 (en) * 2006-05-19 2010-03-09 Altera Corporation Automatic asynchronous signal pipelining
US7549137B2 (en) * 2006-12-14 2009-06-16 International Business Machines Corporation Latch placement for high performance and low power circuits
JP2009188093A (ja) * 2008-02-05 2009-08-20 Nec Corp 半導体集積回路の設計装置、方法、及び、プログラム
JP2012174226A (ja) * 2011-02-24 2012-09-10 Renesas Electronics Corp 半導体集積回路のレイアウト設計方法

Also Published As

Publication number Publication date
JP2014102640A (ja) 2014-06-05

Similar Documents

Publication Publication Date Title
US8566767B1 (en) System and method for parametric intercoupling of static and dynamic analyses for synergistic integration in electronic design automation
US9659123B2 (en) Systems and methods for flexibly optimizing processing circuit efficiency
JP4554509B2 (ja) タイミング解析装置及びタイミング解析手法
US9298869B2 (en) Method for showing hierarchical structure for a given power intent described in a power intent description language with a design described in a hardware design description language, and associated apparatus and associated computer program product
US11263379B2 (en) Hierarchical clock tree implementation
CN112906338B (zh) 对物理分区结构进行时钟设计的方法、***和介质
US10684642B2 (en) Adaptive clock mesh wiring
KR102611888B1 (ko) 스위칭 액티비티에 기초한 반도체 장치의 배치 방법 및 이에 의해 제조된 반도체 장치
JP6070100B2 (ja) 回路設計方法、回路設計プログラムおよび回路設計装置
US10339241B1 (en) Methods for incremental circuit design legalization during physical synthesis
JP2007142094A (ja) フリップフロップ機能素子、半導体集積回路、半導体集積回路設計方法及び半導体集積回路設計装置
US8555231B2 (en) Automatic wiring device, automatic wiring method, and automatic wiring program
US10289775B1 (en) Systems and methods for assigning clock taps based on timing
JP2008204199A (ja) 検証装置、検証方法及びプログラム
JP4992468B2 (ja) 検証方法、検証装置及びプログラム
US11023646B2 (en) Hierarchical clock tree construction based on constraints
JP5338919B2 (ja) 集積回路の消費電力算出方法、消費電力算出プログラム及び消費電力算出装置
TWI783773B (zh) 用來建立關於電路特性之製程飄移模型以供進行電路模擬之方法及電路模擬系統
US10885952B1 (en) Memory data transfer and switching sequence
JP2011210053A (ja) 半導体集積回路の設計方法、設計装置およびプログラム
JP4845400B2 (ja) 半導体装置の設計方法および半導体装置
JP2010211550A (ja) 回路設計プログラム、回路設計方法および回路設計装置
JP6428207B2 (ja) 設計方法、設計装置及びプログラム
JP2014006564A (ja) 半導体集積回路の設計方法及び設計プログラム
JP2014130513A (ja) 電流モデル作成方法及びcad装置

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20150611

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150729

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20160509

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20160511

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160609

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160621

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160729

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161219

R150 Certificate of patent or registration of utility model

Ref document number: 6070100

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees