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

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

Info

Publication number
JP2014021573A
JP2014021573A JP2012157028A JP2012157028A JP2014021573A JP 2014021573 A JP2014021573 A JP 2014021573A JP 2012157028 A JP2012157028 A JP 2012157028A JP 2012157028 A JP2012157028 A JP 2012157028A JP 2014021573 A JP2014021573 A JP 2014021573A
Authority
JP
Japan
Prior art keywords
netlist
block
logic
logic circuit
operation elements
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.)
Ceased
Application number
JP2012157028A
Other languages
English (en)
Inventor
Hiroichi Kubota
博一 久保田
Masahiro Murakami
昌弘 村上
Tadateru Akimoto
忠輝 秋本
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2012157028A priority Critical patent/JP2014021573A/ja
Priority to US13/939,527 priority patent/US8656337B2/en
Publication of JP2014021573A publication Critical patent/JP2014021573A/ja
Ceased legal-status Critical Current

Links

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/12Timing analysis or timing optimisation

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

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

Description

本発明は、半導体集積回路の論理回路設計に用いるネットリストを最適化する方法、該方法を用いて論理回路の設計を支援する装置及び該装置で実行することが可能なコンピュータプログラムに関する。
半導体集積回路を設計する場合、まずハードウェア記述言語(Hardware Description Language:以下、HDL)を用いて論理回路をレジスター・トランスファー・レベル(RTL)で記述し、配置対象となるセルライブラリ(論理演算素子群)を用いて論理合成することにより、ネットリストを生成する。
しかし、論理合成後のネットリストに基づいて配置配線を行ってタイミング解析を行った場合、クロック周期、入出力遅れ等に起因して、予期しないクリティカルパスが生じる場合がある。すなわち、特定の論理演算素子がクリティカルパスとなって、全体として演算タイミングにずれが生じ、正しい論理演算を実行することができないおそれがあった。
そこで、従来は、論理合成時に周波数に高いマージンを付与した条件、すなわち周波数を高めに設定して論理合成することにより、ネットリストを生成している。例えば特許文献1には、一般的な論理合成装置として、FF間の処理速度を基準としてタイミング検証を行う論理合成装置が開示されている。
特開2006−163822号公報 特開2004−086763号公報 特開2003−186934号公報 特開2002−157292号公報 特開2005−353079号公報 特開2007−199951号公報 特開2003−273219号公報 特開2002−163313号公報 特開2005−122298号公報
特許文献1では、論理合成時の周波数設定については明示されていないが、設計時にはクリティカルパスの発生を回避するべく周波数を高めに設定して論理合成することが多い。しかし、高い周波数で論理合成しているので、半導体集積回路のゲートサイズが不必要に大きくなることが想定され、また消費電力が高い論理回路設計となる可能性が高いことから、小型化、省電力化という時代の要請に反するという問題点があった。
また、論理合成することにより生成されたネットリストに基づいて、論理演算素子の配置、論理演算素子間の配線を変更することにより、タイミング遅れを収束させて消費電力を抑制することも可能ではある。しかし、タイミングが収束するまで試行錯誤を繰り返す必要が生じるとともに、場合によっては論理合成を再度実行する手戻り作業が必要となる可能性も残されており、設計時間を短縮することが困難であるという問題点もあった。
本発明は斯かる事情に鑑みてなされたものであり、半導体集積回路の論理回路設計に用いるネットリストを最適化することにより設計時間を短縮することができる方法、該方法を用いて論理回路の設計を支援する装置及び該装置で実行することが可能なコンピュータプログラムを提供することを目的とする。
上記目的を達成するために第1発明に係る方法は、論理回路の設計を支援する装置で実行することが可能な方法において、論理回路記述データを取得する工程と、取得した論理回路記述データに基づいて第一の周波数で論理合成を行い、第一のネットリストを生成する工程と、取得した論理回路記述データに基づいて前記第一の周波数よりも高い第二の周波数で論理合成を行い、第二のネットリストを生成する工程と、前記第一のネットリストに基づいて論理演算素子の配置及び該論理演算素子間の配線を行う工程と、所定の配線単位に分割されたブロックごとに実行タイミングに関するタイミングレポートを出力する工程と、出力されたタイミングレポートに基づいて、前記ブロックのうち、所望の動作速度を満たしていないブロックを抽出する工程と、抽出されたブロックについて、前記第一のネットリストを前記第二のネットリストに置換する工程とを含み、一部又は全部が前記第二のネットリストに置換されたネットリストに基づいて論理演算素子の配置及び該論理演算素子間の配線を行い、再度タイミングレポートを出力する。
また、第2発明に係る方法は、第1発明において、前記ブロックは、信号が入力されるフリップフロップ回路と信号を出力するフリップフロップ回路とで挟まれた論理演算素子及び該論理演算素子間の配線で構成されていることが好ましい。
また、第3発明に係る方法は、第1又は第2発明において、前記ブロックごとに前記第一のネットリストと前記第二のネットリストとを対応付けた参照テーブルを生成して記憶する工程を含み、抽出されたブロックをキー情報として前記参照テーブルを参照して、抽出されたブロックに対応する第一のネットリストを、該ブロックに対応する第二のネットリストに置換することが好ましい。
次に、上記目的を達成するために第4発明に係る装置は、論理回路の設計を支援する装置において、論理回路記述データを取得する記述データ取得手段と、取得した論理回路記述データに基づいて第一の周波数で論理合成を行い、第一のネットリストを生成する第一のネットリスト生成手段と、取得した論理回路記述データに基づいて前記第一の周波数よりも高い第二の周波数で論理合成を行い、第二のネットリストを生成する第二のネットリスト生成手段と、前記第一のネットリストに基づいて論理演算素子の配置及び該論理演算素子間の配線を行う配置配線手段と、所定の配線単位に分割されたブロックごとに実行タイミングに関するタイミングレポートを出力するタイミングレポート出力手段と、出力されたタイミングレポートに基づいて、前記ブロックのうち、所望の動作速度を満たしていないブロックを抽出するブロック抽出手段と、抽出されたブロックについて、前記第一のネットリストを前記第二のネットリストに置換するネットリスト置換手段とを備え、前記配置配線手段は、一部又は全部が前記第二のネットリストに置換されたネットリストに基づいて論理演算素子の配置及び該論理演算素子間の配線を行い、前記タイミングレポート出力手段は、再度タイミングレポートを出力する。
また、第5発明に係る装置は、第4発明において、前記ブロックは、信号が入力されるフリップフロップ回路と信号を出力するフリップフロップ回路とで挟まれた論理演算素子及び該論理演算素子間の配線で構成されていることが好ましい。
また、第6発明に係る装置は、第4又は第5発明において、前記ブロックごとに前記第一のネットリストと前記第二のネットリストとを対応付けた参照テーブルを生成して記憶する参照テーブル生成手段を備え、前記ネットリスト置換手段は、抽出されたブロックをキー情報として前記参照テーブルを参照して、抽出されたブロックに対応する第一のネットリストを、該ブロックに対応する第二のネットリストに置換することが好ましい。
次に、上記目的を達成するために第7発明に係るコンピュータプログラムは、論理回路の設計を支援する装置で実行することが可能なコンピュータプログラムにおいて、前記装置を、論理回路記述データを取得する記述データ取得手段、取得した論理回路記述データに基づいて第一の周波数で論理合成を行い、第一のネットリストを生成する第一のネットリスト生成手段、取得した論理回路記述データに基づいて前記第一の周波数よりも高い第二の周波数で論理合成を行い、第二のネットリストを生成する第二のネットリスト生成手段、前記第一のネットリストに基づいて論理演算素子の配置及び該論理演算素子間の配線を行う配置配線手段、所定の配線単位に分割されたブロックごとに実行タイミングに関するタイミングレポートを出力するタイミングレポート出力手段、出力されたタイミングレポートに基づいて、前記ブロックのうち、所望の動作速度を満たしていないブロックを抽出するブロック抽出手段、及び抽出されたブロックについて、前記第一のネットリストを前記第二のネットリストに置換するネットリスト置換手段として機能させ、前記配置配線手段を、一部又は全部が前記第二のネットリストに置換されたネットリストに基づいて論理演算素子の配置及び該論理演算素子間の配線を行う手段として機能させ、前記タイミングレポート出力手段を、再度タイミングレポートを出力する手段として機能させる。
また、第8発明に係るコンピュータプログラムは、第7発明において、前記ブロックは、信号が入力されるフリップフロップ回路と信号を出力するフリップフロップ回路とで挟まれた論理演算素子及び該論理演算素子間の配線で構成されていることが好ましい。
また、第9発明に係るコンピュータプログラムは、第7又は第8発明において、前記装置を、前記ブロックごとに前記第一のネットリストと前記第二のネットリストとを対応付けた参照テーブルを生成して記憶する参照テーブル生成手段として機能させ、前記ネットリスト置換手段を、抽出されたブロックをキー情報として前記参照テーブルを参照して、抽出されたブロックに対応する第一のネットリストを、該ブロックに対応する第二のネットリストに置換する手段として機能させることが好ましい。
本発明によれば、第一の周波数で論理合成を行い、第一のネットリストを生成するとともに、第一の周波数よりも高い第二の周波数でも論理合成を行い、第二のネットリストを生成しておく。論理演算素子の配置配線工程において、原則として第一のネットリストに基づいて配置及び配線を行い、タイミングがクリティカルなブロックについては第二のネットリストに置換することにより、論理合成工程まで手戻りすることなくネットリストを最適化することができ、全体として論理回路の設計時間を短縮することが可能となる。また、必要以上に高速な論理演算素子が配置されることにより、全体として半導体集積回路のゲートサイズが大きくなること、消費電力が過大となること等を、未然に回避することが可能となる。
本発明の実施の形態に係る論理回路設計支援装置の構成を模式的に示すブロック図である。 本発明の実施の形態に係る論理回路設計支援装置の機能ブロック図である。 本発明の実施の形態に係る論理回路設計支援装置のRTLソースコードの例示図である。 本発明の実施の形態に係る論理回路設計支援装置の第一のネットリスト及び第二のネットリストの例示図である。 本発明の実施の形態に係る論理回路設計支援装置のタイミングレポートの例示図である。 本発明の実施の形態に係る論理回路設計支援装置の所定のブロックのタイミングレポートの例示図である。 本発明の実施の形態に係る論理回路設計支援装置の参照テーブル記憶部に記憶されている参照テーブルの例示図である。 本発明の実施の形態に係る論理回路設計支援装置の、第二のネットリストに置換された場合のタイミングレポートの例示図である。 本発明の実施の形態に係る論理回路設計支援装置のCPUの処理手順を示すフローチャートである。
以下、本発明の実施の形態に係る、論理回路の設計を支援する論理回路設計支援装置について、図面に基づいて具体的に説明する。以下の実施の形態は、特許請求の範囲に記載された発明を限定するものではなく、実施の形態の中で説明されている特徴的事項の組み合わせの全てが解決手段の必須事項であるとは限らないことは言うまでもない。
また、本発明は多くの異なる態様にて実施することが可能であり、実施の形態の記載内容に限定して解釈されるべきものではない。実施の形態を通じて同じ要素には同一の符号を付している。
以下の実施の形態では、コンピュータシステムにコンピュータプログラムを導入した装置について説明するが、当業者であれば明らかな通り、本発明はその一部をコンピュータで実行することが可能なコンピュータプログラムとして実施することができる。したがって、本発明は、論理回路の設計を支援する論理回路設計支援装置というハードウェアとしての実施の形態、ソフトウェアとしての実施の形態、又はソフトウェアとハードウェアとの組み合わせの実施の形態をとることができる。コンピュータプログラムは、ハードディスク、DVD、CD、光記憶装置、磁気記憶装置等の任意のコンピュータで読み取ることが可能な記録媒体に記録することができる。
本発明の実施の形態によれば、第一の周波数で論理合成を行い、第一のネットリストを生成するとともに、第一の周波数よりも高い第二の周波数でも論理合成を行い、第二のネットリストを生成しておく。論理演算素子の配置配線工程において、原則として第一のネットリストに基づいて配置及び配線を行い、タイミングがクリティカルなブロックについては第二のネットリストに置換することにより、論理合成工程まで手戻りすることなくネットリストを最適化することができ、全体として論理回路の設計時間を短縮することが可能となる。また、必要以上に高速な論理演算素子が配置されることにより、全体として半導体集積回路のゲートサイズが大きくなること、消費電力が過大となること等を、未然に回避することが可能となる。
図1は、本発明の実施の形態に係る論理回路設計支援装置の構成を模式的に示すブロック図である。本発明の実施の形態に係る論理回路設計支援装置1は、少なくともCPU(中央演算装置)11、メモリ12、記憶装置13、I/Oインタフェース14、ビデオインタフェース15、可搬型ディスクドライブ16、通信インタフェース17及び上述したハードウェアを接続する内部バス18で構成されている。
CPU11は、内部バス18を介して論理回路設計支援装置1の上述したようなハードウェア各部と接続されており、上述したハードウェア各部の動作を制御するとともに、記憶装置13に記憶されたコンピュータプログラム100に従って、種々のソフトウェア的機能を実行する。メモリ12は、SRAM、SDRAM等の揮発性メモリで構成され、コンピュータプログラム100の実行時にロードモジュールが展開され、コンピュータプログラム100の実行時に発生する一時的なデータ等を記憶する。
記憶装置13は、内蔵される固定型記憶装置(ハードディスク)、ROM等で構成されている。記憶装置13に記憶されたコンピュータプログラム100は、プログラム及びデータ等の情報を記録したDVD、CD−ROM等の可搬型記録媒体90から、可搬型ディスクドライブ16によりダウンロードされ、実行時には記憶装置13からメモリ12へ展開して実行される。もちろん、通信インタフェース17を介して接続されている外部コンピュータからダウンロードされたコンピュータプログラムであっても良い。
記憶装置13は、論理回路中の同じブロックについて、論理回路を第一の周波数で論理合成して生成された第一のネットリストと、第一の周波数よりも高い第二の周波数で論理合成して生成された第二のネットリストとを、論理演算素子(セル)を識別する識別情報に対応付けた参照テーブルを記憶する参照テーブル記憶部131を備えている。なお、ブロックとは、分割された所定の配線単位を意味しており、本実施の形態では、信号が入力される入力側フリップフロップ回路と、信号を出力する出力側フリップフロップ回路とで挟まれた論理演算素子(セル)及び該論理演算素子(セル)間の配線で構成されている。
通信インタフェース17は内部バス18に接続されており、インターネット、LAN、WAN等の外部のネットワークに接続されることにより、外部コンピュータ等とデータ送受信を行うことが可能となっている。
I/Oインタフェース14は、キーボード21、マウス22等の入力装置と接続され、データの入力を受け付ける。ビデオインタフェース15は、CRTディスプレイ、液晶ディスプレイ等の表示装置23と接続され、所定の画像を表示する。
図2は、本発明の実施の形態に係る論理回路設計支援装置1の機能ブロック図である。図2において、論理回路設計支援装置1の記述データ取得部201は、論理合成用のデータとして論理回路記述データを取得する。取得する論理回路記述データは、例えばRTL(レジスタ転送レベル:Register Transfer Level)ソースコードである。
図3は、本発明の実施の形態に係る論理回路設計支援装置1のRTLソースコードの例示図である。図3において、RTLソースコードは、基本的な乗算器を構成するソースコードであり、ソースコード301は、入力xと入力yとを乗算した結果をz_ltに出力することを示している。
具体的には、ソースコード302は、4ビットの入力xと入力yとを同期を取りつつ入力側フリップフロップ回路へ入力することを示している。ソースコード303は、論理回路を配線した結果として、出力zに入力xと入力yとを乗算した結果を出力することを示している。そして、ソースコード304は、6ビットの出力z_ltを出力側フリップフロップ回路へ出力することを示している。
図2に戻って、第一のネットリスト生成部202は、取得したRTLソースコード(論理回路記述データ)に基づいて第一の周波数で論理合成を行い、第一のネットリストを生成する。同様に第二のネットリスト生成部203は、取得した論理回路記述データに基づいて第一の周波数よりも高い第二の周波数で論理合成を行い、第二のネットリストを生成する。図4は、本発明の実施の形態に係る論理回路設計支援装置1の第一のネットリスト及び第二のネットリストの例示図である。
図4(a)は比較的低い周波数で論理合成して生成された第一のネットリストを、図4(b)は比較的高い周波数で論理合成して生成された第二のネットリストを、それぞれ示している。図4(a)と図4(b)とを比較すればわかるように、入力側フリップフロップ回路を識別する第一の識別情報41、及び出力側フリップフロップ回路を識別する第二の識別情報42は、第一のネットリストと第二のネットリストとで一致している。つまり、同一のブロックにおけるネットリストであることを示している。そして、入力側フリップフロップ回路と出力側フリップフロップ回路との間、すなわち第一の識別情報41と第二の識別情報42との間では、論理演算素子(セル)の配置も数も異なっている。
図2に戻って、配置配線部204は、生成された第一のネットリストに基づいて、論理演算素子の配置及び該論理演算素子間の配線を行う。具体的には、制約条件に沿って配置ツールにより自動配置・自動配線を実行する。タイミングレポート出力部205は、所定の配線単位に分割されたブロックごとに実行タイミングに関するタイミングレポートを出力する。
タイミングレポートとは、ブロックごとに、論理演算素子ごとの演算処理に要する時間を累積したレポートである。図5は、本発明の実施の形態に係る論理回路設計支援装置1のタイミングレポートの例示図である。図5では、1つのブロックに関して出力されたタイミングレポートを例示している。
図5に示すように、入力側フリップフロップ回路を識別する第一の識別情報51からタイムカウントを開始し、出力側フリップフロップ回路を識別する第二の識別情報52でタイムカウントを終了するまで、論理演算素子ごとの演算処理に要する時間を累積している。累積した演算処理時間が、事前に見積もっていた経過時間と大きく乖離した場合(超えてしまった場合)には、タイミングレポートを出力した該ブロックについては、第一のネットリストでは事前に見積もっていた経過時間内に処理を完了させることができない、タイミングがクリティカルなブロックであると判断することができる。本発明では、タイミングがクリティカルなブロックについては、第一のネットリストを、比較的高い周波数で論理合成した第二のネットリストに置換することにより、タイミング調整を行う。具体的には、事前に見積もっていた経過時間と累積した演算処理時間との差分を算出し、算出した差分が負の値になった場合に、タイミングがクリティカルなブロックであると判断する。
図2に戻って、ブロック抽出部206は、出力されたタイミングレポートに基づいて、所望の動作速度を満たしていないブロックを抽出する。そして、ネットリスト置換部207は、抽出されたブロックについて、第一のネットリストを第二のネットリストに置換する。
図6は、本発明の実施の形態に係る論理回路設計支援装置1の所定のブロックのタイミングレポートの例示図である。図6に示すブロックでは、累積した演算処理時間と、事前に見積もっていた経過時間との差分63が負の値(マイナス)で表示されており、事前に見積もっていた経過時間よりも演算処理に時間がかかることを示している。したがって、事前に見積もっていた経過時間内に処理が完了せず、全体として演算タイミングにずれ(遅れ等)が生じ、正しい論理演算を実行することができないおそれがある。
そこで、差分63が負の値で表示されているブロックについては、第一のネットリストを第二のネットリストに置換する。具体的には、入力側フリップフロップ回路を識別する第一の識別情報51及び出力側フリップフロップ回路を識別する第二の識別情報52をキー情報として、抽出されたブロックに対応する第一のネットリスト及び第二のネットリストを検索する。そして、抽出されたブロックに対応する第一のネットリストを、抽出されたブロックに対応する第二のネットリストに置換する。
もちろん、少しでも演算処理時間を早くするために、ブロックごとに第一のネットリストと第二のネットリストとを対応付けた参照テーブルを生成して、記憶装置13の参照テーブル記憶部131に記憶しておいても良い。図2に示す参照テーブル生成部208は、ブロックごとに第一のネットリストと第二のネットリストとを対応付けた参照テーブルを生成して、記憶装置13の参照テーブル記憶部131に記憶する。
参照テーブルを用いる場合、ネットリスト置換部207は、抽出されたブロックをキー情報として参照テーブルを参照し、抽出されたブロックに対応する第一のネットリストを、抽出されたブロックに対応する第二のネットリストに置換する。
図7は、本発明の実施の形態に係る論理回路設計支援装置1の参照テーブル記憶部131に記憶されている参照テーブルの例示図である。図7(a)に示す参照テーブルでは、ブロック(図7では「Path」と記載)ごとに、第一の周波数(低周波数)で論理合成して生成した第一のネットリスト71と、第二の周波数(高周波数)で論理合成して生成した第二のネットリスト72とを対応付けている。
図7(b)に示すように、低周波数で論理合成した場合には、論理演算素子の数が比較的少なく、配線も複雑にはならない。一方、図7(c)に示すように、高周波数で論理合成した場合には、論理演算素子の数が比較的多く、配線も複雑になる。ブロックごとに双方のネットリストを対応付けた参照テーブルを生成し、事前に記憶しておくことにより、生成されたネットリスト全体を検索する処理が不要となるので、演算処理負荷が過大になることなく、抽出されたブロックの第一のネットリスト71を第二のネットリスト72に置換することが可能となる。
図8は、本発明の実施の形態に係る論理回路設計支援装置1の、第二のネットリストに置換された場合のタイミングレポートの例示図である。図6とは異なり、累積した演算処理時間と、事前に見積もっていた経過時間との差分83は負の値(マイナス)で表示されておらず、事前に見積もっていた経過時間内に処理が完了すると判断することができる。
図9は、本発明の実施の形態に係る論理回路設計支援装置1のCPU11の処理手順を示すフローチャートである。論理回路設計支援装置1のCPU11は、論理合成用のデータとして論理回路記述データを取得する(ステップS901)。取得する論理回路記述データは、例えばRTL(レジスタ転送レベル:Register Transfer Level)ソースコードである。
CPU11は、取得した論理回路記述データに基づいて第一の周波数で論理合成を行い(ステップS902)、第一のネットリストを生成する(ステップS903)。同様に、CPU11は、取得した論理回路記述データに基づいて第一の周波数よりも高い第二の周波数で論理合成を行い(ステップS904)、第二のネットリストを生成する(ステップS905)。CPU11は、入力側フリップフロップ回路と出力側フリップフロップ回路とで挟まれた論理演算素子及び該論理演算素子間の配線で構成されているブロックごとに第一のネットリストと第二のネットリストとを対応付けた参照テーブルを生成して記憶する(ステップS906)。
CPU11は、生成された第一のネットリストに基づいて、論理演算素子の配置及び該論理演算素子間の配線を行う(ステップS907)。具体的には、制約条件に沿って配置ツールにより自動配置・自動配線を実行する。CPU11は、ブロックごとに実行タイミングに関するタイミングレポートを出力する(ステップS908)。
CPU11は、ブロックを選択し(ステップS909)、選択したブロックについて出力されたタイミングレポートで累積した演算処理時間と事前に見積もっていた経過時間との差分が負の値であるか否かを判断する(ステップS910)。CPU11が、負の値であると判断した場合(ステップS910:YES)、CPU11は、第一のネットリストを第二のネットリストに置換する(ステップS911)。
CPU11が、負の値でないと判断した場合(ステップS910:NO)、CPU11は、ステップS911をスキップし、全てのブロックを選択したか否かを判断する(ステップS912)。CPU11が、まだ選択していないブロックが存在すると判断した場合(ステップS912:NO)、CPU11は、次のブロックを選択し(ステップS913)、処理をステップS910に戻して、上述した処理を繰り返す。
CPU11が、全てのブロックを選択したと判断した場合(ステップS912:YES)、CPU11は、一部又は全部が第二のネットリストに置換されたネットリストに基づいて、論理演算素子の配置及び該論理演算素子間の配線を行い(ステップS914)、タイミングレポートを再度出力する(ステップS915)。
以上のように本実施の形態によれば、第一の周波数(低周波数)で論理合成を行い、第一のネットリストを生成するとともに、第一の周波数よりも高い第二の周波数(高周波数)でも論理合成を行い、第二のネットリストを生成しておく。論理演算素子の配置配線工程において、原則として第一のネットリストに基づいて配置及び配線を行い、タイミングがクリティカルなブロックについては高周波数で生成された第二のネットリストに置換することにより、論理合成工程まで手戻りすることなくネットリストを最適化することができ、全体として論理回路の設計時間を短縮することが可能となる。また、必要以上に高速な論理演算素子が配置されることにより、全体として半導体集積回路のゲートサイズが大きくなること、消費電力が過大となること等を、未然に回避することが可能となる。
なお、本発明は上記実施例に限定されるものではなく、本発明の趣旨の範囲内であれば多種の変更、改良等が可能である。
1 論理回路設計支援装置
11 CPU
12 メモリ
13 記憶装置
14 I/Oインタフェース
15 ビデオインタフェース
16 可搬型ディスクドライブ
17 通信インタフェース
18 内部バス
90 可搬型記録媒体
100 コンピュータプログラム

