IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社リコーの特許一覧

特許7073844設計支援装置、設計支援方法、プログラム及び記憶媒体
<>
  • 特許-設計支援装置、設計支援方法、プログラム及び記憶媒体 図1
  • 特許-設計支援装置、設計支援方法、プログラム及び記憶媒体 図2
  • 特許-設計支援装置、設計支援方法、プログラム及び記憶媒体 図3
  • 特許-設計支援装置、設計支援方法、プログラム及び記憶媒体 図4
  • 特許-設計支援装置、設計支援方法、プログラム及び記憶媒体 図5
  • 特許-設計支援装置、設計支援方法、プログラム及び記憶媒体 図6
  • 特許-設計支援装置、設計支援方法、プログラム及び記憶媒体 図7
  • 特許-設計支援装置、設計支援方法、プログラム及び記憶媒体 図8
  • 特許-設計支援装置、設計支援方法、プログラム及び記憶媒体 図9
  • 特許-設計支援装置、設計支援方法、プログラム及び記憶媒体 図10
  • 特許-設計支援装置、設計支援方法、プログラム及び記憶媒体 図11
  • 特許-設計支援装置、設計支援方法、プログラム及び記憶媒体 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-05-16
(45)【発行日】2022-05-24
(54)【発明の名称】設計支援装置、設計支援方法、プログラム及び記憶媒体
(51)【国際特許分類】
   G06F 30/33 20200101AFI20220517BHJP
   H01L 21/82 20060101ALI20220517BHJP
