図面 (/)

技術 半導体集積回路の論理回路設計に用いるネットリストを最適化する方法、該方法を用いて論理回路の設計を支援する装置及び該装置で実行することが可能なコンピュータプログラム

出願人 インターナショナル・ビジネス・マシーンズ・コーポレーション
発明者 久保田博一村上昌弘秋本忠輝
出願日 2012年7月13日 (8年5ヶ月経過) 出願番号 2012-157028
公開日 2014年2月3日 (6年10ヶ月経過) 公開番号 2014-021573
状態 未登録
技術分野 CAD ICの設計・製造(配線設計等)
主要キーワード 特徴的事項 論理演算素子 配置ツール 配線単位 側フリップフロップ 演算処理負荷 可搬型ディスク 演算タイミング
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(2014年2月3日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (10)

課題

半導体集積回路論理回路の設計に用いるネットリストを最適化することにより設計時間を短縮することができる方法、該方法を用いて論理回路の設計を支援する装置及び該装置で実行することが可能なコンピュータプログラムを提供する。

解決手段

論理回路記述データを取得し、取得した論理回路記述データに基づいて第一の周波数論理合成を行い、第一のネットリストを生成し、第一の周波数よりも高い第二の周波数で論理合成を行い、第二のネットリストを生成する。第一のネットリストに基づいて論理演算素子の配置及び該論理演算素子間の配線を行い、所定の配線単位に分割されたブロックごとに実行タイミングに関するタイミングレポートを出力する。出力されたタイミングレポートに基づいて、所望の動作速度を満たしていないブロックを抽出し、抽出されたブロックについて、第一のネットリストを第二のネットリストに置換し、配置配線を行う。

概要

背景

半導体集積回路を設計する場合、まずハードウェア記述言語(Hardware Description Language:以下、HDL)を用いて論理回路レジスタートランスファー・レベルRTL)で記述し、配置対象となるセルライブラリ論理演算素子群)を用いて論理合成することにより、ネットリストを生成する。

しかし、論理合成後のネットリストに基づいて配置配線を行ってタイミング解析を行った場合、クロック周期入出力遅れ等に起因して、予期しないクリティカルパスが生じる場合がある。すなわち、特定の論理演算素子がクリティカルパスとなって、全体として演算タイミングにずれが生じ、正しい論理演算を実行することができないおそれがあった。

そこで、従来は、論理合成時に周波数に高いマージンを付与した条件、すなわち周波数を高めに設定して論理合成することにより、ネットリストを生成している。例えば特許文献1には、一般的な論理合成装置として、FF間の処理速度を基準としてタイミング検証を行う論理合成装置が開示されている。

概要

半導体集積回路の論理回路の設計に用いるネットリストを最適化することにより設計時間を短縮することができる方法、該方法を用いて論理回路の設計を支援する装置及び該装置で実行することが可能なコンピュータプログラムを提供する。論理回路記述データを取得し、取得した論理回路記述データに基づいて第一の周波数で論理合成を行い、第一のネットリストを生成し、第一の周波数よりも高い第二の周波数で論理合成を行い、第二のネットリストを生成する。第一のネットリストに基づいて論理演算素子の配置及び該論理演算素子間の配線を行い、所定の配線単位に分割されたブロックごとに実行タイミングに関するタイミングレポートを出力する。出力されたタイミングレポートに基づいて、所望の動作速度を満たしていないブロックを抽出し、抽出されたブロックについて、第一のネットリストを第二のネットリストに置換し、配置配線を行う。

目的

本発明は斯かる事情に鑑みてなされたものであり、半導体集積回路の論理回路設計に用いるネットリストを最適化することにより設計時間を短縮することができる方法、該方法を用いて論理回路の設計を支援する装置及び該装置で実行することが可能なコンピュータプログラムを提供する

効果

実績

技術文献被引用数
0件
牽制数
0件

この技術が所属する分野

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

