JP4216087B2 - 論理回路最適化方法、論理回路最適化装置、及び、論理回路合成装置 - Google Patents

論理回路最適化方法、論理回路最適化装置、及び、論理回路合成装置 Download PDF

Info

Publication number
JP4216087B2
JP4216087B2 JP2003032438A JP2003032438A JP4216087B2 JP 4216087 B2 JP4216087 B2 JP 4216087B2 JP 2003032438 A JP2003032438 A JP 2003032438A JP 2003032438 A JP2003032438 A JP 2003032438A JP 4216087 B2 JP4216087 B2 JP 4216087B2
Authority
JP
Japan
Prior art keywords
flip
cluster
flop
logic
circuit
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
JP2003032438A
Other languages
English (en)
Other versions
JP2004246402A (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.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
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 Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP2003032438A priority Critical patent/JP4216087B2/ja
Priority to CNB2004100038664A priority patent/CN1282114C/zh
Priority to US10/773,276 priority patent/US7146582B2/en
Publication of JP2004246402A publication Critical patent/JP2004246402A/ja
Application granted granted Critical
Publication of JP4216087B2 publication Critical patent/JP4216087B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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)
  • Logic Circuits (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、半導体集積回路の論理検証を行う論理エミュレーション装置に与える回路情報を生成するための論理回路最適化方法およびその関連技術に関する。
【0002】
【従来の技術】
近年のLSI(large scale integrated circuit)の大規模化によって、ソフトウェア・シミュレーションによる論理回路の検証が不可能になってきている。
【0003】
そこで、ハードウェアによる回路動作を再現(エミュレーション)する論理エミュレーション装置が実用化されている。
【0004】
論理エミュレーション装置には、大きく分けて2つのタイプがある。
1つは、多数のプロセッサを搭載して、強力な計算能力でエミュレーションするプロセッサ型論理エミュレーション装置である。
【0005】
もう1つは、FPGA型論理エミュレーション装置であり、ユーザが自在に回路動作を変えることができるFPGA(Filed Programmable Gate Array)のようなプログラマブル・デバイス(可変論理素子)を多数搭載して、論理動作をエミュレーションする。
【0006】
従来のFPGA型エミュレーション装置の一例として、特許文献1に開示されているものがある。
【0007】
図19に示すように、この従来の論理エミュレーション装置100は、ロジックチップ101〜103、メモリモジュール104、ユーザ指定チップ105、及び、相互接続チップ106、からなる。
【0008】
ロジックチップ101〜103の各々がFPGAである。メモリモジュール104は、メモリデバイスをエミュレーションする。ユーザ指定チップ105は、ユーザが任意に使用するLSIなどのハードウェアIP(intellectual property)である。
【0009】
相互接続チップ106は、ロジックチップ101〜103、メモリモジュール104、及び、ユーザ指定チップ105、を相互に接続する。この相互接続チップ106は、各チップ間をクロスバースィッチ構成で接続する。
【0010】
ここで、特許文献1に開示されている、FPGAに回路を割り付ける際に行われる基本的手法について説明する。
【0011】
論理回路は、基本的に、フリップフロップと、これらフリップフロップ間を接続する組み合わせ回路と、からなっている。
【0012】
このため、FPGAへの論理回路の割り付けは、クラスタ単位で行われる。ここで、クラスタとは、フリップフロップの入力端子から前段のフリップフロップ(単数の場合もあるし、複数の場合もある。)の出力端子に向かって存在する組み合わせ回路と、当該フリップフロップと、から構成される回路群である。そして、クラスタを抽出する行為を、クラスタリングと呼ぶ。
【0013】
クラスタリングについて、図面を用いて説明する。
図20は、クラスタリングの説明図である。図20(a)は、クラスタリング前の論理回路の概念図、図20(b)は、クラスタリング後の論理回路の概念図、である。
【0014】
図20(a)では、フリップフロップFF0からフリップフロップFF1,FF2へ接続する回路構成例を示している。フリップフロップFF0とフリップフロップFF1,FF2とは、組み合わせ回路により接続される。
【0015】
この図20(a)の回路構成例において、クラスタリングを行うと、図20(b)に示すように、クラスタ107とクラスタ108とが作成される。
【0016】
クラスタ107は、組み合わせ回路109及びフリップフロップFF1からなる。クラスタ108は、組み合わせ回路110及びフリップフロップFF2からなる。
【0017】
このようなクラスタリングを、与えられた回路中に存在する全フリップフロップに対して実施する。このようにして作成されたクラスタをFPGAに割り付けていく。
【0018】
図21は、FPGAに割り付けられたクラスタの例示図である。図21に示すように、クラスタリング後に、クラスタ111がFPGA112に割り付けられる。
【0019】
さて、クラスタ単位でFPGAに論理回路を割り付けていく手法は、レンツ・ルールで示される、FPGAのI/O(input/output)数の不足問題を回避する目的がある。
【0020】
レンツ・ルールとは、1960年にIBMのE.F.Rent氏によって提唱された、論理設計におけるI/Oピン(ブロックのピンを含む)と回路規模との関係を示した法則である(http://www.cedcc.psu.edu/ee497i/rents_rule.PDF)。
【0021】
次式が、レンツ・ルールの関係式である。
【数1】
Figure 0004216087
(数1)において、「Np」は、I/Oピン数、「Ng」は、回路規模(回路(ゲート)数)、を示す。「X」は、Rent定数、「Kp」は、比例定数、である。
【0022】
つまり、レンツ・ルールによれば、I/Oピン数は、回路規模の指数倍の関係で増える。
【0023】
【特許文献1】
特開2000−36737号公報(第1図)
【0024】
【発明が解決しようとする課題】
今日の半導体プロセスの微細化に伴い、LSIがますます大規模化しており、FPGAへの論理回路の割り付けが難しくなってきている。
【0025】
一方、LSIの高速動作も求められており、フリップフロップ間の回路段数はそのまま、または削減される傾向にあるが、組み合わせ回路の並列度は広がっている。
【0026】
このため、クラスタリングを行っても、論理回路がFPGAに適切に割り付けられないことが発生している。
【0027】
例えば、FPGAに配置しようとするクラスタが、当該FPGAに配置可能な残りの回路規模より大きい場合、そのクラスタは、当該FPGAに配置されず、他のFPGAに配置されることになる。
【0028】
この場合、FPGAの使用効率が低下することになり、論理エミュレーション装置で取り扱える回路規模が小さくなるとう問題が生じる。
【0029】
また、FPGAの使用効率が低いと、割り付けられる回路密度が小さくなるため、各回路間の信号遅延が大きくなる。
【0030】
このため、信号遅延が付加され、動作速度つまりエミュレーション速度が低下するという問題が生じる。
【0031】
そこで、本発明は、論理エミュレーション装置の可変論理素子の使用効率を向上できる論理回路最適化方法及びその関連技術を提供することを目的とする。
【0032】
【課題を解決するための手段】
請求項1記載の論理エミュレーション装置は、複数のFPGA素子を備えて、複数のFPGA素子に割り付けられた論理回路のエミュレーションを行う論理エミュレーション装置であって、論理回路が含むフリップフロップと論理素子との回路構成を表す論理回路情報を入力する入力手段と、論理回路情報に基づいて、論理回路に含まれる特定フリップフロップの入力信号の論理の決定に関わると共に特定フリップフロップから特定フリップフロップの前段のフリップフロップまでの論理素子の構成によって定まるクラスタであって、論理回路に含まれる複数のクラスタを抽出するクラスタリング手段と、複数のクラスタの内、クラスタに含まれる論理素子の段数によって定義されるクラスタ長が予め定められた所定段数を超えるクラスタに対して、新たなフリップフロップを挿入してクラスタを複数の新たなクラスタに分割する挿入手段と、を備え、クラスタリング手段は、論理回路に含まれる第1フリップフロップの後段に位置する第2フリップフロップの入力信号の論理の決定に関わると共に第2フリップフロップから第1フリップフロップの出力までの論理素子の構成を表す第1回路構成と、第1フリップフロップの後段であって第2フリップフロップと並列の位置にある第3フリップフロップの入力信号の論理の決定に関わると共に第3フリップフロップから第1フリップフロップの出力までの論理素子の構成を表す第2回路構成と、を抽出する抽出手段と、第1回路構成と第2回路構成とが相互に独立して論理回路を構成できるように、第1回路構成と第2回路構成とを最適化して、最適化された第1回路構成を第1クラスタとして決定し、最適化された第2回路構成を第2クラスタとして決定する最適化手段とを有する。
【0033】
この構成によれば、クラスタ長の長いクラスタにフリップフロップが挿入されるため、クラスタ長の長いクラスタが、クラスタ長の短い複数のクラスタに分割される。
【0034】
このため、論理エミュレーション装置の可変論理素子(例えば、FPGA)にクラスタを割り付ける際の自由度が高くなる。
【0035】
また、レンツ・ルールが示すような可変論理素子のI/Oピン数によるゲート搭載の非効率化が発生しないため、可変論理素子の使用効率を向上できる。
【0036】
以上により、論理エミュレーション装置に割り付ける論理回路の最適化が図られる。
【0037】
請求項2記載の論理エミュレーション装置では、挿入手段によって第1クラスタにフリップフロップが挿入された場合には、第1クラスタは、フリップフロップを基準として、第3クラスタと第4クラスタとに分割され、第2クラスタ、第3クラスタおよび第4クラスタのそれぞれは、複数のFPGA素子において、異なるFPGA素子に割当てられる
【0039】
請求項3記載の論理エミュレーション装置では、挿入手段は、第3クラスタが所定段数を超える場合には、第3クラスタに新たなフリップフロップを挿入し、挿入手段は、第4クラスタが所定段数を超える場合には、第4クラスタに新たなフリップフロップを挿入する。
【0040】
この構成によれば、論理エミュレーション装置に割り付ける論理回路のより一層の最適化を図ることができる。
【0062】
以上により、論理エミュレーション装置に割り付ける論理回路の最適化が図られる。
【0064】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態を説明する。
(実施の形態1)
【0065】
図1は、本発明の実施の形態1における論理エミュレーションシステムのブロック図である。
【0066】
図1に示すように、この論理エミュレーションシステムは、回路割付装置1、及び、論理エミュレーション装置2、を具備する。
【0067】
論理エミュレーション装置2には、図示していないが、FPGA及びメモリデバイス等が搭載されている。また、FPGAには、図示していないが、メモリデバイスが搭載されている。
【0068】
ここで、FPGAは、ユーザが自在に回路動作を変えることができる可変論理素子(プログラマブル・デバイス)の一例である。
【0069】
論理エミュレーション装置2として、例えば、図19の論理エミュレーション装置を使用できる。
【0070】
図2は、図1の回路割付装置1のブロック図である。なお、図2において、図1と同様の部分については、同一の符号を付している。
【0071】
図2に示すように、図1の回路割付装置1は、論理回路合成装置9、論理回路最適化装置8、及び、FPGA割付装置10、を含む。
【0072】
論理回路合成装置9は、論理合成を行い、ハードウェア記述言語(HDL:hardware description language)3から論理回路情報4を生成する。
【0073】
ハードウェア記述言語3は、機能レベルで論理回路を記述するための言語であり、例えば、Verilog−HDL、あるいはVHDLなど、である。
【0074】
論理回路情報4は、ゲート・レベルで論理回路を記述した情報であり、例えば、ネットリストである。
【0075】
図3は、図2の論理回路最適化装置8のブロック図である。図3に示すように、論理回路最適化装置8は、クラスタリング手段80、クラスタリング論理回路情報記憶手段81、クラスタ長測定手段82、クラスタ長記憶手段83、クラスタ選択手段84、回路分割手段85、回路分割論理回路情報記憶手段86、クラスタ長判定手段87、最適化論理回路情報生成手段88、及び、最適化論理回路情報記憶手段89、を含む。
【0076】
クラスタリング手段80は、論理回路合成装置9が生成した論理回路情報4の中からフリップフロップを検索し、全てのフリップフロップに対して、クラスタリング処理を行う。
【0077】
より具体的には、クラスタリング手段80は、現在選択しているフリップフロップの入力端子から前段のフリップフロップ(単数の場合もあるし、複数の場合もある。)の出力端子に向かって組み合わせ回路を探索して、現在選択しているフリップフロップ及び探索した組み合わせ回路で構成されるクラスタを抽出する。
【0078】
さて、クラスタリング論理回路情報記憶手段81は、クラスタリング後の論理回路情報4(以下、「クラスタリング論理回路情報」と呼ぶ。)を記憶する。
【0079】
クラスタ長測定手段82は、クラスタリング論理回路情報記憶手段81に記憶された全てのクラスタのクラスタ長を測定する。
【0080】
ここで、クラスタ長は、例えば、回路段数で表すことができる。
また、クラスタ長は、例えば、クラスタを信号が伝搬する際の伝搬時間で表すことができる。
【0081】
クラスタ長記憶手段83は、クラスタ長測定手段82が測定したクラスタ長を、各クラスタと関連づけて記憶する。
【0082】
クラスタ選択手段84は、クラスタ長記憶手段83を参照して、クラスタ長が規定値を超えているクラスタを選択する。
【0083】
ここで、上記の規定値は、全クラスタ長の平均値としたり、あるいは、論理エミュレーション装置2に最適な値としたり、などユーザが任意に指定できる。
【0084】
回路分割手段85は、クラスタ長が規定値を超えるクラスタの組み合わせ回路を分割するフリップフロップ(以下、「分割フリップフロップ」と呼ぶ。)を挿入する。
【0085】
なお、クラスタ長が規定値を超えるクラスタが複数存在する場合もあるが、この場合でも、クラスタ長が規定値を超える全てのクラスタに分割フリップフロップを挿入する。
【0086】
回路分割手段85による処理を具体例を挙げながら説明する。
図4は、回路分割手段85による処理の例示図である。図4(a)は、回路分割前のクラスタを示し、図4(b)は、回路分割後のクラスタを示している。
【0087】
図4(a)に示すように、組み合わせ回路CC及びフリップフロップFF1からなるクラスタCのクラスタ長は、規定値を超えているとする。
【0088】
回路分割手段85が、クラスタCに分割フリップフロップFF2を挿入し、クラスタリング手段80が、分割フリップフロップFF2を挿入したクラスタCに対して、再クラスタリングを行う。
【0089】
その結果、図4(b)に示すように、クラスタCは、組み合わせ回路CC1及びフリップフロップFF2からなるクラスタC1と、組み合わせ回路CC2及びフリップフロップFF1からなるクラスタC2と、に分割される。
【0090】
ここで、分割フリップフロップFF2は、他のフリップフロップFF0,FF1の動作クロックCLKとは異なる動作クロックFCLKで動作する。この点を詳しく説明する。
【0091】
図4(a)に示すように、フリップフロップFF0−FF1間の組み合わせ回路CCは、動作クロックCLKの1クロックで動作する。
【0092】
従って、図4(b)に示すように、分割フリップフロップFF2を挿入後でも、フリップフロップFF0−FF1間では、動作クロックCLKの1クロックで動作しなければならない。
【0093】
そこで、分割フリップフロップFF2の動作クロックFCLKを、動作クロックCLKの立ち下がりエッジに同期したクロックとする。なお、フリップフロップFF0,FF1および分割フリップフロップFF2は、立ち上がりエッジ動作を行うとする。
【0094】
例えば、動作クロックFCLKを、動作クロックCLKの反転クロックとすることができる。
【0095】
また、例えば、動作クロックFCLKを、動作クロックCLKの立ち下がりエッジに同期したパルス波形のクロックとすることができる。
【0096】
このように、動作クロックFCLKを動作クロックCLKの立ち下がりエッジに同期したクロックとすると、フリップフロップFF0−分割フリップフロップFF2間の組み合わせ回路CC1、及び、分割フリップフロップFF2−フリップフロップFF1間の組み合わせ回路CC2、の各々は、動作クロックCLKの半周期以内で動作する必要がある。
【0097】
従って、組み合わせ回路CC1及び組み合わせ回路CC2の各々が、動作クロックCLKの半周期以内で動作する回路段数のポイントに、分割フリップフロップFF2を挿入する必要がある。
【0098】
さて、分割フリップフロップFF2に対しては、フリップフロップ機能の許可(イネーブル)制御が可能である。
【0099】
つまり、分割フリップフロップFF2は、フリップフロップ機能のイネーブル信号ENBによって、ラッチ動作又はスルー動作を切り替えることができる。従って、ディスイネーブル時は、分割フリップフロップFF2の挿入前の回路(図4(a))と同等の回路構成に戻して動作せることができる。
【0100】
このため、分割フリップフロップFF2を挿入する場合と挿入しない場合との論理等価性を確認することができる。
【0101】
さて、上記のように、クラスタリング手段80は、分割フリップフロップFF2を挿入したクラスタCに対して、再クラスタリングを行って、クラスタC1,C2を作成した。
【0102】
この際、クラスタリング手段80は、クラスタリング論理回路情報記憶手段81に記憶されたクラスタリング論理回路情報において、クラスタCの情報をクラスタC1,C2の情報に置き換えて、クラスタリング論理回路情報を更新する。
【0103】
さて、図3のクラスタ長判定手段87は、フリップフロップFF0−分割フリップフロップFF2間、及び、分割フリップフロップFF2−フリップフロップFF1間、の各々のクラスタ長と、規定値と、を比較する。
【0104】
そして、クラスタ長判定手段87は、フリップフロップFF0−分割フリップフロップFF2間、あるいは、分割フリップフロップFF2−フリップフロップFF1間、のいずれか一方のクラスタ長が、規定値を超えている場合は、回路分割手段85、及び、クラスタリング手段80、に対して、それぞれ、回路分割処理、及び、再クラスタリング処理、を実行させる。
【0105】
回路分割処理、及び、再クラスタリング処理は、フリップフロップFF0−分割フリップフロップFF2間、及び、分割フリップフロップFF2−フリップフロップFF1間、の各々のクラスタ長が、規定値以下になるまで繰り返される。こうすることで、全てのクラスタのクラスタ長が規定値以下となる。
【0106】
ここで、クラスタ長判定手段87における規定値と、クラスタ選択手段84における規定値と、は同一の値とする。
【0107】
一方、フリップフロップFF0−分割フリップフロップFF2間、及び、分割フリップフロップFF2−フリップフロップFF1間、の各々のクラスタ長が、規定値以下の場合は、クラスタ長判定手段87は、図3の最適化論理回路情報生成手段88に、処理を実行させる。
【0108】
さて、再び、図3に戻って説明する。
回路分割論理回路情報記憶手段86は、最新の更新されたクラスタリング回路情報(以下、「回路分割論理回路情報」と呼ぶ。)を記憶する。
【0109】
最適化論理回路情報生成手段88は、回路分割論理回路情報および論理エミュレーション装置構成情報6を基に、論理エミュレーション装置2に搭載された各FPGAに、回路分割論理回路情報に含まれるクラスタを割り付けていく。
【0110】
そして、最適化論理回路情報生成手段88は、クラスタの割り付け情報と回路分割論理回路情報とからなる最適化論理回路情報11を生成する。
【0111】
ここで、論理エミュレーション装置構成情報6は、論理エミュレーション装置2に搭載されている素子に関する情報である。
【0112】
例えば、論理エミュレーション装置構成情報6は、論理エミュレーション装置2
に搭載されているFPGAの個数、種類(例えば、搭載可能な回路(ゲート)数(搭載可能な回路規模)など)、及び、接続関係、を示した情報である。
【0113】
最適化論理回路情報記憶手段89は、最適化論理回路情報11を記憶する。
さて、再び、図2に戻って説明する。
【0114】
FPGA割付装置10は、最適化論理回路情報11を元に、論理エミュレーション装置用回路情報5を生成する。
【0115】
論理エミュレーション装置用回路情報5は、最適化論理回路情報11が最終的な回路割付状態になった回路情報である。
【0116】
図1の論理エミュレーション装置2は、この論理エミュレーション装置用回路情報5を基に、各FPGAにクラスタを配置して、エミュレーションを実行する。
【0117】
さて、次に、分割フリップフロップの挿入方法を、具体例を挙げながら詳細に説明する。この例では、クラスタ長を回路段数で表す。
【0118】
図5は、分割フリップフロップの挿入方法を説明するためのクラスタの例示図である。なお、図5のフリップフロップFF0〜FF4は、立ち上がりエッジ動作を行うとする。
【0119】
図5には、フリップフロップFF4と、フリップフロップFF4−FF0,FF1,FF2,FF3間の組み合わせ回路と、からなる1つのクラスタを示している。
【0120】
このように、基点となるフリップフロップFF4に対して、その前段のフリップフロップFF0〜FF3が複数存在する場合もある。
【0121】
なお、図4では、基点となるフリップフロップFF1に対して、その前段のフリップフロップFF0が1つ存在する例を挙げている。
【0122】
図6は、図5のクラスタのタイミング図である。図6には、フリップフロップFF0〜FF4の動作クロックCLK,分割フリップフロップの動作クロックFCLK、フリップフロップFF0〜FF3への入力信号IN0〜IN3、図5のクラスタの各ノードN2,N4,N6,N6#,N7での信号波形、及び、フリップフロップFF4の出力信号OUT、が示されている。
【0123】
図6では、図5のクラスタに挿入する分割フリップフロップの動作クロックFCLKが、フリップフロップFF0〜FF4の動作クロックCLKの立ち下がりエッジに同期したパルス波形のクロックである例を挙げている。
【0124】
従って、分割フリップフロップを挿入した場合に、その前後の組み合わせ回路の各々が、動作クロックCLKの半周期で動作するような位置に、分割フリップフロップを挿入する必要がある。
【0125】
そこで、図5のクラスタの最大の回路段数が4段であるため、その中間位置である2段目の位置に、分割フリップフロップを挿入する。
【0126】
ここで、フリップフロップFF0〜FF3からフリップフロップFF4に向かって、素子を1つ越える度に、回路段数が1段上がっていく。
【0127】
さて、2段目の位置に分割フリップフロップを挿入したが、3段目の位置に分割フリップフロップを挿入しても、動作速度上問題がない場合は、3段目の位置に分割フリップフロップを挿入する。
【0128】
図5の入力信号IN2から出力信号OUTまでの信号遷移に注目して、動作速度を検討してみる。
【0129】
図6に示すように、入力信号IN0,IN1,IN2,IN3が、それぞれ、ハイ(high)固定、ロー(low)固定、ローからハイへの遷移、ロー固定、とする。
【0130】
ノードN2は、フリップフロップFF2の出力だから、動作クロックCLKの立ち上がりエッジで入力信号IN2をラッチする。
【0131】
そして、インバータ素子INV1、NAND素子NAND0、及び、AND素子AND1、を経由して、信号が伝搬する。
【0132】
ノードN6での信号遷移が、動作クロックCLKの半周期以内で終わっているため、動作クロックFCLKの立ち上がりエッジで動作する3段目の位置に挿入した分割フリップフロップでノードN6の信号をラッチしても信号遅延による問題は生じない。
【0133】
よって、ノードN6#,N7では、図6のような波形を得ることができ、動作クロックCLKの1周期に対する回路動作の透過性を保ったままでクラスタを分割できる。
【0134】
以上のことをまとめる。ノードN2,N4,N6では、時刻t1の動作クロックCLKの立ち上がりエッジに応答して、時刻t2より以前に信号波形が遷移している。
【0135】
つまり、分割フリップフロップの前段の組み合わせ回路は、動作クロックCLKの半周期以内で動作している。
【0136】
一方、ノードN6#,N7では、時刻t2の動作クロックFCLKの立ち上がりエッジに応答して、時刻t3より以前に信号波形が遷移している。
【0137】
つまり、分割フリップフロップの後段の組み合わせ回路は、動作クロックCLKの半周期以内で動作している。
【0138】
よって、3段目の位置に分割フリップフロップを挿入しても、動作速度上問題がないことが分かる。
【0139】
なお、時刻t3の動作クロックCLKの立ち上がりエッジに応答して、出力信号OUTが出力される。
【0140】
ここで、セレクタMUX0の出力選択信号は、前段のフリップフロップFF3から直接与えられており、途中に素子が存在しない。
【0141】
従って、セレクタMUX0−フリップフロップFF3間には、分割フリップフロップを挿入する必要がない。
【0142】
よって、最終的には、セレクタMUX0−EXOR素子XOR0間、及び、セレクタMUX0−AND素子AND1間、に分割フリップフロップを挿入する。
【0143】
クラスタの2段目に分割フリップフロップを挿入する場合は、計3個の分割フリップフロップが必要であるが、クラスタの3段目に分割フリップフロップを挿入する場合は、計2個の分割フリップフロップを挿入するだけでよい。
【0144】
さて、次に、図3及びフローチャートを用いて、論理回路最適化装置8による処理の流れを説明する。
【0145】
図7は、図3の論理回路最適化装置8のフローチャートである。
図7に示すように、ステップS1にて、クラスタリング手段80は、エミュレーション対象の論理回路情報4に対して、クラスタリングを実行する。
【0146】
ステップS2にて、クラスタ長測定手段82は、クラスタリングで得られた全クラスタのクラスタ長を測定する。
【0147】
ステップS3にて、クラスタ選択手段84は、クラスタ長が規定値を超えるクラスタを選択する。
【0148】
ステップS4にて、回路分割手段85は、クラスタ長が規定値を超えるクラスタに、分割フリップフロップを挿入して、回路分割を行う。
【0149】
ステップS5にて、クラスタリング手段80は、分割フリップフロップが挿入されたクラスタに対して、再クラスタリングを行う。
【0150】
ステップS6にて、クラスタリング手段80は、再クラスタリングの結果に基づき、クラスタリング論理回路情報を更新する。
【0151】
ステップS7にて、クラスタ長判定手段87は、再クラスタリングにより得られたクラスタのクラスタ長が規定値以下かどうかを判定する。
【0152】
そして、再クラスタリングにより得られたクラスタのクラスタ長が規定値以下の場合は、ステップS8へ進む(ステップS7)。
【0153】
ステップS8では、最適化論理回路情報生成手段88は、回路分割論理回路情報および論理エミュレーション装置構成情報6を基に、最適化論理回路情報11を生成する。
【0154】
一方、再クラスタリングにより得られたクラスタのクラスタ長が規定値を超えている場合は、ステップS4へ進み(ステップS7)、再びステップS4からステップS7の処理を行い、クラスタリング論理回路情報を更新する。そして、最後に更新されたクラスタリング論理回路情報が、回路分割論理回路情報である。
【0155】
さて、以上のように、本実施の形態では、クラスタ長の長いクラスタに分割フリップフロップが挿入されるため、クラスタ長の長いクラスタが、クラスタ長の短い複数のクラスタに分割される。
【0156】
このため、論理エミュレーション装置のFPGAにクラスタを割り付ける際の自由度が高くなって、FPGAの使用効率を向上できる。
【0157】
これにより、論理エミュレーション装置に割り付ける論理回路の最適化が図られる。
【0158】
また、FPGAの使用効率の向上により、回路密集度が高くなって、各回路素子の信号遅延が少なくなる。その結果、エミュレーション速度が向上する。
【0159】
なお、図1の回路割付装置1は、コンピュータシステムで稼働するプログラムで実現することができる。ただし、プログラムで実現する場合に限られない。
【0160】
また、FPGA割付装置10は、FPGAコンパイラと呼ばれるプログラムで実現できる。ただし、プログラムで実現する場合に限られない。
【0161】
(実施の形態2)
本発明の実施の形態2における論理エミュレーションシステムの全体構成は、図1と同様である。従って、図1の論理エミュレーションシステムを、実施の形態2による論理エミュレーションシステムとして説明する。
【0162】
また、実施の形態2による回路割付装置1の構成は、図2と同様である。従って、図2の回路割付装置1を、実施の形態2による回路割付装置1として説明する。
【0163】
また、実施の形態2による論理回路最適化装置8は、図3と同様である。従って、図3の論理回路最適化装置8を、実施の形態2による論理回路最適化装置8として説明する。
【0164】
図8は、実施の形態2による論理回路最適化装置8の説明図である。図8(a)は、FPGA20にクラスタ22が収まらない状態を示し、図8(b)は、FPGA20にクラスタ群23が収まった状態を示している。
【0165】
図3の最適化論理回路情報生成手段88は、論理エミュレーション装置構成情報6を基に、回路分割論理回路情報に含まれる各クラスタを、最終的にどのFPGAに割り付けるかを決定して、最適化論理回路情報11を生成する。
【0166】
しかしながら、図8(a)に示すように、FPGA20の境界部分にクラスタ22が割り付けられたりする等、FPGA20に割り付けようとするクラスタ22が、FPGA20に配置可能な残りの回路規模より大きい場合もある。
【0167】
この場合に、実施の形態2では、図8(a)のクラスタ22に分割フリップフロップを挿入して、クラスタ22を細分化した複数のクラスタを生成し、図8(b)に示すように、FPGA20に配置可能な数のクラスタからなるクラスタ群23を、FPGA20に割り付ける。
【0168】
具体的には、FPGA20に割り付けようとするクラスタ22が、FPGA20に配置可能な残りの回路規模より大きい場合は、回路分割手段85が、クラスタ22に、分割フリップフロップを挿入する。
【0169】
そして、クラスタリング手段80は、分割フリップフロップを挿入したクラスタ22に対して、再クラスタリングを行い、回路分割論理回路情報を更新する。
【0170】
そして、最適化論理回路情報生成手段88は、FPGA20の空き領域に配置可能な回路規模(回路(ゲート)数)およびFPGA20のI/O数を決定条件として、クラスタ22を分割して得られた複数のクラスタに対して、再び割り付け処理を実行し、最適化論理回路情報11を更新する。
【0171】
その結果、FPGA20に配置可能な残りの回路規模に収まるクラスタ群23が得られ、FPGA20に配置される。
【0172】
実施の形態2の以上の点以外については、実施の形態1と同様であり、説明を省略する。
【0173】
従来は、FPGAに配置しようとするクラスタが、当該FPGAに配置可能な残りの回路規模より大きい場合は、他のFPGAに配置されていたが、本実施の形態では、クラスタがFPGAの空き領域に収まらない場合は、上記のように、そのクラスタを細分化することにより、FPGAの使用効率を向上できる。
【0174】
さて、本実施の形態による論理回路最適化装置8による処理の流れをフローチャートを用いて説明する。
【0175】
本実施の形態による論理回路最適化装置8による処理の流れは、図7に示したフローチャートと同様である。
【0176】
ただし、本実施の形態では、図7のフローチャートのステップS8での最適化論理回路情報生成処理が異なっており、図9のフローチャートに示す最適化論理回路情報生成処理が行われる。
【0177】
図9は、本実施の形態の論理回路最適化装置8による最適化論理回路情報生成処理のフローチャートである。
【0178】
前提として、図7に示したステップS1からステップS7までの処理が終了しているとする。
【0179】
さて、図9に示すように、ステップS81にて、最適化論理回路情報生成手段88は、回路分割論理回路情報に含まれる1つのクラスタを選択する。
【0180】
ステップS82にて、最適化論理回路情報生成手段88は、選択したクラスタをFPGAに割り付ける。
【0181】
ステップS83にて、最適化論理回路情報生成手段88は、割り付けたクラスタが、FPGAに収まっているかどうかを判定する。
【0182】
割り付けたクラスタが、FPGAに収まっている場合は(ステップS83)、ステップS84にて、最適化論理回路情報生成手段88は、そのクラスタの割り付け情報を確定する。
【0183】
一方、割り付けたクラスタが、FPGAに収まらない場合は(ステップS83)、ステップS86に進む。
【0184】
ステップS86にて、最適化論理回路情報生成手段88は、収まらないクラスタに、分割フリップフロップが挿入されているかどうかを判断する。
【0185】
収まらないクラスタに分割フリップフロップが挿入されている場合は(ステップS86)、最適化論理回路情報生成手段88は、ステップS87に進む。
【0186】
ステップS87にて、最適化論理回路情報生成手段88は、その収まらないクラスタを別のFPGAに割り付け、ステップS84に進み、そのクラスタの割り付け情報を確定する。
【0187】
一方、収まらないクラスタに分割フリップフロップが挿入されていない場合は(ステップS86)、最適化論理回路情報生成手段88は、ステップS88に進む。
【0188】
ステップS88にて、最適化論理回路情報生成手段88は、回路分割手段85に対して、その収まらないクラスタに、分割フリップフロップを挿入するように指示する。
【0189】
この指示を受けて、回路分割手段85は、その収まらないクラスタに分割フリップフロップを挿入する。
【0190】
この場合の分割フリップフロップの挿入方法は、図7のステップS4の回路分割処理と同様であり、動作速度上問題のない位置に分割フリップフロップを挿入して、クラスタを細分化する。細分化の数(分割数)は、任意に設定できる。
【0191】
ステップS89にて、クラスタリング手段80は、分割フリップフロップが挿入されたクラスタに対して、再クラスタリングを行い、回路分割論理回路情報を更新する。
【0192】
ステップS90にて、最適化論理回路情報生成手段88は、細分化して得られたクラスタをFPGAの空き領域に割り付け、ステップS84に進み、細分化して得られたクラスタの割り付け情報を確定する。
【0193】
さて、ステップS85にて、次のクラスタが存在する場合は、ステップS81に進み、上記の処理が実行される。
【0194】
このように、順次クラスタを更新しながら、上記の処理を実行して、全てのクラスタの割り付け情報を確定していき、最新の回路分割論理回路情報および確定した割り付け情報からなる最適化論理回路情報11を生成する。
【0195】
なお、図9では、分割フリップフロップの動作クロックFCLKが、通常のフリップフロップの動作クロックCLKの立ち下がりエッジに同期したパルス波形のクロックである例を挙げている。
【0196】
従って、FPGAに収まらないクラスタに既に分割フリップフロップが挿入されている場合は(ステップS86)、このクラスタに対しては、さらに、分割フリップフロップを挿入することができないため、ステップS87の処理が実行される。
【0197】
さて、以上のように、本実施の形態では、実施の形態1と同様の構成を具備しているため、実施の形態1と同様に、クラスタ長の長いクラスタが、クラスタ長の短い複数のクラスタに分割される。
【0198】
加えて、本実施の形態では、FPGAに収まらないクラスタにフリップフロップが挿入されるため、FPGAに収まらないクラスタが、クラスタ長の短い複数のクラスタに分割される。
よって、FPGAの使用効率をより一層向上できる。
【0199】
(実施の形態3)
実施の形態1、及び、実施の形態2では、論理回路合成装置9が生成した論理回路情報4に対して、最適化処理を実行した。
【0200】
実施の形態3では、論理合成前、即ち、ハードウェア記述言語に対して、最適化処理を実行する。
【0201】
さて、本発明の実施の形態3における論理エミュレーションシステムの全体構成は、図1と同様である。従って、図1の論理エミュレーションシステムを、実施の形態3による論理エミュレーションシステムとして説明する。
【0202】
また、実施の形態3による回路割付装置1の構成は、図2と同様である。従って、図2の回路割付装置1を、実施の形態3による回路割付装置1として説明する。
【0203】
ただし、実施の形態3では、論理回路合成装置9および論理回路最適化装置8の構成は、実施の形態1と異なる。その他の点は、実施の形態1と同様である。
【0204】
図10は、本発明の実施の形態3における論理回路合成装置9のブロック図である。
【0205】
図10に示すように、この論理回路合成装置9は、演算素子数算出手段93、モジュール分割手段90、HDL記憶手段91、及び、合成手段92、を含む。
【0206】
演算素子数算出手段93は、ハードウェア記述言語を取り込んで、各モジュールの機能集合(演算素子の塊)を解析して、モジュール毎に入力端子から出力端子までの演算素子の数を算出する。
【0207】
この場合の、入力端子、出力端子、及び演算素子は、ハードウェア記述言語で表されている。
【0208】
そして、モジュール分割手段90は、処理が長い経路、即ち、入力端子から出力端子までの演算素子の数が多い経路、を有するモジュール選択する。
【0209】
この場合、入力端子から出力端子までの演算素子の数が多いかどうかは、規定値と比較して判定される。この規定値は、ユーザが任意に設定できる。
【0210】
そして、モジュール分割手段90は、入力端子から出力端子までの演算素子の数が多い経路を有するモジュールに、分割フリップフロップを表すハードウェア記述言語を挿入する。
【0211】
この場合の分割フリップフロップは、実施の形態1の分割フリップフロップと同様のものである。
【0212】
このように、分割フリップフロップを表すハードウェア記述言語を「機能分割フリップフロップ」と呼ぶ。
【0213】
以上のようにして、モジュール分割手段90は、最初に入力されたハードウェア記述言語に対して、機能分割フリップフロップを挿入していき、ハードウェア記述言語を更新する。
【0214】
HDL記憶手段91は、更新後のハードウェア記述言語を記憶する。
合成手段92は、論理合成を行って、更新後のハードウェア記述言語から論理回路情報4を生成する。
【0215】
実施の形態3の論理回路最適化装置8は、論理回路情報4に対して、クラスタリングを行い、クラスタリング論理回路情報を生成する。
【0216】
そして、論理回路最適化装置8は、クラスタリング論理回路情報に含まれる各クラスタを、論理エミュレーション装置構成情報6を参照しながら、FPGAに割り付けていく。
【0217】
このようにして、論理回路最適化装置8は、クラスタリング論理回路情報及びクラスタの割り付け情報からなる最適化論理回路情報11を生成する。その後の処理は、実施の形態1と同様である。
【0218】
さて、図10の論理回路合成装置9の動作を具体例を挙げながら説明する。
図11は、機能分割フリップフロップ挿入前のハードウェア記述言語におけるモジュールの例示図である。
図12は、図11のモジュールのツリー図である。
図13は、機能分割フリップフロップ挿入後のハードウェア記述言語におけるモジュールの例示図である。
【0219】
演算素子数算出手段93に入力されたハードウェア記述言語が、図11に示すモジュールを含むとする。
【0220】
このモジュールは、機能集合40,41を含む。機能集合40から明らかなように、入力Aは、3つの演算処理をまたがって、出力OUTに接続される。
【0221】
演算素子数算出手段93は、このような解析を、他の入力B,Cに対しても実行する。
【0222】
そうすると、図12に示すツリー図が得られる。なお、このツリー図は説明の便宜のためのものであり、実際に作成されるわけではない。
【0223】
モジュール分割手段90は、演算素子数算出手段93による解析の結果得られた入力A,B,Cから出力OUTまでの演算素子の数と、規定値と、を比較して、入力A,B,Cから出力OUTまでの演算素子の数が多いと判断した場合は、図13に示すように、このモジュールに、機能分割フリップフロップ42を挿入する。
【0224】
なお、図12のツリー図では、矢印$で示した位置に機能分割フリップフロップが挿入される。
【0225】
さて、次に、図10の論理回路合成装置9による処理の流れをフローチャートを用いて説明する。
【0226】
図14は、図10の論理回路合成装置9のフローチャートである。
図14に示すように、ステップS21にて、演算素子数算出手段93は、ハードウェア記述言語に含まれる1つのモジュールを選択する。
【0227】
ステップS22にて、演算素子数算出手段93は、入力から出力までの演算素子数を算出する。
【0228】
ステップS23にて、モジュール分割手段90は、演算素子数算出手段93が算出した演算素子数を規定値と比較して、演算素子数が規定値以下であれば、ステップS25に進む。
【0229】
一方、ステップS23にて、モジュール分割手段90は、演算素子数算出手段93が算出した演算素子数を規定値と比較して、演算素子数が規定値を超えていれば、ステップS24に進む。
【0230】
ステップS24にて、モジュール分割手段90は、演算素子数が規定値を超えるモジュールに、機能分割フリップフロップを挿入する。
【0231】
ステップS25にて、次のモジュールがある場合は、ステップS21に進み、ステップS21からステップS25の処理を行う。
【0232】
以上のような処理を繰り返して、機能分割フリップフロップを挿入していき、ハードウェア記述言語を更新する。
【0233】
一方、ステップS25にて、次のモジュールがない場合は、ステップS26に進み、合成手段92が、更新後のハードウェア記述言語から論理回路情報4を生成する。
【0234】
さて、以上のように、本実施の形態では、規定値より演算素子の数が多いモジュールに、分割フリップフロップを表すハードウェア記述言語を挿入する。
【0235】
このため、論理合成後のクラスタのクラスタ長が短くなり、論理エミュレーション装置のFPGAにクラスタを割り付ける際の自由度が高くなる。よって、可変論理素子の使用効率を向上できる。
【0236】
これにより、論理エミュレーション装置に割り付ける論理回路の最適化が図られる。
【0237】
さらに、ハードウェア記述言語段階で分割フリップフロップを挿入するため、論理合成後に分割フリップフロップを挿入する場合より、高速に処理することができる。
【0238】
(実施の形態4)
本発明の実施の形態4における論理エミュレーションシステムの全体構成は、図1と同様である。従って、図1の論理エミュレーションシステムを、実施の形態4による論理エミュレーションシステムとして説明する。
【0239】
また、実施の形態4による回路割付装置1の構成は、図2と同様である。従って、図2の回路割付装置1を、実施の形態4による回路割付装置1として説明する。ただし、実施の形態4の論理回路最適化装置8の構成は、実施の形態1の論理回路最適化装置8の構成と異なる。
【0240】
図15は、本発明の実施の形態4における論理回路最適化装置8のブロック図である。なお、図15において、図3と同様の部分については、同一の符号を付して、説明を適宜省略する。
【0241】
図15に示すように、この論理回路最適化装置8は、図3の論理回路最適化装置8の構成に、置換手段95、を追加したものである。
【0242】
さて、設計する回路には、様々なメモリデバイスが含まれる。例えば、SRAM(static random access memory)やSDRAM(synchronous dynamic random access memory)などがあり、当然ながらそれぞれの動作仕様は異なる。
【0243】
そして、論理エミュレーション装置2及びFPGAは、SRAM等の固定のメモリデバイスを搭載している。
【0244】
そこで、実現したいメモリデバイスの動作仕様に合わせるため、論理エミュレーション装置2あるいはFPGAに搭載された固定のメモリデバイスに、周辺のモデル回路(ラッパー回路)を付加して、メモリデバイスを実現する。
【0245】
そして、置換手段95は、メモリ置換テーブル情報を参照して、論理エミュレーション装置2あるいはFPGAに搭載された固定のメモリデバイスを回路長(例えば、回路段数あるいは信号の伝搬時間)で表すことにより、上記のようにして実現したメモリデバイスを論理回路に置き換える。
【0246】
以上の点を具体例を挙げながら説明する。
図16は、図15の置換手段95の動作の説明図である。
図17は、メモリ置換テーブル情報の例示図である。
【0247】
図16に示すように、実現したいメモリデバイスであるSDRAM34の動作仕様に合わせるため、論理エミュレーション装置2あるいはFPGAに搭載された固定のメモリデバイスであるSRAM36に、組み合わせ回路31,32からなるラッパー回路35を付加して、SDRAM34を実現する。なお、SDRAM34は、組み合わせ回路30,33に接続される。
【0248】
このようにして実現されたSDRAM34の情報が、論理回路情報4に含まれている。
【0249】
そして、置換手段95は、図17に示すようなメモリ置換テーブル情報を参照して、論理回路情報4に含まれるSRAM36を回路長で表すことにより、SDRAM34を論理回路に置き換える。
【0250】
例えば、SRAM36が、4MbitのSRAMならば、図17のメモリ置換テーブル情報によれば、このSRAM36は、回路段数が「10」の論理回路とみなせる。
【0251】
そうすると、SRAM36にラッパー回路35を付加して作成したSDRAM34は、通常の組み合わせ回路とみなすことができる。
【0252】
従って、その後は、図15の論理回路最適化装置8により、実施の形態1と同様の処理を行って、最適化を実行する。
【0253】
なお、図17のメモリ置換テーブル情報では、換算値として、回路段数を採用しているが、信号の伝搬時間を採用することもできる。
【0254】
さて、次に、図15の論理回路最適化装置8による処理の流れをフローチャートを用いて説明する。
【0255】
図18は、図15の論理回路最適化装置8のフローチャートである。
図18に示すように、このフローチャートは、図7のフローチャートのステップS1の前にステップS0を付加したものである。
【0256】
従って、ステップS0にて、置換手段95は、メモリ置換テーブル情報を参照して、論理エミュレーション対象のメモリデバイスを実現するメモリデバイスを、回路長で表すことにより、論理エミュレーション対象のメモリデバイスを論理回路に置き換える。
【0257】
こうすることで、論理エミュレーション対象のメモリデバイスを組み合わせ回路とみなすことができる。
【0258】
その後は、論理回路最適化装置8は、実施の形態1と同様のステップS1からステップS8を行う。
【0259】
なお、図18のステップS8の代わりに、図9のステップS81からステップS90の処理を実行することもできる。
【0260】
さて、以上のように、本実施の形態では、実施の形態1または実施の形態2と同様の構成を具備しているため、これらと同様の効果を奏する。
【0261】
さらに、本実施の形態では、論理エミュレーション対象のメモリデバイスを実現するメモリデバイスを回路長で表すことにより、論理エミュレーション対象のメモリデバイスを論理回路に置き換えるている。
【0262】
このため、論理エミュレーション対象のメモリデバイスについても、通常の回路と同様に、回路分割手段85により、分割フリップフロップを挿入して、細分化できる。よって、より一層のFPGAの使用効率の向上を図ることができる。
【0263】
【発明の効果】
請求項1又は記載の発明では、クラスタ長の長いクラスタにフリップフロップが挿入されるため、クラスタ長の長いクラスタが、クラスタ長の短い複数のクラスタに分割される。
【0264】
このため、論理エミュレーション装置の可変論理素子(例えば、FPGA)にクラスタを割り付ける際の自由度が高くなる。
【0265】
また、レンツ・ルールが示すような可変論理素子のI/Oピン数によるゲート搭載の非効率化が発生しないため、可変論理素子の使用効率を向上できる。
【0266】
以上により、論理エミュレーション装置に割り付ける論理回路の最適化が図られる。
【0267】
請求項1又は3記載の発明では、予め定められたクラスタ長を超えるクラスタについては、漏れなくフリップフロップが挿入されるため、最適化をより一層図ることができる。
【0282】
以上により、論理エミュレーション装置に割り付ける論理回路の最適化が図られる。
【図面の簡単な説明】
【図1】本発明の実施の形態1における論理エミュレーションシステムのブロック図
【図2】同回路割付装置のブロック図
【図3】同論理回路最適化装置のブロック図
【図4】(a)同回路分割前のクラスタの例示図
(b)同回路分割後のクラスタの例示図
【図5】同分割フリップフロップの挿入方法を説明するためのクラスタの例示図
【図6】同分割フリップフロップの挿入方法を説明するためのクラスタのタイミング図
【図7】同論理回路最適化装置のフローチャート
【図8】(a)本発明の実施の形態2における論理回路最適化装置の説明図
(b)同論理回路最適化装置の説明図
【図9】同論理回路最適化装置による最適化論理回路情報生成処理のフローチャート
【図10】本発明の実施の形態3における論理合成装置のブロック図
【図11】同機能分割フリップフロップ挿入前のHDLにおけるモジュールの例示図
【図12】同機能分割フリップフロップ挿入前のモジュールのツリー図
【図13】同機能分割フリップフロップ挿入後のHDLにおけるモジュールの例示図
【図14】同論理合成装置のフローチャート
【図15】本発明の実施の形態4における論理回路最適化装置のブロック図
【図16】同論理回路最適化装置の動作の説明図
【図17】同メモリ置換テーブル情報の例示図
【図18】同論理回路最適化装置のフローチャート
【図19】従来の論理エミュレーション装置のブロック図
【図20】(a)従来のクラスタリング前の論理回路の概念図
(b)従来のクラスタリング後の論理回路の概念図
【図21】従来の論理エミュレーション装置のFPGAに割り付けられたクラスタの例示図
【符号の説明】
1 回路割付装置
2,100 論理エミュレーション装置
3 ハードウェア記述言語
4 論理回路情報
5 論理エミュレーション装置用回路情報
6 論理エミュレーション装置構成情報
8 論理回路最適化装置
9 論理合成装置
10 FPGA割付装置
11 最適化論理回路情報
80 クラスタリング手段
81 クラスタリング論理回路情報記憶手段
82 クラスタ長測定手段
83 クラスタ長記憶手段
84 クラスタ選択手段
85 回路分割手段
86 回路分割論理回路情報記憶手段
87 クラスタ長判定手段
88 最適化論理回路情報生成手段
89 最適化論理回路情報記憶手段
90 モジュール分割手段
91 HDL記憶手段
92 合成手段
93 演算素子数算出手段
95 置換手段
101〜103 ロジックチップ
104 メモリモジュール
105 ユーザ指定チップ
106 相互接続チップ

Claims (3)

  1. 複数のFPGA素子を備えて、前記複数のFPGA素子に割り付けられた論理回路のエミュレーションを行う論理エミュレーション装置であって、
    前記論理回路が含むフリップフロップと論理素子との回路構成を表す論理回路情報を入力する入力手段と、
    前記論理回路情報に基づいて、前記論理回路に含まれる特定フリップフロップの入力信号の論理の決定に関わると共に前記特定フリップフロップから前記特定フリップフロップの前段のフリップフロップまでの論理素子の構成によって定まるクラスタであって、前記論理回路に含まれる複数のクラスタを抽出するクラスタリング手段と、
    前記複数のクラスタの内、クラスタに含まれる論理素子の段数によって定義されるクラスタ長が予め定められた所定段数を超えるクラスタに対して、新たなフリップフロップを挿入して前記クラスタを複数の新たなクラスタに分割する挿入手段と、を備え、
    前記クラスタリング手段は、
    前記論理回路に含まれる第1フリップフロップの後段に位置する第2フリップフロップの入力信号の論理の決定に関わると共に前記第2フリップフロップから前記第1フリップフロップの出力までの論理素子の構成を表す第1回路構成と、前記第1フリップフロップの後段であって前記第2フリップフロップと並列の位置にある第3フリップフロップの入力信号の論理の決定に関わると共に前記第3フリップフロップから前記第1フリップフロップの出力までの論理素子の構成を表す第2回路構成と、を抽出する抽出手段と、
    前記第1回路構成と前記第2回路構成とが相互に独立して論理回路を構成できるように、前記第1回路構成と前記第2回路構成とを最適化して、最適化された前記第1回路構成を第1クラスタとして決定し、最適化された前記第2回路構成を第2クラスタとして決定する最適化手段と、を有する論理エミュレーション装置。
  2. 前記挿入手段によって前記第1クラスタにフリップフロップが挿入された場合には、前記第1クラスタは、前記フリップフロップを基準として、第3クラスタと第4クラスタとに分割され、前記第2クラスタ、前記第3クラスタおよび前記第4クラスタのそれぞれは、前記複数のFPGA素子において、異なるFPGA素子に割当てられる請求項1記載の論理エミュレーション装置。
  3. 前記挿入手段は、前記第3クラスタが前記所定段数を超える場合には、前記第3クラスタに新たなフリップフロップを挿入し、前記挿入手段は、前記第4クラスタが前記所定段数を超える場合には、前記第4クラスタに新たなフリップフロップを挿入する請求項2記載のエミュレーション装置。
JP2003032438A 2003-02-10 2003-02-10 論理回路最適化方法、論理回路最適化装置、及び、論理回路合成装置 Expired - Fee Related JP4216087B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2003032438A JP4216087B2 (ja) 2003-02-10 2003-02-10 論理回路最適化方法、論理回路最適化装置、及び、論理回路合成装置
CNB2004100038664A CN1282114C (zh) 2003-02-10 2004-02-06 逻辑电路最佳化方法及其装置和逻辑电路合成装置
US10/773,276 US7146582B2 (en) 2003-02-10 2004-02-09 Logic circuit optimizing method, logic circuit optimizing device and logic circuit composing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003032438A JP4216087B2 (ja) 2003-02-10 2003-02-10 論理回路最適化方法、論理回路最適化装置、及び、論理回路合成装置

Publications (2)

Publication Number Publication Date
JP2004246402A JP2004246402A (ja) 2004-09-02
JP4216087B2 true JP4216087B2 (ja) 2009-01-28

Family

ID=33018787

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003032438A Expired - Fee Related JP4216087B2 (ja) 2003-02-10 2003-02-10 論理回路最適化方法、論理回路最適化装置、及び、論理回路合成装置

Country Status (3)

Country Link
US (1) US7146582B2 (ja)
JP (1) JP4216087B2 (ja)
CN (1) CN1282114C (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8612201B2 (en) * 2006-04-11 2013-12-17 Cadence Design Systems, Inc. Hardware emulation system having a heterogeneous cluster of processors
US9514259B2 (en) 2012-11-20 2016-12-06 Taiyo Yuden Co., Ltd. Logic configuration method for reconfigurable semiconductor device
CN110705074B (zh) * 2019-09-25 2022-06-03 重庆长安汽车股份有限公司 快速线束原理仿真分析方法
CN112183002B (zh) * 2020-12-02 2021-03-16 上海国微思尔芯技术股份有限公司 一种基于fpga逻辑的软件分割方法
CN112232010B (zh) * 2020-12-21 2021-03-05 上海国微思尔芯技术股份有限公司 可编程逻辑器件分组方法和装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0437491B1 (en) 1988-10-05 1995-12-13 Quickturn Systems Inc Method of using electronically reconfigurable gate array logic and apparatus formed thereby
US5452239A (en) * 1993-01-29 1995-09-19 Quickturn Design Systems, Inc. Method of removing gated clocks from the clock nets of a netlist for timing sensitive implementation of the netlist in a hardware emulation system
US5682321A (en) * 1994-10-05 1997-10-28 Lsi Logic Corporation Cell placement method for microelectronic integrated circuit combining clustering, cluster placement and de-clustering
JP4031905B2 (ja) * 2000-11-09 2008-01-09 富士通株式会社 回路設計装置及び回路設計方法

Also Published As

Publication number Publication date
US20040237055A1 (en) 2004-11-25
CN1521665A (zh) 2004-08-18
US7146582B2 (en) 2006-12-05
CN1282114C (zh) 2006-10-25
JP2004246402A (ja) 2004-09-02

Similar Documents

Publication Publication Date Title
US5682320A (en) Method for electronic memory management during estimation of average power consumption of an electronic circuit
JP3331968B2 (ja) グリッチ分析と低減に重点をおいたレジスタトランスファレベルの電力消費最適化回路、方法、及び記録媒体
US8196076B2 (en) Optimal flow in designing a circuit operable in multiple timing modes
US8381142B1 (en) Using a timing exception to postpone retiming
Hung et al. Challenges in large FPGA-based logic emulation systems
US20100153897A1 (en) System and method for employing signoff-quality timing analysis information concurrently in multiple scenarios to reduce leakage power in an electronic circuit and electronic design automation tool incorporating the same
Su et al. Clock skew minimization in multi-voltage mode designs using adjustable delay buffers
Chen et al. Simultaneous timing driven clustering and placement for FPGAs
US7441212B1 (en) State machine recognition and optimization
Vercruyce et al. How preserving circuit design hierarchy during FPGA packing leads to better performance
JP4216087B2 (ja) 論理回路最適化方法、論理回路最適化装置、及び、論理回路合成装置
US9646126B1 (en) Post-routing structural netlist optimization for circuit designs
US8776003B2 (en) System and method for employing side transition times from signoff-quality timing analysis information to reduce leakage power in an electronic circuit and an electronic design automation tool incorporating the same
Moon et al. Design and allocation of loosely coupled multi-bit flip-flops for power reduction in post-placement optimization
US8707244B1 (en) Methods and systems for performing signal activity extraction
US10606972B2 (en) Method, design program, and design apparatus of a high level synthesis process of a circuit
Brayton The future of logic synthesis and verification
Cong et al. Global clustering-based performance-driven circuit partitioning
Chou et al. Average-case technology mapping of asynchronous burst-mode circuits
US10296686B1 (en) Switching-activity-based selection of low-power sequential circuitry
US11308025B1 (en) State machine block for high-level synthesis
Vercruyce et al. Runtime-quality tradeoff in partitioning based multithreaded packing
Lin et al. A platform of resynthesizing a clock architecture into power-and-area effective clock trees
WO2015075805A1 (ja) ソースコード分割方法及びlsi実装装置
US20200125780A1 (en) Deterministic clustering and packing method for random logic on programmable integrated circuits

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060209

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080616

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080702

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080828

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

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20081105

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111114

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111114

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121114

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees