JP2014142918A - 半導体集積回路設計支援装置、方法及びプログラム - Google Patents

半導体集積回路設計支援装置、方法及びプログラム Download PDF

Info

Publication number
JP2014142918A
JP2014142918A JP2013231732A JP2013231732A JP2014142918A JP 2014142918 A JP2014142918 A JP 2014142918A JP 2013231732 A JP2013231732 A JP 2013231732A JP 2013231732 A JP2013231732 A JP 2013231732A JP 2014142918 A JP2014142918 A JP 2014142918A
Authority
JP
Japan
Prior art keywords
latency
module
level synthesis
integrated circuit
input
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.)
Granted
Application number
JP2013231732A
Other languages
English (en)
Other versions
JP6362318B2 (ja
Inventor
Akira Yamamoto
亮 山本
Takayuki Minegishi
孝行 峯岸
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2013231732A priority Critical patent/JP6362318B2/ja
Priority to US14/132,826 priority patent/US9003352B2/en
Publication of JP2014142918A publication Critical patent/JP2014142918A/ja
Application granted granted Critical
Publication of JP6362318B2 publication Critical patent/JP6362318B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/327Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist

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)

Abstract

【課題】従来の高位合成装置におけるレイテンシ調整用のFFは、モジュール間に挿入されるため回路規模の観点から回路全体として最適でない場合がある。
【解決手段】レイテンシ調整手段で動作記述の高位合成から各モジュール間に挿入が必要なFF数より必要遅延を算出し、入力FF数取得手段で高位合成されたHDL又は合成ログより、入力がFF受けのピンを抽出してFF受けの入力FF段数を取得し、レイテンシ再調整手段で上記必要遅延と入力遅延から最適遅延を求め、上記合成ログ、又はHDLから、ピンを持つFF挿入対象モジュー内の各状態と夫々の状態で保持しているFF数の総和が最小となる状態を前段モジュール解析手段で検出し、上記最適遅延とFF数の最小状態から得たFF挿入箇所を元にFF挿入最適化合成手段で全体を再度高位合成をし最適化したHDLを得る。
【選択図】図2

Description