論理回路の設計を支援する装置で実行することが可能な方法において、論理回路記述データを取得する工程と、取得した論理回路記述データに基づいて第一の周波数論理合成を行い、第一のネットリストを生成する工程と、取得した論理回路記述データに基づいて前記第一の周波数よりも高い第二の周波数で論理合成を行い、第二のネットリストを生成する工程と、前記第一のネットリストに基づいて論理演算素子の配置及び該論理演算素子間の配線を行う工程と、所定の配線単位に分割されたブロックごとに実行タイミングに関するタイミングレポートを出力する工程と、出力されたタイミングレポートに基づいて、前記ブロックのうち、所望の動作速度を満たしていないブロックを抽出する工程と、抽出されたブロックについて、前記第一のネットリストを前記第二のネットリストに置換する工程とを含み、一部又は全部が前記第二のネットリストに置換されたネットリストに基づいて論理演算素子の配置及び該論理演算素子間の配線を行い、再度タイミングレポートを出力する方法。

請求項2

前記ブロックは、信号が入力されるフリップフロップ回路と信号を出力するフリップフロップ回路とで挟まれた論理演算素子及び該論理演算素子間の配線で構成されている請求項1に記載の方法。

請求項3

前記ブロックごとに前記第一のネットリストと前記第二のネットリストとを対応付けた参照テーブルを生成して記憶する工程を含み、抽出されたブロックをキー情報として前記参照テーブルを参照して、抽出されたブロックに対応する第一のネットリストを、該ブロックに対応する第二のネットリストに置換する請求項1又は2に記載の方法。

請求項4

論理回路の設計を支援する装置において、論理回路記述データを取得する記述データ得手段と、取得した論理回路記述データに基づいて第一の周波数で論理合成を行い、第一のネットリストを生成する第一のネットリスト生成手段と、取得した論理回路記述データに基づいて前記第一の周波数よりも高い第二の周波数で論理合成を行い、第二のネットリストを生成する第二のネットリスト生成手段と、前記第一のネットリストに基づいて論理演算素子の配置及び該論理演算素子間の配線を行う配置配線手段と、所定の配線単位に分割されたブロックごとに実行タイミングに関するタイミングレポートを出力するタイミングレポート出力手段と、出力されたタイミングレポートに基づいて、前記ブロックのうち、所望の動作速度を満たしていないブロックを抽出するブロック抽出手段と、抽出されたブロックについて、前記第一のネットリストを前記第二のネットリストに置換するネットリスト置換手段とを備え、前記配置配線手段は、一部又は全部が前記第二のネットリストに置換されたネットリストに基づいて論理演算素子の配置及び該論理演算素子間の配線を行い、前記タイミングレポート出力手段は、再度タイミングレポートを出力する装置。

請求項5

前記ブロックは、信号が入力されるフリップフロップ回路と信号を出力するフリップフロップ回路とで挟まれた論理演算素子及び該論理演算素子間の配線で構成されている請求項4に記載の装置。

請求項6

前記ブロックごとに前記第一のネットリストと前記第二のネットリストとを対応付けた参照テーブルを生成して記憶する参照テーブル生成手段を備え、前記ネットリスト置換手段は、抽出されたブロックをキー情報として前記参照テーブルを参照して、抽出されたブロックに対応する第一のネットリストを、該ブロックに対応する第二のネットリストに置換する請求項4又は5に記載の装置。

請求項7

論理回路の設計を支援する装置で実行することが可能なコンピュータプログラムにおいて、前記装置を、論理回路記述データを取得する記述データ取得手段、取得した論理回路記述データに基づいて第一の周波数で論理合成を行い、第一のネットリストを生成する第一のネットリスト生成手段、取得した論理回路記述データに基づいて前記第一の周波数よりも高い第二の周波数で論理合成を行い、第二のネットリストを生成する第二のネットリスト生成手段、前記第一のネットリストに基づいて論理演算素子の配置及び該論理演算素子間の配線を行う配置配線手段、所定の配線単位に分割されたブロックごとに実行タイミングに関するタイミングレポートを出力するタイミングレポート出力手段、出力されたタイミングレポートに基づいて、前記ブロックのうち、所望の動作速度を満たしていないブロックを抽出するブロック抽出手段、及び抽出されたブロックについて、前記第一のネットリストを前記第二のネットリストに置換するネットリスト置換手段として機能させ、前記配置配線手段を、一部又は全部が前記第二のネットリストに置換されたネットリストに基づいて論理演算素子の配置及び該論理演算素子間の配線を行う手段として機能させ、前記タイミングレポート出力手段を、再度タイミングレポートを出力する手段として機能させるコンピュータプログラム。

請求項8

前記ブロックは、信号が入力されるフリップフロップ回路と信号を出力するフリップフロップ回路とで挟まれた論理演算素子及び該論理演算素子間の配線で構成されている請求項7に記載のコンピュータプログラム。