Claims (9)

  1. 論理回路の設計を支援する装置で実行することが可能な方法において、
    論理回路記述データを取得する工程と、
    取得した論理回路記述データに基づいて第一の周波数で論理合成を行い、第一のネットリストを生成する工程と、
    取得した論理回路記述データに基づいて前記第一の周波数よりも高い第二の周波数で論理合成を行い、第二のネットリストを生成する工程と、
    前記第一のネットリストに基づいて論理演算素子の配置及び該論理演算素子間の配線を行う工程と、
    所定の配線単位に分割されたブロックごとに実行タイミングに関するタイミングレポートを出力する工程と、
    出力されたタイミングレポートに基づいて、前記ブロックのうち、所望の動作速度を満たしていないブロックを抽出する工程と、
    抽出されたブロックについて、前記第一のネットリストを前記第二のネットリストに置換する工程と
    を含み、
    一部又は全部が前記第二のネットリストに置換されたネットリストに基づいて論理演算素子の配置及び該論理演算素子間の配線を行い、再度タイミングレポートを出力する方法。
  2. 前記ブロックは、信号が入力されるフリップフロップ回路と信号を出力するフリップフロップ回路とで挟まれた論理演算素子及び該論理演算素子間の配線で構成されている請求項1に記載の方法。
  3. 前記ブロックごとに前記第一のネットリストと前記第二のネットリストとを対応付けた参照テーブルを生成して記憶する工程を含み、
    抽出されたブロックをキー情報として前記参照テーブルを参照して、抽出されたブロックに対応する第一のネットリストを、該ブロックに対応する第二のネットリストに置換する請求項1又は2に記載の方法。
  4. 論理回路の設計を支援する装置において、
    論理回路記述データを取得する記述データ取得手段と、
    取得した論理回路記述データに基づいて第一の周波数で論理合成を行い、第一のネットリストを生成する第一のネットリスト生成手段と、
    取得した論理回路記述データに基づいて前記第一の周波数よりも高い第二の周波数で論理合成を行い、第二のネットリストを生成する第二のネットリスト生成手段と、
    前記第一のネットリストに基づいて論理演算素子の配置及び該論理演算素子間の配線を行う配置配線手段と、
    所定の配線単位に分割されたブロックごとに実行タイミングに関するタイミングレポートを出力するタイミングレポート出力手段と、
    出力されたタイミングレポートに基づいて、前記ブロックのうち、所望の動作速度を満たしていないブロックを抽出するブロック抽出手段と、
    抽出されたブロックについて、前記第一のネットリストを前記第二のネットリストに置換するネットリスト置換手段と
    を備え、
    前記配置配線手段は、一部又は全部が前記第二のネットリストに置換されたネットリストに基づいて論理演算素子の配置及び該論理演算素子間の配線を行い、前記タイミングレポート出力手段は、再度タイミングレポートを出力する装置。
  5. 前記ブロックは、信号が入力されるフリップフロップ回路と信号を出力するフリップフロップ回路とで挟まれた論理演算素子及び該論理演算素子間の配線で構成されている請求項4に記載の装置。
  6. 前記ブロックごとに前記第一のネットリストと前記第二のネットリストとを対応付けた参照テーブルを生成して記憶する参照テーブル生成手段を備え、
    前記ネットリスト置換手段は、抽出されたブロックをキー情報として前記参照テーブルを参照して、抽出されたブロックに対応する第一のネットリストを、該ブロックに対応する第二のネットリストに置換する請求項4又は5に記載の装置。
  7. 論理回路の設計を支援する装置で実行することが可能なコンピュータプログラムにおいて、
    前記装置を、
    論理回路記述データを取得する記述データ取得手段、
    取得した論理回路記述データに基づいて第一の周波数で論理合成を行い、第一のネットリストを生成する第一のネットリスト生成手段、
    取得した論理回路記述データに基づいて前記第一の周波数よりも高い第二の周波数で論理合成を行い、第二のネットリストを生成する第二のネットリスト生成手段、
    前記第一のネットリストに基づいて論理演算素子の配置及び該論理演算素子間の配線を行う配置配線手段、
    所定の配線単位に分割されたブロックごとに実行タイミングに関するタイミングレポートを出力するタイミングレポート出力手段、
    出力されたタイミングレポートに基づいて、前記ブロックのうち、所望の動作速度を満たしていないブロックを抽出するブロック抽出手段、及び
    抽出されたブロックについて、前記第一のネットリストを前記第二のネットリストに置換するネットリスト置換手段
    として機能させ、
    前記配置配線手段を、一部又は全部が前記第二のネットリストに置換されたネットリストに基づいて論理演算素子の配置及び該論理演算素子間の配線を行う手段として機能させ、
    前記タイミングレポート出力手段を、再度タイミングレポートを出力する手段として機能させるコンピュータプログラム。
  8. 前記ブロックは、信号が入力されるフリップフロップ回路と信号を出力するフリップフロップ回路とで挟まれた論理演算素子及び該論理演算素子間の配線で構成されている請求項7に記載のコンピュータプログラム。
  9. 前記装置を、前記ブロックごとに前記第一のネットリストと前記第二のネットリストとを対応付けた参照テーブルを生成して記憶する参照テーブル生成手段として機能させ、
    前記ネットリスト置換手段を、抽出されたブロックをキー情報として前記参照テーブルを参照して、抽出されたブロックに対応する第一のネットリストを、該ブロックに対応する第二のネットリストに置換する手段として機能させる請求項7又は8に記載のコンピュータプログラム。
