JP6910198B2 - Fpgaネットリストを作成する方法 - Google Patents

Fpgaネットリストを作成する方法 Download PDF

Info

Publication number
JP6910198B2
JP6910198B2 JP2017093906A JP2017093906A JP6910198B2 JP 6910198 B2 JP6910198 B2 JP 6910198B2 JP 2017093906 A JP2017093906 A JP 2017093906A JP 2017093906 A JP2017093906 A JP 2017093906A JP 6910198 B2 JP6910198 B2 JP 6910198B2
Authority
JP
Japan
Prior art keywords
fpga
signal
shadow register
netlist
source code
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
JP2017093906A
Other languages
English (en)
Other versions
JP2017204279A5 (ja
JP2017204279A (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 Digital Signal Processing and Control Engineering GmbH
Original Assignee
Dspace Digital Signal Processing and Control Engineering 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 Digital Signal Processing and Control Engineering GmbH filed Critical Dspace Digital Signal Processing and Control Engineering GmbH
Publication of JP2017204279A publication Critical patent/JP2017204279A/ja
Publication of JP2017204279A5 publication Critical patent/JP2017204279A5/ja
Application granted granted Critical
Publication of JP6910198B2 publication Critical patent/JP6910198B2/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/343Logical level
    • 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/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/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • 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/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • G06F30/331Design verification, e.g. functional simulation or model checking using simulation with hardware acceleration, e.g. by using field programmable gate array [FPGA] or emulation

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

Description

本発明は、FPGA用のネットリストを作成する方法に関する。
複雑かつダイナミックなモデルのリアルタイムシミュレーションは、時間的な周辺条件が厳しいので、現在の計算ノードでも、高い要求を課す。自動車のHardware−in−the−Loopシミュレーション(HiL)では、このようなモデルは特に、高速の調整ループが閉成されなければならない箇所で使用される。これは例えば、燃費の低減または排ガスの低減において、ますます大きな役割を担う、シリンダ内圧センサのシミュレーションである。また、例えば電動機の場合のような、高い動性を有する調整システムでも、短い周期時間と短いレイテンシとが不可欠である。実際にはこれは、CPUベースのシミュレーションでは、もはや、ほぼ実現不可能である。
Field Programmable Gate Arrays(FPGAs)は、モデルの動的部分の計算を担うことによって、リアルタイムシミュレーションにおいて計算ノードをサポートすることができる。高い柔軟性および複数の信号の並列処理が可能であることによって、FPGAを使用することによって、困難なリアルタイム要求も容易に満たされる。FPGAは、計算ノードのCPUに対するハードウェアアクセラレータとして用いられる。相応に、例えば、環境モデルの極めて動的な部分がFPGAに移され、このようにして、制御機器に対して、十分に正確かつ迅速な応答時間が保証され続ける。FPGAネットリストは、通常、ハードウェア記述言語で、FPGAモデルに基づいて、構築プロセスにおいて形成される。
調整システムのモデルは、精度への要求が高まるにつれて、ますます複雑になり、これに伴って、操作も困難になる。自動車Hil環境では、このようなモデルは通常、The MathWorks Inc.のツールセット、Matlab/Simulinkを用いて作成される。Simulinkは、このようなモデルの、ブロックダイアグラムの形態の、ブロックベースの概観を提供する。複数のモデル部分は、ブロックダイアグラムにおいて、複数のサブシステムにまとめられ、信号によって相互に結合される。ここで、これらのブロック間のデータフローは、信号線路によって表される。
FPGAベースのシミュレーションは、Xilinx System Generator(XSG)およびdSPACE社のFPGAプログラミングブロックセットを用いて、CPUベースのシミュレーションと同様に、ブロックダイアグラムにおいて、Simulinkによってモデリング可能である。
しかしCPUシミュレーションとは異なり、このモデルは、反復プログラミング言語に変換されず、顧客固有のデジタル回路を記述するFPGAネットリストに変換される。このFPGAネットリストは、FPGAコンフィギュレーションデータストリームに変換可能である。
欧州特許出願公開第2765528号明細書(EP2765528A1)から、実行時間中に、FPGAから変数を読み出す方法が公知である。
幾つかの読み出し技術では、データは直接的に、ワーキングレジスタから読み出される。FPGAの実行時間中の読み出し時には、これは欠点である。なぜなら、しばしば、レジスタを特定の時間に読み出すことができないからである。ワーキングレジスタは、実行時間中、常に、最新の値で上書きされるので、特定の時点で存在する値を検出することができないことがしばしばある。
本発明の課題は、従来技術を改善することである。
本発明は、FPGAネットリストを作成する方法に関する。ここでこのネットリストは、FPGAソースコードと少なくとも1つのシャドーレジスタとから形成される。ここでFPGAソースコードは、少なくとも1つの機能と少なくとも1つの信号とを規定する。ここでシャドーレジスタは、少なくとも1つの信号に割り当てられ、割り当てられた信号の値を実行時間中に記憶するように調整および設定される。ここで、記憶された信号値を実行時間中に読み出す手段が設定および調整される。ここでFPGAソースコードにおいて規定された機能は、シャドーレジスタによって変更されない。ここでネットリストは、FPGA上にロードされ、FPGAによって実行されるように設定される。ここでFPGAソースコードによって記述された機能は、FPGAによって実行される。ここで、シャドーレジスタの、FPGAソースコードにおいて記述された機能からの機能的な分離が設定および調整される。ここでシャドーレジスタは、この分離によって、分離の時点で記憶された信号値を保持する。また、FPGAソースコードにおいて記述された機能が実行される。
本発明ではさらに、プロセッサユニットを備えたデータ処理装置が提示されている。ここでは、データ処理装置は、上述した方法を実行するように構成されている。
本発明では、コンピュータによって実装される指示を含んだコンピュータプログラム製品も提示される。このコンピュータプログラム製品は、ロードおよび適切な処理装置内での実行後に、上述した方法を実行する。
さらに、本発明では、電子的に読み出し可能な制御信号を含んでいるデジタル記憶媒体が提示される。この制御信号は、上述した方法が、データ処理装置上で実行されるように、プログラミング可能なデータ処理装置と協働することができる。
ネットリストはビットストリームに変換され、FPGA上にロード可能である。ここでFPGAは、FPGAソースコードにおいて規定された機能を実行することができる。分離によって、信号値の読み出しが遅れて行われる場合であっても、分離の時点で最新であった値を正確に読み出すことが可能になる。本願では実行時間中とは、FPGAソースコードにおいて規定された機能が継続して実行され、信号値が継続して更新されることであり、その間に、シャドーレジスタは分離され、分離の時点で最新の値を保持する。分離は有利には、トリガ信号によってトリガされる。FPGAネットリストでは、このために、分離メカニズムがトリガ信号と接続される。択一的に、通常状態においてシャドーレジスタが分離されていて、トリガ信号に基づいて、短時間、機能と接続されてもよい。この場合には、シャドーレジスタ内に、トリガ信号の時点で最新の信号値が記憶され、シャドーレジスタは再び、機能から分離される。
したがって、本発明の方法の結果は、FPGAネットリストであり、ここでこのネットリスト内には、少なくとも1つのシャドーレジスタが規定されており、ここでこのFPGAネットリスト内では、少なくとも1つの機能と少なくとも1つの信号が規定されており、ここでこのシャドーレジスタは、少なくとも1つの信号と接続されており、実行時間中に、信号の値を記憶するように調整および設定されている。ここでこのネットリストは、FPGA上にロードされ、かつ、FPGAによって実行されるように設定されている。ここで、シャドーレジスタ内に記憶されている信号値を、FPGAの実行時間中に読み出す手段がネットリスト内に設定および調整されている。ここで、信号からの、シャドーレジスタの機能的な分離が設定および調整されている。ここでこのシャドーレジスタは、この分離によって、分離の時点で記憶された信号値を保持し、また、FPGAは、この機能を実行する。
有利な構成では、FPGAソースコードは、多数の信号を規定する。ここでは多数のシャドーレジスタがそれぞれ1つの信号に割り当てられる。ここで機能的な分離は、多数のシャドーレジスタを同期して分離するように設定されている。
この同期した分離によって、多数の、同時に存在する信号値を、実行時間中に、FPGAから読み出すことが可能になる。FPGAからの複数の信号値の同期した読み出しは、しばしば不可能である。同期分離可能な複数のシャドーレジスタによって、同時に存在している複数の信号値が記憶され、順次読み出されることが可能になる。このようにして、同時に存在する複数の変数の、一貫したデータセットを記録することが可能になる。
この有利な構成の結果は、多数の信号が規定されているFPGAネットリストである。ここでは多数のシャドーレジスタがそれぞれ1つの信号に割り当てられている。ここで機能的な分離は、多数のシャドーレジスタを同期して分離するために設定されている。
ある構成では、分離のために、シャドーレジスタのイネーブル信号またはシャドーレジスタのクロック信号が中断される。
シャドーレジスタのイネーブル信号のこの中断によって、シャドーレジスタは、実行時間中に、もはや更新されない。これは、1つまたは複数のシャドーレジスタに対する分離の極めて容易な手段である。
シャドーレジスタのクロック信号の中断によって、シャドーレジスタはもはや変化しない。したがって、レジスタの状態はほぼ、フリーズされる。それにもかかわらず、シャドーレジスタ内に記憶された値は、種々の様式で読み出し可能である。
この有利な構成の結果は、分離のために、シャドーレジスタのイネーブル信号、または、シャドーレジスタのクロック信号を中断するように設定されているFPGAネットリストである。
ある構成では、FPGAソースコードは、グラフィックモデルまたはテキスト形式のコードとして存在する。
FPGAソースコードは、しばしば、グラフィックモデルの形態で存在する。これは例えば、開発環境におけるブロックダイアグラムとして存在する。例えば、この種のブロックダイアグラムの例は、The MathWorks社のSimulinkである。グラフィックソースコードでは、シャドーレジスタは、容易に、付加的なレジスタとして挿入される。ここで、この付加的なレジスタは、割り当てられている信号と接続され、同様に挿入されている分離メカニズムを介して、実行時間中に、機能的に、信号から分離可能である。
FPGAソースコードの択一的な形態は、テキスト形式のコード、例えば、VHDLまたはVerilogである。テキスト形式のソースコードにおいても、シャドーレジスタは容易に、付加的なレジスタとして挿入可能である。ここで、この付加的なレジスタは、割り当てられている信号と接続され、同様に挿入されている分離メカニズムを介して、実行時間中に、機能的に、信号から分離可能である。
有利な構成では、シャドーレジスタは、FPGAソースコード、または、FPGAソースコードのコピー内に挿入される。
シャドーレジスタを直接的にFPGAソースコード内に挿入することによって、ネットリストの作成は特に容易になる。なぜなら、FPGAソースコードだけが、ネットリストに変換されればよいからである。FPGAソースコードのコピーへのシャドーレジスタの挿入によって、元来のFPGAソースコードには手が加えられない。この方法が、ユーザーにとってトランスペアレントであるべき場合、これは有利である。すなわち、ユーザーは、シャドーレジスタが挿入されたことを知らず、それにもかかわらず、実行時間中の信号値の読み出し時の利点が利用可能である。
択一的な構成では、ソースコードからネットリストが作成され、シャドーレジスタがこのネットリスト内に挿入される。
ネットリスト内にシャドーレジスタを挿入することによって、FPGAソースコードは変更されないままであり、コピーが作成される必要はない。その後、シャドーレジスタを含むネットリストは、他のネットリストのように、さらなる処理が可能である。例えば、このネットリストをビットストリームに変換し、これに続いて、FPGA上にロードすることが可能である。シャドーレジスタが挿入されているネットレジスタは、ここでは、単なるネットリストとして、または、マッピング、配置および/またはルーティングに関する付加情報を有するネットリストとして存在し得る。
有利な構成では、シャドーレジスタは自動的に挿入され、信号に割り当てられる。
この自動化によって、ユーザーは、シャドーレジスタを挿入し、信号に割り当てるタスクから解放される。特に、信号が多数あり、これらの信号の各々にシャドーレジスタが割り当てられるべき場合には、このような自動化は大きな利点である。
別の構成では、この信号が既に別の箇所でシャドーレジスタに割り当てられているか否かが自動的に検査され、この信号が既に別の箇所でシャドーレジスタに割り当てられている場合には、この信号にさらなるシャドーレジスタは割り当てられていない。
自動化されたこの検査によって、1つの信号に対して、多数のシャドーレジスタが挿入され、この信号に割り当てられることが回避される。特に、FPGAソースコードが大きい場合、すなわち、多くの行のテキストを含んでいる場合、または、グラフィックモデルとして、多数のヒエラルキーレベルを含んでいる場合、マニュアルで行われる検査は手間がかかり、エラーが生じやすい。したがって、この自動化された検査は有利である。
別の構成では、少なくとも2つのシャドーレジスタが挿入され、この信号に割り当てられる。ここで、第1のシャドーレジスタは、実行時間中に、最新の信号値を記憶するように設定および調整され、また、第2のシャドーレジスタは分離されている。
2つのシャドーレジスタによって、古い信号値を第1のシャドーレジスタ内に記録し、同時に、最新の信号値を第2のシャドーレジスタ内に記録することが可能になる。これは例えば、シャドーレジスタの読み出し過程が、複数のFPGAクロックにわたって継続する、または、すぐには実行可能でない場合に使用される。この場合には、第1のシャドーレジスタの読み出し中に、最新の値が、第2のシャドーレジスタ内に記憶される。
複数のシャドーレジスタが、1つのメモリウィンドウであってもよい。この場合には、一方のシャドーレジスタ内に最新の信号値が記憶され、他方のシャドーレジスタ内に古い信号値が記憶される。トリガ信号に基づいて、複数のシャドーレジスタが同時に分離されてよい。これによって、トリガ信号前の信号値を読み出すことが可能になる。
択一的な実施形態では、トリガ信号に続く信号値を記録するために、メモリウィンドウが利用可能である。この場合には、複数のシャドーレジスタは順次、所定の持続時間の後に分離される。3つ以上のシャドーレジスタによって、2つのバリエーションを同時に使用することが可能である。したがって、トリガ信号前および後の信号値を記録および読み出すことが可能である。
この有利な構成の結果は、少なくとも2つのシャドーレジスタが規定されており、1つの信号に割り当てられているFPGAネットリストであり、ここでは、第1のシャドーレジスタは、実行時間中に、最新の信号値を記憶するように設定および調整されている。また、第2のシャドーレジスタは分離されている。
特に有利な構成では、ネットリストの作成時に、FPGAの外部リードバックインタフェースおよび/または内部リードバックインタフェースを介したシャドーレジスタの読み出しが設定および調整される。
内部または外部リードバックインタフェースを介したシャドーレジスタの読み出しは、読み出しの快適な手段である。この実施形態では、特に、FPGAの極めて少ないロジックおよびルーティングリソースしか、読み出しのために必要でない。シャドーレジスタは、実装ツールによって、直接的に、割り当てられた信号に並んで配置可能である。これによって、シャドーレジスタの挿入を伴わずに、ネットリストに対する変更が最小になる。
別の構成では、多数のシャドーレジスタが挿入され、ここでは、多数のシャドーレジスタが結合されて、1つのシフトレジスタチェーンになり、FPGAの外部インタフェースを介して読み出されるように設定および調整される。
択一的な構成では、多数のシャドーレジスタが挿入され、ここで、FPGAの外部インタフェースを介した多数のシャドーレジスタの読み出しのために、アドレスコードが設定および調整される。
外部インタフェースを介した読み出しは典型的に、リードバックインタフェースよりも高いデータスループットを可能にする。したがって、実行時間中に頻繁に、多数の信号値が読み出されるべき場合には、読み出しのこの形態は有利である。
別の構成では、シャドーレジスタに対して付加的にロジックが挿入される。ここでこのロジックは、実行時間中に、信号値が変化するとトリガ信号を出力するように設定および調整される。ここでこのトリガ信号は、シャドーレジスタの分離を引き起こす。
組み入れられたこのロジックによって、分離は極めて迅速に、所定の結果の発生時に、トリガされる。トリガ信号は、ここで、1つまたは複数のシャドーレジスタの分離を迅速に、または、所定の遅延を伴って、トリガすることができる。このようなロジックは、種々の様式で実装可能である。これに対する例は、実施例に挙げられている。
有利な構成では、シャドーレジスタの挿入前に、以下のステップが実行される:すなわち、
・最初の信号値が依存する、FPGAソースコードにおける全ての定数を求めるステップ
・これらの定数の見出された値に対して最小の必要ビット幅を求めるステップ
・これらの定数を、各求められた最小の必要ビット幅で、再構成する、または、これらの定数を、各求められた最小の必要ビット幅で、後からキャスティング(Casting)するステップ
・FPGAモデル全体を通して、このビット幅を伝えるステップ
が実行される。
グラフィックFPGAモデル内の定数ブロック、もしくは、VHDLモデル内のVHDL信号は、しばしば、固定されたビット幅(例えば32ビット)で、インスタンス作成される。しかし、これに続く、値の設定時には、多くの場合に、提示されたビット幅の値領域を超えない値が使用される。グラフィックモデルから作成されたVHDLコードは、同様に、実際に必要なビット幅とは無関係に、最大限のビット幅を含んでいる。VHDLコードの、手によるプログラミングの際にも、通常は、人は同様の手段をとる。
通常、これは問題無い。なぜなら、ロジックリソースおよびルーティングリソースを節約するために、不必要なビットが、合成ツールおよび実装ツールによってルート最適化されるからである。
しかし、外部インタフェースを介した読み出しのために調整された、挿入されたシャドーレジスタは、合成ツールおよび実装ツールによって最適化されない。なぜなら、これらのツールは、外部のアクセスを最適化しないからである。したがって、挿入されたシャドーレジスタおよび読み出しロジックによるリソース消費を少なく保つために、有利には、定数の最低限必要なビット幅と、この定数に依存する全ての信号の最低限必要なビット幅とを求めることが有利である。この場合には、シャドーレジスタは、割り当てられた信号の最小の必要ビット幅で実装される。
別の構成では、シャドーレジスタは、ネットリストの作成および/またはさらなる処理の際、ルート最適化から保護される。
アウトプットを有していないレジスタは、通常、ネットリストの作成およびさらなる処理時に使用される自動化されたツールによって、ルート最適化、すなわち、消去される。これは、一般的に合理的である。なぜなら、そうでない場合には、これらのレジスタは、その機能に貢献することなく、FPGA内のリソースを占有するからである。本発明の方法において挿入された、リードバックインタフェースを介して読み出されるべきシャドーレジスタは、アウトプットを有しておらず、したがって、ツールによって消去されるだろう。しかし、信号値を実行時間中にFPGAから読み出すことを可能にするために、これらのシャドーレジスタは必要である。したがって、有利にはこれらのシャドーレジスタは、ルート最適化から保護されるべきである。これを可能にする手段は、シャドーレジスタおよびその中に含まれている信号に属性を与えることである。ここでこの属性はツールに既知であり、これらのツールはこのため、これらのレジスタで最適化措置の実行を引き起こすことはない。
ルート最適化から保護されたシャドーレジスタと、最小の必要ビット幅を求める上述のステップとの組み合わせは、特に有利である。
本発明を以降で、図面を参照して詳細に説明する。ここでは、同様の部分には、同じ参照番号が付けられている。図示された実施形態は著しく概略化されており、すなわち、間隔および水平方向および垂直方向の延在は縮尺通りではなく、そうでないことが明記されていない限り、相互に、導出可能な幾何学形状的な関係も有していない。
本発明の第1の実施形態の概略図 本発明の第2の実施形態の概略図 本発明の第3の実施形態の概略図 本発明の第4の実施形態の概略図 第1、第2、第3の実施形態の概略図 リードバックインタフェースを介したレジスタの読み出しのための準備がされた、ネットリストの概略図 クロック線路が中断される、概略的な分離回路 イネーブル線路が中断される、概略的な分離回路 本発明の方法のステップ
この方法を、図1〜図4において、概略的なグラフィックFPGAソースコードに基づいて説明する。この方法は、テキスト形式のFPGAソースコードでも同様に実施可能である、ということを理解されたい。FPGAソースコードから、それぞれ1つのネットリストが作成される。このネットリスクはFPGA上にロード可能であり、これによってFPGAは、FPGAソースコードにおいて規定された機能を実行することができる。
図1は、第1の実施形態を示している。これは、フリーラン(Freilauf)モードにおいて、シャドーレジスタ10を有している。FPGAソースコード20において、機能が、信号30によって規定される。この信号30は、シャドーレジスタ10に割り当てられている。シャドーレジスタ10は、2つの入口40、50を有している。信号30のための第1の入口40と、イネーブル信号60のための第2の入口50である。イネーブル信号60によって、シャドーレジスタ10はアクティブに切り替えられる。アクティブな状態においてのみ、シャドーレジスタ10は、割り当てられた信号30の最新の信号値を受け取る。最新の値を継続的にシャドーレジスタ内に記憶するために、イネーブル信号60が継続的に加えられ、所望の時点でのみ中断されてよい。択一的に、イネーブル信号60が、短い時間だけ加えられてもよく、これによって、アクティブなイネーブル信号の時点で、信号30の最新の信号値が継続的にシャドーレジスタ内に記憶される。この方法の間に挿入される部分70は、この例では、シャドーレジスタ10と、信号30およびイネーブル信号60用の線路とを含んでいる。イネーブル信号60は、有利には外部から、FPGAに加えられる。しかし、イネーブル信号60を、FPGAによって制御させることも可能である。
図2には、第2の実施形態が示されている。以降では、図1との違いのみを説明する。第2のシャドーレジスタとして見なすこともできる中間レジスタ(テンポラリレジスタ)100が信号30およびシャドーレジスタ10と接続される。中間レジスタ100では、最新の信号値が記憶され、また、シャドーレジスタは分離されている。2つの部分のロジック回路110、140は、信号30および中間レジスタ100と接続される。ロジック回路の第1の部分110は実行時間中に、信号値の変化が生じたことを識別する。ロジック回路の第2の部分140は、ロジック回路の第1の部分110によって、信号値の変化が識別されたときに、トリガ信号130を生成する。このトリガ信号は、第2のレジスタに対するイネーブル信号として用いられる。ロジック回路110、140は、トリガ信号130が、信号値の変化時に、1クロックの間だけ生成されるように調整されている。これによって、最初の変化した信号値だけが、中間レジスタ100内に記憶される。イネーブル信号60は、中間レジスタ100内に記憶された信号値の、シャドーレジスタ10内への引き取りを可能にする。次にシャドーレジスタ100から、値が、例えば、リードバックインタフェースを介して読み出され得る。イネーブル信号60は、ロジック回路110、140および中間レジスタ100に対するリセット信号としても用いられる。ロジック回路110、140は、リセット信号を受信してから、新たなトリガ信号130を生成するように設計されている。中間レジスタ100のリセットは、読み出されたデータにおいて、次のことを明瞭に区別することを可能にする。すなわち、最新の値が読み出されたのか、または、リセット後のレジスタの初期値が読み出されただけなのかを区別することができる。
トリガ信号130が、挿入されている別の回路へも転送可能であるということを理解されたい。したがって、トリガ信号は、多数の信号値の記憶をトリガすることができる。これは、同時にFPGA内に存在する複数の信号値の一貫したセットが検出されるべき場合に有利である。
この方法の間に挿入される部分70は、この例では、シャドーレジスタ10と、中間レジスタ100と2つの部分のロジック回路110、140とを含んでいる。
図3には、第3の実施形態が示されている。以降では、図2との違いのみを説明する。イネーブル信号60は、ここでは、第2のレジスタ100および2つ部分のロジック回路110、140に対するリセット信号として使用されるのではない。イネーブル信号60は、シャドーレジスタ10への信号値の受け入れのためだけに用いられる。ロジック回路110、140および中間レジスタ100用のリセット信号70は、イネーブル信号60と別個であり、実装に応じて、FPGA外から、または、FPGA内で駆動制御可能である。
図4では、第4の実施形態が示されている。以降では、図3との違いのみを説明する。モード切り替えロジック200が挿入されている。このモード切り替えロジック200は、リセット信号70と、イネーブル信号60と、モード信号210とを入力として得る。モード信号210の値に依存して、2つの部分のロジック回路110、140がクリッピング(uebersteuert)され、したがって、第4の実施形態の回路は、図1の第1の実施形態の回路と同様に動作する。付加的に、モード信号210に依存して、イネーブル信号60が、中間レジスタ100および2つの部分のロジック回路110、140に対するリセット信号として用いられる。したがって、この回路は、図2の第2の実施形態の回路のように動作する。モード信号210が加えられていない場合には、この回路は、図3の第3の実施形態の回路と同様に動作する。すなわち、第4の実施形態は、最初の3つの実施形態を組み合わせたものであり、その動作は、モード信号210によって、実行時間中に選択可能である。これは、ネットリストの作成時に、どの動作が望まれるのかがまだ確定されていない場合に有利である。
図5は、第1、第2および第3の実施形態の動作の概略図を示している。
最も上の行500は、信号30の例示的な信号経過を示している。時間にわたって、この信号値は複数回、0と1とで切り替わる。
第2の行510は、図1の第1の実施例の例に即したシャドーレジスタ10の値を示している。イネーブル信号60は、4つの異なる時間550、560、570、580でそれぞれ短時間、アクティブにされる。シャドーレジスタの値は、イネーブル信号60がアクティブな場合にのみ更新されるので、シャドーレジスタ10の値は、信号値30が1であり、同時にイネーブル信号がアクティブである状態になるまで、0のままである。次に、シャドーレジスタから、値が読み出し可能である。
第3の行520は、図3の第3の実施例の例に即した中間レジスタ100の値を示している。信号30の信号値の最初の変化時に、2つの部分のロジック回路110、140は、トリガ信号130をトリガし、最新の値が、中間レジスタ100内に引き継がれる。リセット信号70は第5の時点590でアクティブになる。このリセット信号70は、中間レジスタ100の値を0にセットし、2つの部分のロジック回路110、140をリセットする。したがって、信号30の信号値の次の変化時には、再び、トリガ信号130が生成される。イネーブル信号60が、図示されている4つの時点550、560、570、580の1つでアクティブになるたびに、この時の最新の、中間レジスタ100の値が、シャドーレジスタ10内に引き継がれ、ここから読み出し可能である。
第4の行530は、中間レジスタ100の値を、図2の第2の実施例の例に即して示している。信号30の信号値の最初の変化時に、2つの部分のロジック回路110、140はトリガ信号130をトリガし、最新の値が、中間レジスタ100内に引き継がれる。イネーブル信号60が、図示されている4つの時点550、560、570、580の1つでアクティブになるたびに、この時の最新の、中間レジスタ100の値が、シャドーレジスタ10内に引き継がれ、ここから読み出し可能である。
同時に、イネーブル信号60は、中間レジスタ100の値を0にセットし、2つの部分のロジック回路110、140をリセットする。したがって、信号30の信号値の次の変化時には、再び、トリガ信号130が生成される。
図6は、リードバックインタフェースを介したレジスタの読み出しのための準備がされた、ネットリストの概略図を示している。ネットリストは、3つのロジックブロックMUX、ADD、MULTと、複数の線路とから成る。ネットリストの2つの入口610、620が、第1のロジックブロックMUXの2つの入口に案内される。第1のロジックブロックMUXの出口は、第2のロジックブロックADDの第1の入口と接続される。ネットリストの第3の入口630は、第2のロジックブロックADDの第2の入口と接続される。第2のロジックブロックADDの出口は、第3のロジックブロックMULTの第1の入口と接続される。ネットリストの第4の入口640は、第3のロジックブロックMULTの第2の入口と接続される。第3のロジックブロックの出口は、ネットリストの出口を形成する。このネットリストには、3つのシャドーレジスタREGが挿入される。各シャドーレジスタREGは、それぞれ、1つのロジックブロックの1つの出力信号に割り当てられる。シャドーレジスタREGは、リードバックインタフェースを介した読み出しのために設定および調整されている。したがって、読み出しロジックは、ネットリスト内に挿入されない。これらのシャドーレジスタは、分離回路を介して、同じクロックステップで、これらのロジックブロックから、機能的に分離される。これによって、シャドーレジスタ内に、一貫したデータセットが記録可能である。
図7は、クロック信号が中断される、概略的な分離回路を示している。シャドーレジスタのクロック信号700は、挿入された分離メカニズム710を介して、このシャドーレジスタに割り当てられている信号のクロックネット(Taktnetz)CLKと接続される。この分離メカニズムは、FPGA内部で/FPGA外部から、実行時間中に呼びかけ可能であり、クロック信号を中断する。シャドーレジスタ10に割り当てられている、FPGAソースコード20からの信号30は、固定的に、シャドーレジスタ10の信号入口40と接続される。シャドーレジスタ10は、分離メカニズム710が、シャドーレジスタ10のクロック信号をクロックネットCLKと接続している場合にのみ、最新の信号値を受け取る。
図8は、イネーブル信号が中断される、概略的な分離回路を示している。シャドーレジスタ10のクロック信号700は、この実施形態では、直接的に、クロックネットCLKと接続される。シャドーレジスタ10の分離のために、分離メカニズムが挿入され、シャドーレジスタ10のイネーブル入口50と接続される。この分離メカニズムは、FPGA内部で/FPGA外部から、実行時間中に呼びかけ可能であり、イネーブル信号を中断する。
複数のクロックドメイン(Taktdomaenen)を有するFPGAプログラムも、上述した様式で、安定して、すなわち、準安定の状態なく、動作可能である。このために、クロック信号の中断による分離時には、シャドーレジスタはクロックネットに接続される。これによって、割り当てられた信号も動作される。種々の信号に割り当てられているシャドーレジスタが多数の場合には、これらのシャドーレジスタのクロック線路は、割り当てられている信号の各クロックネットに接続される。イネーブル線路の中断による分離時には、FPGAネットリスト内の各クロックドメインに対して、正しいクロックドメイン移行を伴う、固有のイネーブル信号が挿入され、各クロックドメインのシャドーレジスタのイネーブルポートに接続される。クロックドメイン移行は、例えば、二重のレジスタによって正しく上書き可能である。
図9は、本発明の方法のステップを示している。ここで、幾つかのステップは必須であり、他のステップはオプションである。第1のオプションのステップS110では、ソースコードのコピーが作成される。第2のオプションのステップS120では、定数の最小の必要ビット幅が、ソースコードもしくはソースコードのコピーにおいて特定される。第3のオプションのステップS130では、第2のステップS120において特定された、最小の必要ビット幅が、ソースコードを通して伝えられる。第4の必須のステップS140では、シャドーレジスタ10が割り当てられるべき信号30が特定される。このステップは、自動的に、アルゴリズムまたはユーザー入力によって行われ得る。第5のオプションのステップS150では、第4のステップS140において特定された信号の値が、既に挿入されているシャドーレジスタの値から特定可能であるか否かが検査される。第6の必須のステップS160では、第4のステップS140において特定された信号30に対して、シャドーレジスタ10が挿入される。付加的に、このシャドーレジスタ10に対して、分離メカニズムが挿入および調整される、または、このシャドーレジスタ10は、既に挿入されている分離メカニズムと接続される。第5のステップS150において、第4のステップS140において特定された信号30の値が、既に挿入されたシャドーレジスタから特定可能であることが確定されると、第6のステップS160において、シャドーレジスタは挿入されず、そこから信号の値が特定される、既に挿入されているシャドーレジスタが参照される。第7の必須のステップS170では、第6のステップS160において挿入されたシャドーレジスタ10に対して、読み出しメカニズムが挿入および調整される。読み出しメカニズムの挿入および調整は、例えば、ネットリストがロードされるべきFPGA上で、リードバックインタフェースを介した読み出しが可能にされるべきである、という実装ツールへの指示がソースコード内に挿入される、ということにあり得る。多数の信号に、シャドーレジスタを割り当てるために、第4〜第7のステップが、複数回、繰り返されてよい。有利には、第4〜第7のステップは自動的に、アルゴリズムによって繰り返し、処理される。ここでこのアルゴリズムは、手順通りに、ソースコードにおいて規定されている全ての信号を処理する。
必須の第8のステップS180では、ソースコードから、ネットリストが合成される。第8のステップS180を、第4のステップS140の前に実行することも可能である、ということに留意されたい。いずれにせよ、ネットリストは、元来のソースコードの情報も、挿入されたシャドーレジスタも含んでおり、このシャドーレジスタは、調整された分離メカニズムと、調整された読み出しメカニズムとを有している。オプションである、第9のステップS190では、第8のステップS180において作成されたネットリストが、ビットストリームに変換される。これは次に、オプションの第10のステップS200において、FPGA上にロードされ、FPGA上で、実行可能である。ここでFPGAの実行時間中に、オプションである第11のステップS210において、第6のステップS160において挿入されたシャドーレジスタ10が、分離メカニズムを介して、元来のソースコードの機能から分離可能であり、かつ、第7のステップS170において調整された読み出しメカニズムを介して読み出し可能である。この方法のこの必須のステップは、FPGAの実行時間中の、第4のステップS140において特定された信号30の値の確実な読み出しを可能にする。

Claims (13)

  1. FPGAネットリストを作成する方法であって、
    前記FPGAネットリストは、FPGAソースコード(20)と少なくとも1つのシャドーレジスタ(10)とから形成され、
    前記FPGAソースコード(20)は、少なくとも1つの機能と少なくとも1つの信号(30)とを規定し、前記シャドーレジスタ(10)は、前記FPGAネットリスト内で規定されており、
    前記シャドーレジスタ(10)は、前記少なくとも1つの信号(30)に割り当てられ、かつ、当該割り当てられた信号(30)の信号値を実行時間中に記憶するように調整および設定され、
    記憶された前記信号値を実行時間中に読み出す手段が前記FPGAネットリスト内に設定および調整され、
    前記ネットリストは、FPGA上にロードされ、当該FPGAによって実行されるように設定され、
    前記FPGAソースコード(20)によって記述された前記機能は、前記FPGAによって実行される方法において、
    前記シャドーレジスタ(10)の機能的な分離によって、前記シャドーレジスタ(10)を前記FPGAソースコード(20)において記述された前記機能から分離し、当該分離の時点で前記シャドーレジスタ(10)内に記憶された前記信号値は、前記FPGAソースコード(20)において記述された前記機能が実行される間、変更されず、
    前記分離の時点から変更されない、前記シャドーレジスタ(10)内に記憶された前記信号値を出力し、
    前記シャドーレジスタ(10)は、自動的に挿入され、前記信号(30)に割り当てられ
    前記信号(30)が既に前記ソースコード(20)の別の箇所でシャドーレジスタ(10)に割り当てられているか否かが自動的に検査され、前記信号(30)が既に前記ソースコード(20)の別の箇所でシャドーレジスタ(10)に割り当てられている場合には、当該信号(30)にさらなるシャドーレジスタ(10)は割り当てられない、
    ことを特徴とする、FPGAネットリストを作成する方法。
  2. FPGAネットリストを作成する方法であって、
    前記FPGAネットリストは、FPGAソースコード(20)と少なくとも1つのシャドーレジスタ(10)とから形成され、
    前記FPGAソースコード(20)は、少なくとも1つの機能と少なくとも1つの信号(30)とを規定し、前記シャドーレジスタ(10)は、前記FPGAネットリスト内で規定されており、
    前記シャドーレジスタ(10)は、前記少なくとも1つの信号(30)に割り当てられ、かつ、当該割り当てられた信号(30)の信号値を実行時間中に記憶するように調整および設定され、
    記憶された前記信号値を実行時間中に読み出す手段が前記FPGAネットリスト内に設定および調整され、
    前記ネットリストは、FPGA上にロードされ、当該FPGAによって実行されるように設定され、
    前記FPGAソースコード(20)によって記述された前記機能は、前記FPGAによって実行される方法において、
    前記シャドーレジスタ(10)の機能的な分離によって、前記シャドーレジスタ(10)を前記FPGAソースコード(20)において記述された前記機能から分離し、当該分離の時点で前記シャドーレジスタ(10)内に記憶された前記信号値は、前記FPGAソースコード(20)において記述された前記機能が実行される間、変更されず、
    前記分離の時点から変更されない、前記シャドーレジスタ(10)内に記憶された前記信号値を出力し、
    前記シャドーレジスタ(10)は、自動的に挿入され、前記信号(30)に割り当てられ、
    少なくとも2つのシャドーレジスタ(10,100)が挿入され、前記信号(30)に割り当てられ、
    前記第1のシャドーレジスタ(100)は、実行時間中に、最新の信号値を記憶するように設定および調整され、また、前記第2のシャドーレジスタ(10)は分離されており、
    前記第1のシャドーレジスタ(100)には、前記信号(30)の信号値の変化が生じると、前記信号(30)の前記信号値が記憶され、
    前記第2のシャドーレジスタ(10)のイネーブル信号(60)がアクティブになると、前記第1のシャドーレジスタ(100)に記憶された前記信号値は、前記第2のシャドーレジスタ(10)に記憶される、
    ことを特徴とする、FPGAネットリストを作成する方法。
  3. FPGAネットリストを作成する方法であって、
    前記FPGAネットリストは、FPGAソースコード(20)と少なくとも1つのシャドーレジスタ(10)とから形成され、
    前記FPGAソースコード(20)は、少なくとも1つの機能と少なくとも1つの信号(30)とを規定し、前記シャドーレジスタ(10)は、前記FPGAネットリスト内で規定されており、
    前記シャドーレジスタ(10)は、前記少なくとも1つの信号(30)に割り当てられ、かつ、当該割り当てられた信号(30)の信号値を実行時間中に記憶するように調整および設定され、
    記憶された前記信号値を実行時間中に読み出す手段が前記FPGAネットリスト内に設定および調整され、
    前記ネットリストは、FPGA上にロードされ、当該FPGAによって実行されるように設定され、
    前記FPGAソースコード(20)によって記述された前記機能は、前記FPGAによって実行される方法において、
    前記シャドーレジスタ(10)の機能的な分離によって、前記シャドーレジスタ(10)を前記FPGAソースコード(20)において記述された前記機能から分離し、当該分離の時点で前記シャドーレジスタ(10)内に記憶された前記信号値は、前記FPGAソースコード(20)において記述された前記機能が実行される間、変更されず、
    前記分離の時点から変更されない、前記シャドーレジスタ(10)内に記憶された前記信号値を出力し、
    前記シャドーレジスタ(10)は、自動的に挿入され、前記信号(30)に割り当てられ、
    複数のシャドーレジスタ(10)が挿入され、
    当該複数のシャドーレジスタ(10)が結合されて、1つのシフトレジスタチェーンになり、前記FPGAの外部インタフェースを介して読み出されるように設定および調整される、
    ことを特徴とする、FPGAネットリストを作成する方法。
  4. FPGAネットリストを作成する方法であって、
    前記FPGAネットリストは、FPGAソースコード(20)と少なくとも1つのシャドーレジスタ(10)とから形成され、
    前記FPGAソースコード(20)は、少なくとも1つの機能と少なくとも1つの信号(30)とを規定し、前記シャドーレジスタ(10)は、前記FPGAネットリスト内で規定されており、
    前記シャドーレジスタ(10)は、前記少なくとも1つの信号(30)に割り当てられ、かつ、当該割り当てられた信号(30)の信号値を実行時間中に記憶するように調整および設定され、
    記憶された前記信号値を実行時間中に読み出す手段が前記FPGAネットリスト内に設定および調整され、
    前記ネットリストは、FPGA上にロードされ、当該FPGAによって実行されるように設定され、
    前記FPGAソースコード(20)によって記述された前記機能は、前記FPGAによって実行される方法において、
    前記シャドーレジスタ(10)の機能的な分離によって、前記シャドーレジスタ(10)を前記FPGAソースコード(20)において記述された前記機能から分離し、当該分離の時点で前記シャドーレジスタ(10)内に記憶された前記信号値は、前記FPGAソースコード(20)において記述された前記機能が実行される間、変更されず、
    前記分離の時点から変更されない、前記シャドーレジスタ(10)内に記憶された前記信号値を出力し、
    前記シャドーレジスタ(10)は、自動的に挿入され、前記信号(30)に割り当てられ、
    複数のシャドーレジスタ(10)が挿入され、
    前記FPGAの外部インタフェースを介した当該複数のシャドーレジスタ(10)の読み出しのために、アドレスコードが設定および調整される、
    ことを特徴とする、FPGAネットリストを作成する方法。
  5. 前記FPGAソースコード(20)は、複数の信号(30)を規定し、
    複数のシャドーレジスタ(10)がそれぞれ1つの信号(30)に割り当てられ、
    前記機能的な分離は、前記複数のシャドーレジスタ(10)を同期して分離するように設定されている、
    請求項1から4までのいずれか1項記載の方法。
  6. 前記分離のために、前記シャドーレジスタ(10)のイネーブル信号(60)または前記シャドーレジスタ(10)のクロック信号(700)が中断される、
    請求項1から5までのいずれか1項記載の方法。
  7. 前記FPGAソースコード(20)は、グラフィックモデルまたはテキスト形式のコードとして存在する、
    請求項1から6までのいずれか1項記載の方法。
  8. 前記シャドーレジスタ(10)は前記FPGAソースコード(20)または前記FPGAソースコード(20)のコピー内に挿入される、
    請求項1から7までのいずれか1項記載の方法。
  9. 前記ソースコード(20)からネットリストが作成され、前記シャドーレジスタ(10)が当該ネットリスト内に挿入される、
    請求項1から8までのいずれか1項記載の方法。
  10. 前記ネットリストの作成時に、前記FPGAの外部リードバックインタフェースおよび/または内部リードバックインタフェースを介した前記シャドーレジスタ(10)の読み出しが設定および調整される、
    請求項1から9までのいずれか1項記載の方法。
  11. 前記シャドーレジスタに対して付加的にロジック(110,140)が挿入され、
    当該ロジック(110,140)は、実行時間中に、前記信号値が変化すると、トリガ信号(130)を出力するように設定および調整され、
    当該トリガ信号(130)は、前記シャドーレジスタの分離を引き起こす、
    請求項1から10までのいずれか1項記載の方法。
  12. 前記シャドーレジスタ(10)の挿入前に、
    ・最初の前記信号値(30)が依存する、前記FPGAソースコード(20)における全ての定数を求めるステップと、
    ・前記定数の見出された値に対して最小の必要ビット幅を求めるステップと、
    ・前記定数を、各求められた前記最小の必要ビット幅で、再構成する、または、前記定数を、各求められた前記最小の必要ビット幅で、後からキャスティングするステップと、
    ・前記FPGAソースコードを通して、前記ビット幅を伝えるステップと、
    が実行される、
    請求項1から11までのいずれか1項記載の方法。
  13. 前記シャドーレジスタ(10)は、前記ネットリストの作成および/またはさらなる処理の際、ルート最適化から保護される、
    請求項1から12までのいずれか1項記載の方法。
JP2017093906A 2016-05-10 2017-05-10 Fpgaネットリストを作成する方法 Active JP6910198B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP16168899.9A EP3244326B1 (de) 2016-05-10 2016-05-10 Verfahren zum erstellen einer fpga-netzliste
EP16168899.9 2016-05-10

Publications (3)

Publication Number Publication Date
JP2017204279A JP2017204279A (ja) 2017-11-16
JP2017204279A5 JP2017204279A5 (ja) 2020-03-26
JP6910198B2 true JP6910198B2 (ja) 2021-07-28

Family

ID=55967104

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017093906A Active JP6910198B2 (ja) 2016-05-10 2017-05-10 Fpgaネットリストを作成する方法

Country Status (4)

Country Link
US (1) US10394989B2 (ja)
EP (1) EP3244326B1 (ja)
JP (1) JP6910198B2 (ja)
CN (1) CN107357948B (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10902132B2 (en) 2017-08-25 2021-01-26 Graf Research Corporation Private verification for FPGA bitstreams
EP3647801A1 (de) 2018-10-30 2020-05-06 dSPACE digital signal processing and control engineering GmbH Verfahren zur überprüfung eines fpga-programms
CN109739705A (zh) * 2018-12-29 2019-05-10 西安智多晶微电子有限公司 一种fpga片上实时调试系统及方法
DE102021133835A1 (de) * 2021-12-20 2023-06-22 Dspace Gmbh Verfahren und Anordnung zur partiellen Neuprogrammierung einer programmierbaren Gatteranordnung
DE102023100161A1 (de) 2023-01-04 2024-07-04 Dspace Gmbh Überwachungsschaltung für eine programmierbare gatteranordnung, anordnung mit überwachungsschaltung, prozessor und gatteranordnung sowie verfahren zum betrieb einer solchen anordnung

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5764079A (en) * 1996-03-11 1998-06-09 Altera Corporation Sample and load scheme for observability of internal nodes in a PLD
US6182247B1 (en) * 1996-10-28 2001-01-30 Altera Corporation Embedded logic analyzer for a programmable logic device
DE10196175T1 (de) * 2000-05-11 2003-04-17 Quickturn Design Systems Inc Emulations-Schaltkreis mit einem Haltezeit-Algorithmus, Logikanalysierer und Shadow-Speicher
US7213216B2 (en) * 2002-08-09 2007-05-01 Synplicity, Inc. Method and system for debugging using replicated logic and trigger logic
US8781808B2 (en) * 2005-10-10 2014-07-15 Sei Yang Yang Prediction-based distributed parallel simulation method
WO2009039316A2 (en) * 2007-09-18 2009-03-26 Mentor Graphics Corporation Fault diagnosis in a memory bist environment using a linear feedback shift register
US9262303B2 (en) * 2008-12-05 2016-02-16 Altera Corporation Automated semiconductor design flaw detection system
US9576092B2 (en) * 2009-02-24 2017-02-21 Mentor Graphics Corporation Synthesis using multiple synthesis engine configurations
US8972923B2 (en) * 2011-02-08 2015-03-03 Maxeler Technologies Ltd. Method and apparatus and software code for generating a hardware stream processor design
WO2014122320A2 (de) * 2013-02-11 2014-08-14 Dspace Digital Signal Processing And Control Engineering Gmbh Verändern eines signalwerts eines fpga zur laufzeit
EP2765528B1 (de) 2013-02-11 2018-11-14 dSPACE digital signal processing and control engineering GmbH Wahlfreier Zugriff auf Signalwerte eines FPGA zur Laufzeit

Also Published As

Publication number Publication date
US20170329877A1 (en) 2017-11-16
EP3244326B1 (de) 2021-07-07
EP3244326A1 (de) 2017-11-15
CN107357948A (zh) 2017-11-17
US10394989B2 (en) 2019-08-27
CN107357948B (zh) 2023-04-07
JP2017204279A (ja) 2017-11-16

Similar Documents

Publication Publication Date Title
JP6910198B2 (ja) Fpgaネットリストを作成する方法
JP6448195B2 (ja) ランタイムにfpgaの信号値にランダムにアクセスするための方法、データ処理装置、コンピュータプログラム、ディジタル記憶媒体及びfpgaビルドの実施方法
US8775986B1 (en) Software debugging of synthesized hardware
US20070168902A1 (en) Method for high-level synthesis of semiconductor integrated circuit
EP3139291A2 (en) Incremental register retiming of an integrated circuit design
JP6436916B2 (ja) ランタイムにfpgaの信号値を変更するための方法、当該方法を実施するためのデータ処理装置、コンピュータプログラムおよびディジタル記憶媒体
US9929734B2 (en) Method for changing the configuration of a programmable logic module
US20230342531A1 (en) Methods and apparatus for profile-guided optimization of integrated circuits
US9047434B2 (en) Clustering for processing of circuit design data
US8504973B1 (en) Systems and methods for generating a test environment and test system surrounding a design of an integrated circuit
US10318687B2 (en) Implementing a constant in FPGA code
US9773083B1 (en) Post-placement and pre-routing processing of critical paths in a circuit design
US20080300806A1 (en) Power consumption calculating method
JP6649731B2 (ja) Fpgaからリードバックするための信号の特定
US9600613B1 (en) Block-level code coverage in simulation of circuit designs
US6532584B1 (en) Circuit synthesis method
JP3472067B2 (ja) 設計支援装置
JP5541011B2 (ja) 最適化ネットリスト作成プログラム、最適化ネットリスト作成装置および最適化ネットリスト作成方法
US20190138310A1 (en) Method for reading out variables from an fpga
US20090326901A1 (en) Apparatus and method for estimating change amount in register transfer level structure and computer-readable recording medium
US11586793B2 (en) Method for producing an association list
US20240256749A1 (en) Retiming sequential elements having initital states
US10789401B1 (en) Folding multiply-and-accumulate logic
Haar Design Reconstruction for Partial Reconfigurable FPGA Systems
JP4199816B2 (ja) 論理合成方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200212

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200212

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20200212

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200710

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20200728

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200811

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20201110

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201126

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20201222

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210419

C60 Trial request (containing other claim documents, opposition documents)

Free format text: JAPANESE INTERMEDIATE CODE: C60

Effective date: 20210419

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20210427

C21 Notice of transfer of a case for reconsideration by examiners before appeal proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C21

Effective date: 20210510

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210706

R150 Certificate of patent or registration of utility model

Ref document number: 6910198

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250