請求項9

前記装置を、前記ブロックごとに前記第一のネットリストと前記第二のネットリストとを対応付けた参照テーブルを生成して記憶する参照テーブル生成手段として機能させ、前記ネットリスト置換手段を、抽出されたブロックをキー情報として前記参照テーブルを参照して、抽出されたブロックに対応する第一のネットリストを、該ブロックに対応する第二のネットリストに置換する手段として機能させる請求項7又は8に記載のコンピュータプログラム。

技術分野

0001

本発明は、半導体集積回路論理回路設計に用いるネットリストを最適化する方法、該方法を用いて論理回路の設計を支援する装置及び該装置で実行することが可能なコンピュータプログラムに関する。

背景技術

0002

半導体集積回路を設計する場合、まずハードウェア記述言語(Hardware Description Language:以下、HDL)を用いて論理回路をレジスタートランスファー・レベルRTL)で記述し、配置対象となるセルライブラリ論理演算素子群)を用いて論理合成することにより、ネットリストを生成する。

0003

しかし、論理合成後のネットリストに基づいて配置配線を行ってタイミング解析を行った場合、クロック周期入出力遅れ等に起因して、予期しないクリティカルパスが生じる場合がある。すなわち、特定の論理演算素子がクリティカルパスとなって、全体として演算タイミングにずれが生じ、正しい論理演算を実行することができないおそれがあった。

0004

そこで、従来は、論理合成時に周波数に高いマージンを付与した条件、すなわち周波数を高めに設定して論理合成することにより、ネットリストを生成している。例えば特許文献1には、一般的な論理合成装置として、FF間の処理速度を基準としてタイミング検証を行う論理合成装置が開示されている。

先行技術

0005

特開2006−163822号公報
特開2004−086763号公報
特開2003−186934号公報
特開2002−157292号公報
特開2005−353079号公報
特開2007−199951号公報
特開2003−273219号公報
特開2002−163313号公報
特開2005−122298号公報

発明が解決しようとする課題

0006

特許文献1では、論理合成時の周波数設定については明示されていないが、設計時にはクリティカルパスの発生を回避するべく周波数を高めに設定して論理合成することが多い。しかし、高い周波数で論理合成しているので、半導体集積回路のゲートサイズが不必要に大きくなることが想定され、また消費電力が高い論理回路設計となる可能性が高いことから、小型化、省電力化という時代要請に反するという問題点があった。

0007

また、論理合成することにより生成されたネットリストに基づいて、論理演算素子の配置、論理演算素子間の配線を変更することにより、タイミング遅れを収束させて消費電力を抑制することも可能ではある。しかし、タイミングが収束するまで試行錯誤を繰り返す必要が生じるとともに、場合によっては論理合成を再度実行する手戻り作業が必要となる可能性も残されており、設計時間を短縮することが困難であるという問題点もあった。

0008

本発明は斯かる事情に鑑みてなされたものであり、半導体集積回路の論理回路設計に用いるネットリストを最適化することにより設計時間を短縮することができる方法、該方法を用いて論理回路の設計を支援する装置及び該装置で実行することが可能なコンピュータプログラムを提供することを目的とする。

課題を解決するための手段

0009

上記目的を達成するために第1発明に係る方法は、論理回路の設計を支援する装置で実行することが可能な方法において、論理回路記述データを取得する工程と、取得した論理回路記述データに基づいて第一の周波数で論理合成を行い、第一のネットリストを生成する工程と、取得した論理回路記述データに基づいて前記第一の周波数よりも高い第二の周波数で論理合成を行い、第二のネットリストを生成する工程と、前記第一のネットリストに基づいて論理演算素子の配置及び該論理演算素子間の配線を行う工程と、所定の配線単位に分割されたブロックごとに実行タイミングに関するタイミングレポートを出力する工程と、出力されたタイミングレポートに基づいて、前記ブロックのうち、所望の動作速度を満たしていないブロックを抽出する工程と、抽出されたブロックについて、前記第一のネットリストを前記第二のネットリストに置換する工程とを含み、一部又は全部が前記第二のネットリストに置換されたネットリストに基づいて論理演算素子の配置及び該論理演算素子間の配線を行い、再度タイミングレポートを出力する。

0010

