JP2014060537A - プログラマブルロジックデバイス及びその検証方法 - Google Patents
プログラマブルロジックデバイス及びその検証方法 Download PDFInfo
- Publication number
- JP2014060537A JP2014060537A JP2012203486A JP2012203486A JP2014060537A JP 2014060537 A JP2014060537 A JP 2014060537A JP 2012203486 A JP2012203486 A JP 2012203486A JP 2012203486 A JP2012203486 A JP 2012203486A JP 2014060537 A JP2014060537 A JP 2014060537A
- Authority
- JP
- Japan
- Prior art keywords
- state information
- programmable logic
- logic device
- test pattern
- partial
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/3181—Functional testing
- G01R31/3183—Generation of test inputs, e.g. test vectors, patterns or sequences
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/3181—Functional testing
- G01R31/3185—Reconfiguring for testing, e.g. LSSD, partitioning
- G01R31/318516—Test of programmable logic devices [PLDs]
- G01R31/318519—Test of field programmable gate arrays [FPGA]
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/3177—Testing of logic operation, e.g. by logic analysers
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
- H03K19/17748—Structural details of configuration resources
- H03K19/17764—Structural details of configuration resources for reliability
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
- H03K19/17748—Structural details of configuration resources
- H03K19/17768—Structural details of configuration resources for security
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Logic Circuits (AREA)
- Tests Of Electronic Circuits (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
- Semiconductor Integrated Circuits (AREA)
Abstract
【課題】順序回路が示す内部状態がハードウェア記述言語(HDL)による論理プログラムと等価に遷移するかについて、効率的に検証することができるプログラマブルロジックデバイス及びその検証方法を提供する。
【解決手段】プログラマブルロジックデバイス10は、実装されるロジックエレメント及び外部に対しデジタル信号の出入力を実行するI/O部17と、ロジックエレメントの群を区分けした部分領域11(11a,11b,11c,11d)に含まれる順序回路の内部状態信号を取得して部分領域11を単位としてその状態情報13(13a,13b,13c,13d)を生成する生成部12(12a,12b,12c,12d)と、各々の部分領域11から状態情報13を取得して選択的に外部出力させる選択出力部14と、を備えている。
【選択図】 図1
【解決手段】プログラマブルロジックデバイス10は、実装されるロジックエレメント及び外部に対しデジタル信号の出入力を実行するI/O部17と、ロジックエレメントの群を区分けした部分領域11(11a,11b,11c,11d)に含まれる順序回路の内部状態信号を取得して部分領域11を単位としてその状態情報13(13a,13b,13c,13d)を生成する生成部12(12a,12b,12c,12d)と、各々の部分領域11から状態情報13を取得して選択的に外部出力させる選択出力部14と、を備えている。
【選択図】 図1
Description
本発明は、テキストデータからなるハードウェア記述言語に従いロジック回路をハードウェアに実装させたプログラマブルロジックデバイス及びその検証方法に関する。
原子力発電プラントの安全系制御基板に実装されるようなFPGA(Field-Programmable Gate Array)は、一般にPLD(Programmable Logic Device)に分類されるもののなかでも、大規模なロジック回路がハードウェア上に実装されている。
ハードウェア記述言語(HDL:Hardware Description Language)からハードウェアへのロジック回路の実装プロセスは、ブラックボックスである変換ツールを一度ないし複数経由することにより行われる。
ハードウェア記述言語(HDL:Hardware Description Language)からハードウェアへのロジック回路の実装プロセスは、ブラックボックスである変換ツールを一度ないし複数経由することにより行われる。
よって、ハードウェア記述言語(HDL)による論理プログラムとこの論理プログラムに基づき実装されたFPGAとの論理動作が、等価である必要がある。
このように両者が等価であることを検証するための公知技術としては、HDLで記載された論理プログラム及びFPGAのそれぞれに、共通のテストパターンを入力し、得られた出力結果の一致・不一致を確認する方法が知られている(例えば、特許文献1,2)
このように両者が等価であることを検証するための公知技術としては、HDLで記載された論理プログラム及びFPGAのそれぞれに、共通のテストパターンを入力し、得られた出力結果の一致・不一致を確認する方法が知られている(例えば、特許文献1,2)
しかしロジック回路にフリップ・フロップのような順序回路が含まれる場合は、複数のフリップ・フロップのそれぞれが示す内部状態も考慮したうえで、等価性を検証することは困難である。
本発明はこのような事情を考慮してなされたもので、順序回路が示す内部状態が、ハードウェア記述言語(HDL)による論理プログラムと等価に遷移するかについて、効率的に検証することができるプログラマブルロジックデバイス及びその検証方法を提供することを目的とする。
プログラマブルロジックデバイスにおいて、実装されるロジックエレメント及び外部に対しデジタル信号の出入力を実行するI/O部と、前記ロジックエレメントの群を区分けした部分領域に含まれる順序回路の内部状態信号を取得してこの部分領域を単位としてその状態情報を生成する生成部と、各々の前記部分領域から前記状態情報を取得して選択的に外部出力させる選択出力部と、を備えることを特徴とする。
本発明により、順序回路が示す内部状態が、ハードウェア記述言語(HDL)による論理プログラムと等価に遷移するかについて、効率的に検証することができるプログラマブルロジックデバイス及びその検証方法が提供される。
(第1実施形態)
以下、本発明の実施形態を添付図面に基づいて説明する。
図1に示すように第1実施形態に係るプログラマブルロジックデバイス10(以下、単にFPGAとも言う)は、実装されるロジックエレメント(図示略)及び外部に対しデジタル信号の出入力を実行するI/O部17と、ロジックエレメントの群を区分けした部分領域11(11a,11b,11c,11d)に含まれる順序回路の内部状態信号を取得してこの部分領域11を単位としてその状態情報13(13a,13b,13c,13d)を生成する生成部12(12a,12b,12c,12d)と、各々の部分領域11から状態情報13を取得して選択的に外部出力させる選択出力部14と、を備えている。
以下、本発明の実施形態を添付図面に基づいて説明する。
図1に示すように第1実施形態に係るプログラマブルロジックデバイス10(以下、単にFPGAとも言う)は、実装されるロジックエレメント(図示略)及び外部に対しデジタル信号の出入力を実行するI/O部17と、ロジックエレメントの群を区分けした部分領域11(11a,11b,11c,11d)に含まれる順序回路の内部状態信号を取得してこの部分領域11を単位としてその状態情報13(13a,13b,13c,13d)を生成する生成部12(12a,12b,12c,12d)と、各々の部分領域11から状態情報13を取得して選択的に外部出力させる選択出力部14と、を備えている。
プログラマブルロジックデバイス10は、さらに部分領域11が取り得る状態情報13のパターンを予め登録し、このパターンから外れる状態情報13が生成された場合にエラー信号を出力するエラー判定部15を、備えている。
FPGAは、プログラム可能な比較的小規模のロジックエレメントを格子状に配置し、それらの間に縦方向と横方向に配線路を設けた構造を基本としたLSIである。
そしてロジックエレメントは、この配線路に設けられたスイッチ・マトリックスによって任意の組み合わせによる接続が可能になっている。
そしてロジックエレメントは、この配線路に設けられたスイッチ・マトリックスによって任意の組み合わせによる接続が可能になっている。
そして、FPGAは、I/O部17、メモリブロック、その他の専用機能ロジックがさらに実装されて、外付けの専用機能LSIやICを必要とすることなく、1チップでシステムが実現されるよう構成される。
市販されているFPGAは、数百個から数百万個のロジックエレメントが配置されており、その動作仕様がテキストベースで表されたハードウェア記述言語(HDL:Hardware Description Language)に基づいて、これらロジックエレメントを組み合わせ接続することにより大規模な回路が実現される。
市販されているFPGAは、数百個から数百万個のロジックエレメントが配置されており、その動作仕様がテキストベースで表されたハードウェア記述言語(HDL:Hardware Description Language)に基づいて、これらロジックエレメントを組み合わせ接続することにより大規模な回路が実現される。
このハードウェア記述言語(HDL)は、モジュールという単位で記述がなされ、各部品をモジュールとして記述し、このモジュールを繋ぎ合わせることで全体が構成される。
このために、FPGAの設計は、過去に記述したモジュールを再利用したり市販のモジュールを活用したりすることで、大規模のシステムを効率よく開発することができる。
このために、FPGAの設計は、過去に記述したモジュールを再利用したり市販のモジュールを活用したりすることで、大規模のシステムを効率よく開発することができる。
ロジックエレメントの各々は、組み合わせ論理を実現するためのLUT(Lookup Table)と、順序論理を実現するためのフリップ・フロップとを組み合わせて構成されるのが一般的である。
LUTは、N入力1出力の真理値表を回路として実現する機能で、具体的には、Nビットアドレスを持つメモリを用いて、出力値を記憶素子(SRAM)に書き込むことで、任意のN入力組み合わせ論理が定義される。
フリップ・フロップは、相互接続されるロジックエレメントにおいて、ペアを組むLUTの同期出力を得たり、順序回路を構成したりすることに用いられる。
LUTは、N入力1出力の真理値表を回路として実現する機能で、具体的には、Nビットアドレスを持つメモリを用いて、出力値を記憶素子(SRAM)に書き込むことで、任意のN入力組み合わせ論理が定義される。
フリップ・フロップは、相互接続されるロジックエレメントにおいて、ペアを組むLUTの同期出力を得たり、順序回路を構成したりすることに用いられる。
部分領域11(11a,11b,11c,11d)は、ハードウェア記述言語(HDL)の基本構造であるモジュールに対応するように、ロジックエレメントの群を区分けしたものである。しかし、この区分けの方式については特に限定はない。
それぞれの部分領域11は、組み合わせ回路(例えば、AND,OR,NOT,XOR等の論理ゲート)として構成されたロジックエレメントや、順序回路(例えば、フリップ・フロップ,カウンタ等)として構成されたロジックエレメントが、それぞれ複数配置されている。
それぞれの部分領域11は、組み合わせ回路(例えば、AND,OR,NOT,XOR等の論理ゲート)として構成されたロジックエレメントや、順序回路(例えば、フリップ・フロップ,カウンタ等)として構成されたロジックエレメントが、それぞれ複数配置されている。
ここで、組み合わせ回路とは取得した入力の組み合わせにより出力が一意に決定されるものを指し、順序回路とは取得した入力及びその内部状態により出力が決定されるものを指す。
なお、順序回路の内部状態は、FPGA内の配線路を介して内部状態信号として取り出すことができる。
なお、順序回路の内部状態は、FPGA内の配線路を介して内部状態信号として取り出すことができる。
生成部12(12a,12b,12c,12d)は、それぞれに対応する部分領域11(11a,11b,11c,11d)に含まれる順序回路の内部状態信号を取得する。
ここで各々の生成部12で取得される内部状態信号の組み合わせパターンは、順序回路の個数をnとして内部状態の数をpとすれば、最大でpn通りと見積もられる。
しかし、現実には、モジュール単位で表される部分領域11に含まれる全ての順序回路が取り得る内部状態のパターンは、前記した最大見積もりよりも格段に少ない。
ここで各々の生成部12で取得される内部状態信号の組み合わせパターンは、順序回路の個数をnとして内部状態の数をpとすれば、最大でpn通りと見積もられる。
しかし、現実には、モジュール単位で表される部分領域11に含まれる全ての順序回路が取り得る内部状態のパターンは、前記した最大見積もりよりも格段に少ない。
生成部12(12a,12b,12c,12d)は、取得した複数の順序回路の内部状態信号に基づいて、対応する部分領域11(11a,11b,11c,11d)を単位としてその内部状態を示す状態情報13(13a,13b,13c,13d)を生成し、選択出力部14に出力する。
図1において、部分領域11aは、status 1,status 2,status 3の3パターンの内部状態を取り得ることが示されており、対応する状態情報13aが3種類あることになる。部分領域11bは、status 4,status 5,status 6,status 7の4パターンの内部状態を取り得ることが示されており、対応する状態情報13bが4種類あることになる。
なお、部分領域11c,11dにおいても、同様に複数パターンの内部状態を取り得るが記載を省略している。
図1において、部分領域11aは、status 1,status 2,status 3の3パターンの内部状態を取り得ることが示されており、対応する状態情報13aが3種類あることになる。部分領域11bは、status 4,status 5,status 6,status 7の4パターンの内部状態を取り得ることが示されており、対応する状態情報13bが4種類あることになる。
なお、部分領域11c,11dにおいても、同様に複数パターンの内部状態を取り得るが記載を省略している。
I/O部17には、検証対象となる部分領域11の内部状態を矢示するように遷移させるテストパターンが、連続的に入力する。そして、この内部状態の遷移に伴って、対応する状態情報13の種類が、生成部12から出力される。
状態情報13は、部分領域11が取り得る状態情報13の種類の数に応じたビット数で表現されることが望ましい。つまり、図示される状態情報13aは3ビット、状態情報13bは4ビットで表される。これにより、出力にハザードを発生させずに高速の応答が可能になる。
状態情報13は、部分領域11が取り得る状態情報13の種類の数に応じたビット数で表現されることが望ましい。つまり、図示される状態情報13aは3ビット、状態情報13bは4ビットで表される。これにより、出力にハザードを発生させずに高速の応答が可能になる。
選択出力部14は、部分領域11の生成部12(12a,12b,12c,12d)の全てから状態情報13(13a,13b,13c,13d)を並列に取得する。そして、検証対象となる部分領域11の内部状態を反映した状態情報13を選択的に外部出力する。
なお、この選択出力部14における選択動作は、外部CPUからレジスタ16を経由する命令に基づいたり、ロータリスイッチ(図示略)を設定したりすることにより実行される。
なお、この選択出力部14における選択動作は、外部CPUからレジスタ16を経由する命令に基づいたり、ロータリスイッチ(図示略)を設定したりすることにより実行される。
状態情報13(13a,13b,13c,13d)の全てをFPGAから外部出力することも考えられるが、状態情報13の外部出力に割ける空きピンの数は限定されている。
そこで検証対象となる部分領域11の内部状態を反映した状態情報13のみを外部出力することにより使用するピンを節減することができる。
そこで検証対象となる部分領域11の内部状態を反映した状態情報13のみを外部出力することにより使用するピンを節減することができる。
エラー判定部15には、テストパターンに応じて部分領域11が取るべき状態情報13のパターンを予め登録されている。そして、このパターンに合致する状態情報13が入力されたときはそのままスルーして外部出力され、このパターンから外れる状態情報13が入力されたときはエラー信号に変換して外部出力される。
なお、エラー判定部15の設置位置及び個数は、特に限定されず、部分領域11(11a,11b,11c,11d)毎に設けられる場合もある。
なお、エラー判定部15の設置位置及び個数は、特に限定されず、部分領域11(11a,11b,11c,11d)毎に設けられる場合もある。
レジスタ16は、CPU等からの外部アクセスにより、FPGA内の各モジュールの動作モード等を設定したり、各モジュールの内部状態を外部からリードしたりするときに使用する。このように、外部からレジスタ16にアクセスすることで、FPGAの各モジュールを個別に制御することもできる。
なお、エラー判定部15は、FPGAと別の装置で構成してもよい。この場合、選択出力部14から状態情報13を受信可能に外部のエラー判定部15を接続し、エラー判定を行う。
なお、エラー判定部15は、FPGAと別の装置で構成してもよい。この場合、選択出力部14から状態情報13を受信可能に外部のエラー判定部15を接続し、エラー判定を行う。
(第2実施形態)
次に図2に基づいて本発明の第2実施形態を説明する。なお、図2において図1と共通の構成又は機能を有する部分は、同一符号で示し、重複する説明を省略する。
図2に示すように第2実施形態に係るプログラマブルロジックデバイス10は、部分領域11の入力端に入力させるデジタル信号のテストパターンを保持するテストパターン保持部21を、さらに備えている。
次に図2に基づいて本発明の第2実施形態を説明する。なお、図2において図1と共通の構成又は機能を有する部分は、同一符号で示し、重複する説明を省略する。
図2に示すように第2実施形態に係るプログラマブルロジックデバイス10は、部分領域11の入力端に入力させるデジタル信号のテストパターンを保持するテストパターン保持部21を、さらに備えている。
このテストパターンは、検証対象となる部分領域11(11a,11b,11c,11d)毎に設定され、テストパターン保持部21に保持されている。
このテストパターンは、検証対象となる部分領域11から出力され得る全ての状態情報13が順番に遷移するように、ハードウェア記述言語のシミュレータを用いて作成する。
このテストパターンは、検証対象となる部分領域11から出力され得る全ての状態情報13が順番に遷移するように、ハードウェア記述言語のシミュレータを用いて作成する。
テストパターンは、I/O部17から切替部22を介して外部から保持部21に保持され、この保持されたテストパターンは、切替部22を介して部分領域11の入力端に入力される。
なお、それぞれの部分領域11を検証対象とした異なるテストパターンを順番に出力するために、保持部21は、その動作がレジスタ16により制御され、選択出力部14における選択動作との同期がとられる。
そして、FPGAの通常動作時は、切替部22は、I/O部17と部分領域11の入力端とを接続して、外部とのデータ入出力を実行する。
さらに、選択出力部14に、エラー判定部15を接続し、入力されるテストパターンの順にエラー判定することができる。
なお、それぞれの部分領域11を検証対象とした異なるテストパターンを順番に出力するために、保持部21は、その動作がレジスタ16により制御され、選択出力部14における選択動作との同期がとられる。
そして、FPGAの通常動作時は、切替部22は、I/O部17と部分領域11の入力端とを接続して、外部とのデータ入出力を実行する。
さらに、選択出力部14に、エラー判定部15を接続し、入力されるテストパターンの順にエラー判定することができる。
(第3実施形態)
次に図3に基づいて本発明の第3実施形態を説明する。なお、図3において図1と共通の構成又は機能を有する部分は、同一符号で示し、重複する説明を省略する。
図3に示すように第3実施形態に係るプログラマブルロジックデバイス10は、複数のビット数で表現される状態情報13を1ビットずつ外部出力させるシリアル変換部31を、さらに備えている。
これにより、少なくとも2ビットで表現される状態情報13を、シリアルデータに変換することにより外部出力に必要なピンを1本に節減することができる。
次に図3に基づいて本発明の第3実施形態を説明する。なお、図3において図1と共通の構成又は機能を有する部分は、同一符号で示し、重複する説明を省略する。
図3に示すように第3実施形態に係るプログラマブルロジックデバイス10は、複数のビット数で表現される状態情報13を1ビットずつ外部出力させるシリアル変換部31を、さらに備えている。
これにより、少なくとも2ビットで表現される状態情報13を、シリアルデータに変換することにより外部出力に必要なピンを1本に節減することができる。
このようなシリアル変換部31は、例えば、選択出力部14の後段にFIFO(First In First Out)を実装し、さらにこのFIFOにデータライトするためのライト回路を実装し、さらにこのFIFOに書かれたデータをシリアル出力するためのシリアル変換回路を実装して構成される。
図4のフローチャートは、プログラマブルロジックデバイスの作成工程の全般を示し、図5のフローチャートは、各実施形態に係るプログラマブルロジックデバイスの検証工程を示している。
プログラマは、記述レベルをRTL(Register Transfer Level)としてハードウェア記述言語(HDL)による論理プログラムの記述を行う(S11)。
次に、この論理プログラムをANDやOR等のゲートレベルの回路情報(ネットリスト)に変換する論理合成を行い(S12)、変換された回路情報をFPGAのロジックエレメントに割り付ける配置配線を行い(S13)、FPGAに書き込むためのビットストリームを生成する。以上は、通常、汎用コンピュータ上で行われる作業である。
プログラマは、記述レベルをRTL(Register Transfer Level)としてハードウェア記述言語(HDL)による論理プログラムの記述を行う(S11)。
次に、この論理プログラムをANDやOR等のゲートレベルの回路情報(ネットリスト)に変換する論理合成を行い(S12)、変換された回路情報をFPGAのロジックエレメントに割り付ける配置配線を行い(S13)、FPGAに書き込むためのビットストリームを生成する。以上は、通常、汎用コンピュータ上で行われる作業である。
次に、この汎用コンピュータとFPGAとを接続し、生成したビットストリームを送信し、FPGAにロジック回路の書き込みを行う(S14)。
また、この作業と並行又は前後して、前記した汎用コンピュータ上において、ハードウェア記述言語で作成された論理プログラムに基づくシミュレーションにより、テストパターンを作成し(S15)、このテストパターンをモジュールに入力した場合に遷移する状態情報を生成する(S16)。
また、この作業と並行又は前後して、前記した汎用コンピュータ上において、ハードウェア記述言語で作成された論理プログラムに基づくシミュレーションにより、テストパターンを作成し(S15)、このテストパターンをモジュールに入力した場合に遷移する状態情報を生成する(S16)。
取得したテストパターン及びこのテストパターンの入力によりシミュレートされる状態情報の遷移に基づいて、FPGAの等価性の検証を行う(S20(図5))。
まず、FPGAにおいて検証対象となる部分領域11を選択し(S21)、この部分領域11が取り得る状態情報のパターンを登録するとともに、その部分領域11の入力端に対応するテストパターンを入力する(S22)。
まず、FPGAにおいて検証対象となる部分領域11を選択し(S21)、この部分領域11が取り得る状態情報のパターンを登録するとともに、その部分領域11の入力端に対応するテストパターンを入力する(S22)。
そして、この検証対象となる部分領域11に含まれる順序回路の内部状態信号を生成部12が取得して(S23)、この部分領域11の状態情報13が生成される(S24)。
この生成した状態情報13が登録されているパターンに合致していない場合は(S25No)、HDLで記述された論理プログラムとFPGAの論理動作とが等価でないと判定されエラーが出力される(S26)。
この生成した状態情報13が登録されているパターンに合致していない場合は(S25No)、HDLで記述された論理プログラムとFPGAの論理動作とが等価でないと判定されエラーが出力される(S26)。
一方、この生成した状態情報13が登録されているパターンに合致している場合は(S25Yes)、この状態情報13を外部出力してその遷移を観察する(S27)。
そして、この(S22)から(S27)のフローを、全ての部分領域11について実行し、HDLで記述された論理プログラムとFPGAの論理動作との等価性を検証する(S28)。
そして、この(S22)から(S27)のフローを、全ての部分領域11について実行し、HDLで記述された論理プログラムとFPGAの論理動作との等価性を検証する(S28)。
そして、外部出力される状態情報13の遷移と、論理プログラムからシミュレーションされる状態情報の遷移とが一致していれば(S17Yes:図4)、HDLで記述された論理プログラムとFPGAの論理動作とが等価であると判定され検証作業が終了する。
一方、外部出力される状態情報13の遷移と、論理プログラムからシミュレーションされる状態情報の遷移とが不一致であれば(S17No)、エラー判定がなされ(S18)、デバック作業を行うために(S11)に戻る(S19)。
一方、外部出力される状態情報13の遷移と、論理プログラムからシミュレーションされる状態情報の遷移とが不一致であれば(S17No)、エラー判定がなされ(S18)、デバック作業を行うために(S11)に戻る(S19)。
以上述べた少なくともひとつの実施形態のプログラマブルロジックデバイスによれば、ロジックエレメントの群を区分けした部分領域を単位としてその状態情報の遷移を観察することにより、その論理動作がハードウェア記述言語(HDL)による論理プログラムと等価であるか否かの検証が容易となる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更、組み合わせを行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
10…プログラマブルロジックデバイス(FPGA)、11(11a,11b,11c,11d)…部分領域、12…生成部、13(13a,13b,13c,13d)…状態情報、14…選択出力部、15…エラー判定部、16…レジスタ、17…I/O部、21…テストパターン保持部(保持部)、22…切替部、31…シリアル変換部。
Claims (6)
- 実装されるロジックエレメント及び外部に対しデジタル信号の出入力を実行するI/O部と、
前記ロジックエレメントの群を区分けした部分領域に含まれる順序回路の内部状態信号を取得して前記部分領域を単位としてその状態情報を生成する生成部と、
各々の前記部分領域から前記状態情報を取得して選択的に外部出力させる選択出力部と、を備えることを特徴とするプログラマブルロジックデバイス。 - 前記部分領域が取り得る前記状態情報のパターンを予め登録し、このパターンから外れる状態情報が生成された場合にエラー信号を出力するエラー判定部を、さらに備えることを特徴とする請求項1に記載のプログラマブルロジックデバイス。
- 前記状態情報は、前記部分領域が取り得るこの状態情報の種類の数に応じたビット数で表現されることを特徴とする請求項1又は請求項2に記載のプログラマブルロジックデバイス。
- 前記部分領域の入力端に入力させる前記デジタル信号のテストパターンを保持するテストパターン保持部を、さらに備えることを特徴とする請求項1から請求項3のいずれか1項に記載のプログラマブルロジックデバイス。
- 複数のビット数で表現される前記状態情報を1ビットずつ外部出力させるシリアル変換部を、さらに備えることを特徴とする請求項1から請求項4のいずれか1項に記載のプログラマブルロジックデバイス。
- ハードウェア記述言語で作成された論理プログラムに基づくシミュレーションにより、テストパターン及びこのテストパターンの入力により遷移する前記状態情報を取得するステップと、
請求項1から請求項5のいずれか1項に記載のプログラマブルロジックデバイスにおける前記部分領域の入力端に前記テストパターンを入力するステップと、
前記プログラマブルロジックデバイスから前記部分領域を単位としてその状態情報を外部出力するステップと、
前記論理プログラムからシミュレーションされた前記状態情報の遷移情報と前記プログラマブルロジックデバイスから外部出力される前記状態情報の遷移情報とを対比するステップと、を含むことを特徴とするプログラマブルロジックデバイスの検証方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012203486A JP5818762B2 (ja) | 2012-09-14 | 2012-09-14 | プログラマブルロジックデバイス及びその検証方法 |
US14/425,144 US20150204944A1 (en) | 2012-09-14 | 2013-09-11 | Programmable logic device and verification method therefor |
PCT/JP2013/074534 WO2014042190A1 (ja) | 2012-09-14 | 2013-09-11 | プログラマブルロジックデバイス及びその検証方法 |
FI20155262A FI20155262L (fi) | 2012-09-14 | 2013-09-11 | Ohjelmoitava logiikkalaite ja sen varmennusmenetelmä |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012203486A JP5818762B2 (ja) | 2012-09-14 | 2012-09-14 | プログラマブルロジックデバイス及びその検証方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014060537A true JP2014060537A (ja) | 2014-04-03 |
JP5818762B2 JP5818762B2 (ja) | 2015-11-18 |
Family
ID=50278300
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012203486A Expired - Fee Related JP5818762B2 (ja) | 2012-09-14 | 2012-09-14 | プログラマブルロジックデバイス及びその検証方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20150204944A1 (ja) |
JP (1) | JP5818762B2 (ja) |
FI (1) | FI20155262L (ja) |
WO (1) | WO2014042190A1 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017038095A1 (ja) * | 2015-09-02 | 2017-03-09 | 日本電気株式会社 | プログラマブル論理集積回路と半導体装置およびキャラクタライズ方法 |
JP2020515130A (ja) * | 2017-03-08 | 2020-05-21 | フラマトムFramatome | 電気施設、特に核施設を制御するためのプログラマブル論理回路、関連する制御デバイスおよび方法 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111832241A (zh) * | 2020-07-03 | 2020-10-27 | 京微齐力(北京)科技有限公司 | 一种fpga多区域动态参数时序驱动设计方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06160491A (ja) * | 1992-11-24 | 1994-06-07 | Kawasaki Steel Corp | 順序回路 |
US20090105970A1 (en) * | 2006-04-04 | 2009-04-23 | Keisuke Kodera | Semiconductor tester |
JP5239862B2 (ja) * | 2006-08-14 | 2013-07-17 | 日本電気株式会社 | デバッガ及びデバッグ方法 |
JP5259082B2 (ja) * | 2006-12-21 | 2013-08-07 | 三菱電機株式会社 | 一致検証方法及び装置 |
US7814444B2 (en) * | 2007-04-13 | 2010-10-12 | Synopsys, Inc. | Scan compression circuit and method of design therefor |
US8819507B2 (en) * | 2010-05-10 | 2014-08-26 | Raytheon Company | Field programmable gate arrays with built-in self test mechanisms |
US8856602B2 (en) * | 2011-12-20 | 2014-10-07 | International Business Machines Corporation | Multi-core processor with internal voting-based built in self test (BIST) |
US8694951B1 (en) * | 2012-10-02 | 2014-04-08 | Lsi Corporation | Core wrapping in the presence of an embedded wrapped core |
-
2012
- 2012-09-14 JP JP2012203486A patent/JP5818762B2/ja not_active Expired - Fee Related
-
2013
- 2013-09-11 FI FI20155262A patent/FI20155262L/fi not_active Application Discontinuation
- 2013-09-11 US US14/425,144 patent/US20150204944A1/en not_active Abandoned
- 2013-09-11 WO PCT/JP2013/074534 patent/WO2014042190A1/ja active Application Filing
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017038095A1 (ja) * | 2015-09-02 | 2017-03-09 | 日本電気株式会社 | プログラマブル論理集積回路と半導体装置およびキャラクタライズ方法 |
JPWO2017038095A1 (ja) * | 2015-09-02 | 2018-06-28 | 日本電気株式会社 | プログラマブル論理集積回路と半導体装置およびキャラクタライズ方法 |
US10305485B2 (en) | 2015-09-02 | 2019-05-28 | Nec Corporation | Programmable logic integrated circuit, semiconductor device, and characterization method |
JP2020515130A (ja) * | 2017-03-08 | 2020-05-21 | フラマトムFramatome | 電気施設、特に核施設を制御するためのプログラマブル論理回路、関連する制御デバイスおよび方法 |
JP7282038B2 (ja) | 2017-03-08 | 2023-05-26 | フラマトム | 電気施設、特に核施設を制御するためのプログラマブル論理回路、関連する制御デバイスおよび方法 |
Also Published As
Publication number | Publication date |
---|---|
JP5818762B2 (ja) | 2015-11-18 |
US20150204944A1 (en) | 2015-07-23 |
WO2014042190A1 (ja) | 2014-03-20 |
FI20155262L (fi) | 2015-04-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108028654B (zh) | 用于fpga的测试和配置的系统和方法 | |
JP6363297B2 (ja) | シミュレータ、半導体回路装置の設計支援システムおよび方法 | |
US7333909B1 (en) | Method of and circuit for verifying a data transfer protocol | |
US9298865B1 (en) | Debugging an optimized design implemented in a device with a pre-optimized design simulation | |
US8533655B1 (en) | Method and apparatus for capturing data samples with test circuitry | |
US8782480B2 (en) | On-chip functional debugger and a method of providing on-chip functional debugging | |
US8000950B2 (en) | Random initialization of latches in an integrated circuit design for simulation | |
US7043596B2 (en) | Method and apparatus for simulation processor | |
EP2988420A1 (en) | Circuit Arrangement for a Safety I&C System | |
US9294094B1 (en) | Method and apparatus for fast low skew phase generation for multiplexing signals on a multi-FPGA prototyping system | |
US20110175645A1 (en) | Semiconductor device, information processing apparatus, and method for configuring circuits of semiconductor device | |
JP5818762B2 (ja) | プログラマブルロジックデバイス及びその検証方法 | |
JP2008186252A (ja) | テストベンチ生成機能を有する動作合成装置と方法及びプログラム | |
Chen et al. | Adaptive 3D-IC TSV fault tolerance structure generation | |
JP4264436B2 (ja) | フリップフロップ機能素子、半導体集積回路、半導体集積回路設計方法及び半導体集積回路設計装置 | |
JP5056511B2 (ja) | 検証支援プログラム、該プログラムを記録した記録媒体、検証支援装置、および検証支援方法 | |
US20120265515A1 (en) | Method and system and computer program product for accelerating simulations | |
JP2007233842A (ja) | リセット動作検証回路の生成方法 | |
US8555228B2 (en) | Tool for glitch removal | |
Pooja et al. | Verification of interconnection IP for automobile applications using system verilog and UVM | |
JP4886559B2 (ja) | 半導体設計支援装置、半導体設計支援方法および半導体設計支援プログラム | |
Sun et al. | Design and implementation of a parity-based BIST scheme for FPGA global interconnects | |
CN115983171B (zh) | 用于对片上系统进行后仿真的方法和仿真平台 | |
Ahmed et al. | Automatic clock domain crossing verification flow for dynamic partial reconfiguration | |
Lee et al. | Generation of I/O sequences for a high-level design from those in post-silicon for efficient post-silicon debugging |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20150127 |
|
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: 20150901 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150929 |
|
LAPS | Cancellation because of no payment of annual fees |