JP2012157028A 2012-07-13 2012-07-13 半導体集積回路の論理回路設計に用いるネットリストを最適化する方法、該方法を用いて論理回路の設計を支援する装置及び該装置で実行することが可能なコンピュータプログラム Ceased JP2014021573A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012157028A JP2014021573A (ja) 2012-07-13 2012-07-13 半導体集積回路の論理回路設計に用いるネットリストを最適化する方法、該方法を用いて論理回路の設計を支援する装置及び該装置で実行することが可能なコンピュータプログラム
US13/939,527 US8656337B2 (en) 2012-07-13 2013-07-11 Optimization method and device for netlist used in logic circuit design for semiconductor integrated circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012157028A JP2014021573A (ja) 2012-07-13 2012-07-13 半導体集積回路の論理回路設計に用いるネットリストを最適化する方法、該方法を用いて論理回路の設計を支援する装置及び該装置で実行することが可能なコンピュータプログラム

Publications (1)

Publication Number Publication Date
JP2014021573A true JP2014021573A (ja) 2014-02-03

Family

ID=49915125

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012157028A Ceased JP2014021573A (ja) 2012-07-13 2012-07-13 半導体集積回路の論理回路設計に用いるネットリストを最適化する方法、該方法を用いて論理回路の設計を支援する装置及び該装置で実行することが可能なコンピュータプログラム