また、第2発明に係る方法は、第1発明において、前記ブロックは、信号が入力されるフリップフロップ回路と信号を出力するフリップフロップ回路とで挟まれた論理演算素子及び該論理演算素子間の配線で構成されていることが好ましい。

0011

また、第3発明に係る方法は、第1又は第2発明において、前記ブロックごとに前記第一のネットリストと前記第二のネットリストとを対応付けた参照テーブルを生成して記憶する工程を含み、抽出されたブロックをキー情報として前記参照テーブルを参照して、抽出されたブロックに対応する第一のネットリストを、該ブロックに対応する第二のネットリストに置換することが好ましい。

0012

次に、上記目的を達成するために第4発明に係る装置は、論理回路の設計を支援する装置において、論理回路記述データを取得する記述データ得手段と、取得した論理回路記述データに基づいて第一の周波数で論理合成を行い、第一のネットリストを生成する第一のネットリスト生成手段と、取得した論理回路記述データに基づいて前記第一の周波数よりも高い第二の周波数で論理合成を行い、第二のネットリストを生成する第二のネットリスト生成手段と、前記第一のネットリストに基づいて論理演算素子の配置及び該論理演算素子間の配線を行う配置配線手段と、所定の配線単位に分割されたブロックごとに実行タイミングに関するタイミングレポートを出力するタイミングレポート出力手段と、出力されたタイミングレポートに基づいて、前記ブロックのうち、所望の動作速度を満たしていないブロックを抽出するブロック抽出手段と、抽出されたブロックについて、前記第一のネットリストを前記第二のネットリストに置換するネットリスト置換手段とを備え、前記配置配線手段は、一部又は全部が前記第二のネットリストに置換されたネットリストに基づいて論理演算素子の配置及び該論理演算素子間の配線を行い、前記タイミングレポート出力手段は、再度タイミングレポートを出力する。

0013

また、第5発明に係る装置は、第4発明において、前記ブロックは、信号が入力されるフリップフロップ回路と信号を出力するフリップフロップ回路とで挟まれた論理演算素子及び該論理演算素子間の配線で構成されていることが好ましい。

0014

また、第6発明に係る装置は、第4又は第5発明において、前記ブロックごとに前記第一のネットリストと前記第二のネットリストとを対応付けた参照テーブルを生成して記憶する参照テーブル生成手段を備え、前記ネットリスト置換手段は、抽出されたブロックをキー情報として前記参照テーブルを参照して、抽出されたブロックに対応する第一のネットリストを、該ブロックに対応する第二のネットリストに置換することが好ましい。

0015

次に、上記目的を達成するために第7発明に係るコンピュータプログラムは、論理回路の設計を支援する装置で実行することが可能なコンピュータプログラムにおいて、前記装置を、論理回路記述データを取得する記述データ取得手段、取得した論理回路記述データに基づいて第一の周波数で論理合成を行い、第一のネットリストを生成する第一のネットリスト生成手段、取得した論理回路記述データに基づいて前記第一の周波数よりも高い第二の周波数で論理合成を行い、第二のネットリストを生成する第二のネットリスト生成手段、前記第一のネットリストに基づいて論理演算素子の配置及び該論理演算素子間の配線を行う配置配線手段、所定の配線単位に分割されたブロックごとに実行タイミングに関するタイミングレポートを出力するタイミングレポート出力手段、出力されたタイミングレポートに基づいて、前記ブロックのうち、所望の動作速度を満たしていないブロックを抽出するブロック抽出手段、及び抽出されたブロックについて、前記第一のネットリストを前記第二のネットリストに置換するネットリスト置換手段として機能させ、前記配置配線手段を、一部又は全部が前記第二のネットリストに置換されたネットリストに基づいて論理演算素子の配置及び該論理演算素子間の配線を行う手段として機能させ、前記タイミングレポート出力手段を、再度タイミングレポートを出力する手段として機能させる。

0016

また、第8発明に係るコンピュータプログラムは、第7発明において、前記ブロックは、信号が入力されるフリップフロップ回路と信号を出力するフリップフロップ回路とで挟まれた論理演算素子及び該論理演算素子間の配線で構成されていることが好ましい。

0017

また、第9発明に係るコンピュータプログラムは、第7又は第8発明において、前記装置を、前記ブロックごとに前記第一のネットリストと前記第二のネットリストとを対応付けた参照テーブルを生成して記憶する参照テーブル生成手段として機能させ、前記ネットリスト置換手段を、抽出されたブロックをキー情報として前記参照テーブルを参照して、抽出されたブロックに対応する第一のネットリストを、該ブロックに対応する第二のネットリストに置換する手段として機能させることが好ましい。