この発明は、回路の動作記述から半導体集積回路におけるレジスタ転送レベル(RTL:Register Transfer Level)を自動生成する高位合成、または動作合成を利用した半導体集積回路の設計を支援する半導体集積回路設計支援装置、方法及びプログラムに関する。
従来における半導体集積回路の設計では、ハードウェア記述言語(HDL:Hardware Description Language)により回路に含まれるレジスタ(フリップフロップ)間の組み合わせ回路の動作を記述するRTLで設計をしていた。近年では集積回路の回路規模が増大しており、RTLでの設計に多大の時間を要することが問題となっていた。そこで、RTLよりも抽象度が高いC言語、C++言語、SystemC言語などの高級言語を用いて自動的にRTLを生成する技術が提唱されており、これを実現する高位合成ツールが市販されている。
一方で、高位合成ツールだけでは実現できない処理を実現する補助的な設計技術が提案されている。特開2010-165334号公報(特許文献1)では、複数のモジュール間におけるレイテンシを調整するために、モジュールのFF(フリップフロップ)段数を抽出し、自動的にFFをモジュール間に挿入することで、複数のモジュール間のレイテンシを自動で合わせることが出来ることが示されている。
特開2010-165334号公報
しかしながら、特許文献1は、目的がレイテンシを自動で調整するものであり、回路規模や全体の処理能力の観点から見れば、挿入されたFFは、回路全体としては最適な箇所ではない場合があるといった課題が生じる。
上記挿入されたFFが最適な箇所でない場合について図31の例で考える。図31は、モジュールAとモジュールBがモジュールCへ接続され、特許文献1の方法によりモジュールBとモジュールCの間にFFが2個挿入された例である。この特許文献1では、各モジュールのレイテンシを抽出し、モジュール間にレイテンシ調整のためのFFを自動挿入することで、設計が効率的に行えることが開示されている。
図32に図31のモジュールCの内部の詳細を示した一例を示す。モジュールCでは、ピンa1の入力をFFで受けている点がポイントである。この場合、モジュールBとモジュールCの間に挿入されたFFとモジュールCの内部におけるピンa1の入力を受けるFFは相殺され、図33に示すようにモジュールBとモジュールCの間に挿入すべきFFを1個に削減できる。
また別の例を挙げる。図34にモジュールBの内部構成とFFの簡略図を示す。モジュールBでは、10bitの入力から任意の計算をし、8bitのFFでその計算結果を一旦保持している。さらにその結果を計算処理し、8bitx2のFFで出力する例である。この8bitx2のFFの出力がモジュールCに繋がるため、この従来例では、モジュールBと挿入されたFFのbitを合計すると図35に示す算式のように56bitのFFが挿入されることになる。
一方で、もし仮にFFが挿入される箇所がモジュールBとモジュールCの間ではなく、図36に示すようにモジュールB内のFFのビット数が少ない箇所に挿入できるとしたなら、図37に示す算式のように挿入されるFF数は40bitとなり削減することができる。
このように特許文献1に開示されるモジュール間に挿入されるFFは、回路全体から見れば、回路規模の面で最適な箇所でない場合がある。
この発明は上記のような課題を解決するためになされたもので、高位合成されたRTLの記述言語であるHDLまたは合成ログより、入力がFF受けのピンを抽出し、さらにFF数が最小となる回路状態を検出し、この回路状態においてのFFの挿入箇所を検出し、そのFF挿入箇所を元に、回路全体を再度高位合成し、レイテンシを自動調整しつつ、回路規模が小さいRTLの記述言語であるHDLを得る半導体集積回路設計支援技術を提供することにある。
この発明に係る半導体集積回路設計支援装置は、
回路動作を記述した動作記述から高位合成手段により高位合成されたHDLまたは合成ログから取得した各モジュールのレイテンシ値より、モジュール間に挿入が必要な必要遅延であるFF数を算出するレイテンシ調整手段と、
前記HDLまたは合成ログより、入力がFF受けのピンを抽出し、入力遅延であるFF受けの入力FF段数を取得する入力FF数取得手段と、
前記レイテンシ調整手段からの必要遅延と前記入力FF数取得手段からの入力遅延から最適遅延を求めるレイテンシ再調整手段と、
前記合成ログまたはHDLから、FF挿入対象となるピンを持つモジュールを対象にモジュール内の各状態とそれぞれの状態で保持しているFF数の総和が最小となる状態を検出する前段モジュール解析手段と、
前記レイテンシ再調整手段からの最適遅延と前記前段モジュール解析手段からのFF数の最小状態から得たFF挿入箇所を元に前記高位合成手段により全体を再度高位合成をし最適化したHDLを得るFF挿入最適化合成手段とを備える。
この発明の半導体集積回路設計支援装置によれば、
高位合成されたHDLまたは合成ログより取得した各モジュールのレイテンシ値より取得したモジュール間に挿入が必要な必要遅延と、高位合成されたHDLまたは合成ログより入力がFF受けのピンを抽出し、FF受けの段数即ち入力遅延を取得し、レイテンシ再調整手段で必要遅延と入力遅延から最適遅延を求め、高位合成されたHDLまたは合成ログよりFF挿入対象となるピンを持つモジュールを対象として、各状態において保持しているFF数の総和を求め、FF数が最小の状態を検出し、上記で得たFFの挿入箇所を元に高位合成手段により、回路全体を再度高位合成することで、回路規模が小さなRTLの記述言語であるHDLを得ることが出来、設計者の能力に依存することなく小回路規模なハードウェア構成を短時間で得るという効果がある。
この発明の実施の形態1による半導体集積回路設計支援装置の機能ブロック図である。 図1における半導体集積回路設計支援手段の内部構成を示す機能ブロック図である。 この発明の実施の形態1の適用例を示すモジュール間の構成図である。 レイテンシ調整手段によって生成されるテーブル情報を示した図である。 入力FF段数取得手段によって生成されるテーブル情報を示した図である。 レイテンシ再調整手段によって生成されるテーブル情報を示した図である。 図3のモジュール間の構成がレイテンシ再調整手段により最適化された結果のモジュール構成図である。 図3のモジュール間の構成がFF挿入最適化合成手段により最適化された結果のモジュール構成図である。 本発明の実施の形態2に係る半導体集積回路設計支援装置の構成の例示図である。 本発明の実施の形態2に係る、高級言語で記述された動作記述の第1の例示図である。 本発明の実施の形態2に係る、高級言語で記述された動作記述の第2の例示図ある。 本発明の実施の形態2に係る、高級言語で記述された動作記述の第3の例示図である。 本発明の実施の形態2に係る、高級言語で記述された動作記述の第4の例示図である。 本発明の実施の形態2に係るモジュール接続関係抽出部が出力するモジュール接続リストの例示図である。 図11のモジュール接続リストに示す各モジュール間の接続関係を示すブロック図である。 本発明の実施の形態2に係る、モジュールCを後段モジュールとする解析最小単位の構成の例示図である。 本発明の実施の形態2に係る、モジュールEを後段モジュールとする解析最小単位の構成の例示図である。 本発明の実施の形態2に係る前段/後段モジュール判定部が出力する前段/後段モジュールリストの例示図である。 本発明の実施の形態2に係る仮高位合成部が出力するモジュールBのスケジューリング結果の例示図である。 本発明の実施の形態2に係る仮高位合成部が出力するモジュールCのスケジューリング結果の例示図である。 本発明の実施の形態2に係る仮高位合成部が出力するモジュールEのスケジューリング結果の例示図である。 本発明の実施の形態2に係る仮高位合成部が出力する前段モジュールの各出力ピンのレイテンシの例示図である。 本発明の実施の形態2に係るレイテンシ仮調整部が算出する前段モジュールの各出力ピンの最適化前挿入FF段数の例示図である。 本発明の実施の形態2に係る、前段モジュールの各出力ピンに挿入された最適化前挿入FFの例示図である。 本発明の実施の形態2に係る入力ラッチFF判定部が算出する入力ラッチFF段数の例示図である。 本発明の実施の形態2に係るレイテンシ再調整部が算出する前段モジュールの各出力ピンの最適化後挿入FF段数の例示図である。 本発明の実施の形態2に係る、最適化後のモジュールCのスケジューリング結果の例示図である。 本発明の実施の形態2に係る、前段モジュールの各出力ピンに挿入された最適化後挿入FFの例示図である。 本発明の実施の形態2に係る、図13に示す解析最小単位における統合スケジューリング結果である。 本発明の実施の形態2に係る、図14に示す解析最小単位における統合スケジューリング結果である。 本発明の実施の形態2に係る、図26に示す統合スケジューリング結果と、図27に示す統合スケジューリング結果とを、更に統合した統合スケジューリング結果である。 本発明の実施の形態2に係るFF挿入箇所候補選定部が算出する最適化後挿入FFの挿入箇所の候補を示すスケジューリング結果である。 本発明の実施の形態2に係る、最適化後挿入FFの各挿入箇所候補におけるFF数と遅延情報である。 従来技術によるモジュール間でFFが挿入された構成図である。 図31におけるモジュールCの内部構成を示した図である。 図31におけるモジュールCの内部構成とピンa1のFFと挿入FFの相殺結果を示す図である。 図31におけるモジュールBの内部構成を簡略に示した図である。 従来技術を適用した図9の構成によるFF数の算出を示した図である。 図31のモジュールB内部のFFビット幅が小さい箇所にFFを挿入した場合の構成図である。 図36のモジュールBにおける削減FF数の算出を示した図である。
実施の形態1.
この発明における半導体集積回路設計支援装置は、コンピュータ本体、グラフィックディスプレイ装置、キーボード、マウス、CD-ROM(Compact Disc Read-Only Memory)が装着されるCD-ROM装置、及びネットワークを含む。
半導体集積回路設計支援プログラムはCD-ROM等の記憶媒体によって供給され、コンピュータ本体によって実行される。操作者はグラフィックディスプレイ装置を見ながらキーボードまたはマウス操作することにより半導体集積回路の設計支援を行う。
また、半導体集積回路設計支援プログラムは他のコンピュータより通信回線を経由し、ネットワークを介してコンピュータ本体に供給されてもよい。
コンピュータ本体は、CPU(Central Processor Unit)、ROM(Read-Only Memory)、RAM(Random Access Memory)及びハードディスクを含む。CPUは、グラフィックディスプレイ装置、キーボード、マウス、CD-ROM装置、ネットワーク、ROM、RAMまたはハードディスクとの間でデータを入出力しながら処理を行う。
CD-ROMに記録された半導体集積回路設計支援プログラムは、CPUによりCD-ROM装置を介して一旦ハードディスクに格納される。CPUはハードディスクから適宜半導体集積回路設計支援プログラムをRAMにロードして実行することにより半導体集積回路設計支援を行う。
図1は、この発明の実施の形態1による半導体集積回路設計支援装置の機能を示す機能ブロックである。図1において、半導体集積回路設計支援手段1は、高位言語(C/C++/SystemC言語など)で記述した高位合成向け動作記述が高位合成向け動作記述保管手段2から入力されると、高位合成手段3とテーブル4を利用して、高性能なRTLに変換し、変換されたRTLをRTL記憶手段5に記憶する。
ここで高位合成向け高位言語を説明する。一般に高位言語で記述されたコードは、高位合成ツールが高位合成できるように書き直しを行う必要がある。この書き直しは、高位合成ツールの制約で合成できない記述をコードから削除、あるいは合成可能な記述に書き換えるといった作業と、記述をアーキテクチャを考慮したコードに変更することを意味する。
半導体集積回路設計支援手段1は、高位合成の対象となる回路の動作を記述したコード、例えばC言語、C++言語、SystemC言語を高位合成向け動作記述保管手段2から受理し、高位合成手段3と連携し、複数のモジュール間でのレイテンシ調整のためのFFをより回路規模が小さくなるように配置設計する手段である。これを実現するために、本実施の形態1による半導体集積回路設計支援装置は処理結果を格納するテーブル4と、高位合成手段3を備える。
半導体集積回路設計支援手段1は、図2に示すように、レイテンシ調整手段11、入力FF数取得手段12、レイテンシ再調整手段13、前段モジュール解析手段14、FF挿入最適化合成手段15を備える。
図3に本実施の形態1による半導体集積回路設計支援装置を適用するモジュール構成図を示す。
次に、図3のモジュール構成図を例に図2を参照し実施の形態1の動作について説明する。
図2に示す半導体集積回路設計支援手段1を構成する各手段は必要なときにテーブル4および高位合成手段3との間でデータのやりとりを行う。
ステップ1:レイテンシ調整
レイテンシ調整手段11が高位合成向け動作記述保管手段2から動作記述を入力として、動作記述中に定義されているそれぞれのモジュールにおいて、高位合成手段3により高位合成を行いHDL、または合成ログを得る。そしてこの合成結果から各モジュールのレイテンシを取得し、モジュール間に挿入する必要のあるFF数を算出する。レイテンシ調整手段11から出力されるデータは図4に示すようなものであり、これをテーブル4に書き込む。なお、本ステップは、従来技術と同様な処理である。
ステップ2:入力FF段数取得
次に合成されたHDL、または合成ログから、入力FF数取得手段12により入力がFF受けになっているピンを抽出し、FF受けの段数を取得し、図5に示すデータを作成する。このデータをテーブル4に書き込む。
ステップ3:レイテンシ再調整
レイテンシ再調整手段13は、レイテンシ調整手段11で得た必要レイテンシと入力FF数取得手段12の入力FF段数から必要遅延の最適数を計算する。各ピン接続において、以下の計算式より、最適遅延を求める。
各最適化前遅延 = 各必要遅延 + 各入力遅延(入力FF段数)
冗長FF数 = min(各最適化前遅延)
各最適遅延 = 各必要遅延 冗長FF
上記計算により図6に示すような結果を得、これをテーブル4に書き込む。なお、本ステップで最適な遅延がわかったため、適用後では図3に比べ、回路全体で図7のようにFFを削減できる。
ステップ4:前段モジュール解析
ステップ4は、FF挿入対象となる出力ピンを持つモジュールを対象とする。本実施の形態では、モジュールBが該当する。従来の技術では、モジュールBの出力にFF挿入を行っていたが、本ステップでは、前段モジュール解析手段14が機能に影響しない複数の状態において、どこにFFを挿入したら、最もFF数が小さいかを抽出する。具体的には、動作記述から高位合成手段により高位合成された合成ログ、あるいはHDLから、モジュールB内の各状態とそれぞれの状態で保持しているFF数をリストアップする。ここで状態とは、状態遷移の意味の状態である。実際にHDL状態遷移がないパイプライン回路においてもFF間をそれぞれ状態と定義する。それぞれの状態において、状態をコピーできる箇所を選択する。状態のコピーの可否は、状態をコピーしても回路のレイテンシが延びることを除いて、正常に動作することが保障されるかに依存する。
上記において状態の抽出対象となるものは、高位合成ログまたは、動作記述コードからでもよい。抽出された状態のコピーが可能な各状態において、保持しているFF数の総和を求め、FF数が最も小さい状態を検出する。
ステップ5:FF挿入最適化
ステップ3とステップ4で得たFF挿入箇所を元に、FF挿入最適化合成手段15が回路全体を再度高位合成し、最適化したHDLを得、RTL記憶部5に記憶する。最適となったFF構成の略図を図8に示す。
実施の形態2.
次に、本実施の形態2における半導体集積回路設計支援装置ついて説明する。本発明の実施の形態2に係る半導体集積回路設計支援装置の構成は図1と同じである。
図1に示す半導体集積回路設計支援手段1は、高級言語(C/C++/SystemC言語等)で記述された集積回路の動作記述コード(以下、単に、「動作記述」という)を、高位合成向け動作記述保管手段2から入力する。そして、動作記述を解析してRTLを生成する高位合成を実施する高位合成手段3と連携することにより、RTLを生成してRTL記憶手段5に出力する。
このとき、半導体集積回路設計支援手段1は、高位合成の過程で生じる処理結果の一時的な格納領域としてテーブル4を利用する。また、半導体集積回路設計支援手段1は、高位合成によってRTLに挿入されるFFの挿入箇所および挿入段数を最適化することにより、集積回路全体の回路規模を縮小して集積回路全体の処理効率を向上させる。
図1に示す半導体集積回路設計支援手段1は、例えば、コンピュータ本体、グラフィックディスプレイ装置、キーボード、マウス、CD-ROM(Compact Disc Read-Only Memory)が装着されるCD-ROM装置、ネットワーク等を備えて構成される。
コンピュータ本体は、例えば、CPU(Central Processor Unit)、ROM(Read-Only Memory)、RAM(Random Access Memory)及びハードディスク等を備えて構成される。CPUは、グラフィックディスプレイ装置、キーボード、マウス、CD-ROM装置、ネットワーク、ROM、RAMまたはハードディスクとの間でデータを入出力しながら処理を行う。
また、コンピュータ本体を半導体集積回路設計支援装置として機能させる半導体集積回路設計支援プログラムは、例えば、CD-ROM等の記憶媒体によって供給され、コンピュータ本体によって実行される。そして、操作者は、グラフィックディスプレイ装置を見ながらキーボードまたはマウス操作することにより、集積回路の設計支援を行う。この半導体集積回路設計支援プログラムは、他のコンピュータより通信回線を経由し、ネットワークを介してコンピュータ本体に供給されてもよい。
CD-ROM等に記録された半導体集積回路設計支援プログラムは、例えば、CPUにより、CD-ROM装置を介して一旦ハードディスクに格納される。そして、CPUは、ハードディスクから適宜半導体集積回路設計支援プログラムをRAMにロードして実行することにより、半導体集積回路設計支援を行う。
また、図1に示す高位合成手段3は、高級言語で記述された動作記述を解析して、コントロールデータフローグラフ生成やスケジューリング処理を行い、RTLを生成する高位合成(または動作合成)を実施する装置である。高位合成手段3は、高位合成を行う際に、各モジュールの各出力ピンのレイテンシと各モジュール内の各クロック境界における信号線間の遅延情報とを含むスケジューリング結果を中間結果として出力する。また、高位合成手段3は、中間結果であるスケジューリング結果から、目的するRTLを生成することもできる。
次に、半導体集積回路設計支援手段1の内部構成について説明する。図9は、本発明の実施の形態2に係る半導体集積回路設計支援手段1の構成の例示図である。図9に示す半導体集積回路設計支援手段1は、モジュール接続関係抽出部21、前段/後段モジュール判定部22、仮高位合成部23、レイテンシ仮調整部24、入力ラッチFF判定部25、レイテンシ再調整部26、FF挿入箇所候補選定部27、FF挿入箇所判定部28、および再高位合成部29を備えて構成される。半導体集積回路設計支援手段1に含まれるこれらの構成部は、必要に応じてテーブル4および高位合成手段3との間でデータのやりとりを行う。以下、各構成部の機能について具体的に説明する。
ステップ1:モジュール接続関係抽出ステップ
モジュール接続関係抽出部21は、高位合成向け動作記述保管手段2から入力した動作記述に記述された集積回路の各モジュール間の接続関係を抽出し、その結果をモジュール接続リストとしてテーブル4に書き込む。このとき、モジュール接続リストには、各モジュールにおいて、入出力ピンの名前、入力ピンの場合は接続元となるモジュール名とその接続されるピン名、および、出力ピンの場合は接続先となるモジュール名とその接続されるピン名を含んだ情報を書きこむ。
図10A〜図10Dは、本発明の実施の形態2に係る、高級言語で記述された動作記述の例示図である。また、図11は、本発明の実施の形態2に係るモジュール接続関係抽出部21が出力するモジュール接続リストの例示図である。また、図12は、図11のモジュール接続リストに示す各モジュール間の接続関係を示すブロック図である。
図11に示すモジュール接続リストは、モジュール接続関係抽出部21が、図10A〜図10Dに示す動作記述を入力した場合に、出力するモジュール接続リストを示している。ここで、図11に示すモジュール接続リストの本実施の形態2に関係しない箇所については、「X」と表示している。また、図12は、図11に示すモジュール接続リストを理解し易くするために、モジュール間の接続関係をブロック図として表したものである。
ステップ2:前段/後段モジュール判定ステップ
前段/後段モジュール判定部22は、モジュール接続関係抽出部21が出力するモジュール接続リスト内の各モジュールについて、前段モジュールであるか、後段モジュールであるかを解析する。
ここで、後段モジュールとは、複数のモジュールの出力ピンを入力ピンとして受ける(接続される)モジュールのことをいう。また、前段モジュールとは、後段モジュールの入力ピンに接続される出力ピンを持つモジュールのことをいう。前段モジュールに接続される前段モジュールが後段モジュールではない限り、前段モジュールとして扱う。また、1つの後段モジュールとそれにつながる複数の前段モジュールを解析最小単位と定義する。
前段/後段モジュール判定部22は、テーブル4からモジュール接続リストを読み込み、モジュール接続リストにおいて、入力ピンに接続されるモジュールを示す「from」に複数の異なるモジュールが定義されているものを後段モジュール、この後段モジュールの入力となるモジュールを前段モジュールとして定義する。この定義に沿って、判定された前段/後段モジュールリストをテーブル4に書き込む。
図13は、本発明の実施の形態2に係る、モジュールCを後段モジュールとする解析最小単位の構成の例示図である。また、図14は、本発明の実施の形態2に係る、モジュールEを後段モジュールとする解析最小単位の構成の例示図である。また、図15は、本発明の実施の形態2に係る前段/後段モジュール判定部22が出力する前段/後段モジュールリストの例示図である。
図11に示すモジュール接続リストを入力した場合は、図15に示すように、モジュールA、モジュールB、モジュールDが、前段モジュールとなり、モジュールC、モジュールEが、後段モジュールとなる。また、図13に示す後段モジュールCと、後段モジュールCに接続された前段モジュールAおよび前段モジュールBとが解析最小単位を構成している。また、同様に、図14に示す後段モジュールEと、後段モジュールEに接続された前段モジュールBおよび前段モジュールDとが解析最小単位を構成している。
次に、図13に示すモジュールCを後段モジュールとする解析最小単位、および、図14に示すモジュールEを後段モジュールとする解析最小単位におけるレイテンシ調整方法について、以下で説明することとする。なお、どのモジュールにおいてレイテンシ調整を行うかは、外部からユーザが指定してするようにしてもよい。
ステップ3:仮高位合成ステップ
仮高位合成部23は、テーブル4から、前段/後段モジュールリストを読み込み、各解析最小単位において、前段/後段モジュールリストで指定される後段モジュールおよび前段モジュールを、高位合成手段3と連携して高位合成する。そして、仮高位合成部23は、高位合成の中間結果である各モジュールの各出力ピンのレイテンシと各モジュール内の各クロック境界における信号線間の遅延情報(クリティカルパス)とを含むスケジューリング結果をテーブル4に書き込む。
図16は、本発明の実施の形態2に係る仮高位合成部23が出力するモジュールBのスケジューリング結果の例示図である。また、図17は、本発明の実施の形態2に係る仮高位合成部23が出力するモジュールCのスケジューリング結果の例示図である。また、図18は、本発明の実施の形態2に係る仮高位合成部23が出力するモジュールEのスケジューリング結果の例示図である。
図16〜図18には、図10A〜図10Dに示す動作記述を入力した場合の、仮高位合成部23による出力が示されている。但し、図16〜図18では、本実施の形態2に関係しない箇所については図示を省略している。図中の各縦線は、クロックの境界を示しており、これらの箇所にFFが挿入されることになる。
図19は、本発明の実施の形態2に係る仮高位合成部23が出力する前段モジュールの各出力ピンのレイテンシの例示図である。図19に示すように、スケジューリング結果に含まれる処理レイテンシは、前段モジュールの各出力ピンのレイテンシとして書き込まれる。
ステップ4:レイテンシ仮調整ステップ
レイテンシ仮調整部24は、テーブル4から、スケジューリング結果を読み込み、各解析最小単位内の前段モジュールの中で最も大きいレイテンシ値である最適化前最大レイテンシから、各前段モジュールのレイテンシの値を引いた値を最適化前挿入FF段数としてテーブル4に書き込む。
図20は、本発明の実施の形態2に係るレイテンシ仮調整部24が算出する前段モジュールの各出力ピンの最適化前挿入FF段数の例示図である。また、図21は、本発明の実施の形態2に係る、前段モジュールの各出力ピンに挿入された最適化前挿入FFの例示図である。
図19に示す処理レイテンシの場合は、レイテンシ仮調整部24が算出する最適化前挿入FF段数は、図20に示すようになる。この結果、レイテンシ調整のために、各モジュール間にどれだけの最適化前挿入FF段数が必要かを判断することができるようになる。そして、最適化前挿入FF段数が分かれば、図21に示すように、モジュール間に最適化前挿入FFを挿入することでレイテンシを合わせるという目的は達成される。
本実施の形態2では、ここから更に、モジュールの内部を解析することにより、回路規模的あるいは速度的(動作周波数)に改善できるように、最適化前挿入FFの挿入箇所を最適化する。以下、この最適化方法について説明する。
ステップ5:入力ラッチFF判定ステップ
入力ラッチFF判定部25は、テーブル4から、スケジューリング結果を読み込み、各解析最小単位における後段モジュールにおいて、入力ラッチピンがどれだけあるかを算出する。ここで、入力ラッチピンとは、後段モジュールの入力ピンが論理を挟まずにFFでラッチされるピンである。入力ラッチFF判定部25は、スケジューリング結果を基に、入力ピンが論理を挟まずにクロック境界を超えている場合には、そのピンは入力ラッチピンであると判定する。
また、入力ラッチFF判定部25は、入力ラッチピンをラッチしているFFである入力ラッチFFの段数が、複数のクロック境界をまたがる場合は、その境界数だけカウントする。入力ラッチFF判定部25は、カウントした数を入力ラッチFF段数としてテーブル4に書き込む。
図22は、本発明の実施の形態2に係る入力ラッチFF判定部25が算出する入力ラッチFF段数の例示図である。入力ラッチFF判定部25は、図22に示すように、前段モジュールの各出力ピンに接続された後段モジュールの入力ピンの入力ラッチFF段数をテーブル4に書き込む。
ステップ6:レイテンシ再調整ステップ
レイテンシ再調整部26は、各解析最小単位において、最適化前最大レイテンシ数を持つピンに接続される後段モジュールの入力ピンにおいて、入力ラッチFF段数の値を最適化前最大レイテンシから引く。この引いた値を最適化後最大レイテンシとする。次に最適化後最大レイテンシから前段モジュールの出力ピンの各レイテンシを引く。この数が最適化後挿入FF段数となる。
レイテンシ再調整部26は、この値をテーブル4に書き込む。ここで、レイテンシ調整を行う対象となるピンをレイテンシ調整ピンとする。
次にテーブル4から、入力ラッチFFが相殺される後段モジュールのスケジューリング結果を読み出し、相殺される入力ラッチFFを削除し、テーブル4に書き戻すことで、スケジューリング結果を更新する。
具体的には、モジュールCを後段モジュールとする図13に示す解析最小単位においては、最適化前最大レイテンシは4、入力ラッチFF段数は1であるから、最適化後最大レイテンシは3となる。また、モジュールEを後段モジュールとする図14に示す解析最小単位においては、最適化前最大レイテンシは2、入力ラッチFF段数は0であるから、最適化後最大レイテンシは2となる。
図23は、本発明の実施の形態2に係るレイテンシ再調整部26が算出する前段モジュールの各出力ピンの最適化後挿入FF段数の例示図である。上記のようにして算出した最適化後最大レイテンシから前段モジュールの出力ピンの各レイテンシを引くと、モジュールBの最適化後挿入FF段数は、図23に示すように算出することができる。
図24は、本発明の実施の形態2に係る、最適化後のモジュールCのスケジューリング結果の例示図である。また、図25は、本発明の実施の形態2に係る、前段モジュールの各出力ピンに挿入された最適化後挿入FFの例示図である。図24に示すように、最適化後のモジュールCの最適化前挿入FF段数は、入力ラッチFF段数と相殺され、1段削減させている。この結果、モジュール間に挿入される最適化後挿入FFは、図25に示すようになる。
ステップ7:FF挿入箇所候補選定ステップ
FF挿入箇所候補選定部27は、各解析最小単位の後段モジュールと前段モジュールにおいて、各解析最小単位の入出力からみて、最適化前挿入FFがモジュール間に挿入された場合と、モジュール内部の任意の箇所にFF挿入した場合とで、タイミング、機能が同じになる箇所を解析する。
まず、FF挿入箇所候補選定部27は、テーブル4から後段モジュールと前段モジュールのスケジューリング結果を読み出し、スケジューリング結果を統合する。
図26は、本発明の実施の形態2に係る、図13に示す解析最小単位における統合スケジューリング結果である。また、図27は、本発明の実施の形態2に係る、図14に示す解析最小単位における統合スケジューリング結果である。
また、図28は、本発明の実施の形態2に係る、図26に示す統合スケジューリング結果と、図27に示す統合スケジューリング結果とを、更に統合した統合スケジューリング結果である。図28に示すような、各解析最小単位の統合したスケジューリング結果を更に統合した統合スケジューリング結果から、FF挿入箇所の候補を判定する。ここで、従来のモジュール間の挿入される箇所をモジュール間FF挿入クロック境界と呼ぶ。
まず、統合スケジューリング結果の後ろ、つまり、図26のCKL4に示すような、クロック境界が最も大きい番号から解析する。
ここで、レイテンシ調整ピン以外の信号線を対象外ピンとする。レイテンシ調整ピンが論理を挟んで、生成される信号線を派生信号線とする。派生信号線のみの信号で、論理を実行し、その出力の信号も派生信号線となる。また派生信号線と派生信号線やレイテンシ調整ピン以外の信号線から生成される信号線は、対象外信号線とする。
対象外信号線または対象外ピンとレイテンシ調整ピンまたは派生信号線が生成する論理以降のスケジューリング結果は、FF挿入候補範囲以外となる。
例では、図26中の信号aは対象外信号線、c1は派生信号線となり、それら信号線で生成される加算処理以降は、FF挿入候補範囲以外となる。また、e1は派生信号線、ie2は対象外ピンであり、それら信号線で生成される加算論理以降は、FF挿入候補範囲以外となる。この点をFF挿入候補範囲の終点とする。
また、レイテンシ調整ピンを生成する論理の入力信号線を親信号線とする(図26中のb5)。親信号線は、モジュールの前に現れるので、前段モジュールに限定される。親信号線を生成する論理の入力信号も親信号線とし、モジュールの入力信号まで親信号線を定義する(図26中のtc4、b4、b3、ib1、ib2)。親信号線から見た場合、親信号線を入力した論理の出力信号は、子信号線となる(図26中のtc4が親信号線で、tc4から見れば、b5は子信号線)。このようにツリー状に親子関係を抽出する。
レイテンシ調整ピン以外の出力ピンを子供に持つツリーの最上位親信号線を外部出力信号線と定義する(図26中のb4)。
各解析対象単位で、外部出力信号線を抽出する(例では、b4となる)。外部出力信号線が出現するまで(ただし、外部出力信号が出現しない場合は前段モジュールの入力信号ピンまで)を、FF挿入候補範囲の始点として定義する。
ここで、各解析対象単位で外部出力信号線が同一の場合、かつ、レイテンシ調整ピンが存在する、つまりレイテンシ調整のFF挿入箇所が1つ以上ある場合は、外部出力信号線を削除し、さらに前段まで外部出力信号線を再定義しにいく。つまり、例の場合は、b4が同一、かつレイテンシ調整ピンがそれぞれ存在するため、b4の外部出力信号線を削除し、さらに前処理へ解析を進めることになる。この結果、ib1、ib2が始点となる。
上記より、スケジューリング結果から終点と始点が判断できる。この範囲の中で、追加するクロック境界の候補を抽出する。
図29は、本発明の実施の形態2に係るFF挿入箇所候補選定部27が算出する最適化後挿入FFの挿入箇所の候補を示すスケジューリング結果である。図13の解析最小単位のFF挿入箇所候補は、図29においてa、b、c、d、e、f、gで、図14の解析最小単位のFF挿入箇所候補は、図29においてa、b、c、hとなる。
FF挿入箇所候補選定部27は、上記解析後のスケジューリング結果を、FF挿入箇所範囲とそれ以外に分割してテーブル4に書き込む。つまり、候補対象外のスケジューリング結果を、テーブル4に書き込み、さらに候補対象外となったスケジューリング結果を除外した後の候補対象となった箇所のみのスケジューリング結果を、テーブル4に書き込む。
ステップ8:FF挿入箇所判定ステップ
FF挿入箇所判定部28は、挿入箇所候補範囲の中で、以下の3つのモードのうち、いずれかのモードを設計者が選択することで、FF挿入箇所を判定する。
(1) 回路規模削減モード:回路規模が最も小さくなる箇所に挿入
(2) クリティカルパス改善モード:クリティカルパスが最も大きい箇所に挿入
(3) 重みづけ判定モード:上記2つの重みづけ関数で判定
図30は、本発明の実施の形態2に係る、最適化後挿入FFの各挿入箇所候補におけるFF数と遅延情報である。FF挿入箇所判定部28は、まず、図30に示すように、統合スケジューリング結果から、FF数と各FF間の遅延情報をスケジューリング結果から抽出する。
回路規模削減モードの場合、全ての解析最小単位におけるFF挿入箇所候補の中で、最も回路規模が小さくなる、つまり必要なFF挿入総ビット数が最も小さくなる箇所を算出する。この算出方法は、各解析最小単位の候補となる挿入箇所を全て組み合わせて評価する。例では、a、b、c、d、e、f、gで1つのFF挿入、かつ、a、b、c、hで1つのFF挿入を満たす組み合わせで、挿入されるFF総ビット数を算出し、最も挿入されるビット数が小さくなる箇所を特定する。この場合は、bに挿入すれば最もFFの総ビット数は小さい。
クリティカルパス改善モードでは、遅延情報を取得し、最も遅延が大きい箇所にFFを挿入する。
また、重みづけ判定では、上記2つを組み合わせた判定であり、挿入される総ビット数重みづけ係数caと、遅延情報の重みづけ係数cbとした場合、回路規模削減モードで判定された挿入される総ビット数をdb、クリティカルパス改善モードで判定された最も遅延が大きい値をddとした場合、(ca*db)と(cb*dd)を計算し、大きい値を持つモードを優先するとしてもよい。
また、複数のFF挿入箇所があった場合、1つのFF挿入箇所を上記いずれかの判定で判定後、再度高位合成手段3にて、高位合成を実施し、遅延情報を得てから、2つ目のFF挿入箇所を判定してもよい。
上記判定モードは、半導体集積回路設計支援手段1の外部より指定される。
本実施例では、回路規模削減モードで、bの箇所にFF挿入が決定したとする。スケジューリング結果から、bの箇所にクロック境界を追加し、テーブル4に書き込む。
ステップ9:再高位合成ステップ
再高位合成部29は、ロックしたスケジューリング結果と、レイテンシ再調整部26またはFF挿入箇所判定部28が生成したスケジューリング結果を、テーブル4から読み出し、スケジューリング結果を統合する。さらに、統合したスケジューリング結果から、モジュール単位のスケジューリング結果に分割を行い、テーブル4に書き込む。そして、再高位合成部29は、最適化後のスケジューリング結果を、再度、高位合成手段3と連携することにより、高位合成(動作合成)を実施し、RTLを得る。
このように、高位合成されたRTL(HDL)または合成ログより取得した各モジュールのレイテンシ値より取得したモジュール間に挿入が必要な必要遅延と、高位合成されたRTL(HDL)または合成ログより入力がFF受けのピンを抽出し、FF受けの段数即ち入力遅延を取得している。そして、レイテンシ再調整部26で必要遅延と入力遅延から最適遅延を求め、高位合成されたRTL(HDL)または合成ログよりFF挿入対象となるピンを持つモジュールを対象として、各状態において保持しているFF数の総和を求め、FF数が最小の状態を検出し、上記で得たFFの挿入箇所を元に高位合成手段3により、回路全体を再度高位合成している。この結果、回路規模が小さなRTLの記述言語であるHDLを得ることが出来、設計者の能力に依存することなく小回路規模なハードウェア構成を短時間で得るという効果がある。さらにFF段数を削減することができれば、回路のレイテンシ(処理サイクル数)も削減でき、処理を高速に行えるという効果を得ることができる。また、挿入されるFF箇所を遅延が厳しい箇所に挿入することで、速度改善を行うことができる効果がある。
以上のように、実施の形態2によれば、高級言語で記述された集積回路の動作記述を解析してRTLを生成する高位合成を実施する高位合成手段と連携し、高位合成手段が高位合成を行う際に中間結果として出力するスケジューリング結果を利用することにより、高位合成の結果としてRTLに挿入されるFFの挿入箇所および挿入段数を最適化している。この結果、集積回路全体の回路規模を縮小して集積回路全体の処理効率を向上させることができる半導体集積回路設計支援装置、方法及びプログラムを得ることができる。
なお、図9に示す半導体集積回路設計支援手段1に含まれている入力ラッチFF判定部25、レイテンシ再調整部26、FF挿入箇所候補選定部27、FF挿入箇所判定部28は、必ずしも全てを備えている必要はない。具体的には、入力ラッチFF判定部25およびレイテンシ再調整部26だけを備え、FF挿入箇所候補選定部27、FF挿入箇所判定部28がない構成であっても、モジュール間に挿入されるFFと入力ラッチFFとを相殺し、回路規模を縮小させることが可能となる。また、FF挿入箇所候補選定部27、FF挿入箇所判定部28だけを備え、入力ラッチFF判定部25およびレイテンシ再調整部26がない構成であっても、回路規模の削減あるいはクリティカルパスの改善を行うことが可能となる。
この発明は半導体集積回路において回路規模が小さな、また処理速度が高いRTLの記述言語であるHDLを得ることが出来、半導体集積回路の設計に利用可能である。
1 半導体集積回路設計支援手段、2 高位合成向け動作記述保管手段、3 高位合成手段、4 テーブル、5 RTL記憶手段、11 レイテンシ調整手段、12 入力FF数取得手段、13 レイテンシ再調整手段、14 前段モジュール解析手段、15 FF挿入最適化合成手段、21 モジュール接続関係抽出部、22 前段/後段モジュール判定部、23 仮高位合成部、24 レイテンシ仮調整部、25 入力ラッチFF判定部、26 レイテンシ再調整部、27 FF挿入箇所候補選定部、28 FF挿入箇所判定部、29 再高位合成部。