【FI】
G06F30/33
H01L21/82 C
H01L21/82 T
【請求項の数】 10
(21)【出願番号】P 2018063301
(22)【出願日】2018-03-28
(65)【公開番号】P2019175179
(43)【公開日】2019-10-10
【審査請求日】2021-01-18
(73)【特許権者】
【識別番号】000006747
【氏名又は名称】株式会社リコー
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(72)【発明者】
【氏名】森田 紘行
【審査官】堀井 啓明
(56)【参考文献】
【文献】特開2009-128977(JP,A)
【文献】特開2011-108116(JP,A)
【文献】特開2012-174226(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 30/00-30/398
H01L 21/82
(57)【特許請求の範囲】
【請求項1】
回路に係る所定の入力データから制約を出力する設計支援装置であって、
クロック信号が再収斂しているか検出する再収斂検出部と、
クロック信号が再収斂していることが検出された場合、再収斂しているクロック信号それぞれが排他論理で構成されているかを検出する排他論理検出部と、
再収斂しているクロック信号それぞれが排他論理で構成されていることが検出された場合、前記排他論理で構成されているクロック信号それぞれが、排他である制約を出力する制約出力部とを有する設計支援装置。
【請求項2】
前記回路の一部を他の回路で置換する場合、
前記他の回路による置換を検出する置換構成検出部をさらに有する請求項1記載の設計支援装置。
【請求項3】
前記他の回路に係る端子制約を保持する置換構成制約保持部をさらに有する請求項2記載の設計支援装置。
【請求項4】
前記他の回路に係る端子制約は、前記回路から前記他の回路に入力される制御信号の端子の前段論理までの制約を含む請求項3記載の設計支援装置。
【請求項5】
前記他の回路に係る端子制約と、前記他の回路に係る入力データとを、前記所定の入力データとする請求項3記載の設計支援装置。
【請求項6】
前記他の回路に係るインスタンスを複製し、前記インスタンスを使用して前記回路及び前記他の回路を含む入力データを生成する疑似構成生成部をさらに有する請求項2記載の設計支援装置。
【請求項7】
前記回路及び前記他の回路に係る入力データを、前記所定の入力データとする請求項6記載の設計支援装置。
【請求項8】
回路に係る所定の入力データから制約を出力する設計支援装置が実行する設計支援方法であって、
クロック信号が再収斂しているか検出する再収斂検出手順と、
クロック信号が再収斂していることが検出された場合、再収斂しているクロック信号それぞれが排他論理で構成されているかを検出する排他論理検出手順と、
再収斂しているクロック信号それぞれが排他論理で構成されていることが検出された場合、前記排他論理で構成されているクロック信号それぞれが、排他である制約を出力する制約出力手順とを設計支援装置が実行する設計支援方法。
【請求項9】
回路に係る所定の入力データから制約を出力する設計支援装置が実行可能なプログラムであって、
クロック信号が再収斂しているか検出する再収斂検出手順と、
クロック信号が再収斂していることが検出された場合、再収斂しているクロック信号それぞれが排他論理で構成されているかを検出する排他論理検出手順と、
再収斂しているクロック信号それぞれが排他論理で構成されていることが検出された場合、前記排他論理で構成されているクロック信号それぞれが、排他である制約を出力する制約出力手順とを設計支援装置に実行させるプログラム。
【請求項10】
回路に係る所定の入力データから制約を出力する設計支援装置が実行可能なプログラムを記録したコンピュータ読み取り可能な記録媒体であって、
クロック信号が再収斂しているか検出する再収斂検出手順と、
クロック信号が再収斂していることが検出された場合、再収斂しているクロック信号それぞれが排他論理で構成されているかを検出する排他論理検出手順と、
再収斂しているクロック信号それぞれが排他論理で構成されていることが検出された場合、前記排他論理で構成されているクロック信号それぞれが、排他である制約を出力する制約出力手順とを設計支援装置に実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、設計支援装置、設計支援方法、プログラム及び記憶媒体に関する。
【背景技術】
【0002】
半導体集積回路設計において、クロックを分岐させた後に再収斂させてしまった場合、当該箇所を検知する技術が既に知られている(例えば特許文献1)。
【発明の概要】
【発明が解決しようとする課題】
【0003】
しかしながら、従来の検知ツールは、再収斂箇所を検知することまでしかできないため、再収斂箇所が検出された場合、設計者が回路構成上問題があるか否か確認を行ったのち、問題がなければタイミング制約を検討して追加する必要があった。近年の高集積化及び大規模化による複雑な回路においては、大きな工数を要するという問題があった。
【0004】
本発明は、上記の点に鑑みてなされたものであって、集積回路設計において、クロックラインの再収斂箇所を検知したのち、必要なタイミング制約を出力することを目的とする。
【課題を解決するための手段】
【0005】
そこで上記課題を解決するため、設計支援装置は、回路に係る所定の入力データから制約を出力し、クロック信号が再収斂しているか検出する再収斂検出部と、クロック信号が再収斂していることが検出された場合、再収斂しているクロック信号それぞれが排他論理で構成されているかを検出する排他論理検出部と、再収斂しているクロック信号それぞれが排他論理で構成されていることが検出された場合、前記排他論理で構成されているクロック信号それぞれが、排他である制約を出力する制約出力部とを有する。
【発明の効果】
【0006】
集積回路設計において、クロックラインの再収斂箇所を検知したのち、必要なタイミング制約を出力することができる。
【図面の簡単な説明】
【0007】
図1】本発明の実施の形態におけるクロックライン再収斂の排他論理を検出する例(1)を示す図である。
図2】本発明の実施の形態におけるクロックライン再収斂の排他論理を検出する例(2)を示す図である。
図3】本発明の実施の形態におけるクロックライン再収斂の排他論理を検出する例(3)を示す図である。
図4】本発明の実施の形態における設計支援装置のハードウェア構成例を示す図である。
図5】本発明の実施の形態における設計支援装置の機能構成例(1)を示す図である。
図6】本発明の実施の形態における制約出力の処理(1)を説明するためのフローチャートである。
図7】本発明の実施の形態におけるパーシャルリコンフィグ時の動作(1)を説明するための図である。
図8】本発明の実施の形態における設計支援装置の機能構成例(2)を示す図である。
図9】本発明の実施の形態における制約出力の処理(2)を説明するためのフローチャートである。
図10】本発明の実施の形態におけるパーシャルリコンフィグ時の動作(2)を説明するための図である。
図11】本発明の実施の形態における設計支援装置の機能構成例(3)を示す図である。
図12】本発明の実施の形態における制約出力の処理(3)を説明するためのフローチャーである。
【発明を実施するための形態】
【0008】
以下、図面に基づいて本発明の実施の形態を説明する。
【0009】
図1は、本発明の実施の形態におけるクロックライン再収斂の排他論理を検出する例(1)を示す図である。図1において、クロックラインが再収斂している場合であっても、それぞれのクロックラインが排他論理で構成されている場合を説明する。
【0010】
図1に示されるクロックラインCLK_Aは、後段のセレクタMUX_2の入力端子0又は1のいずれにも到達するため、従来の検知ツールはセレクタMUX_2を再収斂ポイントして検出する。従来の検知ツールが出力したレポートに基づいて、設計者は検出された再収斂ポイントに係る信号及び回路構成を確認し、回路を修正するか否か検討する必要があった。
【0011】
一方、図1に示されるセレクタMUX_0及びセレクタMUX_1は、制御信号sel_0で出力が決定される。図1に示される回路の場合、セレクタMUX_0及びセレクタMUX_1において、CLK_Aが同時に選択される条件は存在しない。すなわち、2つのCLK_Aは排他論理で構成されているため、後段でCLK_Aが再収斂される条件は存在しない。そこで、前段の2つのセレクタの出力端子にクロック定義を設定し、あわせてクロックグループの設定を行い、2つのセレクタの出力端子が互いに排他であるタイミング制約を追加する。これにより、クロックラインの再収斂が検出された場合であっても、各クロックラインが排他である場合は、再収斂ポイントとしての検討を行う必要がなくなる。
【0012】
図2は、本発明の実施の形態におけるクロックライン再収斂の排他論理を検出する例(2)を示す図である。クロックラインが排他であると判断する条件の例を以下説明する。図1に示されるようなセレクト信号sel_0が、例えば、外部端子からの信号である場合、共通のFF(Flip Flop)からの信号が起点で一方の経路がインバータで反転している場合、又は図2に示される回路のようにFF以外に論理回路が挿入されている場合であっても、ANDセルのような分岐最終段セル以降で論理が反転している場合、クロックラインが排他であると判断できる。
【0013】
図3は、本発明の実施の形態におけるクロックライン再収斂の排他論理を検出する例(1)を示す図である。図3は、クロックラインのセレクタのセレクト信号がシフトレジスタ構成である場合の例を示す。
【0014】
図3に示されるように、セレクト信号がシフトレジスタ構成で論理が排他となっている場合も想定されるため、セレクト信号が1段FFに到達した場合であっても、トレースは停止させずに続行する必要がある。
【0015】
なお、上記トレースを可能とするには、入力される回路情報が、ネットリスト又はRTL(Register Transfer Level)でセルを直接指定していることが必要である。セルの直接指定がされないRTLである場合、論理合成によってセルが変化するため、制約条件を確定させることができない。したがって、入力される回路情報がセルの直接指定がされないRTLである場合、本発明の実施の形態における設計支援装置は、RTL上でのセルの直接指定を推奨するメッセージとその箇所、セレクタ優先で配置した場合の回路例を出力し、制約の例として結果を出力する。
【0016】
図4は、本発明の実施の形態における設計支援装置のハードウェア構成例を示す図である。本発明の実施の形態における設計支援装置300のハードウェア構成は、図4に示されるように、CPU(Central Processing Unit)10、メモリ11、ハードディスク12、キーボード13、マウス14及びディスプレイ15等を有する。ハードディスク12には必要な回路情報、ライブラリ情報等が格納されている。また、ハードディスク12に格納されている各種情報及びプログラムはメモリ11に読み込まれCPU10により演算及び処理される。クロック制約等の処理の結果は、ディスプレイ15及びハードディスク12へ出力される。再収斂検出装置200及び切り替え検出装置400は、設計支援装置300と同様のハードウェア構成を有してもよい。また、再収斂検出装置200及び切り替え検出装置400は、設計支援装置300に含まれる構成であってもよい。
【0017】
設計支援装置300での処理を実現するプログラムは、ハードディスク12に格納される。ハードディスク12は、インストールされたプログラムを格納すると共に、必要なファイル及びデータ等を格納する。設計支援装置300が実行するプログラムは、コンピュータ読み取り可能な記録媒体に記録されてもよい。
【0018】
図5は、本発明の実施の形態における設計支援装置の機能構成例(1)を示す図である。再収斂検出装置200は、再収斂検出部210を有する。設計支援装置300は、排他論理検出部310及びクロック制約出力部311を有する。なお、設計支援装置300は、再収斂検出装置200の機能を有する構成であってもよい。
【0019】
再収斂検出装置200に入力される入力データは、制約情報100、回路情報101及びライブラリ102を含む。制約情報100は、クロック定義、クロックグループ設定等が記載された制約情報であり、例えば、SDC(Synopsys(登録商標) Design Constraint)ファイルのような形式を有する。回路情報101は、RTL又はネットリストである。ライブラリ102は、セルのファンクション記述を含むライブラリ又はモデルであり、必要に応じて入力される。再収斂検出部210は、再収斂しているクロック信号及び回路上の再収斂箇所を検出し、検出結果を設計支援装置300の排他論理検出部310に出力する。また、再収斂検出部210は、再収斂レポート220を外部に出力する。再収斂レポート220は、再収斂箇所及び信号の検出結果に係るレポートである。
【0020】
排他論理検出部310は、再収斂しているクロック信号及び回路上の再収斂箇所から、再収斂信号が排他論理となっているか否かを検出し、クロック制約出力部311に検出結果を出力する。例えば、排他論理検出部310は、再収斂しているクロック信号及び再収斂箇所に基づいて、クロック経路に対してバックトレースを行い、経路上の論理セルを特定する。当該論理セルのクロック信号以外のセレクト信号をバックトレースし、論理セルで再収斂しているクロック信号が選択される論理が、排他であるか組み合わせを調べる。また、排他論理検出部310は、排他論理レポート320を外部に出力する。排他論理レポート320は、排他論理である箇所、論理、信号の組み合わせの検出結果に係るレポートである。
【0021】
クロック制約出力部311は、再収斂しているクロック信号が排他論理である場合の出力端子に、クロック定義及びクロックグループを設定して、排他である制約をクロック制約321として外部に出力する。クロック制約321は、ファイルの形式を有してもよい。
【0022】
図6は、本発明の実施の形態における制約出力の処理(1)を説明するためのフローチャートである。図5に示される各機能部が動作して、クロック制約を出力するフローチャートを説明する。
【0023】
ステップS101において、再収斂検出部210は、図5で説明した制約情報及び回路情報等を含むデータを読み込む。続いて、再収斂検出部210は、再収斂しているクロック信号及び回路上の再収斂箇所を検出する(S102)。続いて、再収斂検出部210は、再収斂箇所及び信号の検出結果に係るレポートを出力する(S103)。
【0024】
ステップS104において、設計支援装置300は、追加制約適用前か否かを判定する。追加制約が適用前である場合(S104のYes)、ステップS105に進み、追加制約が適用前でない場合(S104のNo)、フローを終了する。なお、ステップS104は、必要に応じて実行されなくてもよい。
【0025】
ステップS105において、設計支援装置300は、再収斂が検出されたか否かを判定する。再収斂が検出された場合(S105のYes)、ステップS106に進み、再収斂が検出されなかった場合(S105のNo)、フローを終了する。
【0026】
ステップS106において、排他論理検出部310は、再収斂しているクロック信号及び再収斂箇所に基づいて、クロック経路に対してバックトレースを行い、クロック信号が選択される論理が排他であるか否か検出する。続いて、排他論理検出部310は、排他論理検出結果に係るレポートを出力する(S107)。続いて、設計支援装置300は、排他論理が検出されたか否かを判定する。排他論理が検出された場合(S108のYes)、ステップS109に進み、排他論理が検出されなかった場合(S108のNo)、フローを終了する。
【0027】
ステップS109において、クロック制約出力部311は、再収斂しているクロック信号が排他論理である場合の出力端子に、クロック定義及びクロックグループを設定して、排他である制約を出力する。続いて、クロック制約出力部311は、排他である制約に係るレポートを出力する(S110)。続いて、設計支援装置300は、出力された制約を適用するか否かを判定する(S111)。制約を適用する場合(S111のYes)、ステップS102に戻り、制約を適用しない場合(S111のNo)、フローを終了する。
【0028】
図7は、本発明の実施の形態におけるパーシャルリコンフィグ時の動作(1)を説明するための図である。FPGAのような書き換え可能な機能を有する回路に対して、回路の一部の書き換えを行うパーシャルリコンフィグという手法がある。パーシャルリコンフィグ手法は、一部のモジュールを、外部メモリ等に格納されている別モジュールで、チップとして動的に、内部モジュールとしては不活性時に書き換える手法である。例えば、図7に示されるmodule「A,B,C,X」構成の場合と、module「A,B,C,Y」構成の場合とで、図6に示されるフローチャートに示される動作を2回実行する必要がある。
【0029】
そこで、パーシャルリコンフィグを行う場合、一般にモジュールの入出力端子が一致していなければならないため、1回目の図6に示されるフローチャートに示される動作の実行でmodule「A,B,C,X」に関して、設計支援装置300は、クロック信号としては端子とその起点の定義、グループの制約情報及びデータ信号は排他論理を検出するための数段の回路論理情報を保持しておく。続いて、設計支援装置300は、回路切り替え後にmodule「A,B,C,Y」すべてを読み込んで図6に示されるフローチャートに示される動作を実行する必要はなく、module「Y」のみ追加で読み込んで図6に示されるフローチャートを実行すればよい。
【0030】
図8は、本発明の実施の形態における設計支援装置の機能構成例(2)を示す図である。図8に示されるように、切り替え検出装置400は、切り替え構成検出部410を有する。再収斂検出装置200は、再収斂検出部210を有する。設計支援装置300は、排他論理検出部310、クロック制約出力部311及び切り替え構成箇所制約保持部312を有する。なお、設計支援装置300は、再収斂検出装置200及び切り替え検出装置400の機能を有する構成であってもよい。
【0031】
切り替え検出装置400は、切り替え構成があるか否かを検出する装置である。切り替え構成検出部410は、切り替え構成があるか否かを、入力される情報から検出する。例えば、切り替え構成検出部410は、Ifdef変数、共有のインスタンスに設定されているモジュール記述等で、論理等価となっていない場合、回路切り替えを行っていると判定することができる。なお、図8においては、切り替え検出装置400は、最初にデータが入力される位置に切り替え構成検出部410を有するが、他の位置に切り替え構成検出部410は配置されてもよい。
【0032】
図5と同様に再収斂検出部210は、入力される情報から再収斂しているクロック信号及び回路上の再収斂箇所を検出し、検出結果を設計支援装置300の排他論理検出部310に出力する。また、再収斂検出部210は、再収斂レポート220を外部に出力する。
【0033】
図5と同様に排他論理検出部310は、再収斂しているクロック信号及び回路上の再収斂箇所から、再収斂信号が排他論理となっているか否かを検出し、クロック制約出力部311に検出結果を出力する。また、排他論理検出部310は、排他論理レポート320を外部に出力する。
【0034】
切り替え構成箇所制約保持部312は、切り替え対象回路と周辺情報及び切り替え対象回路の端子制約を保持する。クロック端子及びクロック端子の制約情報を保持すれば、切り替え後の回路のみのクロックの再収斂を検出することで、全体の回路のクロックの再収斂を検出することができる。ここで、クロック信号が選択される論理が排他であるか否か判断するためには、クロックのみでは情報が不足している。切り替え対象回路に入力される信号から制御信号が生成される可能性もあるため、切り替え対象回路の制御信号に加えて、切り替え対象回路の入力端子の前段論理の情報までが、制御信号をバックトレースするために保持される対象である。また、切り替え構成箇所制約保持部312は、切り替え構成箇所制約レポートを出力することができる。
【0035】
図5と同様にクロック制約出力部311は、再収斂しているクロック信号が排他論理である場合の出力端子に、クロック定義及びクロックグループを設定して、排他である制約をクロック制約321として外部に出力する。
【0036】
図9は、本発明の実施の形態における制約出力の処理(2)を説明するためのフローチャートである。図8に示される各機能部が動作して、クロック制約を出力する動作に係るフローチャートを説明する。
【0037】
ステップS201において、切り替え構成検出部410は、図5で説明した制約情報及び回路情報等を含むデータを読み込み、切り替え構成の検出を行う(S202)。切り替え構成検出部410が、切り替え構成を検出した場合(S203のYes)、ステップS204に進み、切り替え構成を検出しなかった場合(S203のNo)、ステップS225に進む。
【0038】
ステップS204において、再収斂検出部210は、再収斂しているクロック信号及び回路上の再収斂箇所を検出する。続いて、再収斂検出部210は、再収斂箇所及び信号の検出結果に係るレポートを出力する(S205)。続いて、設計支援装置300は、再収斂が検出されたか否かを判定する。再収斂が検出された場合(S206のYes)、ステップS207に進み、再収斂が検出されなかった場合(S206のNo)、ステップS215に進む。
【0039】
ステップS207において、排他論理検出部310は、再収斂しているクロック信号及び再収斂箇所に基づいて、クロック経路に対してバックトレースを行い、クロック信号が選択される論理が排他であるか否か検出する。続いて、排他論理検出部310は、排他論理検出結果に係るレポートを出力する(S208)。続いて、設計支援装置300は、排他論理が検出されたか否かを判定する。排他論理が検出された場合(S209のYes)、ステップS209に進み、排他論理が検出されなかった場合(S209のNo)、ステップS215に進む。
【0040】
ステップS210において、クロック制約出力部311は、再収斂しているクロック信号が排他論理である場合の出力端子に、クロック定義及びクロックグループを設定して、排他である制約を出力する。続いて、クロック制約出力部311は、排他である制約に係るレポートを出力する(S211)。続いて、設計支援装置300は、出力された制約を適用するか否かを判定する(S212)。制約を適用する場合(S212のYes)、ステップS213に進み、制約を適用しない場合(S212のNo)、ステップS215に進む。ステップS213において、切り替え構成箇所制約保持部312は、図8で説明したように切り替え構成箇所制約を保持し、切り替え構成箇所制約レポートを出力する(S214)。続いて、設計支援装置300は、ステップS204に戻る。
【0041】
ステップS215において、切り替え構成箇所制約保持部312が保持する切り替え対象回路と周辺情報及び制約に基づいて、切り替え後の回路設定を行う。続いて、再収斂検出部210は、切り替え後の回路を対象として再収斂しているクロック信号及び回路上の再収斂箇所を検出する(S216)。続いて、再収斂検出部210は、再収斂箇所及び信号の検出結果に係るレポートを出力する(S217)。
【0042】
ステップS218において、設計支援装置300は、再収斂が検出されたか否かを判定する。再収斂が検出された場合(S218のYes)、ステップS219に進み、再収斂が検出されなかった場合(S218のNo)、フローを終了する。
【0043】
ステップS219において、排他論理検出部310は、再収斂しているクロック信号及び再収斂箇所に基づいて、クロック経路に対してバックトレースを行い、クロック信号が選択される論理が排他であるか否か検出する。続いて、排他論理検出部310は、排他論理検出結果に係るレポートを出力する(S220)。続いて、設計支援装置300は、排他論理が検出されたか否かを判定する。排他論理が検出された場合(S221のYes)、ステップS222に進み、排他論理が検出されなかった場合(S221のNo)、フローを終了する。
【0044】
ステップS222において、クロック制約出力部311は、再収斂しているクロック信号が排他論理である場合の出力端子に、クロック定義及びクロックグループを設定して、排他である制約を出力する。続いて、クロック制約出力部311は、排他である制約に係るレポートを出力する(S223)。続いて、設計支援装置300は、出力された制約を適用するか否かを判定する(S224)。制約を適用する場合(S224のYes)、ステップS216に戻り、制約を適用しない場合(S224のNo)、フローを終了する。
【0045】
ステップS225において、再収斂検出部210は、再収斂しているクロック信号及び回路上の再収斂箇所を検出する。続いて、再収斂検出部210は、再収斂箇所及び信号の検出結果に係るレポートを出力する(S226)。
【0046】
ステップS227において、設計支援装置300は、追加制約適用前か否かを判定する。追加制約が適用前である場合(S227のYes)、ステップS228に進み、追加制約が適用前でない場合(S227のNo)、フローを終了する。なお、ステップS227は、必要に応じて実行されなくてもよい。
【0047】
ステップS228において、設計支援装置300は、再収斂が検出されたか否かを判定する。再収斂が検出された場合(S228のYes)、ステップS229に進み、再収斂が検出されなかった場合(S228のNo)、フローを終了する。
【0048】
ステップS229において、排他論理検出部310は、再収斂しているクロック信号及び再収斂箇所に基づいて、クロック経路に対してバックトレースを行い、クロック信号が選択される論理が排他であるか否か検出する。続いて、排他論理検出部310は、排他論理検出結果に係るレポートを出力する(S230)。続いて、設計支援装置300は、排他論理が検出されたか否かを判定する。排他論理が検出された場合(S231のYes)、ステップS232に進み、排他論理が検出されなかった場合(S231のNo)、フローを終了する。
【0049】
ステップS232において、クロック制約出力部311は、再収斂しているクロック信号が排他論理である場合の出力端子に、クロック定義及びクロックグループを設定して、排他である制約を出力する。続いて、クロック制約出力部311は、排他である制約に係るレポートを出力する(S233)。続いて、設計支援装置300は、出力された制約を適用するか否かを判定する(S234)。制約を適用する場合(S234のYes)、ステップS225に戻り、制約を適用しない場合(S234のNo)、フローを終了する。
【0050】
図10は、本発明の実施の形態におけるパーシャルリコンフィグ時の動作(2)を説明するための図である。設計支援装置300において、パーシャルリコンフィグをmodule「A,B,C,X」構成に対して、module「A,B,C,Y」構成で実行する場合、書き換え対象に係る共通インスタンス部を疑似的に複製し、図10に示されるように、module「A,B,C,X,Y」構成として、再収斂を検出してもよい。
【0051】
図11は、本発明の実施の形態における設計支援装置の機能構成例(3)を示す図である。図11に示されるように、切り替え検出装置400は、切り替え構成検出部410及び疑似構成生成部411を有する。再収斂検出装置200は、再収斂検出部210を有する。設計支援装置300は、排他論理検出部310及びクロック制約出力部311を有する。なお、設計支援装置300は、再収斂検出装置200及び切り替え検出装置400の機能を有する構成であってもよい。
【0052】
切り替え検出装置400は、切り替え構成があるか否かを検出し、切り替え構成を検出した場合、切り替え対象のインスタンスを複製して切り替え前後の回路両方を搭載しているように設計支援装置300に認識させる装置である。図8と同様に、切り替え構成検出部410は、切り替え構成があるか否かを、入力される情報から検出する。
【0053】
疑似構成生成部411は、インスタンスを複製し、切り替え回路を搭載する。パーシャルリコンフィグにおいて、切り替え回路は同一のインスタンスに対して異なるモジュールを入れ替えるため、インスタンスを複製するだけで切り替え前後の回路両方を同時に搭載している状態を表現することができる。
【0054】
図8と同様に再収斂検出部210は、入力される情報から再収斂しているクロック信号及び回路上の再収斂箇所を検出し、検出結果を設計支援装置300の排他論理検出部310に出力する。また、再収斂検出部210は、再収斂レポート220を外部に出力する。
【0055】
図8と同様に排他論理検出部310は、再収斂しているクロック信号及び回路上の再収斂箇所から、再収斂信号が排他論理となっているか否かを検出し、クロック制約出力部311に検出結果を出力する。また、排他論理検出部310は、排他論理レポート320を外部に出力する。
【0056】
図8と同様にクロック制約出力部311は、再収斂しているクロック信号が排他論理である場合の出力端子に、クロック定義及びクロックグループを設定して、排他である制約をクロック制約321として外部に出力する。
【0057】
図12は、本発明の実施の形態における制約出力の処理(3)を説明するためのフローチャーである。図11に示される各機能部が動作して、クロック制約を出力する動作に係るフローチャートを説明する。
【0058】
ステップS301において、切り替え構成検出部410は、図5で説明した制約情報及び回路情報等を含むデータを読み込み、切り替え構成の検出を。切り替え構成検出部410が、切り替え構成を検出した場合(S303のYes)、ステップS304に進み、切り替え構成を検出しなかった場合(S302のNo)、ステップS305に進む。
【0059】
ステップS304において、疑似構成生成部411は、切り替え回路に係るインスタンスを複製して、切り替え前後の回路を同時に搭載するよう設計支援装置300に認識させる。
【0060】
ステップS305において、再収斂検出部210は、再収斂しているクロック信号及び回路上の再収斂箇所を検出する。続いて、再収斂検出部210は、再収斂箇所及び信号の検出結果に係るレポートを出力する(S306)。
【0061】
ステップS307において、設計支援装置300は、追加制約適用前か否かを判定する。追加制約が適用前である場合(S307のYes)、ステップS308に進み、追加制約が適用前でない場合(S307のNo)、フローを終了する。なお、ステップS307は、必要に応じて実行されなくてもよい。
【0062】
ステップS308において、設計支援装置300は、再収斂が検出されたか否かを判定する。再収斂が検出された場合(S308のYes)、ステップS309に進み、再収斂が検出されなかった場合(S308のNo)、フローを終了する。
【0063】
ステップS309において、排他論理検出部310は、再収斂しているクロック信号及び再収斂箇所に基づいて、クロック経路に対してバックトレースを行い、クロック信号が選択される論理が排他であるか否か検出する。続いて、排他論理検出部310は、排他論理検出結果に係るレポートを出力する(S310)。続いて、設計支援装置300は、排他論理が検出されたか否かを判定する。排他論理が検出された場合(S311のYes)、ステップS312に進み、排他論理が検出されなかった場合(S209のNo)、フローを終了する。
【0064】
ステップS312において、クロック制約出力部311は、再収斂しているクロック信号が排他論理である場合の出力端子に、クロック定義及びクロックグループを設定して、排他である制約を出力する。続いて、クロック制約出力部311は、排他である制約に係るレポートを出力する(S313)。続いて、設計支援装置300は、出力された制約を適用するか否かを判定する(S314)。制約を適用する場合(S314のYes)、ステップS305に戻り、制約を適用しない場合(S314のNo)、フローを終了する。
【0065】
上述のように、本発明の実施の形態によれば、設計支援装置300は、集積回路において再収斂しているクロック信号及び再収斂箇所を検出し、クロック経路に対してバックトレースを行い、経路上の論理セルを特定する。続いて、設計支援装置300は、論理セルのクロック信号以外のセレクト信号をバックトレースし、論理セルで再収斂しているクロック信号が選択される論理が、排他であるか組み合わせを調べ、排他であることが検出された場合には論理セルの出力端子にクロック定義及びクロックグループとして排他である制約を追加することができる。また、設計支援装置300は、パーシャルリコンフィグを行う場合の切り替え回路を搭載した集積回路において、切り替え構成箇所に係る制約を保持するか、又はインスタンスを複製して切り替え前後の回路を同時に搭載することで、効率よく再収斂しているクロック信号及び再収斂箇所を検出し、必要なタイミング制約を出力することができる。
【0066】
以上のように、半導体集積回路設計において、クロックラインの再収斂箇所を検知したのち、必要なタイミング制約を出力することができる。
【0067】
なお、本発明の実施の形態において、クロック制約出力部311は、制約出力部の一例である。切り替え構成検出部410は、置換構成検出部の一例である。切り替え構成箇所制約保持部312は、置換構成制約保持部の一例である。
【0068】
以上、本発明の実施の形態又は実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【0069】
10 CPU
11 メモリ
12 ハードディスク
13 キーボード
14 マウス
15 ディスプレイ
200 再収斂検出装置
300 設計支援装置
400 切り替え検出装置
210 再収斂検出部
310 排他論理検出部
311 クロック制約出力部
312 切り替え構成箇所制約保持部
410 切り替え構成検出部
411 疑似構成生成部
【先行技術文献】
【特許文献】
【0070】
【文献】特開2009-128977号公報
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12