発明の効果

0018

本発明によれば、第一の周波数で論理合成を行い、第一のネットリストを生成するとともに、第一の周波数よりも高い第二の周波数でも論理合成を行い、第二のネットリストを生成しておく。論理演算素子の配置配線工程において、原則として第一のネットリストに基づいて配置及び配線を行い、タイミングがクリティカルなブロックについては第二のネットリストに置換することにより、論理合成工程まで手戻りすることなくネットリストを最適化することができ、全体として論理回路の設計時間を短縮することが可能となる。また、必要以上に高速な論理演算素子が配置されることにより、全体として半導体集積回路のゲートサイズが大きくなること、消費電力が過大となること等を、未然に回避することが可能となる。

図面の簡単な説明

0019

本発明の実施の形態に係る論理回路設計支援装置の構成を模式的に示すブロック図である。
本発明の実施の形態に係る論理回路設計支援装置の機能ブロック図である。
本発明の実施の形態に係る論理回路設計支援装置のRTLソースコード例示図である。
本発明の実施の形態に係る論理回路設計支援装置の第一のネットリスト及び第二のネットリストの例示図である。
本発明の実施の形態に係る論理回路設計支援装置のタイミングレポートの例示図である。
本発明の実施の形態に係る論理回路設計支援装置の所定のブロックのタイミングレポートの例示図である。
本発明の実施の形態に係る論理回路設計支援装置の参照テーブル記憶部に記憶されている参照テーブルの例示図である。
本発明の実施の形態に係る論理回路設計支援装置の、第二のネットリストに置換された場合のタイミングレポートの例示図である。
本発明の実施の形態に係る論理回路設計支援装置のCPUの処理手順を示すフローチャートである。

実施例

0020

以下、本発明の実施の形態に係る、論理回路の設計を支援する論理回路設計支援装置について、図面に基づいて具体的に説明する。以下の実施の形態は、特許請求の範囲に記載された発明を限定するものではなく、実施の形態の中で説明されている特徴的事項の組み合わせの全てが解決手段の必須事項であるとは限らないことは言うまでもない。

0021

また、本発明は多くの異なる態様にて実施することが可能であり、実施の形態の記載内容に限定して解釈されるべきものではない。実施の形態を通じて同じ要素には同一の符号を付している。

0022

以下の実施の形態では、コンピュータシステムにコンピュータプログラムを導入した装置について説明するが、当業者であれば明らかな通り、本発明はその一部をコンピュータで実行することが可能なコンピュータプログラムとして実施することができる。したがって、本発明は、論理回路の設計を支援する論理回路設計支援装置というハードウェアとしての実施の形態、ソフトウェアとしての実施の形態、又はソフトウェアとハードウェアとの組み合わせの実施の形態をとることができる。コンピュータプログラムは、ハードディスク、DVD、CD、光記憶装置磁気記憶装置等の任意のコンピュータで読み取ることが可能な記録媒体に記録することができる。

0023

本発明の実施の形態によれば、第一の周波数で論理合成を行い、第一のネットリストを生成するとともに、第一の周波数よりも高い第二の周波数でも論理合成を行い、第二のネットリストを生成しておく。論理演算素子の配置配線工程において、原則として第一のネットリストに基づいて配置及び配線を行い、タイミングがクリティカルなブロックについては第二のネットリストに置換することにより、論理合成工程まで手戻りすることなくネットリストを最適化することができ、全体として論理回路の設計時間を短縮することが可能となる。また、必要以上に高速な論理演算素子が配置されることにより、全体として半導体集積回路のゲートサイズが大きくなること、消費電力が過大となること等を、未然に回避することが可能となる。

0024

図1は、本発明の実施の形態に係る論理回路設計支援装置の構成を模式的に示すブロック図である。本発明の実施の形態に係る論理回路設計支援装置1は、少なくともCPU(中央演算装置)11、メモリ12、記憶装置13、I/Oインタフェース14、ビデオインタフェース15、可搬型ディスクドライブ16、通信インタフェース17及び上述したハードウェアを接続する内部バス18で構成されている。

0025