Country Status (2)

Country Link
US (1) US8656337B2 (ja)
JP (1) JP2014021573A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016105252A (ja) * 2014-12-01 2016-06-09 株式会社ソシオネクスト 設計方法、設計装置及びプログラム

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180092692A (ko) * 2017-02-10 2018-08-20 삼성전자주식회사 Beol을 고려하여 집적 회로를 설계하기 위한 컴퓨터 구현 방법 및 컴퓨팅 시스템
CN110362841B (zh) * 2018-03-26 2023-05-30 创意电子股份有限公司 顶部接口逻辑模型建立方法
CN115422863B (zh) * 2022-08-31 2023-10-10 山东启芯软件科技有限公司 一种嵌入式的逻辑优化验证流程框架及验证方法
CN116595917B (zh) * 2023-07-17 2023-10-17 奇捷科技(深圳)有限公司 无需先验知识的逻辑功能更正方法、装置、设备及介质
CN117332121A (zh) * 2023-09-26 2024-01-02 华能澜沧江水电股份有限公司 一种水电厂非电量保护逻辑图谱生成系统及方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06180733A (ja) * 1992-12-11 1994-06-28 Toshiba Corp 論理合成システム
JP2000113019A (ja) * 1998-10-06 2000-04-21 Sony Corp 回路設計方法および設計支援装置
JP2006163822A (ja) * 2004-12-07 2006-06-22 Mitsubishi Electric Corp 論理合成装置および方法並びにプログラム

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002157292A (ja) 2000-11-17 2002-05-31 Matsushita Electric Ind Co Ltd 半導体集積回路の論理合成方法
JP3722692B2 (ja) 2000-11-24 2005-11-30 Necマイクロシステム株式会社 レイアウト設計変更装置
JP2002318825A (ja) * 2001-04-20 2002-10-31 Hitachi Ltd 論理回路の設計方法
JP4059668B2 (ja) 2001-12-18 2008-03-12 三洋電機株式会社 集積回路の設計方法及び集積回路の設計支援装置
JP4104354B2 (ja) 2002-03-13 2008-06-18 富士通株式会社 電源配線の電圧降下による影響を緩和した集積回路のレイアウト方法とそのプログラム
JP2004086763A (ja) 2002-08-28 2004-03-18 Fujitsu Ltd 半導体集積回路の設計方法および半導体集積回路の設計プログラム
JP2005122298A (ja) 2003-10-14 2005-05-12 Fujitsu Ltd タイミング解析装置、タイミング解析方法及びプログラム
JP4419633B2 (ja) * 2004-03-25 2010-02-24 日本電気株式会社 論理回路設計システム、論理回路設計方法およびそのプログラム
JP3956979B2 (ja) 2005-06-27 2007-08-08 富士通株式会社 大規模集積回路の開発ツール
JP4736822B2 (ja) 2006-01-25 2011-07-27 日本電気株式会社 半導体集積回路の設計支援装置、設計支援方法および設計支援プログラム
US8122422B2 (en) * 2009-07-27 2012-02-21 Lsi Corporation Establishing benchmarks for analyzing benefits associated with voltage scaling, analyzing the benefits and an apparatus therefor

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06180733A (ja) * 1992-12-11 1994-06-28 Toshiba Corp 論理合成システム
JP2000113019A (ja) * 1998-10-06 2000-04-21 Sony Corp 回路設計方法および設計支援装置
JP2006163822A (ja) * 2004-12-07 2006-06-22 Mitsubishi Electric Corp 論理合成装置および方法並びにプログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016105252A (ja) * 2014-12-01 2016-06-09 株式会社ソシオネクスト 設計方法、設計装置及びプログラム