Claims (9)

  1. 回路動作を記述した動作記述から高位合成手段により高位合成されたHDLまたは合成ログから取得した各モジュールのレイテンシ値より、モジュール間に挿入が必要な必要遅延であるFF数を算出するレイテンシ調整手段と、
    前記HDLまたは合成ログより、入力がFF受けのピンを抽出し、入力遅延であるFF受けの入力FF段数を取得する入力FF数取得手段と、
    前記レイテンシ調整手段からの必要遅延と前記入力FF数取得手段からの入力遅延から最適遅延を求めるレイテンシ再調整手段と、
    前記合成ログまたはHDLから、FF挿入対象となるピンを持つモジュールを対象にモジュール内の各状態とそれぞれの状態で保持しているFF数の総和が最小となる状態を検出する前段モジュール解析手段と、
    前記レイテンシ再調整手段からの最適遅延と前記前段モジュール解析手段からのFF数の最小状態から得たFF挿入箇所を元に前記高位合成手段により全体を再度高位合成をし最適化したHDLを得るFF挿入最適化合成手段とを備えた半導体集積回路設計支援装置。
  2. 回路動作を記述した動作記述から高位合成手段により高位合成されたHDLまたは合成ログから取得した各モジュールのレイテンシ値より、モジュール間に挿入が必要な必要遅延であるFF数を算出するレイテンシ調整工程と、
    前記HDLまたは合成ログより、入力がFF受けのピンを抽出し、入力遅延であるFF受けの入力FF段数を取得する入力FF数取得工程と、
    前記レイテンシ調整工程からの必要遅延と前記入力FF数取得工程からの入力遅延から最適遅延を求めるレイテンシ再調整工程と、
    前記合成ログまたはHDLから、FFが挿入対象となるピンを持つモジュールを対象にモジュール内の各状態とそれぞれの状態で保持しているFF数の総和が最小となる状態を検出する前段モジュール解析工程と、
    前記レイテンシ再調整工程からの最適遅延と前記前段モジュール解析工程からのFF数の最小状態から得たFF挿入箇所を元に全体を再度高位合成をし最適化したHDLを得るFF挿入最適化合成工程とを備えた半導体集積回路設計支援方法。
  3. コンピュータを、
    回路動作を記述した動作記述から高位合成手段により高位合成されたHDLまたは合成ログから取得した各モジュールのレイテンシ値より、モジュール間に挿入が必要な必要遅延であるFF数算出するレイテンシ調整手段と、
    前記HDLまたは合成ログより、入力がFF受けのピンを抽出し、入力遅延であるFF受けの入力FF段数を取得する入力FF数取得手段と、
    前記レイテンシ調整手段からの必要遅延と前記入力FF数取得手段からの入力遅延から最適遅延を求めるレイテンシ再調整手段と、
    前記合成ログまたはHDLから、FF挿入対象となるピンを持つモジュールを対象にモジュール内の各状態とそれぞれの状態で保持しているFF数の総和が最小となる状態を検出する前段モジュール解析手段と、
    前記レイテンシ再調整手段からの最適遅延と前記前段モジュール解析手段からのFF数の最小状態から得たFF挿入箇所を元に全体を再度高位合成をし最適化したHDLを得るFF挿入最適化合成手段として機能させることを特徴とする半導体集積回路設計支援プログラム。
  4. 高級言語により集積回路の回路動作を記述した動作記述を解析してRTLを生成する高位合成を実施する高位合成手段を備え、前記高位合成手段と連携し、前記高位合成手段が前記高位合成を行う際に中間結果として出力する前記集積回路の各モジュールの各出力ピンのレイテンシと各モジュール内の各クロック境界における信号線間の遅延情報とを含むスケジューリング結果を利用することにより、前記高位合成によって前記RTLに挿入されるFF(フリップフロップ)の挿入箇所および挿入段数を最適化する半導体集積回路設計支援装置であって、
    前記動作記述の中から、レイテンシ調整対象モジュールを抽出するモジュール解析部と、
    前記レイテンシ調整対象モジュール間のレイテンシを調整するために挿入されるべきFFの個数を、最適化前挿入FF段数として算出するレイテンシ仮調整部と、
    前記挿入されるべきFFが入力となる後段モジュールにおいて、論理を介さずにFFによってラッチされている入力ラッチピンを抽出し、前記入力ラッチピンをラッチしている入力ラッチFFの段数を入力ラッチFF段数として算出する入力ラッチFF判定部と、
    前記レイテンシ仮調整部で算出された前記最適化前挿入FF段数と、前記入力ラッチFF判定部で算出された前記入力ラッチFF段数との関係から、相殺可能な前記入力ラッチFFおよび前記挿入されるべきFFを特定し、FFの段数を削減するレイテンシ再調整部と、
    前記レイテンシ再調整部により削減するとして特定されたFFを、前記スケジューリング結果から削除し、前記スケジューリング結果を最適化した上で、再度、前記高位合成手段と連携することにより、最適化された前記スケジューリング結果を基に、最適化された前記RTLを生成する再高位合成部と
    をさらに備える半導体集積回路設計支援装置。
  5. 高級言語により集積回路の回路動作を記述した動作記述を解析してRTLを生成する高位合成を実施する高位合成手段を備え、前記高位合成手段と連携し、前記高位合成手段が前記高位合成を行う際に中間結果として出力する前記集積回路の各モジュールの各出力ピンのレイテンシと各モジュール内の各クロック境界における信号線間の遅延情報とを含むスケジューリング結果を利用することにより、前記高位合成によって前記RTLに挿入されるFF(フリップフロップ)の挿入箇所および挿入段数を最適化する半導体集積回路設計支援装置であって、
    前記動作記述の中から、レイテンシ調整対象モジュールを抽出するモジュール解析部と、
    前記レイテンシ調整対象モジュール間のレイテンシを調整するために挿入されるべきFFの個数を、最適化前挿入FF段数として算出するレイテンシ仮調整部と、
    前記レイテンシ再調整部において算出された前記最適化前挿入FF段数が挿入される前段および後段のレイテンシ調整対象モジュール内において、前記最適化前挿入FF段数がモジュール間に挿入された場合とタイミングおよび機能が同じになるFF挿入箇所候補を選定するFF挿入箇所候補選定部と、
    前記FF挿入箇所候補選定部によって選定された前記FF挿入箇所候補から、前記集積回路全体の回路規模を縮小させることのできる、あるいは、前記集積回路全体の処理効率を向上させることのできる挿入箇所を選択し、前記最適化前挿入FFの代わりとしてモジュール内に挿入すべきFFの挿入箇所を特定するFF挿入箇所判定部と、
    前記FF挿入箇所判定部により挿入するとして特定されたFFを、前記スケジューリング結果に追加し、前記スケジューリング結果を最適化した上で、再度、前記高位合成手段と連携することにより、最適化された前記スケジューリング結果を基に、最適化された前記RTLを生成する再高位合成部と
    をさらに備える半導体集積回路設計支援装置。
  6. 高級言語により集積回路の回路動作を記述した動作記述が記憶部に記憶されており、前記記憶部内に記憶された前記動作記述を解析してRTLを生成する高位合成処理を実施する高位合成ステップを有し、前記高位合成ステップと連携し、前記高位合成ステップが前記高位合成処理を行う際に中間結果として出力する前記集積回路の各モジュールの各出力ピンのレイテンシと各モジュール内の各クロック境界における信号線間の遅延情報とを含むスケジューリング結果を利用することにより、前記高位合成処理によって前記RTLに挿入されるFF(フリップフロップ)の挿入箇所および挿入段数を最適化する半導体集積回路設計支援方法であって、
    前記記憶部に記憶された前記動作記述の中から、レイテンシ調整対象モジュールを抽出するモジュール解析ステップと、
    前記レイテンシ調整対象モジュール間のレイテンシを調整するために挿入されるべきFFの個数を、最適化前挿入FF段数として算出するレイテンシ仮調整ステップと、
    前記挿入されるべきFFが入力となる後段モジュールにおいて、論理を介さずにFFによってラッチされている入力ラッチピンを抽出し、前記入力ラッチピンをラッチしている入力ラッチFFの段数を入力ラッチFF段数として算出する入力ラッチFF判定ステップと、
    前記レイテンシ仮調整ステップで算出された前記最適化前挿入FF段数と、前記入力ラッチFF判定ステップで算出された前記入力ラッチFF段数との関係から、相殺可能な前記入力ラッチFFおよび前記挿入されるべきFFを特定し、FFの段数を削減するレイテンシ再調整ステップと、
    前記レイテンシ再調整ステップにより削減するとして特定されたFFを、前記スケジューリング結果から削除し、前記スケジューリング結果を最適化した上で、再度、前記高位合成ステップと連携することにより、最適化された前記スケジューリング結果を基に、最適化された前記RTLを生成する再高位合成ステップと
    をさらに有する半導体集積回路設計支援方法。
  7. 高級言語により集積回路の回路動作を記述した動作記述が記憶部に記憶されており、前記記憶部内に記憶された前記動作記述を解析してRTLを生成する高位合成処理を実施する高位合成ステップを有し、前記高位合成ステップと連携し、前記高位合成ステップが前記高位合成処理を行う際に中間結果として出力する前記集積回路の各モジュールの各出力ピンのレイテンシと各モジュール内の各クロック境界における信号線間の遅延情報とを含むスケジューリング結果を利用することにより、前記高位合成処理によって前記RTLに挿入されるFF(フリップフロップ)の挿入箇所および挿入段数を最適化する半導体集積回路設計支援方法であって、
    前記記憶部に記憶された前記動作記述の中から、レイテンシ調整対象モジュールを抽出するモジュール解析ステップと、
    前記レイテンシ調整対象モジュール間のレイテンシを調整するために挿入されるべきFFの個数を、最適化前挿入FF段数として算出するレイテンシ仮調整ステップと、
    前記レイテンシ再調整ステップにおいて算出された前記最適化前挿入FF段数が挿入される前段および後段のレイテンシ調整対象モジュール内において、前記最適化前挿入FF段数がモジュール間に挿入された場合とタイミングおよび機能が同じになるFF挿入箇所候補を選定するFF挿入箇所候補選定ステップと、
    前記FF挿入箇所候補選定ステップによって選定された前記FF挿入箇所候補から、前記集積回路全体の回路規模を縮小させることのできる、あるいは、前記集積回路全体の処理効率を向上させることのできる挿入箇所を選択し、前記最適化前挿入FFの代わりとしてモジュール内に挿入すべきFFの挿入箇所を特定するFF挿入箇所判定ステップと、
    前記FF挿入箇所判定ステップにより挿入するとして特定されたFFを、前記スケジューリング結果に追加し、前記スケジューリング結果を最適化した上で、再度、前記高位合成ステップと連携することにより、最適化された前記スケジューリング結果を基に、最適化された前記RTLを生成する再高位合成ステップと
    をさらに有する半導体集積回路設計支援方法。
  8. 請求項4に記載の半導体集積回路設計支援装置において用いられる半導体集積回路設計支援プログラムであって、
    コンピュータを、
    前記動作記述の中から、レイテンシ調整対象モジュールを抽出するモジュール解析手段と、
    前記レイテンシ調整対象モジュール間のレイテンシを調整するために挿入されるべきFFの個数を、最適化前挿入FF段数として算出するレイテンシ仮調整手段と、
    前記挿入されるべきFFが入力となる後段モジュールにおいて、論理を介さずにFFによってラッチされている入力ラッチピンを抽出し、前記入力ラッチピンをラッチしている入力ラッチFFの段数を入力ラッチFF段数として算出する入力ラッチFF判定手段と、
    前記レイテンシ仮調整手段で算出された前記最適化前挿入FF段数と、前記入力ラッチFF判定手段で算出された前記入力ラッチFF段数との関係から、相殺可能な前記入力ラッチFFおよび前記挿入されるべきFFを特定し、FFの段数を削減するレイテンシ再調整手段と、
    前記レイテンシ再調整手段により削減するとして特定されたFFを、前記スケジューリング結果から削除し、前記スケジューリング結果を最適化した上で、再度、前記高位合成手段と連携することにより、最適化された前記スケジューリング結果を基に、最適化された前記RTLを生成する再高位合成手段と
    して機能させる半導体集積回路設計支援プログラム。
  9. 請求項5に記載の半導体集積回路設計支援装置において用いられる半導体集積回路設計支援プログラムであって、
    コンピュータを、
    前記動作記述の中から、レイテンシ調整対象モジュールを抽出するモジュール解析手段と、
    前記レイテンシ調整対象モジュール間のレイテンシを調整するために挿入されるべきFFの個数を、最適化前挿入FF段数として算出するレイテンシ仮調整手段と、
    前記レイテンシ再調整手段において算出された前記最適化前挿入FF段数が挿入される前段および後段のレイテンシ調整対象モジュール内において、前記最適化前挿入FF段数がモジュール間に挿入された場合とタイミングおよび機能が同じになるFF挿入箇所候補を選定するFF挿入箇所候補選定手段と、
    前記FF挿入箇所候補選定手段によって選定された前記FF挿入箇所候補から、前記集積回路全体の回路規模を縮小させることのできる、あるいは、前記集積回路全体の処理効率を向上させることのできる挿入箇所を選択し、前記最適化前挿入FFの代わりとしてモジュール内に挿入すべきFFの挿入箇所を特定するFF挿入箇所判定手段と、
    前記FF挿入箇所判定手段により挿入するとして特定されたFFを、前記スケジューリング結果に追加し、前記スケジューリング結果を最適化した上で、再度、前記高位合成手段と連携することにより、最適化された前記スケジューリング結果を基に、最適化された前記RTLを生成する再高位合成手段と
    して機能させる半導体集積回路設計支援プログラム。