CPU11は、内部バス18を介して論理回路設計支援装置1の上述したようなハードウェア各部と接続されており、上述したハードウェア各部の動作を制御するとともに、記憶装置13に記憶されたコンピュータプログラム100に従って、種々のソフトウェア的機能を実行する。メモリ12は、SRAM、SDRAM等の揮発性メモリで構成され、コンピュータプログラム100の実行時にロードモジュール展開され、コンピュータプログラム100の実行時に発生する一時的なデータ等を記憶する。

0026

記憶装置13は、内蔵される固定型記憶装置(ハードディスク)、ROM等で構成されている。記憶装置13に記憶されたコンピュータプログラム100は、プログラム及びデータ等の情報を記録したDVD、CD−ROM等の可搬型記録媒体90から、可搬型ディスクドライブ16によりダウンロードされ、実行時には記憶装置13からメモリ12へ展開して実行される。もちろん、通信インタフェース17を介して接続されている外部コンピュータからダウンロードされたコンピュータプログラムであっても良い。

0027

記憶装置13は、論理回路中の同じブロックについて、論理回路を第一の周波数で論理合成して生成された第一のネットリストと、第一の周波数よりも高い第二の周波数で論理合成して生成された第二のネットリストとを、論理演算素子(セル)を識別する識別情報に対応付けた参照テーブルを記憶する参照テーブル記憶部131を備えている。なお、ブロックとは、分割された所定の配線単位を意味しており、本実施の形態では、信号が入力される入力側フリップフロップ回路と、信号を出力する出力側フリップフロップ回路とで挟まれた論理演算素子(セル)及び該論理演算素子(セル)間の配線で構成されている。

0028

通信インタフェース17は内部バス18に接続されており、インターネット、LAN、WAN等の外部のネットワークに接続されることにより、外部コンピュータ等とデータ送受信を行うことが可能となっている。

0029

I/Oインタフェース14は、キーボード21、マウス22等の入力装置と接続され、データの入力を受け付ける。ビデオインタフェース15は、CRTディスプレイ液晶ディスプレイ等の表示装置23と接続され、所定の画像を表示する。

0030

図2は、本発明の実施の形態に係る論理回路設計支援装置1の機能ブロック図である。図2において、論理回路設計支援装置1の記述データ取得部201は、論理合成用のデータとして論理回路記述データを取得する。取得する論理回路記述データは、例えばRTL(レジスタ転送レベル:Register Transfer Level)ソースコードである。

0031

図3は、本発明の実施の形態に係る論理回路設計支援装置1のRTLソースコードの例示図である。図3において、RTLソースコードは、基本的な乗算器を構成するソースコードであり、ソースコード301は、入力xと入力yとを乗算した結果をz_ltに出力することを示している。

0032

具体的には、ソースコード302は、4ビットの入力xと入力yとを同期を取りつつ入力側フリップフロップ回路へ入力することを示している。ソースコード303は、論理回路を配線した結果として、出力zに入力xと入力yとを乗算した結果を出力することを示している。そして、ソースコード304は、6ビットの出力z_ltを出力側フリップフロップ回路へ出力することを示している。

0033

図2に戻って、第一のネットリスト生成部202は、取得したRTLソースコード(論理回路記述データ)に基づいて第一の周波数で論理合成を行い、第一のネットリストを生成する。同様に第二のネットリスト生成部203は、取得した論理回路記述データに基づいて第一の周波数よりも高い第二の周波数で論理合成を行い、第二のネットリストを生成する。図4は、本発明の実施の形態に係る論理回路設計支援装置1の第一のネットリスト及び第二のネットリストの例示図である。

0034

図4(a)は比較的低い周波数で論理合成して生成された第一のネットリストを、図4(b)は比較的高い周波数で論理合成して生成された第二のネットリストを、それぞれ示している。図4(a)と図4(b)とを比較すればわかるように、入力側フリップフロップ回路を識別する第一の識別情報41、及び出力側フリップフロップ回路を識別する第二の識別情報42は、第一のネットリストと第二のネットリストとで一致している。つまり、同一のブロックにおけるネットリストであることを示している。そして、入力側フリップフロップ回路と出力側フリップフロップ回路との間、すなわち第一の識別情報41と第二の識別情報42との間では、論理演算素子(セル)の配置も数も異なっている。

0035