Also Published As

Publication number Publication date
US8656337B2 (en) 2014-02-18
US20140019922A1 (en) 2014-01-16

Similar Documents

Publication Publication Date Title
JP2014021573A (ja) 半導体集積回路の論理回路設計に用いるネットリストを最適化する方法、該方法を用いて論理回路の設計を支援する装置及び該装置で実行することが可能なコンピュータプログラム
US8286108B2 (en) System and method for synthesis reuse
JP4946573B2 (ja) デカップリングセル配置方法及びデカップリングセル配置装置
US20110295536A1 (en) Clock jitter analyzing method and apparatus
JP5444985B2 (ja) 情報処理装置
JP2009230392A (ja) シミュレーション装置、シミュレーション方法及びプログラム
US20050251776A1 (en) Integrated circuit design system
JP2017027413A (ja) プログラマブルロジックデバイス設計装置及びその方法
US20160246601A1 (en) Technique for translating dependent instructions
JP2008243092A (ja) マルチサイクルパス検出装置、マルチサイクルパス検出方法及びマルチサイクルパス検出プログラム
JP5338919B2 (ja) 集積回路の消費電力算出方法、消費電力算出プログラム及び消費電力算出装置
JP2006323873A (ja) シミュレーション方法
JP2008204111A (ja) 半導体集積回路の設計支援装置、その設計支援方法、その製造方法、プログラム、及び記録媒体
JP4886559B2 (ja) 半導体設計支援装置、半導体設計支援方法および半導体設計支援プログラム
JP2010257003A (ja) 論理等価性検証システム、論理等価性検証方法、半導体集積回路の製造方法、制御プログラムおよび可読記憶媒体
JP5110206B2 (ja) 動作合成装置、動作合成方法、ならびに、プログラム
JP4448048B2 (ja) 構造解析プログラム
JP2005316595A (ja) 回路記述間の等価性検証方法および回路記述間の等価性検証プログラム
JP2008217071A (ja) 高位合成装置および高位合成方法
JP2012159977A (ja) 動作合成装置、動作合成方法及び動作合成プログラム
US10157164B2 (en) Hierarchical synthesis of computer machine instructions
JP2007034668A (ja) レイアウト方法
JP2012043327A (ja) クロックツリー設計方法及びクロックツリー設計装置
JP6435892B2 (ja) 回路設計方法、回路設計ツール用セル・ライブラリのコンポーネント
JP5531479B2 (ja) 回路設計方法、及び回路設計プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150610

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160512

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160517

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20160519

A045 Written measure of dismissal of application [lapsed due to lack of payment]

Free format text: JAPANESE INTERMEDIATE CODE: A045

Effective date: 20161004