JP7065794B2 - グラフベースの類似度検索を用いたfpga実装のインクリメンタル方式による生成 - Google Patents

グラフベースの類似度検索を用いたfpga実装のインクリメンタル方式による生成 Download PDF

Info

Publication number
JP7065794B2
JP7065794B2 JP2019001636A JP2019001636A JP7065794B2 JP 7065794 B2 JP7065794 B2 JP 7065794B2 JP 2019001636 A JP2019001636 A JP 2019001636A JP 2019001636 A JP2019001636 A JP 2019001636A JP 7065794 B2 JP7065794 B2 JP 7065794B2
Authority
JP
Japan
Prior art keywords
fpga
graph
implementation
similarity
similar
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.)
Active
Application number
JP2019001636A
Other languages
English (en)
Other versions
JP2019121404A (ja
JP2019121404A5 (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.)
Dspace GmbH
Original Assignee
Dspace GmbH
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 Dspace GmbH filed Critical Dspace GmbH
Publication of JP2019121404A publication Critical patent/JP2019121404A/ja
Publication of JP2019121404A5 publication Critical patent/JP2019121404A5/ja
Application granted granted Critical
Publication of JP7065794B2 publication Critical patent/JP7065794B2/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/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • G06F30/347Physical level, e.g. placement or routing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • 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
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2117/00Details relating to the type or aim of the circuit design
    • G06F2117/06Spare resources, e.g. for permanent fault suppression

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、FPGAモデルであるFPGAデザインおよび/またはハードウェア記述に基づき、FPGA実装を生成する方法に関する。この方法は、FPGAデザインからネットリストを合成するステップと、このネットリストからFPGA実装を生成するステップと、を含む。ただしこの方法は類似FPGA実装の検索を含み、ネットリストからFPGA実装を生成するステップは、この類似FPGA実装を使用しながら行われる。
さらに本発明は、FPGAモデルであるFPGAデザインおよび/またはハードウェア記述に基づきビットストリームを生成する方法に関する。この方法は、FPGAモデルであるFPGAデザインおよび/またはハードウェア記述に基づきFPGA実装を生成する上述のステップと、生成されたFPGA実装からビットストリームを生成することとを含む。
かかる方法は、FPGA(Field Programmable Gate Array)のためのコードを生成する目的で使用される。FPGAは、論理回路をロード可能な集積回路である。その際にプログラミングには、公知のプログラミング言語による古典的なプログラミングとは対照的に時系列の設定は僅かであり、それとは異なり所望の回路構造の定義が含まれている。
この場合、所望の回路構造を定義するためのFPGAデザインは、一般にグラフィックFPGAモデルとして生成され、これが例えばVHDLなどのようなハードウェア記述言語に書き換えられる。基本的にはFPGAデザインを直接、ハードウェア記述言語で生成することもできる。
FPGAデザインは、次いで合成ステップにおいて相応のソフトウェアにより最初に、FPGAにおいて個々の論理素子をどのように結線すべきかを設定するネットリストに書き換えられる。したがってこれは、FPGAのコンフィギュレーションとも呼ばれる。論理素子およびそれらの結線を含むネットリストは、あとで利用するために記憶される。
FPGA実装を生成するステップがこれに続く。このステップは、一般的に「配置配線」("Place and Route")と呼ばれる。この場合、FPGAのためにネットリストに記憶されている論理素子が配置され(Place)、ネットリストに従って互いに配線される(Route)。その成果物がFPGA実装である。
次いでFPGA実装からビットストリームが生成され、FPGAに所望の機能を実装する目的でこのFPGAに伝送される。
これまでに挙げたステップは、しばしば一括りに「ビルド」("Build")と呼ばれる。
その際に今日では簡単に取り扱えるツールが存在しており、それらのツールによって例えば、抽象化を行うFPGA開発環境が顧客に提供され、その結果として顧客は、FPGAおよびツールフローに関する詳細な知識がなくても、自身のハードウェアを開発できるようになる。これによって顧客は、FPGAデザインを作成して実装し、相応のFPGAハードウェアであるFPGAにおいて駆動することができる。例えばラピッドコントロールプロトタイピングなどの場合であると、FPGAモデルにおける規則的な変更およびそれに続くリビルドは、かかる開発プロセスの通常の構成要素である。
その際に問題となるのは、ビルド時間がしばしば著しく長くなることであり、このように著しく長いビルド時間は、FPGAモデルをごく僅かにしか変更しなくても、FPGAのリビルドのために必要とされる場合もある。この場合、ビルド時間はしばしば数時間という範囲に及んでしまう。FPGAはいっそう複雑になり続け、レジスタ、ロジック、DSPブロックまたはメモリの形態でいっそう多くのリソースを提供するので、ビルド時間はさらにいっそう長くなる。このことは、アルゴリズムを改善しビルドを実施するコンピュータを高速化しても、部分的にしか相殺できない。その際に特に時間のかかるステップは、たいていは配置配線である。
目下のFPGAツールには、ビルド時間を短縮するために2つのアプローチがある。両方のアプローチとも、すでに生成に成功しているFPGA実装の非変更の領域/構成要素を再利用する、ということに基づいている。1つめのアプローチによれば、各構成要素にFPGA内の1つの(矩形)領域が割り当てられる。ある構成要素が変更されると、その構成要素を含む領域が新たに実装される一方、FPGA実装の残りの部分は変更されないまま維持されて、再利用することができる。ここではインクリメンタルビルドと称する2つめのアプローチによれば、事前定義された領域は必要とされない。実装にあたり、すでに実装されたFPGA実装が参照として指定される。一致部分が大きければ、多くの配置配線を自動的に引き継ぐことができ、FPGA実装の生成にかかる時間が短縮される。
この場合、当初からすでに、個々のモジュールもしくは部分実装を再利用できるようにFPGA実装を生成すると、有利なものとなり得る。このアプローチは、FPGAモデルの自動モジュール化を追求するものである。このようなモジュールベースにおいて、フロアプラニングすなわち複数の領域への分割を行うことができる。個々のモジュールについてさらにリザーブも設けられているならば、FPGAモデルの変更を個々のモジュールに限定したままにすることができる。
さらに、再プラニングのための方法が知られている。顧客が自身のFPGAモデルに対し変更を加えた場合に、直前のビルド結果が使用される。これに基づき、変更されたモジュールが個別にビルドされ、ついでそれらが全体的なビルドにおいて取り替えられる。複数のモジュールが該当するケースであれば、変更されたそれらのモジュールのためのビルドをそれぞれ異なるコンピュータにおいて行えば、それによってビルド時間を短縮することができる。つまり、変更された複数のモジュールの並列なビルドが実施される。この場合、再利用を簡単にする目的で、様々なバージョンのモジュールのバージョニングを設けることができる。
これらの方法によってビルド時間をすでに短縮できるけれども、さらに改善の余地がある。つまり例えば細粒度のモジュール化の場合には、無駄な部分が大きくなり、また、タイミングが損なわれるリスクが高まる。なぜならば、モジュール境界を越えて最適化することはできず、それらのモジュールのためにそれ相応のリザーブを含む広めの領域をそれぞれ設けなければならないからである。しかもこの方法は、製品開発において多大な実装コストをかけることによってしか実現できない。
2つのデザインの類似度を突き止める目的で、目下の合成ツールによれば、参照ネットリストが新たに配置配線すべきネットリストと比較される。その際にこの比較はもっぱら、ネットリストパス名の名前の比較に基づいている。このことは問題を孕むものであり、その理由は、Xilinx Vivado System Generator, Xilinx Vivado HLS, Xilinx Vivado SDSoCといった抽象化を行うハイレベルFPGAデザインツールの場合には、例えばサブシステムなどにおいて、同一のFPGA構成要素が即座に名称変更および再編成されるのが一般的だからである。これによって、本来は同一である構成要素についても新たなネットリストパスが自動的に発生する。このような名称変更を、目下の合成ツールでは識別することができない。
したがって上述の従来技術から出発して本発明の基礎とする課題は、FPGAモデルであるFPGAデザインおよび/またはハードウェア記述に基づきFPGA実装を生成する方法、ならびにFPGAモデルであるFPGAデザインおよび/または上述の形式のハードウェア記述に基づきビットストリームを生成する方法において、特にすでに存在している類似FPGA実装を使用しながら、FPGA実装の簡単かつ効率的な生成を可能にすることである。
本発明によればこの課題は、独立請求項記載の構成要件により解決される。従属請求項には本発明の有利な構成が記載されている。
したがって本発明によれば、FPGAモデルであるFPGAデザインおよび/またはハードウェア記述に基づき、FPGA実装を生成する方法が設けられており、この方法は、FPGAデザインからネットリストを合成するステップと、このネットリストからFPGA実装を生成するステップと、を含み、ただしこの方法は類似FPGA実装の検索を含み、この類似FPGA実装を使用して、ネットリストからFPGA実装を生成するステップを行う。さらにこの方法は、FPGAデザインに基づきグラフベース表現を生成するステップを含み、類似FPGA実装を検索するステップは、FPGAデザインのグラフベース表現を、少なくとも1つの類似FPGA実装のグラフベース表現と比較することを含む。
本発明によればさらに、FPGAモデルであるFPGAデザインおよび/またはハードウェア記述に基づきビットストリームを生成する方法が設けられており、この方法は、FPGAモデルであるFPGAデザインおよび/またはハードウェア記述に基づきFPGA実装を生成する上述のステップと、生成されたFPGA実装からビットストリームを生成することとを含む。
つまり本発明の基本的な着想は、目下のFPGAモデルと他のFPGAモデル例えば以前のFPGAモデルとの類似性を見つけ出し、FPGA実装の効率的な生成を実施するために使用する、ということである。これに基づき、少なくとも1つの存在する類似FPGA実装をベースとする目下のFPGA実装のインクリメンタル方式による生成が実施される。次いで、目下のFPGA実装を生成するために、類似FPGA実装またはそれらのうち少なくとも類似部分が使用される。一般的に、FPGA実装を生成するためのFPGAロジックの配置配線にFPGAビルドの大半の時間が費やされるので、これによってFPGAビルドの生成にかかる時間の短縮を達成することができる。
FPGAデザインは、一般にグラフィックFPGAモデルとして生成され、このモデルがハードウェア記述言語に書き換えられる。基本的にはFPGAデザインを直接、ハードウェア記述言語で生成することもできる。ハードウェア記述言語として、例えばVHDLが知られている。VHDLは、超高速集積回路ハードウェア記述言語として知られている(VHSICハードウェア記述言語とも称する)。
FPGAデザインは、次いで合成ステップにおいて相応のソフトウェアにより最初に、FPGAにおいて個々の論理素子をどのように結線すべきかを設定するネットリストに書き換えられる。したがってこれは、FPGAのコンフィギュレーションとも呼ばれる。論理素子およびそれらの結線を含むネットリストは、あとで利用するために記憶される。
FPGA実装を生成するステップがこれに続く。このステップは、一般的に「配置配線」("Place and Route")と呼ばれる。この場合、FPGAのためにネットリストに記憶されている論理素子が配置され(Place)、ネットリストに従い互いに配線される(Route)。その成果物がFPGA実装である。
次いでFPGA実装からビットストリームが生成され、FPGAに所望の機能を実装する目的でこのFPGAに伝送される。
これまでに挙げたステップは、しばしば一括りに「ビルド」("Build")と呼ばれる。
好ましくは、合成されたネットリストが個々のFPGAモデルのアーチファクトとしてデータベース内に保管され、その目的は、以降のビルドにあたり対応するFPGA実装を、必要に応じて類似FPGA実装を検索するための参照として、利用できるようにするためである。すでに合成中に、参照としてできるかぎり類似したFPGA実装を検索することもできる。この目的で最初に、FPGAデザインに基づきグラフベース表現が作成され、すでに事前に実装されたFPGAデザインのグラフと比較される。
その際、少なくとも1つの類似FPGA実装のグラフの作成は一般に、類似FPGA実装の対応するビルド中に行われる。つまりこのことは、類似FPGA実装は慣用のように生成され、または対応するFPGAデザインから出発して本明細書に記載された方法に従っても生成される、ということを意味する。次いでこれらのFPGA実装のグラフが、やはり個々のFPGAデザインに基づき生成される。
全体として、この方法を簡単に具現化することができ、その際に様々なステップを並列に実行することができる。したがってリソースを効率的に活用することができる。その際、類似FPGA実装をFPGAデザインのためのベースとして使用する目的で、最類似FPGA実装を選択することができ、または最小類似度が前提とされる。十分な類似性があるならば、対応するFPGA実装を参照として使用することができる。まだ類似度について調査されていないさらに別のFPGAデザインが存在するならば、それらのFPGAデザインについて類似FPGA実装または最類似FPGA実装の検索を続けることができる。
FPGAデザインからグラフを作成する際に、ノードおよび信号ラインに対するFPGAモデルのブロックがエッジに変換される。この方法を階層的に適用することができる。グラフィックのサブシステムを、最初の高速な推定についてブロックとして解釈することができ、または完全に行われた状態に至るまで任意の深さで非階層化することができる。変換関数によって例えば、FPGAモデルをとりわけそれらのベースブロックに至るまで、仮想接続(Goto/From, DataStoreRead/DataStoreMemory/DataStoreWrite, Triggerport, Actionport等)を考慮しながら非階層化し、そこから有向グラフを生成することができる。その際にFPGAモデルは、1つのつながったグラフから成るものとすることができるだけでなく、複数の別個のグラフを含むことができる。かかる別個のグラフが発生するのは例えば、1つのFPGAデザイン内で互いに独立した複数の部分機能が実装される場合である。
FPGAデザインのグラフベース表現と少なくとも1つの類似FPGA実装のグラフベース表現との比較は、グラフを類似度分析するアルゴリズムに基づき行われる。2つのグラフのそれぞれ2つのノード間の類似度の大きさに基づき、公知のアルゴリズムを適用することができる。2つのノードの類似度の大きさが、ブロックパス/ネットリストパス(部分的にも)、ブロックタイプ/ネットリストタイプ(例えば加算、乗算)およびブロックパラメータ/ネットリストパラメータ/ネットリスト属性(例えばビット幅、2進小数点位置)の一致の程度に基づき特定される。
本発明の有利な実施形態によれば、FPGAデザインは部分実装を含み、類似FPGA実装の検索は類似部分実装の検索を含み、この類似部分実装を使用してFPGA実装を生成するステップが行われる。したがって類似度検索の問題を、これらの部分実装に関する類似度を求めて比較することによって、種々の部分問題に分けることができる。
本発明の有利な実施形態によれば、類似FPGA実装の検索は、以前のFPGA実装のデータベース内の類似FPGA実装の検索を含む。データベース内に、例えばすべてのFPGA実装を記憶させることができ、その目的は、これらのFPGA実装をあとで使用するために用意しておくことである。その際にデータベースは好ましくは、1つのプロジェクトの枠内で生成されたFPGA実装を含んでおり、それというのもこのようにすれば、類似FPGA実装について高められた確率から出発できるからである。よって、類似FPGA実装の検索をその範囲に限定することができる。
本発明の有利な実施形態によればこの方法は、FPGAデザインの変更された部分領域を識別するステップを含み、ネットリストの合成は、FPGAデザインの変更された部分領域からのネットリストの合成を含み、FPGA実装の生成は、FPGAデザインの変更された部分領域のネットリストに対するFPGA実装の生成を含む。したがって新たなFPGA実装の作成を、最初からFPGAデザインの変更された部分領域に限定することができる。好ましくは、FPGA実装を個別に新たに実施可能なFPGAデザインのブロックが考察される。
本発明の有利な実施形態によればこの方法は、FPGAデザインのグラフベース表現と、少なくとも1つの類似FPGA実装のグラフベース表現との間の類似度の大きさを特定するステップを含み、さらにこの方法は、類似度の大きさが限界値を下回っているならば、類似FPGA実装を使用せずに、ネットリストからFPGA実装を生成する慣用のステップを含む。つまり適切な類似FPGA実装が参照として見つけられたならば、目下のFPGA実装の生成中にそれを利用することができる。そうでなければ、FPGAモデルをまったく新たに実装する必要がある。限界値よりも大きい類似度の大きさをもつ有用なFPGA実装が参照として存在しないことが、いっそう早く事前に認識されればされるほど、類似FPGA実装を検索するためにいっそう僅かなリソースしか必要とされない。このことから、FPGAモデルが著しく異なっているのであれば、つまり類似度の大きさが限界値を下回っている場合には、インクリメンタルビルドよりも通常のビルドを用いることで、ビルドにかかる時間を短縮することができる。好ましくは限界値は75%の類似度のところにある。さらに好ましくは限界値は85%の類似度のところにあり、さらにいっそう好ましくは90%のところにある。
本発明の有利な実施形態によれば、FPGAデザインのグラフベース表現を少なくとも1つの類似FPGA実装のグラフベース表現と比較するステップは、線形最適化問題の解決を含み、この解決にあたり、1つのノードを二重に割り当てることなく、一方のグラフ内の各ノードに対し他方のグラフ内の最類似ノードが識別される。この場合、Kuhnによる「ハンガリー法」として知られた方法が適用される。ハンガリー法は線形最適化問題の解決にあたり、1つのノードに二重に割り当てることなく、一方のグラフの各ノードに対し他方のグラフにおける最類似ノードを見つけるために用いられる。この方法によって総類似度が最大化される。ただし近傍関係を、2つのブロックの類似度に関する大きさとして一緒に算入することができる。この方法は基本的には、近傍関係を考慮せずに実施される。
本発明の有利な実施形態によればこの方法は、FPGAデザインのグラフベース表現のノードと、少なくとも1つの類似FPGA実装のグラフベース表現のノードと、の類似度を、細分化点の一致の検出によって特定するステップを含む。細分化点には例えば、ブロックパス/ネットリストパス(部分的にも)、ブロックタイプ/ネットリストタイプ例えば加算/乗算、ブロックパラメータ/ネットリストパラメータ例えばビット幅、2進小数点位置が含まれる。
本発明の有利な実施形態によれば、細分化点の一致を検出するステップは細分化点の重み付けを含む。この重み付けによって、細分化点を異なる強さで考慮することができる。
本発明の有利な実施形態によればこの方法は、データベース内に含まれている複数のグラフの類似度分析を実施する付加的なステップと、算出された類似度を類似度グラフまたは類似度マトリックスに記憶することを含む。したがって類似度分析において見つけ出されるかかる類似度を記憶することができ、その目的は、類似FPGA実装の以降の検索を、FPGAデザインのグラフベース表現と少なくとも1つの類似FPGA実装のグラフベース表現との比較によって簡単にすることである。算出された類似度はここでは、類似FPGA実装の検索において求められる類似度に該当する。
本発明の有利な実施形態によればこの方法は、データベース内に含まれる複数のグラフ間の関係性類似度を算出する付加的なステップを含む。したがって例えば、グラフまたは部分グラフを事前に分析し、それらの構造を捕捉して記憶することで、一種の「ハッシング」を実施することができる。この構造を例えば、いわゆるハッシュ値として記憶することができる。したがってグラフの類似度を以降で比較する際に、算出された関係性類似度に基づきこの比較を実施することができ、これによって、FPGAデザインのグラフベース表現と少なくとも1つの類似FPGA実装のグラフベース表現との比較による類似FPGA実装の検索が、この構造を通して簡単にされる。データベース内に含まれるグラフ間の関係性類似度を算出するステップには多大な計算コストが付随し、空きリソースを利用できるフェーズ中に行うのが望ましく、例えば僅かな計算負荷でFPGAデザインが生成される開発者のモデリングフェーズ中に行うのが望ましい。この場合に好ましくは、複数のFPGAモデルから1つの類似度グラフが作成され、このグラフによって、互いに比較されたすべてのFPGAモデル間の類似度分析の結果が記憶される。この場合、2つのFPGAモデル間で調査された類似度が、対応する2つのノード間のエッジとして、例えば類似度の大きさである重みと共に表されている。完全にメッシュ化された類似度グラフの場合には、FPGAモデル各々と別のFPGAモデル各々との類似度が表されている。完全な類似度グラフによれば、インクリメンタルFPGAビルドにとって理想的な開始点を見つけることができる。様々な手法によって、そのように完全なものとすることができる。第1のバリエーションとして総当たり方式に従い、類似度グラフを完全にメッシュ化するために欠けているエッジを、さらなる類似度分析を通して補うことができる。この結果として、すでに述べたように多大な計算能力が要求されることとなり、したがって例えばFPGAデザイン作成中、CPU負荷が僅かなときに例えばバックグラウンドで行うことができる。第2のバリエーションは、存在するFPGA実装の効率的な計算順序に基づくものである。これによれば、場合によっては高い類似度が生じる可能性をもって存在しているエッジに基づき、2つのノード間の類似度が推定され、その目的はそれらについて優先的に類似度分析を実施するためである。これによって、類似度グラフのメッシュ化をさらに完全なものとすることができる。その際に例えば確率のアプローチを適用することができる。これによれば確率と同様に類似度が、存在する複数のエッジを経由する1つの経路に沿って乗算される:経路2-1-4=45%×85%=38%。第3のバリエーションによれば2つのノード間の類似度が、存在するエッジに基づきバリエーション2のアプローチによって推定される。FPGAデザインの正確な類似度は、このアプローチの場合には分析されない。
本発明の有利な実施形態によればこの方法は、すでに特定された類似度に基づき、未特定の関係性について予期される高い類似度を事前に求める付加的なステップを含む。いずれの類似FPGA実装を参照として利用できるのか、または類似FPGAを参照として利用できるのか否かについて、いっそう早く事前に識別できればできるほど、この方法をいっそう効率的に実施することができる。
本発明の有利な実施形態によれば、FPGAデザインのグラフベース表現と少なくとも1つの類似FPGA実装のグラフベース表現とを比較するステップは、近傍関係を考慮する近傍マッチングを含む。かかる方法は例えば、Nikolicによる"Measuring Similarity of Graph Nodes by Neighbor Matching"として知られている。これによれば類似度が2つのグラフ間の類似度として求められ、これは最適化の最適なノード対応関係についてのノード類似度の総計をノード数で除算することによって得られる。
本発明の有利な実施形態によれば、FPGAデザインに基づきグラフベース表現を生成するステップは、仮想接続を考慮しながらFPGAデザインを非階層化すること、およびFPGAデザインの非階層化に基づき変換関数を適用することを含む。階層型のサブシステムの場合にはそれらのサブシステムを、最初の高速な推定についてブロックとして解釈することができ、または完全に行われた状態に至るまで任意の深さで非階層化することができる。仮想接続および階層型のブロックの依存性を捕捉し、かかるブロックをFPGA実装を作成するためのベースとして適用するときに正しく使用する目的で、変換が必要である。仮想接続は例えば、Goto/From, DataStoreRead/DataStoreMemory/DataStoreWrite, Triggerport, Actionport等といった接続を含むことができる。
次に、添付の図面を参照しながら好ましい実施形態に基づき、本発明について詳しく説明する。
第1の好ましい実施形態に従いFPGAデザインに基づき、FPGA実装およびこのFPGA実装からのビットストリームを生成するための方法を実施するフローチャートである。 第1の実施形態に従いFPGA実装およびビットストリームを生成するための図1のフローチャートの詳細図である。 第1の実施形態に従いデータベースへのエントリを行うための図1のフローチャートの詳細図である。 第1の実施形態に従い類似FPGAデザインを求めるための図1のフローチャートの詳細図である。 第1の実施形態による第1の例として、類似度グラフをそのノード34間の複数のエッジと共に概略的に示す図である。 第1の実施形態による第2の例として、すべてのノード間に1つのエッジが形成されている類似度グラフを概略的に示す図である。 第1の実施形態による第3の例として、すべてのノード間に1つのエッジが形成されている類似度グラフを概略的に示す図であって、ただしノード間において明示的には求められない類似度が、ノード間において特定された類似度に基づき求められることを示す図である。 第1の実施形態による例示的なモデルグラフを概略的に示す図である。 第1の実施形態による2つのモデルグラフのノード間の2つの類似度マトリックスを概略的に示す図であって、左側には「近傍マッチング」なしのイメージを、右側には「近傍マッチング」ありのイメージを示す図である。
図1~図4には、FPGAモデルであるFPGAデザインおよび/またはハードウェア記述に基づき、FPGA実装およびこのFPGA実装からのビットストリームを生成するための方法が示されている。
この方法の出発点として、ここではFPGAデザイン10がグラフィックFPGAモデルとして生成されて準備される。次いでこのFPGAモデルが、ここでは例えばVHDL(Very High Speed Integrated Circuit Hardware Description Language 超高速集積回路ハードウェア記述言語)であるハードウェア記述言語に書き換えられる。
ここから出発してビルドをスタートさせることができ、ビルドはまずは以下で詳しく説明するステップS100,S110およびS120を含む。
ステップS100において、FPGAデザイン10からネットリスト12の合成が行われる。ネットリスト12は、FPGAデザイン10に記述されているような論理素子およびそれらの結線を含む。
ステップS110において、ネットリスト12からFPGA実装14が生成される。このステップは、一般的に「配置配線」("Place and Route")と呼ばれる。この場合、FPGAのためにネットリスト12に記憶されている論理素子が配置され(Place)、ネットリスト12に従って互いに配線される(Route)。その成果物がFPGA実装14である。ステップS110の詳細についてはあとで説明する。
ステップS120において、生成されたFPGA実装14から、FPGAへ伝送するための、およびFPGAと共に使用するためのビットストリーム16が生成される。
図4に詳しく示されているように、類似FPGAデザインを求めるステップS140~S180は、先行するステップに並列に、特にステップS100に並列に、実施される。
したがってステップS140においてFPGAデザイン10から、グラフベース表現としてモデルグラフ24がFPGAデザイン10に基づき生成される。FPGAデザイン10からモデルグラフ24を作成する際に、ノードおよび信号ラインに対するFPGAモデル10のブロックがエッジに変換される。図8にはモデルグラフ24が例示的に描かれており、その際にこの図には、複数の独立したモデルグラフ24が共に実装されて描かれている。この場合、グラフィックのサブシステムを、最初の高速な推定についてブロックとして解釈することができ、またはそれらのサブシステムを完全に行われた状態に至るまで任意の深さで非階層化することができる。変換関数によって例えば、FPGAモデルをとりわけそれらのベースブロックに至るまで、仮想接続(Goto/From, DataStoreRead/DataStoreMemory/DataStoreWrite, Triggerport, Actionport等)を考慮しながら非階層化し、そこから有向グラフを生成することができる。FPGAデザイン10の非階層化に際して仮想接続が考慮され、FPGAデザイン10の非階層化に基づき変換関数が適用される。
ステップS150において、モデルグラフ24の類似度がデータベース22からのモデルグラフ24と比較される。データベース22からのモデルグラフ24は、先行のFPGA実装14のグラフベース表現である。
その際に最初に、目下のFPGAデザイン10のモデルグラフ24と、データベース22からの先行のFPGA実装14のモデルグラフ24と、の比較が、グラフの類似度分析のためのアルゴリズムに基づき実施される。2つのモデルグラフ24のそれぞれ2つのノード34間の類似度の大きさをベースにして、ノード34の類似度の大きさが、ブロックパス/ネットリストパス(部分的にも)、ブロックタイプ/ネットリストタイプ(例えば加算、乗算)およびブロックパラメータ/ネットリストパラメータ/ネットリスト属性(例えばビット幅、2進小数点位置)の一致の程度に基づき特定される。
さらにこの比較には線形最適化問題の解決も含まれ、これによれば1つのノード34が二重に割り当てられることなく、一方のモデルグラフ24内のノード34各々について、他方のモデルグラフ24内の最類似ノード34が識別される。これはKuhnによる「ハンガリー法」として基本的に知られている。
目下のFPGAデザイン10のモデルグラフ24と、データベース22からのFPGA実装14のモデルグラフ24と、の比較にはさらに、近傍関係を考慮するための近傍マッチングが含まれる。かかる方法は例えば、Nikolicによる"Measuring Similarity of Graph Nodes by Neighbor Matching"として知られている。これに関連して図9には、2つのモデルグラフ24のノード34間の2つの類似度マトリックスが示されている。図9の左側のイメージには「近傍マッチング」なしの類似度マトリックスが、右側のイメージには「近傍マッチング」ありの類似度マトリックスが示されている。
この場合、目下のFPGAデザイン10のモデルグラフ24のノード34と、データベース22からのFPGA実装14のモデルグラフ24のノード34と、の類似度は、細分化点の一致に基づき求められる。細分化点には例えば、ブロックパス/ネットリストパス、ブロックタイプ/ネットリストタイプ例えば加算/乗算、ブロックパラメータ/ネットリストパラメータ例えばビット幅、2進小数点位置が含まれる。ここでは細分化点の重み付けが行われる。
さてここで、両方のモデルグラフ24の類似度についてこのようにして特定された大きさから出発して、目下のFPGAデザイン10のモデルグラフ24とデータベース22からのFPGA実装14のモデルグラフ24との類似度が、目下のFPGAデザイン10のモデルグラフ24とデータベース22からの最良モデルグラフ24との類似度よりも高いか否か、についてチェックされる。データベース22からのモデルグラフ24が、目下のFPGAデザイン10のモデルグラフ24との類似度を求めた最初のモデルグラフ24であるならば、データベース22からのモデルグラフ24が最良モデルグラフ24または参照26として引き継がれる。これとは異なり、データベース22からのモデルグラフ24がこれまでの参照26よりも高い類似度を有している場合のみ、参照26が変更される。このことは、適用可能であれば、ステップS160において行われる。データベース22内に比較のためにさらに別のモデルグラフ24が含まれているのであれば、この方法はステップS150に戻る。ステップS100による合成がすでに終了しているか否かについても、チェックされる。ステップS100による合成がまだ終了していない場合のみ、ステップS150において比較が続けられる。
つまりステップS100による合成が終了しているならば、またはデータベース22内に比較のためにさらに別のモデルグラフ24が含まれていなければ、目下の参照26の類似度の大きさが限界値と比較される。類似度の大きさが限界値よりも大きいならば、ステップS110においてFPGA実装14を生成するための参照26として、相応のモデルグラフ24がステップS170において準備される。そうでなければ、この方法のこの部分は、ステップS180において結果を伴わずに中止される。ここで限界値は例えば、90%の類似度のところにある。
ステップS110におけるFPGA実装14の生成は、以下のようにして実施される。最初に、ステップS170により類似FPGA実装14がモデルグラフ24に基づき求められて準備されたか否か、についてチェックされる。これが当てはまらなければ、FPGA実装14を作成する目的で、ステップS200において通常の慣用の配置配線が実施される。そうでなければ、この方法はステップS210と共に続けられる。
ステップS210において、参照のためにデータベース22からFPGA実装14がロードされる。次いでステップS220において、データベース22からのFPGA実装14に基づき、インクリメンタル方式で配置配線が行われる。
図3に示されているように、データベース22へのエントリが行われる。ステップS130において、それぞれ目下のFPGAデザイン10のネットリスト12、それに属するモデルグラフ24および生成されたFPGA実装14が、FPGAモデル10のアーチファクト20としてデータベース22に記憶される。このように各FPGAデザイン10は、その後の新たなFPGAデザイン10についての以降の比較のために、データベース22内にアーチファクト20を自動的に形成する。
ここには示されていないバックグラウンドステップとして付加的に、データベース22内に含まれているモデルグラフ24間の関係性類似度が計算される。この場合、データベース22内に含まれているアーチファクト20のモデルグラフ24間の関係性類似度を算出するステップは、空きリソースを利用できるフェーズ中に行われる。その際に複数のFPGAモデル10から、1つの類似度グラフ30が作成される。図5~図7には、種々の類似度グラフ30が示されている。この場合、2つのFPGAモデル10間で調査された類似度が、FPGAモデル10を表現する対応する2つのノード34間のエッジ32として、類似度の大きさである重み36と共に記載されている。類似度グラフ30は、類似度線図とも呼ばれる。
この場合、図5の類似度グラフ30は、少数のノード34間のエッジ32だけしか示していないのに対し、図6および図7の類似度グラフ30は、完全な類似度グラフ30である。ノード34間においてエッジ32として直線で表されているすでに求められた類似度から出発して、破線として表されている付加的なエッジ38の重み36が求められる。様々な手法によって、このように完全なものとすることができる。この目的で総当たり方式に従い類似度グラフ30を完全なものとするために、付加的なエッジ38の重み36がさらなる類似度分析を通して逐次、補われる。
図7には、FPGAデザイン10に存在するエッジ32の効率的な計算順序に基づき、そこにある類似度グラフ30を完全なものとするための1つのバリエーションが示されている。これによれば、場合によって高い類似度が生じる可能性をもって存在しているエッジ32に基づき、2つのノード34間の類似度が推定され、その目的はそれらについて優先的に類似度分析を実施するためである。このようにすれば付加的なエッジ38を、存在しているエッジ32の重み36の乗算によって推定することができる。これは図7によれば例えば、「2」および「4」で表されたノード34間の付加的なエッジ38について、これら双方のノード34間の類似度を推定する目的で、点線矢印40に沿って類似度を乗算することによって行われる。このことから出発して、求められた高い類似度を有するエッジ32に対する重み36を第一に特定することができる。
類似度グラフ30に基づき、ステップS150における比較を簡単にすることができ、かつ加速することができる。
10 FPGAデザイン
12 ネットリスト
14 FPGA実装
16 ビットストリーム
20 アーチファクト
22 データベース
24 モデルグラフ
26 参照
30 類似度グラフ、類似度線図
32 エッジ
34 ノード
36 重み
38 付加的なエッジ
40 点線矢印

Claims (16)

  1. FPGAモデルであるFPGAデザイン(10)および/またはハードウェア記述に基づき、FPGA実装(14)を生成する方法であって、前記方法は、
    前記FPGAデザイン(10)からネットリスト(12)を合成するステップと、
    前記FPGAデザイン(10)に基づきグラフベース表現を生成するステップと、
    類似FPGA実装(14)を検索するステップと、
    前記類似FPGA実装(14)を使用して、前記ネットリスト(12)から前記FPGA実装(14)を生成するステップと、
    を含み、
    類似FPGA実装(14)を検索する前記ステップは、前記FPGAデザイン(10)の前記グラフベース表現と、前記類似FPGA実装(14)のグラフベース表現と、を比較するステップを含む
    ことを特徴とする方法。
  2. 前記FPGAデザイン(10)は、部分実装を含み、
    類似FPGA実装(14)を検索する前記ステップは、類似部分実装の検索を含み、
    前記類似部分実装を使用して、前記FPGA実装(14)を生成する前記ステップを行う、
    請求項1記載の方法。
  3. 類似FPGA実装(14)を検索する前記ステップは、以前のFPGA実装(14)のデータベース(22)内の類似FPGA実装(14)の検索を含む、
    請求項1または2記載の方法。
  4. 前記方法は、前記FPGAデザイン(10)の変更された部分領域を識別するステップをさらに含み、
    前記ネットリスト(12)を合成する前記ステップは、前記FPGAデザイン(10)の前記変更された部分領域に対する前記ネットリスト(12)の合成を含み、
    FPGA実装(14)を生成する前記ステップは、前記FPGAデザイン(10)の前記変更された部分領域の前記ネットリスト(12)に対する前記FPGA実装(14)の生成を含む、
    請求項1から3までのいずれか1項記載の方法。
  5. 前記方法は
    記FPGAデザイン(10)の前記グラフベース表現と、少なくとも1つの前記類似FPGA実装(14)の前記グラフベース表現と、の間の類似度の大きさを特定するステップと、
    記類似度の大きさが限界値を下回っているならば、類似FPGA実装(14)を使用せずに、前記ネットリスト(12)から前記FPGA実装(14)を生成するステップと、
    をさらに含む、
    請求項1から4までのいずれか1項記載の方法。
  6. 前記FPGAデザイン(10)の前記グラフベース表現と、前記類似FPGA実装(14)の前記グラフベース表現と、を比較する前記ステップは、線形最適化問題の解決を含み、前記解決にあたり、1つのノードを二重に割り当てることなく、一方のグラフ内の各ノードに対し他方のグラフ内の最類似ノードを識別する、
    請求項1から5までのいずれか1項記載の方法。
  7. 前記方法は、前記FPGAデザイン(10)の前記グラフベース表現のノードと、少なくとも1つの前記類似FPGA実装(14)の前記グラフベース表現のノードと、の類似度を、細分化点の一致の検出によって特定するステップをさらに含む、
    請求項1から6までのいずれか1項記載の方法。
  8. 細分化点の一致を検出する前記ステップは、前記細分化点の重み付けを含む、
    請求項7記載の方法。
  9. 前記方法は、
    データベース(22)内に含まれている複数のグラフ(24)の類似度分析を実施する付加的なステップと
    出された類似度を類似度グラフ(30)または類似度マトリックスに記憶するステップと
    をさらに含む、
    請求項1から8までのいずれか1項記載の方法。
  10. 前記方法は、前記データベース(22)内に含まれる前記複数のグラフ(24)間の関係性類似度を算出するステップをさらに含む、
    請求項9記載の方法。
  11. 前記方法は、すでに特定された類似度に基づき、未特定の関係性について予期される高い類似度を事前に求めるステップをさらに含む、
    請求項1から10までのいずれか1項記載の方法。
  12. 前記FPGAデザイン(10)の前記グラフベース表現と、前記類似FPGA実装(14)のグラフベース表現と、を比較する前記ステップは、近傍関係を考慮する近傍マッチングを含む、
    請求項1から11までのいずれか1項記載の方法。
  13. 前記FPGAデザイン(10)に基づきグラフベース表現を生成する前記ステップは、仮想接続を考慮しながら前記FPGAデザイン(10)を非階層化するステップと、前記FPGAデザイン(10)の前記非階層化に基づき変換関数を適用するステップと、を含む、
    請求項1から12までのいずれか1項記載の方法。
  14. 前記FPGAデザイン(10)から前記ネットリスト(12)を合成する前記ステップと、前記FPGAデザイン(10)に基づき前記グラフベース表現を生成する前記ステップと、を並列に実行する、
    請求項1から13までのいずれか1項記載の方法。
  15. 前記FPGAデザイン(10)の前記グラフベース表現と、少なくとも1つの前記類似FPGA実装(14)のグラフベース表現と、を比較するステップは、グラフを類似度分析するアルゴリズムに基づき行われる、
    請求項1から14までのいずれか1項記載の方法。
  16. FPGAモデルであるFPGAデザイン(10)および/またはハードウェア記述に基づきビットストリーム(16)を生成する方法であって、前記方法は、
    請求項1から15までのいずれか1項に従い、FPGAモデルであるFPGAデザイン(10)および/またはハードウェア記述に基づきFPGA実装(14)を生成するステップと、
    生成された前記FPGA実装(14)からビットストリーム(16)を生成するステップと、
    を含む方法。
JP2019001636A 2018-01-10 2019-01-09 グラフベースの類似度検索を用いたfpga実装のインクリメンタル方式による生成 Active JP7065794B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102018100423.0 2018-01-10
DE102018100423.0A DE102018100423A1 (de) 2018-01-10 2018-01-10 Inkrementelles Generieren einer FPGA Implementierung mit Graphen-basierter Ähnlichkeitssuche

Publications (3)

Publication Number Publication Date
JP2019121404A JP2019121404A (ja) 2019-07-22
JP2019121404A5 JP2019121404A5 (ja) 2021-12-23
JP7065794B2 true JP7065794B2 (ja) 2022-05-12

Family

ID=66995361

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019001636A Active JP7065794B2 (ja) 2018-01-10 2019-01-09 グラフベースの類似度検索を用いたfpga実装のインクリメンタル方式による生成

Country Status (4)

Country Link
US (1) US10706196B2 (ja)
JP (1) JP7065794B2 (ja)
CN (1) CN110020456B (ja)
DE (1) DE102018100423A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111353182B (zh) * 2020-03-11 2023-05-05 电子科技大学 一种面向fpga芯片的网表环路识别方法
US20220321403A1 (en) * 2021-04-02 2022-10-06 Nokia Solutions And Networks Oy Programmable network segmentation for multi-tenant fpgas in cloud infrastructures
CN113836863B (zh) * 2021-09-30 2024-05-28 安徽大学 一种Logisim电路图的查重方法及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001515247A (ja) 1997-08-28 2001-09-18 ザイリンクス, インコーポレイテッド 動的再形態特定可能演算用のfpga設計方法
JP2017191556A (ja) 2016-04-15 2017-10-19 富士通株式会社 類似度検索装置、類似度検索方法および類似度検索プログラム

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3196950B2 (ja) * 1993-11-30 2001-08-06 日本電信電話株式会社 回路情報の検証システム
JPH11219379A (ja) * 1998-01-30 1999-08-10 Nec Eng Ltd Vhdlモデルの変更方法
US6453454B1 (en) 1999-03-03 2002-09-17 Oridus Inc. Automatic engineering change order methodology
US7017043B1 (en) * 1999-03-19 2006-03-21 The Regents Of The University Of California Methods and systems for the identification of circuits and circuit designs
US7055120B2 (en) * 2000-12-06 2006-05-30 Cadence Design Systems, Inc. Method and apparatus for placing circuit modules
US7237214B1 (en) * 2003-03-04 2007-06-26 Synplicity, Inc. Method and apparatus for circuit partitioning and trace assignment in circuit design
US7673164B1 (en) * 2004-12-13 2010-03-02 Massachusetts Institute Of Technology Managing power in a parallel processing environment
US7284228B1 (en) * 2005-07-19 2007-10-16 Xilinx, Inc. Methods of using ant colony optimization to pack designs into programmable logic devices
CA2661715A1 (en) * 2006-08-31 2008-03-06 Satish Bachina Method and system for implementing a circuit design in a reconfigurable device
CN101196945B (zh) * 2006-12-04 2010-06-02 富士通株式会社 电路设计支持装置及方法、印刷电路板制造方法
US20080162777A1 (en) * 2006-12-29 2008-07-03 Sap Ag Graph abstraction pattern for generic graph evaluation
US8060355B2 (en) * 2007-07-27 2011-11-15 Synopsys, Inc. Automatic, hierarchy-independent partitioning method for transistor-level circuit simulation
CN101620643B (zh) * 2009-07-03 2011-03-09 中国人民解放军国防科学技术大学 一种基于fpga的体系结构仿真系统设计方法
US8196081B1 (en) 2010-03-31 2012-06-05 Xilinx, Inc. Incremental placement and routing
US8533643B2 (en) * 2010-12-17 2013-09-10 Advanced Micro Devices, Inc. Method and apparatus for performing template-based classification of a circuit design
JP5763784B2 (ja) * 2011-01-25 2015-08-12 マイクロン テクノロジー, インク. 要素利用のための状態のグループ化
CN102054110A (zh) * 2011-01-27 2011-05-11 复旦大学 Fpga可编程逻辑块通用装箱方法
US8904325B2 (en) * 2012-01-31 2014-12-02 Mentor Graphics Corporation Verification test set and test bench map maintenance
CN103366028B (zh) * 2012-03-31 2016-03-16 中国科学院微电子研究所 一种现场可编程门阵列芯片布局方法
US8578311B1 (en) * 2012-05-09 2013-11-05 International Business Machines Corporation Method and system for optimal diameter bounding of designs with complex feed-forward components
US10152557B2 (en) * 2014-01-31 2018-12-11 Google Llc Efficient similarity ranking for bipartite graphs
US9449133B2 (en) 2014-05-07 2016-09-20 Lattice Semiconductor Corporation Partition based design implementation for programmable logic devices
US9444702B1 (en) * 2015-02-06 2016-09-13 Netspeed Systems System and method for visualization of NoC performance based on simulation output
US9875333B1 (en) * 2016-01-19 2018-01-23 Cadence Design Systems, Inc. Comprehensive path based analysis process
CN105843982B (zh) * 2016-03-07 2019-04-12 深圳市紫光同创电子有限公司 用于可编程逻辑器件的位流生成方法、装置及设计系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001515247A (ja) 1997-08-28 2001-09-18 ザイリンクス, インコーポレイテッド 動的再形態特定可能演算用のfpga設計方法
JP2017191556A (ja) 2016-04-15 2017-10-19 富士通株式会社 類似度検索装置、類似度検索方法および類似度検索プログラム

Also Published As

Publication number Publication date
CN110020456A (zh) 2019-07-16
DE102018100423A1 (de) 2019-07-11
US10706196B2 (en) 2020-07-07
US20190213294A1 (en) 2019-07-11
JP2019121404A (ja) 2019-07-22
CN110020456B (zh) 2024-08-27

Similar Documents

Publication Publication Date Title
JP7065794B2 (ja) グラフベースの類似度検索を用いたfpga実装のインクリメンタル方式による生成
JP6902112B2 (ja) 人工知能および強化学習によるシステムオンチップ(SoC)回路の設計システムおよび方法
JP2972540B2 (ja) Lsi自動設計システム及びlsi自動設計方法
US5483470A (en) Timing verification by successive approximation
EP1550059B1 (en) A system and method for reducing wire delay or congestion during synthesis of hardware solvers
US9881114B2 (en) Virtual hierarchical layer propagation
US7065726B1 (en) System and method for guiding and optimizing formal verification for a circuit design
EP0847022A2 (en) Method for designing an architectural system
US20070233532A1 (en) Business process analysis apparatus
US7490312B1 (en) Partition-based incremental implementation flow for use with a programmable logic device
CN109885580A (zh) 一种热点账户批量更新方法、装置、服务器和存储介质
CN115796041A (zh) 神经网络模型部署方法、系统、设备及存储介质
Manoranjan et al. Qualifying relative timing constraints for asynchronous circuits
JP6173644B1 (ja) 情報処理装置、情報処理方法及び情報処理プログラム
US10878150B1 (en) Loop optimization in a circuit design netlist
US8595659B2 (en) Verification and reachability using an organic approach
US6609234B2 (en) Ordering binary decision diagrams used in the formal equivalence verification of digital designs
US10839118B1 (en) Optimization-aware incremental synthesis
US8701062B2 (en) Apparatus and method for generating a netlist using non-uniquified module during logic synthesis stage
Chatterjee et al. A new incremental placement algorithm and its application to congestion-aware divisor extraction
JPH05197774A (ja) 高位レベル合成における回路修正方式
US20220277118A1 (en) Multi-Component Simulation Method and System
JP2000150659A (ja) 半導体集積回路装置のレイアウト設計方法
Kosztyán et al. Operations Research Perspectives
CN118709717A (zh) 模型部署方式的确定方法、装置、电子设备和存储介质

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211111

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211111

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20211111

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220317

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220426

R150 Certificate of patent or registration of utility model

Ref document number: 7065794

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150