図2に戻って、配置配線部204は、生成された第一のネットリストに基づいて、論理演算素子の配置及び該論理演算素子間の配線を行う。具体的には、制約条件に沿って配置ツールにより自動配置自動配線を実行する。タイミングレポート出力部205は、所定の配線単位に分割されたブロックごとに実行タイミングに関するタイミングレポートを出力する。

0036

タイミングレポートとは、ブロックごとに、論理演算素子ごとの演算処理に要する時間を累積したレポートである。図5は、本発明の実施の形態に係る論理回路設計支援装置1のタイミングレポートの例示図である。図5では、1つのブロックに関して出力されたタイミングレポートを例示している。

0037

図5に示すように、入力側フリップフロップ回路を識別する第一の識別情報51からタイムカウントを開始し、出力側フリップフロップ回路を識別する第二の識別情報52でタイムカウントを終了するまで、論理演算素子ごとの演算処理に要する時間を累積している。累積した演算処理時間が、事前見積もっていた経過時間と大きく乖離した場合(超えてしまった場合)には、タイミングレポートを出力した該ブロックについては、第一のネットリストでは事前に見積もっていた経過時間内に処理を完了させることができない、タイミングがクリティカルなブロックであると判断することができる。本発明では、タイミングがクリティカルなブロックについては、第一のネットリストを、比較的高い周波数で論理合成した第二のネットリストに置換することにより、タイミング調整を行う。具体的には、事前に見積もっていた経過時間と累積した演算処理時間との差分を算出し、算出した差分が負の値になった場合に、タイミングがクリティカルなブロックであると判断する。

0038

図2に戻って、ブロック抽出部206は、出力されたタイミングレポートに基づいて、所望の動作速度を満たしていないブロックを抽出する。そして、ネットリスト置換部207は、抽出されたブロックについて、第一のネットリストを第二のネットリストに置換する。

0039

図6は、本発明の実施の形態に係る論理回路設計支援装置1の所定のブロックのタイミングレポートの例示図である。図6に示すブロックでは、累積した演算処理時間と、事前に見積もっていた経過時間との差分63が負の値(マイナス)で表示されており、事前に見積もっていた経過時間よりも演算処理に時間がかかることを示している。したがって、事前に見積もっていた経過時間内に処理が完了せず、全体として演算タイミングにずれ(遅れ等)が生じ、正しい論理演算を実行することができないおそれがある。

0040

そこで、差分63が負の値で表示されているブロックについては、第一のネットリストを第二のネットリストに置換する。具体的には、入力側フリップフロップ回路を識別する第一の識別情報51及び出力側フリップフロップ回路を識別する第二の識別情報52をキー情報として、抽出されたブロックに対応する第一のネットリスト及び第二のネットリストを検索する。そして、抽出されたブロックに対応する第一のネットリストを、抽出されたブロックに対応する第二のネットリストに置換する。

0041

もちろん、少しでも演算処理時間を早くするために、ブロックごとに第一のネットリストと第二のネットリストとを対応付けた参照テーブルを生成して、記憶装置13の参照テーブル記憶部131に記憶しておいても良い。図2に示す参照テーブル生成部208は、ブロックごとに第一のネットリストと第二のネットリストとを対応付けた参照テーブルを生成して、記憶装置13の参照テーブル記憶部131に記憶する。

0042

参照テーブルを用いる場合、ネットリスト置換部207は、抽出されたブロックをキー情報として参照テーブルを参照し、抽出されたブロックに対応する第一のネットリストを、抽出されたブロックに対応する第二のネットリストに置換する。

0043

図7は、本発明の実施の形態に係る論理回路設計支援装置1の参照テーブル記憶部131に記憶されている参照テーブルの例示図である。図7(a)に示す参照テーブルでは、ブロック(図7では「Path」と記載)ごとに、第一の周波数(低周波数)で論理合成して生成した第一のネットリスト71と、第二の周波数(高周波数)で論理合成して生成した第二のネットリスト72とを対応付けている。

0044

図7(b)に示すように、低周波数で論理合成した場合には、論理演算素子の数が比較的少なく、配線も複雑にはならない。一方、図7(c)に示すように、高周波数で論理合成した場合には、論理演算素子の数が比較的多く、配線も複雑になる。ブロックごとに双方のネットリストを対応付けた参照テーブルを生成し、事前に記憶しておくことにより、生成されたネットリスト全体を検索する処理が不要となるので、演算処理負荷が過大になることなく、抽出されたブロックの第一のネットリスト71を第二のネットリスト72に置換することが可能となる。