JP2013231732A 2012-12-28 2013-11-08 半導体集積回路設計支援装置、方法及びプログラム Active JP6362318B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013231732A JP6362318B2 (ja) 2012-12-28 2013-11-08 半導体集積回路設計支援装置、方法及びプログラム
US14/132,826 US9003352B2 (en) 2012-12-28 2013-12-18 Semiconductor integrated circuit design supporting apparatus, method, and program

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2012286809 2012-12-28
JP2012286809 2012-12-28
JP2013231732A JP6362318B2 (ja) 2012-12-28 2013-11-08 半導体集積回路設計支援装置、方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2014142918A true JP2014142918A (ja) 2014-08-07
JP6362318B2 JP6362318B2 (ja) 2018-07-25

Family

ID=51018870

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013231732A Active JP6362318B2 (ja) 2012-12-28 2013-11-08 半導体集積回路設計支援装置、方法及びプログラム

Country Status (2)

Country Link
US (1) US9003352B2 (ja)
JP (1) JP6362318B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9710583B2 (en) 2014-12-24 2017-07-18 Fujitsu Limited Information processing apparatus, state machine dividing method, and computer-readable recording medium

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9600614B2 (en) * 2015-02-04 2017-03-21 Xpliant Automated flip-flop insertions in physical design without perturbation of routing
US10303626B2 (en) * 2015-03-31 2019-05-28 Cavium, Llc. Approach for chip-level flop insertion and verification based on logic interface definition
US10268798B2 (en) 2015-09-22 2019-04-23 International Business Machines Corporation Condition analysis
WO2017119123A1 (ja) * 2016-01-08 2017-07-13 三菱電機株式会社 プロセッサ合成装置、プロセッサ合成方法及びプロセッサ合成プログラム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010165334A (ja) * 2008-12-16 2010-07-29 Ricoh Co Ltd 高位合成装置、方法及びプログラム
JP2011180841A (ja) * 2010-03-01 2011-09-15 Ricoh Co Ltd 半導体設計支援装置
JP2014127048A (ja) * 2012-12-26 2014-07-07 Ricoh Co Ltd 高位合成装置、及び高位合成方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010165334A (ja) * 2008-12-16 2010-07-29 Ricoh Co Ltd 高位合成装置、方法及びプログラム
JP2011180841A (ja) * 2010-03-01 2011-09-15 Ricoh Co Ltd 半導体設計支援装置
JP2014127048A (ja) * 2012-12-26 2014-07-07 Ricoh Co Ltd 高位合成装置、及び高位合成方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9710583B2 (en) 2014-12-24 2017-07-18 Fujitsu Limited Information processing apparatus, state machine dividing method, and computer-readable recording medium