0045

図8は、本発明の実施の形態に係る論理回路設計支援装置1の、第二のネットリストに置換された場合のタイミングレポートの例示図である。図6とは異なり、累積した演算処理時間と、事前に見積もっていた経過時間との差分83は負の値(マイナス)で表示されておらず、事前に見積もっていた経過時間内に処理が完了すると判断することができる。

0046

図9は、本発明の実施の形態に係る論理回路設計支援装置1のCPU11の処理手順を示すフローチャートである。論理回路設計支援装置1のCPU11は、論理合成用のデータとして論理回路記述データを取得する(ステップS901)。取得する論理回路記述データは、例えばRTL(レジスタ転送レベル:Register Transfer Level)ソースコードである。

0047

CPU11は、取得した論理回路記述データに基づいて第一の周波数で論理合成を行い(ステップS902)、第一のネットリストを生成する(ステップS903)。同様に、CPU11は、取得した論理回路記述データに基づいて第一の周波数よりも高い第二の周波数で論理合成を行い(ステップS904)、第二のネットリストを生成する(ステップS905)。CPU11は、入力側フリップフロップ回路と出力側フリップフロップ回路とで挟まれた論理演算素子及び該論理演算素子間の配線で構成されているブロックごとに第一のネットリストと第二のネットリストとを対応付けた参照テーブルを生成して記憶する(ステップS906)。

0048

CPU11は、生成された第一のネットリストに基づいて、論理演算素子の配置及び該論理演算素子間の配線を行う(ステップS907)。具体的には、制約条件に沿って配置ツールにより自動配置・自動配線を実行する。CPU11は、ブロックごとに実行タイミングに関するタイミングレポートを出力する(ステップS908)。

0049

CPU11は、ブロックを選択し(ステップS909)、選択したブロックについて出力されたタイミングレポートで累積した演算処理時間と事前に見積もっていた経過時間との差分が負の値であるか否かを判断する(ステップS910)。CPU11が、負の値であると判断した場合(ステップS910:YES)、CPU11は、第一のネットリストを第二のネットリストに置換する(ステップS911)。

0050

CPU11が、負の値でないと判断した場合(ステップS910:NO)、CPU11は、ステップS911をスキップし、全てのブロックを選択したか否かを判断する(ステップS912)。CPU11が、まだ選択していないブロックが存在すると判断した場合(ステップS912:NO)、CPU11は、次のブロックを選択し(ステップS913)、処理をステップS910に戻して、上述した処理を繰り返す。

0051

CPU11が、全てのブロックを選択したと判断した場合(ステップS912:YES)、CPU11は、一部又は全部が第二のネットリストに置換されたネットリストに基づいて、論理演算素子の配置及び該論理演算素子間の配線を行い(ステップS914)、タイミングレポートを再度出力する(ステップS915)。

0052

以上のように本実施の形態によれば、第一の周波数(低周波数)で論理合成を行い、第一のネットリストを生成するとともに、第一の周波数よりも高い第二の周波数(高周波数)でも論理合成を行い、第二のネットリストを生成しておく。論理演算素子の配置配線工程において、原則として第一のネットリストに基づいて配置及び配線を行い、タイミングがクリティカルなブロックについては高周波数で生成された第二のネットリストに置換することにより、論理合成工程まで手戻りすることなくネットリストを最適化することができ、全体として論理回路の設計時間を短縮することが可能となる。また、必要以上に高速な論理演算素子が配置されることにより、全体として半導体集積回路のゲートサイズが大きくなること、消費電力が過大となること等を、未然に回避することが可能となる。

0053

なお、本発明は上記実施例に限定されるものではなく、本発明の趣旨の範囲内であれば多種の変更、改良等が可能である。

0054

1論理回路設計支援装置
11 CPU
12メモリ
13記憶装置
14 I/Oインタフェース
15ビデオインタフェース
16可搬型ディスクドライブ
17通信インタフェース
18内部バス
90可搬型記録媒体
100 コンピュータプログラム

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

関連する公募課題

ページトップへ

技術視点だけで見ていませんか?

この技術の活用可能性がある分野

分野別動向を把握したい方- 事業化視点で見る -

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

関連する挑戦したい社会課題一覧

この 技術と関連する公募課題

関連する公募課題一覧

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