Also Published As

Publication number Publication date
US9003352B2 (en) 2015-04-07
JP6362318B2 (ja) 2018-07-25
US20140189633A1 (en) 2014-07-03

Similar Documents

Publication Publication Date Title
JP6362318B2 (ja) 半導体集積回路設計支援装置、方法及びプログラム
US7707530B2 (en) Incremental timing-driven, physical-synthesis using discrete optimization
US8918748B1 (en) M/A for performing automatic latency optimization on system designs for implementation on programmable hardware
CN101593098B (zh) 转发装置与方法以及微处理器
US8302041B1 (en) Implementation flow for electronic circuit designs using choice networks
US8713506B2 (en) System and method for employing signoff-quality timing analysis information concurrently in multiple scenarios to reduce dynamic power in an electronic circuit and an apparatus incorporating the same
JP2010238054A (ja) 半導体設計支援装置、高位合成方法及び半導体設計支援プログラム
US9792400B2 (en) Determination of flip-flop count in physical design
US20040210861A1 (en) System and method for optimizing exceptions
US9081930B1 (en) Throughput during high level synthesis
US8527925B2 (en) Estimating clock skew
US9256705B2 (en) Reducing repeater power
US8990741B2 (en) Circuit design support device, circuit design support method and program
Doboli et al. A VHDL-AMS compiler and architecture generator for behavioral synthesis of analog systems
US7941679B2 (en) Method for computing power savings and determining the preferred clock gating circuit of an integrated circuit design
US9330216B2 (en) Integrated circuit design synthesis using slack diagrams
JP6242170B2 (ja) 回路設計支援装置及びプログラム
CN113688587B (zh) 一种电路布图的生成方法、装置、计算机设备及存储介质
Guazzelli et al. A comparison of asynchronous QDI templates using static logic
Stievano et al. Behavioural macromodels of digital IC receivers for analogue-mixed signal simulations
JP6305644B2 (ja) アーキテクチャ生成装置およびアーキテクチャ生成プログラム
KR102656245B1 (ko) 출력 위상 조정을 위한 복합 로직 셀을 생성하는 방법 및 이를 생성하는 컴퓨팅 시스템
US7350162B2 (en) Structure analytic program
JP6545406B2 (ja) 高位合成装置、高位合成方法および高位合成プログラム
CN113408223B (zh) 一种基于智能分析的芯片设计方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161005

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20171024

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171031

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171226

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180626

R150 Certificate of patent or registration of utility model

Ref document number: 6362318

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250