JP2012009098A - プログラム可能論理デバイス及びその試験方法 - Google Patents
プログラム可能論理デバイス及びその試験方法 Download PDFInfo
- Publication number
- JP2012009098A JP2012009098A JP2010143140A JP2010143140A JP2012009098A JP 2012009098 A JP2012009098 A JP 2012009098A JP 2010143140 A JP2010143140 A JP 2010143140A JP 2010143140 A JP2010143140 A JP 2010143140A JP 2012009098 A JP2012009098 A JP 2012009098A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- circuit
- test
- test circuit
- data
- 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.)
- Withdrawn
Links
Images
Abstract
【課題】内蔵の記憶装置の試験回路を自動的に作成し、その試験回路を用いて記憶装置の試験を自動的に行うことで、記憶装置の試験にかかる時間を短縮することが可能なプログラム可能論理デバイスを提供する。
【解決手段】データを記憶する記憶部1を備える。論理回路記憶部2は、記憶部1への書き込み及び読み出しを伴うデータ処理を行う論理回路である内部回路を格納する。部品回路記憶部5は、記憶部1の試験のための部品回路を予め記憶しておく。ピン情報記憶部3は、記憶部1のピン情報を取得する。試験部4は、ピン情報及び部品回路を基にメモリ試験回路を生成し論理回路記憶部2に格納させ、メモリ試験回路を用いて記憶部1の試験を行う。
【選択図】図1
【解決手段】データを記憶する記憶部1を備える。論理回路記憶部2は、記憶部1への書き込み及び読み出しを伴うデータ処理を行う論理回路である内部回路を格納する。部品回路記憶部5は、記憶部1の試験のための部品回路を予め記憶しておく。ピン情報記憶部3は、記憶部1のピン情報を取得する。試験部4は、ピン情報及び部品回路を基にメモリ試験回路を生成し論理回路記憶部2に格納させ、メモリ試験回路を用いて記憶部1の試験を行う。
【選択図】図1
Description
本発明は、プログラム可能論理デバイス及びその試験方法に関する。
近年、論理回路の回路設計を行う場合に、プログラム可能論理デバイス(Programmable Logic Device、以下「PLD」と言う。)が用いられることが多い。このPLDとは、半導体集積回路のひとつであり、内部回路群の結線を外部からデザインできるものである。また、このPLDは、論理回路情報を格納する書き換え可能なメモリを搭載しているため、製造後であっても論理回路の動作を変更することができる。このPLDの代表的なものとしては、FPGA(Field Programmable Gate Array)やCPLD(Complex Programmable Logic Device)等が知られている。
また、かかるPLDは、論理回路情報を格納するメモリとは別に、論理回路以外のデータを記憶する大容量のメモリを内蔵する場合が多い。このメモリは、PLDの製造メーカが出荷時に試験を行うことでその正常性が保証されているため、原則としてはPLDのユーザはメモリの動作確認しか行わない。
ところが、最近の微細化技術の進歩に伴い、PLDの高集積化、高速化、低電圧化が顕著になってきたため、ユーザがPLDを利用する際にメモリの故障や動作不良が生じる状況が増えている。このような場合に、ユーザは、その原因が論理的な問題によるものなのか、メモリの故障によるものなのかを特定するのに多大の時間を要する結果となる。
このため、使用状況に合わせて作成した試験プログラムを予めPLD内部に記憶しておき、この試験プログラムを用いてメモリの試験を行う技術が提案されている。また、メモリ内の不良セルを特定し、特定した不良セルを除外した正常なセルのみを用いて所定の試験を行う従来技術が知られている。
しかしながら、上記従来技術では、使用状況に合わせてメモリの試験回路を予め人が作成する必要があるため、この試験回路の作成に多大の人的労力を要するという問題がある。また、メモリの不良セルを特定する従来技術を用いる場合も、いかにして効率よく不良セルを特定するかが問題となる。
開示の技術は、上記に鑑みてなされたものであって、内蔵のメモリの正常性を試験する試験回路の生成にかかる人的労力を軽減するとともに、効率的なメモリの試験を行うことができるプログラム可能論理デバイス及びその試験方法を提供することを目的とする。
本願の開示するプログラム可能論理デバイスは、一つの態様において、まず、データを記憶する記憶部を備える。論理回路記憶部は、前記記憶部への書き込み及び読み出しを伴うデータ処理を行う内部回路を記憶する。部品回路記憶部は、前記記憶部に対して試験を行う際に必要となる部品回路を記憶する。ピン情報記憶部は、前記記憶部のピン情報を記憶する。メモリ試験回路生成部は、前記ピン情報記憶部に記憶したピン情報及び前記部品回路記憶部に記憶した部品回路を用いてメモリ試験回路を生成する。試験部は、前記メモリ試験回路生成部で生成されたメモリ試験回路を用いて前記記憶部の試験を行い、試験結果を通知する。
本願の開示するプログラム可能論理デバイス及びその試験方法の一つの態様によれば、内蔵のメモリの正常性を試験する試験回路の生成にかかる人的労力を軽減するとともに、効率的なメモリの試験を行うことができるという効果を奏する。
以下に、本願の開示するプログラム可能論理デバイス及びその試験方法の実施例を図面に基づいて詳細に説明する。なお、以下の実施例により本願の開示するプログラム可能論理デバイス及びその試験方法が限定されるものではない。
図1は、実施例1に係るプログラム可能論理デバイスのブロック図である。図1に示すように、本実施例1に係るプログラム可能論理デバイスは、記憶部1、論理回路記憶部2、ピン情報記憶部3、試験部4、部品回路記憶部5及びメモリ試験回路生成部6を備えている。
記憶部1は、メモリなどの記憶装置である。記憶部1は、後述する論理回路記憶部2に記憶された内部回路からデータの入力を受けて、入力されたデータを記憶する。また、記憶部1に記憶されているデータは、論理回路記憶部2に記憶された内部回路により読み出される。
論理回路記憶部2は、構成を入力することでプログラム可能な論理素子である。論理回路記憶部2は、入力された構成を有する論理回路である内部回路を記憶する。ここで、論理回路を記憶するとは、論理回路記憶部2に含まれる論理ブロックの配置や配線を入力された構成に対応するように変更し、その変更した配置配線を保持することである。そして、論理回路記憶部2に記憶された内部回路は、記憶部1への書き込み及び読み出しを伴うデータ処理を行う部分として動作する。以下では、論理回路記憶部2に記憶された論理回路である内部回路を、単に「内部回路」と呼ぶことがある。
部品回路記憶部5は、メモリやハードディスクなどの記憶装置である。そして、部品回路記憶部5は、メモリ試験回路を構成する要素となる部品回路を予め記憶している。具体的には、部品回路は、記憶部1の試験を行う際に実際にデータを処理するための回路である。部品回路は、予めメモリなどのテストに用いるための論理回路として開発され、そのように予め開発された部品回路を部品回路記憶部5は記憶している。
ピン情報記憶部3は、記憶部1のピン情報を記憶する。ここで、ピン情報とは、例えば、データの入力端子かデータの出力端子かの情報や、接続元の情報などの情報である。
メモリ試験回路生成部6は、記憶部1のピン情報の入力をピン情報記憶部3から取得する。さらに、メモリ試験回路生成部6は、部品回路を部品回路記憶部5から取得する。そして、メモリ試験回路生成部6は、メモリのピン情報及び部品回路を用いてメモリ試験回路を生成する。
試験部4は、メモリ試験回路生成部6が生成したメモリ試験回路を用いて記憶部1の試験を行う。試験部4は、試験によってメモリの故障を検出した場合には、検出した故障を操作者に通知する。
以上に説明したように、本実施例1に係るプログラム可能論理デバイスは、プログラム可能論理デバイスに内蔵された記憶部をテストするための論理回路であるメモリ試験回路を自動的に生成することができる。さらに、本実施例1に係るプログラム可能論理デバイスは、生成したメモリ試験回路を用いて記憶部のテストを自動的に行うことができる。これにより、試験回路を生成するためにかかる手間を削減することができ、記憶部の試験にかかる時間を短縮することができる。さらに、プログラム可能論理デバイスにおける動作不良が論理的な問題なのかメモリ故障によるものなのかを短時間で特定することが可能となる。
図2は、実施例2に係るプログラム可能論理デバイスのブロック図である。本実施例2では、プログラム可能論理デバイスとして、FPGAを用いた場合で説明する。図2に示すように、本実施例2に係るFPGAは、論理回路記憶部2、ピン情報記憶部3、試験部4、部品回路記憶部5、メモリ試験回路6、クロック発生部7、リセット信号発生部8及びメモリ10を備えている。ここで、図2に示すように、メモリ10は、本実施例2に係るFPGAに内蔵される記憶部の一例である。図2において図1と同様の符号を有するものは特に説明のない限り同様の機能を有するものとする。また、図3は、実施例2に係るプログラム可能論理デバイスにおける内部回路及びメモリの接続及びデータの流れを示したメモリ接続ブロック構成図である。さらに、図4は、実施例2に係るプログラム可能論理デバイスにおけるメモリ試験回路を挿入した状態のメモリ接続ブロック構成図である。ここで、図3及び図4は、メモリ試験回路210の挿入前後のメモリ10及び内部回路200の動作やメモリ試験回路210の挿入状態を説明することを目的としている。そのため、図3及び図4では、図1における各部を省略して記載している。また、図3及び図4における内部回路200及びメモリ試験回路210は、論理回路記憶部2に記憶されている状態である。
クロック発生部7は、論理回路記憶部2に記憶された内部回路などの論理回路及びメモリ10における処理に用いるためのクロックを発生する。そして、クロック発生部7は、発生したクロックを論理回路記憶部2及びメモリ10へ出力する。すなわち、内部回路とメモリ10とは同じクロックで動作する。以下では、クロック発生部7が発生したクロックを、「CLK」と表すことがある。
リセット信号発生部8は、内部回路などのFPGA内の論理回路を再コンフィグレーションするためのリセット信号を発生する。そして、リセット信号発生部8は、発生したリセット信号を論理回路記憶部2へ出力する。本実施例2で使用するリセット信号を「XRST」(The Xilinx Reconfigurable Self-Test)と表すことがある。
論理回路記憶部2は、SRAM(Static Random Access Memory)やEPROM(Erasable Programmable Read Only Memory)などで構成された論理ブロックを有している。さらに、論理回路記憶部2は、各論理ブロックの接続を切り替えるスイッチを有している。そして、論理回路記憶部2は、入力された構成に従い、自己が有する論理ブロックの中のLUT(Look Up Table)の書き換え、及びスイッチの切り替えを実施することで論理回路を構成する。以下では、論理ブロック及びスイッチを変更することにより、論理回路の合成、配置、配線を行い、それを保持することを、「論理回路の記憶」と言うことがある。本実施例2では、論理回路記憶部2は、データ処理を行う論理回路として図3に示す内部回路200を記憶する。さらに、論理回路記憶部2は、メモリ試験を行う場合には、後述する試験部4からの入力を受けて、内部回路200に加えて図4に示すメモリ試験回路210を記憶する。
内部回路200は、メモリ10に対するデータの書き込み及びデータの読み込みを伴うデータ処理を行う。
ここで、図3を参照して、メモリ試験回路210が挿入される前の内部回路200及びメモリ10の動作を説明する。内部回路200は、クロック発生部7から入力されたクロックで動作を行う。同様に、メモリ10も、クロック発生部7から入力されたクロックで動作を行う。また、内部回路200は、リセット信号発生部8から入力されたリセット信号によってリセットが実行される。そして、内部回路200は、メモリ10にデータの書き込みを行う。さらに、内部回路200は、メモリ10に記憶されているデータを読み込む。
メモリ試験回路210は、後述するメモリ試験回路生成部6によって生成され論理回路記憶部2に記憶される。本実施例2に係るメモリ試験回路210は、図4においてPN23GEN211、ADGEN212、PN23CHK213及びSEL214で表される論理回路を含んでいる。PN23GEN211は、テストデータを生成するデータ生成回路である。また、ADGEN212は、メモリ制御タイミング生成回路である。また、PN23CHK213は、メモリ10から読み出したデータの整合性をチェックするチェック回路である。さらに、SEL214は、内部回路200からのデータ又はPN23CHK213からのデータのいずれのデータをメモリ10に出力するかを選択するための選択回路である。
ここで、図4を参照して、メモリ試験回路210が挿入された後の内部回路200、メモリ試験回路210及びメモリ10の動作を説明する。メモリ試験回路210は、クロック発生部7からクロックの入力を受けて動作する。すなわち、メモリ試験回路210は、内部回路200と同じクロックで動作する。また、メモリ試験回路210は、リセット信号発生部8から入力されたリセット信号によってリセットが実行される。
内部回路200は、メモリ10に書き込むデータをメモリ試験回路210へ出力する。また、内部回路200は、メモリ10が記憶しているデータをメモリ10から読み込む。
PN23GEN211は、テストデータを生成する。そして、PN23GEN211は、生成したデータをSEL214へ出力する。
ADGEN212は、書き込み信号及びメモリ10のアドレスの指定を含む制御データを生成する。そして、ADGEN212は、生成した制御データをSEL214へ出力する。
SEL214は、メモリ10へ書き込むデータの入力を内部回路200から受ける。また、SEL214は、テストデータの入力をPN23GEN211及びADGEN212から受ける。SEL214は、メモリ10の試験の実施命令が入力されていない場合には、内部回路200から入力されたデータをメモリ10へ書き込む。これに対し、SEL214は、メモリ10の試験の実施命令が入力されている場合には、PN23GEN211及びADGEN212から入力されたテストデータをメモリ10へ書き込む。
PN23CHK213は、SEL214が書き込んだテストデータをメモリ10から取得する。以下では、PN23CHK213がメモリ10から取得したデータを検証データという。そして、PN23CHK213は、メモリ10から取得した検証データとPN23GEN211が生成したデータを比較する。そして、PN23CHK213は、メモリ10に故障が発生しているか否かを判定する。PN23CHK213は、故障を検知した場合には故障が発生した旨の信号(以下では、NG信号ということがある。)を試験部4へ出力する。
ピン情報記憶部3は、メモリやハードディスクなどの記憶装置である。そして、ピン情報記憶部3は、メモリ10及び内部回路200のピン情報が記載されたピン情報ファイルを予め記憶している。図5は、実施例2におけるメモリのピン情報を表すピン情報ファイルの一例の図である。図5の接続元ブロックとは、メモリやI/Oや各回路といった入出力の対象をブロックとし、各ピンの接続先となるブロックを示している。また、図6は、実施例2における内部回路のピン情報を表すピン情報ファイルの一例の図である。
部品回路記憶部5は、メモリ試験回路210の構成要素となる部品回路を予め記憶している。本実施例2では、部品回路記憶部5は、テストデータを生成するデータ生成回路、メモリ制御タイミング生成回路、データの整合性をチェックするチェック回路及びメモリ10へ出力するデータの選択を行う選択回路を記憶している。例えば、部品回路記憶部5は、図4に示す、PN23GEN211、ADGEN212、PN23CHK213及びSEL214を記憶している。
メモリ試験回路生成部6は、メモリ10の設定及びメモリ10の試験の設定を予め記憶している。ここで、図7は、メモリ設定ファイルの一例の図である。図7のメモリ設定ファイル300には、メモリ10の設定及びメモリ10の試験の設定が記載されている。例えば、メモリ試験回路生成部6は、図7に示すメモリ設定ファイル300を記憶することにより、メモリ10の設定及びメモリ10の試験の設定を記憶する。
ここで、メモリ設定ファイル300について説明する。本実施例2はテストデータとしてランダムな複数のデータを用いる。メモリ設定ファイル300には、メモリ種別設定301、ランダムパターン種別設定302、ランダムパターン並列数設定303、メモリのワード数設定304、メモリ試験回路挿入方法設定305及び未使用出力ピン設定306という項目が含まれる。
メモリ種別設定301は、メモリがいくつのポートを持つかを設定する項目である。また、メモリのワード数設定304は、メモリの使用可能なワード数を設定する項目である。メモリ種別設定301及びメモリのワード数設定304により、メモリ10の設定が特定できる。
ランダムパターン種別設定302は、生成多項式の次数を設定する項目である。ランダムパターン並列数設定303は、1度の実行で用いるランダムパターンの数を設定する項目である。ランダムパターン種別設定302及びランダムパターン並列数設定303により、テストデータの生成方法が決定される。本実施例2ではランダムな複数のテストデータを用いることで、メモリ10の全体をテストすることができる。ここで、メモリ10の全体をテストできる複数のデータであれば、テストデータはランダムなデータでなくともよい。また、本実施例2ではテストデータとしてランダムパターンを用いたが、故障検出の確度よりもテストの速さを要求するなどの場合、単一のテストデータでのテストを行ってもよい。本実施例2ではランダムパターン種別設定302としてPN23を選択した場合で説明する。
メモリ試験回路挿入方法設定305は、生成したメモリ試験回路210を挿入する方法を設定する項目である。例えば、既存回路である内部回路200を残して、内部回路200とメモリ10との間にメモリ試験回路210を挿入する方法がある。また、既存回路である内部回路200は消去してしまい、メモリ試験回路210のみを挿入し、メモリ10のテストを行う方法がある。図4のように内部回路200を残した場合には、メモリ試験回路210を挿入したまま通常のデータ処理を行うことが可能である。本実施例2では、既存回路を残してメモリ試験回路を挿入する方法を選択したものとする。
未使用出力ピン設定306は、メモリ10の試験を行う際に使用しないピンから出力する値を設定する項目である。未使用出力ピン設定306によりメモリ試験回路生成時の未使用ピンからの出力を決定できる。
そして、メモリ試験回路生成部6は、ランダムパターン種別設定302及びランダムパターン並列数設定303で決定されるテストデータのデータ生成回路、メモリ制御タイミング生成回路及びチェック回路を部品回路記憶部5から取得する。本実施例2ではランダムパターン種別設定302としてPN23を選択しているので、メモリ試験回路生成部6は、図4に示すPN23GEN211、ADGEN212及びPN23CHK213を取得する。
また、メモリ試験回路生成部6は、ピン情報記憶部3からメモリ10のピン情報ファイル及び内部回路200のピン情報ファイルを取得する。メモリ試験回路生成部6は、メモリ10及び内部回路200のピン情報ファイルに問題が有るか否かを判定する。具体的には、メモリ試験回路生成部6は、ピン情報ファイルに記載漏れが無いか、記入方法が正しいかを確認する。情報ファイルに問題が有る場合には、メモリ試験回路生成部6は、情報ファイルの設定の変更を操作者に要求する。
さらに、メモリ試験回路生成部6は、メモリ10と内部回路200との仮合成を行い、データの流れに矛盾が発生していないかをチェックする。例えば、メモリ10と内部回路200との間で出力同士の衝突などの接続エラーの有無などを確認する。仮合成に問題がある場合には、メモリ試験回路生成部6は、エラーを通知する。そして、仮合成に問題が無ければ、メモリ試験回路生成部6は、メモリ試験回路データベースの作成などのメモリ試験回路の作成の処理に入る。
メモリ試験回路生成部6は、メモリ10のピン情報ファイル及び内部回路200のピン情報ファイルの中で試験回路グループが1となっているピン情報を抽出する。そして、メモリ試験回路生成部6は、抽出したピン情報をまとめて図8に示すメモリ試験回路データベースを作成する。図8は、メモリ試験回路データベースの一例の図である。
次に、メモリ試験回路生成部6は、メモリ試験回路データベースを用いてメモリ試験回路のピン情報ファイルを作成する。図9は、メモリ試験回路のピン情報ファイルの一例の図である。ここで、メモリ試験回路生成部6によるメモリ試験回路のピン情報ファイルの具体的な作成方法について説明する。まず、メモリ試験回路生成部6は、図8のメモリ試験回路データベースから各ピンの名前であるPort_nameを取得し、取得した各ピンに対応するメモリ試験回路210のピンの名前をそれぞれ生成し、メモリ試験回路データベースのPot_nameを置き換える。そして、メモリ試験回路生成部6は、メモリ試験回路データベースにおけるI/Oの項目のデータの入出力を逆にする。すなわち、メモリ試験回路生成部6は、メモリ試験回路データベースの各ピンの入出力を、入力端子であれば出力端子に、逆に出力端子であれば入力端子に変更する。これにより、図9のメモリ試験回路のピン情報ファイルの項目401が生成される。また、メモリ試験回路生成部6は、メモリ試験回路210のクロックとリセット信号を内部回路200と同じものとする。これにより、図9のメモリ試験回路のピン情報ファイルの項目402が生成される。さらに、メモリ試験回路生成部6は、メモリ試験回路210にメモリ試験結果を出力する端子を追加する。これにより、図9のメモリ試験回路210のピン情報ファイルの項目403が生成される。このようにして、メモリ試験回路生成部6は、図9に示すメモリ試験回路210のピン情報ファイルを生成する。
また、図10は、メモリ試験回路挿入後のメモリのピン情報ファイルの一例の図である。メモリ試験回路生成部6は、メモリ10のピン情報のうち接続元の情報を内部回路200からメモリ試験回路210に変更する。さらに、メモリ試験回路生成部6は、メモリ10のピン情報のうち出力端子であるピンの接続先の情報にメモリ試験回路210を加える。これにより、メモリ試験回路210の挿入後のメモリ10のピン情報ファイルは、図10に示すように、点線404で囲われた部分が図5の挿入前のピン情報ファイルと異なるピン情報ファイルとなる。
そして、メモリ試験回路生成部6は、PN23GEN211、ADGEN212、PN23CHK213及びSEL214の端子情報を取得し、PN23GEN211で生成されたテストデータとADGEN212で生成されたメモリ制御タイミングとがSEL214に入力されるように接続する。また、メモリ試験回路生成部6は、内部回路200からのデータ及びメモリ制御タイミングがSEL214に入力されるように各ピンを接続する。そして、メモリ試験回路生成部6は、SEL214からの出力がメモリ10に入力されるように各ピンを接続する。また、メモリ試験回路生成部6は、メモリ10から読み出したデータが内部回路200及びPN23CHK213に入力されるように各ピンを接続する。さらに、メモリ試験回路生成部6は、PN23CHK213での試験結果が外部に出力されるように各ピンを接続する。そして、メモリ試験回路生成部6は、図11で表されるPN23GEN211、ADGEN212、PN23CHK213及びSEL214のピン情報ファイルを各ピンの接続関係から生成する。図11は、メモリ試験回路内の各部品回路のピン情報ファイルの一例の図である。ピン情報ファイル501は、PN23GEN211のピン情報ファイルである。ピン情報ファイル502は、ADGEN212のピン情報ファイルである。ピン情報ファイル503は、PN23CHK213のピン情報ファイルである。ピン情報ファイル504は、SEL214のピン情報ファイルである。
メモリ試験回路生成部6は、以上で説明した各ピンの接続情報をまとめてメモリ試験回路210を生成する。そして、メモリ試験回路生成部6は、生成したメモリ試験回路210の情報及び変更したメモリ10のピンの情報をメモリ試験回路配置部41へ出力する。
試験部4は、メモリ試験回路配置部41及びメモリ試験制御部42を有している。
メモリ試験回路配置部41は、メモリ試験回路生成部6から、メモリ試験回路210の情報及びメモリ10のピンの情報の入力を受ける。そして、メモリ試験回路配置部41は、入力された各ピンの接続の情報に合わせてメモリ試験回路210を論理回路記憶部2に記憶(合成、配置、配線など)する。
メモリ試験制御部42は、メモリ試験回路210にメモリ10の試験を開始させる。具体的には、メモリ試験制御部42は、PN23GEN211にテストデータを生成させメモリ10に記憶させる。さらに、メモリ試験制御部42は、PN23CHK213にメモリ10が記憶しているテストデータを読み込ませ検証データを取得させ、テストデータと検証データとを比較させる。
そして、試験部4は、メモリ試験回路210のPN23CHK213からの入力を受けて、試験結果を取得する。そして、試験部4はメモリ10の試験結果の通知を行う。例えば、試験部4は、図4におけるNG信号215が「High」の場合、メモリ10の試験結果がNGと判定し、NG信号215が「Low」の場合、メモリ10の試験結果がOKと判定する。
次に、図12を参照して、実施例1に係るプログラム可能論理デバイスにおけるメモリ試験の処理について説明する。図12は、実施例1に係るプログラム可能論理デバイスにおけるメモリ試験の処理のフローチャートである。
操作者はピン情報ファイル、部品回路及び設定ファイルを入力する。そして、操作者からの入力を受けて、ピン情報記憶部3はピン情報ファイルを記憶し、部品回路記憶部5は生成回路やチェック回路などの部品回路を記憶し、メモリ試験回路生成部6は設定ファイルを記憶する(ステップS101)。
メモリ試験回路生成部6は、メモリ10及び内部回路200のピン情報ファイルをピン情報記憶部3から取得する。そして、メモリ試験回路生成部6は、設定情報に問題が無いか否かを判定する(ステップS102)。設定情報に問題がある場合(ステップS102否定)、メモリ試験回路生成部6は、設定情報を変更するか否かを問い合わせる(ステップS110)。設定変更を行わない場合(ステップS110否定)、メモリ試験回路生成部6はエラー発生の通知をするなどのエラー処理を行い(ステップS111)、メモリ試験の処理を終了する。これに対して、設定変更を行う場合(ステップS110肯定)、操作者は新たな設定値を入力する(ステップS112)。そして、ステップS102に戻る。
これに対して、設定情報に問題がない場合(ステップS102肯定)、メモリ試験回路生成部6は仮合成を行う(ステップS103)。すなわち、メモリ試験回路生成部6は、メモリ10と内部回路200との接続を確認する。
そして、メモリ試験回路生成部6は、仮合成に問題が無いか否かを判定する(ステップS104)。仮合成に問題がある場合(ステップS104否定)、メモリ試験回路生成部6はエラー発生の通知をするなどのエラー処理を行い(ステップS111)、メモリ試験の処理を終了する。
これに対して、仮合成に問題が無い場合(ステップS104肯定)、メモリ試験回路生成部6は、メモリ試験回路データベースを作成する(ステップS105)。
そして、メモリ試験回路生成部6は、RTL(Register Transfer Level)設計、並びにメモリ試験回路210のピン情報ファイル及びメモリ試験回路210の挿入後のメモリ10のピン情報ファイルを作成する(ステップS106)。
メモリ試験回路配置部41は、メモリ試験回路生成部6により生成されたメモリ試験回路210の情報ファイルなどにしたがってメモリ試験回路210を論理回路記憶部2に記憶させる(ステップS107)。
メモリ試験制御部42は、メモリ10の試験を実施させる(ステップS108)。そして、試験部4は、メモリ10の試験結果を通知する(ステップS109)。
次に、図13を参照して、メモリ試験回路データベースの作成の処理について説明する。この説明は、図12のフローチャートのステップS105の詳細な説明である。図13は、メモリ試験回路データベースの作成の処理のフローチャートである。
まず、メモリ試験回路生成部6は、未検索のピン情報ファイルのうちの一つを検索対象とする(ステップS201)。ここで、メモリ試験回路データベースの作成の開始直後は、いずれのピン情報ファイルの検索も行っていないので、全てのピン情報ファイルが未検索の状態である。本実施例2では、図5に示すメモリ10のピン情報ファイル及び図6に示す内部回路200のピン情報ファイルのいずれかが検索の対象となる。
次に、メモリ試験回路生成部6は、検索対象としたピン情報ファイルの中で未検索の行の一つを検索対象とする(ステップS202)。ここで、行とは例えば図5に示すメモリ10のピン情報ファイルの各行を指す。そして、メモリ試験回路データベースの作成の開始直後は、いずれのピン情報ファイルの検索も行っていないので、全てのピン情報ファイルの全ての行が未検索の状態である。
そして、メモリ試験回路生成部6は、検索対象とした行のメモリグループ番号を検索し、検索対象の行に試験回路グループの番号があるか否かを判定する(ステップS203)。例えば、図5のメモリ10のPort_nameがM_Dである行の場合、試験回路グループは1番であり、メモリ試験回路生成部6は、試験回路グループの番号があると判定する。試験回路グループ番号がある場合(ステップS203肯定)、メモリ試験回路生成部6は、検索対象としている行をメモリ試験回路データベースに加える(ステップS204)。これに対して、試験回路グループ番号がない場合(ステップS203否定)、ステップS205へ進む。
メモリ試験回路生成部6は、検索対象としているピン情報ファイルに未検索の行があるか否かを判定する(ステップS205)。この判定は、例えばメモリ試験回路生成部6が検索をした行にフラグを立てていき、各行のフラグの有無を確認することで行うことができる。未検索の行がある場合(ステップS205肯定)、ステップS202へ戻る。
これに対して、未検索の行がない場合(ステップS205否定)、メモリ試験回路生成部6は、検索していないピン情報ファイルがあるか否かを判定する(ステップS206)。検索していないピン情報ファイルがある場合(ステップS206肯定)、ステップS201へ戻る。これに対して、検索していないピン情報ファイルがない場合(ステップS206否定)、言い換えれば、全てのピン情報ファイルを検索し終えた場合、メモリ試験回路生成部6はメモリ試験回路データベースの作成を終了する。
次に、図14を参照して、メモリ試験回路のピン情報ファイル及びメモリ試験回路挿入後のメモリのピン情報ファイルの作成の処理について説明する。この説明は、図12のフローチャートのステップS106の詳細な説明である。図14は、メモリ試験回路のピン情報ファイル及びメモリ試験回路挿入後のメモリのピン情報ファイルの作成の処理のフローチャートである。
メモリ試験回路生成部6は、メモリ設定ファイルを用いてメモリ試験回路で使用する構成要素の選択を行う。そして、メモリ試験回路生成部6は、選択した部品回路を部品回路記憶部5から取得する(ステップS301)。
次に、メモリ試験回路生成部6は、メモリ試験回路データベースからメモリ試験回路挿入前のメモリ10及び内部回路200のピンの名前を取得する。そして、メモリ試験回路生成部6は、取得したピンに対応するメモリ試験回路210のピン名を作成する(ステップS302)。
次に、メモリ試験回路生成部6は、作成したピン名を有する各ピンの入出力を対応するメモリ10又は内部回路200のピンの入出力と逆にする。さらに、メモリ試験回路生成部6は、作成したピン名を有する各ピンを取得した部品回路と接続することで、メモリ試験回路を生成する(ステップS303)。
次に、メモリ試験回路生成部6は、メモリ10の各ピンの接続元を内部回路200からメモリ試験回路210に変更する。また、メモリ試験回路生成部6は、メモリ10の出力ピンの接続先にメモリ試験回路210を加える(ステップS304)。
次に、メモリ試験回路生成部6は、クロック及びリセット信号を内部回路200と同様のものを使用するようにピン情報を加える。また、メモリ試験回路生成部6は、試験結果を外部に出力できるようにピン情報を加える(ステップS305)。
次に、メモリ試験回路生成部6は、メモリ設定ファイルを用いて内部回路200を使用するか否かを判定する(ステップS306)。内部回路200を使用しない場合(ステップS306否定)、ステップS308に進む。これに対して、内部回路200を使用する場合(ステップS306肯定)、メモリ試験回路生成部6は、未使用ピンに対して入力オープン処理及び出力ピンの固定処理を行う(ステップS307)。
そして、メモリ試験回路生成部6は、生成したピン情報をまとめ、メモリ試験回路210の挿入後の構成要路回路の情報及びピン情報ファイルを生成する(ステップS308)。
以上に説明したように、本実施例2に係るFPGAは、予め入力されたピン情報ファイル、部品回路及びメモリ設定ファイルから自動的にメモリ試験回路を生成することができる。さらに、生成したメモリ試験回路を用いて、FPGAに内蔵されたメモリの試験を自動的に行うことができる。これにより、メモリ試験回路を作成する手間を省くことができ、メモリ試験に係る時間を短縮することができる。また、FPGAの動作不良が内部ロジックに起因するものか、メモリの故障に起因するものかの判定が容易になるとともに、その判定をするのにかかる時間を短縮することができる。
また、本実施例2に係るFPGAは、ランダムな複数のテストデータを用いて試験を行うため、全てのメモリ空間の検査を行うことができ、メモリの故障検出の確度を向上させることが可能となる。
さらに、本実施例2に係るFPGAは、FPGAを用いた製品を製造するメーカにおいても容易に内蔵メモリの試験を行うことができるため、本実施例2に係るFPGAを用いた製品の品質向上に寄与することができる。
また、本実施例2では、内部回路とメモリとの間にメモリ試験回路を挿入する構成としている。これにより、メモリ試験回路を記憶したままの状態で、内部回路によるデータ処理を行うことができる。そのため、メモリ試験回路を記憶したままの状態でFPGAを用いた製品を出荷することもでき、実際にその製品を使用するユーザがメモリ試験回路を用いてメモリの試験を行うことも可能である。ただし、メモリの試験を行うためには、内部回路は無くてもよく、内部回路を外してメモリ試験回路を挿入しメモリの試験を行ってもよい。内部回路を外してメモリ試験回路を挿入することは、例えば、図7のメモリ設定ファイル300のメモリ試験回路挿入方法設定305において「既存回路を外してメモリ試験回路挿入」を設定することで実現できる。このように内部回路を外すことで、試験における消費電力が抑えることができる。また、実際に内部回路がデータ処理を行うときメモリ試験回路が無いことで、内部回路によるデータ処理における電力消費を抑えることができる。
(変形例)
本変形例に係るプログラム可能論理デバイスは、確保するメモリの領域を固定することが実施例2のプログラム可能論理デバイスと異なるものである。そこで、以下の説明では、確保するメモリの領域を固定する動作について主に説明する。本変形例の説明においても、プログラム可能論理デバイスの一例としてFPGAを用いて説明する。
本変形例に係るプログラム可能論理デバイスは、確保するメモリの領域を固定することが実施例2のプログラム可能論理デバイスと異なるものである。そこで、以下の説明では、確保するメモリの領域を固定する動作について主に説明する。本変形例の説明においても、プログラム可能論理デバイスの一例としてFPGAを用いて説明する。
本変形例に係るFPGAのメモリ試験回路生成部6は、確保するメモリの領域の情報が記載されたメモリ配置情報ファイルを予め記憶している。ここで、図15は、メモリ配置情報ファイルの一例の図である。図15に示すように、メモリ配置情報ファイルには、確保するメモリ10の領域を示すメモリ座標601、メモリのID番号602及びインスタンス名603が記載されている。すなわち、インスタンス名603で表される所定のインスタンスに対して割り当てられるメモリ10の領域がメモリ座標601及びID番号602で規定されている。
そして、メモリ試験回路配置部41は、生成したメモリ試験回路210を論理回路記憶部2に記憶させた後に、メモリ配置情報ファイルで規定されたメモリ10の領域を確保するようメモリ試験回路210とメモリ10とが配置されているか否かを判定する。メモリ試験回路配置部41は、位置情報ファイルで規定されたメモリ10の領域の確保がなされない場合、メモリ試験回路210の再配置を行う。そして、位置情報ファイルで規定されたメモリ10の領域の確保がなされると、メモリ試験制御部42は、試験を実施する。
論理回路記憶部2に記憶された内部回路200は、メモリ配置情報ファイルで指定されているメモリ10における領域を予め記憶している。そして、内部回路200は、メモリ配置情報で指定されているメモリ10の領域を用いてデータ処理を行う。
以上に説明したように、本変形例に係るFPGAは、FPGAの内蔵のメモリにおける使用領域を固定した状態で試験を行うことが可能である。そして、内部回路がデータ処理においてメモリを使用する場合にも、試験が行われたメモリの使用領域を用いることができる。これにより、FPGAの内蔵のメモリの一部の領域のみの試験を行えば十分となり、全メモリ空間を試験する必要が無くなるので、メモリの試験に係る時間を短縮することが可能となる。
図16は、実施例3に係るプログラム可能論理デバイスのブロック図である。本実施例3に係るプログラム可能論理デバイスは、複数のメモリを有していることが実施例2と異なるものである。ここで、図16において図2と同じ符号を有する各部は、特に説明のない限り同じ機能を有するものとする。以下の説明では、プログラム可能論理デバイスとしてFPGAを用いた場合で説明する。また、本実施例3では、内部回路を外してメモリ試験回路を挿入する場合で説明する。
本実施例3に係るFPGAは、図16に示すように、第1メモリ11及び第2メモリ12という2つのメモリを有している。
論理回路記憶部2には、第1内部回路201及び第2内部回路202が記憶されている。図17は、実施例3に係るプログラム可能論理デバイスにおける内部回路及びメモリの接続及びデータの流れを示したメモリ接続ブロック構成図である。図17に示すように、第1内部回路201は第1メモリ11に対するデータの読み書きを伴うデータ処理を行う。また、第2内部回路202は第2メモリ12に対するデータの読み書きを伴うデータ処理を行う。
図18は、実施例3に係るメモリ及び内部回路のピン情報ファイルの一例の図である。ピン情報ファイル701が第1メモリ11のピン情報ファイルである。ピン情報ファイル702が第2メモリ12のピン情報ファイルである。ピン情報ファイル703が第1内部回路201のピン情報ファイルである。ピン情報ファイル704が第2内部回路202のピン情報ファイルである。そして、ピン情報記憶部3は、ピン情報ファイル701〜704を予め記憶している。本実施例3では、メモリが2つあるため、それぞれの試験を行うために試験回路グループが分かれている。具体的には、第1メモリ11を試験する試験回路グループ1と、第2メモリ12を試験する試験回路グループ2とに分かれている。そして、本実施例3では、第1内部回路201及び第2内部回路202を外した状態で試験を行うため、ピン情報ファイル703及び704には試験回路グループの番号が割り振られている項目は存在しない。
メモリ試験回路生成部6は、ピン情報ファイル701及び702をピン情報記憶部3から取得する。そして、メモリ試験回路生成部6は、各ピン情報ファイルの試験回路グループを確認して、図19に示すようなメモリ試験回路データベースを生成する。ここで、図19は、実施例3におけるメモリ試験回路データベースの一例の図である。図19に示すように、本実施例3におけるメモリ試験回路データベースには第1メモリ11及び第2メモリ12の両方のピン情報が含まれる。
メモリ試験回路生成部6は、メモリ試験回路データベースのピンに対応するメモリ試験回路のピンの名前を作成する。本実施例3では2つのメモリがあるので、メモリ試験回路も2つ作成される。ここで、第1メモリ11を試験するメモリ試験回路を第1メモリ試験回路とし、第2メモリ12を試験するメモリ試験回路を第2メモリ試験回路とする。そして、メモリ試験回路生成部6は、第1メモリ11及び第2メモリ12の各ピンに対応するピンの入出力を、その対応するピンと逆にする。また、メモリ試験回路生成部6は、クロック及びリセット信号の入力ピンを作成する。さらに、メモリ試験回路生成部6は、試験結果を出力するピンを作成する。また、メモリ試験回路生成部6は、第1メモリ11及び第2メモリ12の接続元をそれぞれ第1メモリ試験回路221及び第2メモリ試験回路231に変更する。図20は、実施例3におけるメモリ試験回路挿入後のメモリ及びメモリ試験回路のピン情報ファイルの一例の図である。そして、メモリ試験回路生成部6は、作成したピン情報をまとめて、図20に示す第1メモリ試験回路のピン情報ファイル803及び第2メモリ試験回路のピン情報ファイル804を作成する。また、メモリ試験回路生成部6は、第1メモリ試験回路及び第2メモリ試験回路挿入後の第1メモリ11のピン情報ファイル801及び第2メモリ12のピン情報ファイル802を作成する。ピン情報ファイル801及びピン情報ファイル802は、点線で囲われた部分が図18におけるピン情報ファイル701及びピン情報ファイル702と異なるものである。
さらに、メモリ試験回路生成部6は、部品回路記憶部5から部品回路を取得する。
そして、メモリ試験回路生成部6は、ピン情報ファイル801〜804及び部品回路を用いて、第1メモリ試験回路及び第2メモリ試験回路を生成する。この時、メモリ試験回路生成部6は、クロック及びリセット信号以外の入力信号が有る場合には、その信号は入力オープンにする。また、メモリ試験回路生成部6は、試験結果を出力する以外に出力ピンがある場合には、固定した出力が行われるようにする。
そして、メモリ試験回路配置部41は、図21に示すように生成した第1メモリ試験回路221及び第2メモリ試験回路231を論理回路記憶部2に記憶する。図21は、実施例3に係るプログラム可能論理デバイスにおけるメモリ試験回路を挿入した状態のメモリ接続ブロック構成図である。そして、試験部4は、第1メモリ試験回路221及び第2メモリ試験回路231からの試験結果を受け取り、試験結果がNGの場合、故障が発生しているメモリの情報を通知する。
ここで、本実施例3では、第1内部回路201及び第1内部回路202を外して試験を行う設定になっているため、メモリ試験回路生成部6はピン情報ファイル701及び702のみを取得している。ただし、メモリ試験回路生成部6は、ピン情報ファイル703及び704も取得して、試験回路グループの番号が記載されていないことを確認することで、第1内部回路201及び第2内部回路202のピン情報を除くようにしても良い。
以上に説明したように、本実施例3に係るFPGAは、複数のメモリがある場合にも、各メモリに対するメモリ試験回路を自動的に生成し、その生成したメモリ試験回路を用いて各メモリの試験を自動的に行うことができる。複数のメモリがあるFPGAにおいて各メモリに対する試験回路作成の時間を削減することができ、効率的にメモリ試験を行うことができ、また、複数のメモリがあるFPGAの動作不良の原因の特定を効率的に行うことができる。
図22は、実施例4に係るプログラム可能論理デバイスにおけるメモリ試験回路を挿入した状態のメモリ接続ブロック構成図である。本実施例4に係るプログラム可能論理デバイスは、故障が発生したメモリのアドレスを特定し通知することが、実施例2又は実施例3と異なるものである。以下では、実施例3に故障が発生したメモリのアドレスを特定し通知する機能を加えたものを例に説明する。以下の説明における、本実施例4にかかるプログラム可能論理デバイスのブロック図も図16で表される。
部品回路記憶部5は、データ生成回路、メモリ制御タイミング生成回路及びチェック回路に加えて、アドレス特定回路及び出力回路を記憶している。本実施例4では、部品回路記憶部5は、アドレス特定回路として図22に示すLATCH216を記憶している。また、部品回路記憶部5は、出力回路としてPS217を記憶しいている。本実施例4では、PS217は、シリアル出力を行う回路である。
メモリ試験回路生成部6は、メモリ設定ファイルから利用する部品回路を特定する。本実施例4は、PN23GEN211、ADGEN212、PN23CHK213、LATCH216及びPS217を利用する構成回路として特定する。そして、メモリ試験回路生成部6は、PN23GEN211、ADGEN212、PN23CHK213、LATCH216及びPS217を部品回路記憶部5から取得する。
そして、メモリ試験回路生成部6は、ピン情報ファイルを用いてメモリ試験回路データベースを作成する。そして、メモリ試験回路生成部6は、メモリ試験回路データベースから第1メモリ試験回路221、第2メモリ試験回路231、第1メモリ11及び第2メモリ12のピン情報ファイルを作成する。
メモリ試験回路生成部6は、PN23GEN211、ADGEN212、PN23CHK213、LATCH216及びPS217を備えた第1メモリ試験回路221及び第2メモリ試験回路231をそれぞれ生成する。ここで、第1メモリ試験回路221及び第2メモリ試験回路231のいずれも同じ動作を行うため、以下では、図22の第1メモリ試験回路221を用いて説明する。
具体的には、メモリ試験回路生成部6は、PN23CHK213から出力される試験結果がLATCH216に入力されるように配線する。また、メモリ試験回路生成部6は、ADGEN212で指定されたメモリアドレスがLATCH216に入力されるように配線する。さらに、メモリ試験回路生成部6は、LATCH216からの出力がPS217に入力されるように配線する。そして、メモリ試験回路生成部6は、PS217からの出力が外部に出力されるように配線する。本実施例4では、PS217からの出力は試験部4に出力されるものとする。
さらに、LATCH216及びPS217の動作の詳細を説明する。LATCH216は、PN23CHK213からの入力を受けるまで、ADGEN212から入力されたメモリアドレスを保持しておく。そして、LATCH216は、PN23CHK213から入力された試験結果がOKの時には、保持しているメモリアドレスを破棄する。これに対して、LATCH216は、PN23CHK213から入力された試験結果がNGの時には、保持しているメモリアドレスをPS217へ出力する。すなわち、LATCH216は、故障メモリのアドレスをPS217へ出力することになる。このLATCH216の動作はラッチと呼ばれることもある。そして、PS217は、LATCH216から入力された故障メモリのアドレスを試験部4へ出力する。
次に、図23を参照して、故障メモリのアドレスの出力タイミングを説明する。図23は、故障メモリのアドレス出力タイミングを説明するための図である。グラフ901は第1メモリ試験回路221及び第2メモリ試験回路231の動作クロックを表す。グラフ902は、第1メモリ試験回路221のPN23CHK213からの出力であり、第1メモリ11のアドレス有効領域を示す。そして、グラフ903は、第1メモリ試験回路221のLATCH216でラッチしたアドレスをPS217でパラレルシリアル変換した出力を示す。また、グラフ904は、第2メモリ試験回路231のPN23CHK213からの出力であり、第2メモリ12のアドレス有効領域を示す。グラフ905は、第2メモリ試験回路231のLATCH216でラッチしたアドレスをPS217でパラレルシリアル変換した出力を示す。
PN23CHK213は、メモリの故障がある場合には”High”を出力し、メモリの故障がない場合には”Low”を出力する。すなわち、グラフ902の点921から点922までが、第1メモリ試験回路221のPN23CHK213がメモリ故障を検知した場合である。また、グラフ904の点941から点942までが、第2メモリ試験回路231のPN23CHK213がメモリ故障を検知した場合である。そして、PN23CHK213から”High”の信号が入力されると、LATCH216はそのときのメモリアドレスを取得する。グラフ903で示すように、第1メモリ試験回路221のLATCH216は、第1メモリ11における故障メモリのアドレスとして、PN23CHK213から”High”の信号が入力されている間のAD0〜AD7までを取得し、そのアドレスを出力する。そして、第1メモリ試験回路221のLATCH216は、取得したアドレスを出力する。また、グラフ905で示すように、第2メモリ試験回路231のLATCH216は、第2メモリ12における故障メモリのアドレスとして、PN23CHK213から”High”の信号が入力されている間のAD0〜AD3までを取得する。そしてこれに対して、PN23CHK213から”Low”の信号が入力されている場合には、グラフ903及びグラフ904のようにLATCH216は、”Low”を出力する。
試験部4は、PN23CHK213から試験結果の入力を受ける。さらに、試験結果がNGの場合には、試験部4は、故障メモリのアドレスの入力をPS217から受ける。そして、入力された試験結果がNGの場合には、試験部4は、メモリの故障発生の通知とともに、PS217から入力された故障メモリアドレスを通知する。
以上に説明したように、本実施例4に係るFPGAでは、試験によって内蔵のメモリの故障が検出された、その故障したメモリのアドレスを通知することができる。これにより、メモリの故障箇所を特定することができるので、その故障した箇所を使用しないように内部回路を配置しなおすなどの対応を迅速に行うことが可能となる。
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)データを記憶する記憶部と、
前記記憶部への書き込み及び読み出しを伴うデータ処理を行う内部回路を記憶する論理回路記憶部と、
前記記憶部に対して試験を行う際に必要となる部品回路を記憶する部品回路記憶部と、
前記記憶部のピン情報を記憶するピン情報記憶部と、
前記ピン情報記憶部に記憶したピン情報及び前記部品回路記憶部に記憶した部品回路を用いてメモリ試験回路を生成するメモリ試験回路生成部と、
前記メモリ試験回路生成部で生成されたメモリ試験回路を用いて前記記憶部の試験を行い、試験結果を通知する試験部と
を備えたことを特徴とするプログラム可能論理デバイス。
前記記憶部への書き込み及び読み出しを伴うデータ処理を行う内部回路を記憶する論理回路記憶部と、
前記記憶部に対して試験を行う際に必要となる部品回路を記憶する部品回路記憶部と、
前記記憶部のピン情報を記憶するピン情報記憶部と、
前記ピン情報記憶部に記憶したピン情報及び前記部品回路記憶部に記憶した部品回路を用いてメモリ試験回路を生成するメモリ試験回路生成部と、
前記メモリ試験回路生成部で生成されたメモリ試験回路を用いて前記記憶部の試験を行い、試験結果を通知する試験部と
を備えたことを特徴とするプログラム可能論理デバイス。
(付記2)前記部品回路は、少なくともテストデータを生成するデータ生成回路及び前記記憶部から読み出したデータをチェックするデータチェック回路を含むことを特徴とする付記1に記載のプログラム可能論理デバイス。
(付記3)前記メモリ試験回路生成部は、前記ピン情報に含まれる各ピンに対応し、且つ入出力の方向が逆である入出力ピン及びテスト結果を外部に出力する結果出力ピンを作成し、前記データ生成回路で生成されたテストデータが外部に出力され、外部から前記データチェック回路にデータが入力され、前記データチェック回路によるチェック結果が前記結果出力ピンから出力されるように、前記入出力ピン及び前記結果出力ピンと前記部品回路とを接続して前記メモリ試験回路を生成することを特徴とする付記2に記載のプログラム可能論理デバイス。
(付記4)前記試験部は、
テストデータが前記記憶部に入力され、前記記憶部に記憶された該テストデータを読み出して得られる検証データが前記データチェック回路に入力されるように、生成した前記メモリ試験回路を前記論理回路記憶部に格納し配置するメモリ試験回路配置部と、
前記データ生成回路で生成されたテストデータを前記記憶部に記憶させ、前記記憶部に記憶させた該テストデータを読み出して得られる検証データと前記テストデータとを前記データチェック回路に比較させるメモリ試験制御部と
を備えたことを特徴とする付記2又は付記3に記載のプログラム可能論理デバイス。
テストデータが前記記憶部に入力され、前記記憶部に記憶された該テストデータを読み出して得られる検証データが前記データチェック回路に入力されるように、生成した前記メモリ試験回路を前記論理回路記憶部に格納し配置するメモリ試験回路配置部と、
前記データ生成回路で生成されたテストデータを前記記憶部に記憶させ、前記記憶部に記憶させた該テストデータを読み出して得られる検証データと前記テストデータとを前記データチェック回路に比較させるメモリ試験制御部と
を備えたことを特徴とする付記2又は付記3に記載のプログラム可能論理デバイス。
(付記5)前記ピン情報記憶部は、前記記憶部のピン情報ともに前記内部回路のピン情報を記憶し、
前記試験部は、前記メモリ試験回路を前記内部回路と前記記憶部との間に配置して試験を行うことを特徴とする付記1乃至付記4のいずれか一つに記載のプログラム可能論理デバイス。
前記試験部は、前記メモリ試験回路を前記内部回路と前記記憶部との間に配置して試験を行うことを特徴とする付記1乃至付記4のいずれか一つに記載のプログラム可能論理デバイス。
(付記6)前記試験部は、テストデータとしてランダムな複数のデータを使用することを特徴とする付記1乃至付記5のいずれか一つに記載のプログラム可能論理デバイス。
(付記7)前記記憶部の記憶領域における前記内部回路及び前記メモリ試験回路が使用する領域が固定されていることを特徴とする付記1乃至付記6のいずれか一つに記載のプログラム可能論理デバイス。
(付記8)前記試験部は、前記記憶部の障害を検出した場合、前記記憶部における該障害が検出された位置を通知することを特徴とする付記1乃至付記7のいずれか一つに記載のプログラム可能論理デバイス。
(付記9)前記記憶部が、複数あることを特徴とする付記1乃至付記8のいずれか一つに記載のプログラム可能論理デバイス。
(付記10)プログラム可能論理デバイスに内蔵されたメモリへの書き込み及び読み出しを伴うデータ処理を行う内部回路を前記メモリと接続させて論理ブロックに記憶させる内部回路記憶ステップと、
前記メモリに対して試験を行う際に必要となる部品回路を記憶する部品回路記憶ステップと、
前記メモリのピン情報を記憶するピン情報記憶ステップと、
前記ピン情報及び前記部品回路を用いてメモリ試験回路を自動生成するメモリ試験回路生成ステップと、
前記メモリ試験回路生成ステップで生成された前記メモリ試験回路を前記メモリと接続させて論理ブロックに記憶させるメモリ試験回路記憶ステップと、
該メモリ試験回路を用いて前記メモリの試験を行うテストステップと、
前記試験結果を通知する試験結果通知ステップと
を含むことを特徴とするプログラム可能論理デバイスの試験方法。
前記メモリに対して試験を行う際に必要となる部品回路を記憶する部品回路記憶ステップと、
前記メモリのピン情報を記憶するピン情報記憶ステップと、
前記ピン情報及び前記部品回路を用いてメモリ試験回路を自動生成するメモリ試験回路生成ステップと、
前記メモリ試験回路生成ステップで生成された前記メモリ試験回路を前記メモリと接続させて論理ブロックに記憶させるメモリ試験回路記憶ステップと、
該メモリ試験回路を用いて前記メモリの試験を行うテストステップと、
前記試験結果を通知する試験結果通知ステップと
を含むことを特徴とするプログラム可能論理デバイスの試験方法。
1 記憶部
2 論理回路記憶部
3 ピン情報記憶部
4 試験部
5 部品回路記憶部
6 メモリ試験回路生成部
7 クロック発生部
8 リセット信号発生部
10 メモリ
11 第1メモリ
12 第2メモリ
41 メモリ試験回路生成部
42 メモリ試験回路配置部
43 メモリ試験制御部
200 内部回路
201 第1内部回路
202 第2内部回路
210 メモリ試験回路
221 第1メモリ試験回路
231 第2メモリ試験回路
2 論理回路記憶部
3 ピン情報記憶部
4 試験部
5 部品回路記憶部
6 メモリ試験回路生成部
7 クロック発生部
8 リセット信号発生部
10 メモリ
11 第1メモリ
12 第2メモリ
41 メモリ試験回路生成部
42 メモリ試験回路配置部
43 メモリ試験制御部
200 内部回路
201 第1内部回路
202 第2内部回路
210 メモリ試験回路
221 第1メモリ試験回路
231 第2メモリ試験回路
Claims (6)
- データを記憶する記憶部と、
前記記憶部への書き込み及び読み出しを伴うデータ処理を行う内部回路を記憶する論理回路記憶部と、
前記記憶部に対して試験を行う際に必要となる部品回路を記憶する部品回路記憶部と、
前記記憶部のピン情報を記憶するピン情報記憶部と、
前記ピン情報記憶部に記憶したピン情報及び前記部品回路記憶部に記憶した部品回路を用いてメモリ試験回路を生成するメモリ試験回路生成部と、
前記メモリ試験回路生成部で生成されたメモリ試験回路を用いて前記記憶部の試験を行い、試験結果を通知する試験部と
を備えたことを特徴とするプログラム可能論理デバイス。 - 前記部品回路は、少なくともテストデータを生成するデータ生成回路及び前記記憶部から読み出したデータをチェックするデータチェック回路を含み、
前記メモリ回路生成部は、
前記ピン情報に含まれる各ピンに対応し、且つ入出力の方向が逆である入出力ピン及びテスト結果を外部に出力する結果出力ピンを作成し、前記データ生成回路で生成されたテストデータが外部に出力され、外部から前記データチェック回路にデータが入力され、前記データチェック回路によるチェック結果が前記結果出力ピンから出力されるように、前記入出力ピン及び前記結果出力ピンと前記部品回路とを接続して前記メモリ試験回路を生成し、
前記試験部は、
テストデータが前記記憶部に入力され、前記記憶部に記憶された該テストデータを読み出して得られる検証データが前記データチェック回路に入力されるように、前記メモリ試験回路を前記論理回路記憶部に記憶させ配置するメモリ試験回路配置部と、
前記データ生成回路で生成されたテストデータを前記記憶部に記憶させ、前記記憶部に記憶させた該テストデータを読み出して得られる検証データと前記テストデータとを前記データチェック回路に比較させるメモリ試験制御部と
を備えたことを特徴とする請求項1に記載のプログラム可能論理デバイス。 - 前記試験部は、テストデータとしてランダムな複数のデータを使用することを特徴とする請求項1又は請求項2に記載のプログラム可能論理デバイス。
- 前記記憶部の記憶領域における前記内部回路及び前記メモリ試験回路が使用する領域が固定されていることを特徴とする請求項1乃至請求項3のいずれか一つに記載のプログラム可能論理デバイス。
- 前記試験部は、前記記憶部の障害を検出した場合、前記試験結果とともに前記記憶部における該障害が検出された位置を通知することを特徴とする請求項1乃至請求項4のいずれか一つに記載のプログラム可能論理デバイス。
- プログラム可能論理デバイスに内蔵されたメモリへの書き込み及び読み出しを伴うデータ処理を行う内部回路を前記メモリと接続させて論理ブロックに記憶させる内部回路記憶ステップと、
前記メモリに対して試験を行う際に必要となる部品回路を記憶する部品回路記憶ステップと、
前記メモリのピン情報を記憶するピン情報記憶ステップと、
前記ピン情報及び前記部品回路を用いてメモリ試験回路を自動生成するメモリ試験回路生成ステップと、
前記メモリ試験回路生成ステップで生成された前記メモリ試験回路を前記メモリと接続させて論理ブロックに記憶させるメモリ試験回路記憶ステップと、
該メモリ試験回路を用いて前記メモリの試験を行うテストステップと、
前記試験結果を通知する試験結果通知ステップと
を含むことを特徴とするプログラム可能論理デバイスの試験方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010143140A JP2012009098A (ja) | 2010-06-23 | 2010-06-23 | プログラム可能論理デバイス及びその試験方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010143140A JP2012009098A (ja) | 2010-06-23 | 2010-06-23 | プログラム可能論理デバイス及びその試験方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2012009098A true JP2012009098A (ja) | 2012-01-12 |
Family
ID=45539462
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010143140A Withdrawn JP2012009098A (ja) | 2010-06-23 | 2010-06-23 | プログラム可能論理デバイス及びその試験方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2012009098A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101174856B1 (ko) | 2012-03-23 | 2012-08-17 | 하나에버텍 주식회사 | 발전소 제어카드의 반도체 집적회로 검사장치 및 방법 |
CN105510763A (zh) * | 2016-02-25 | 2016-04-20 | 珠海全志科技股份有限公司 | 集成电路管脚测试装置 |
JPWO2015068285A1 (ja) * | 2013-11-08 | 2017-03-09 | 株式会社日立製作所 | プログラマブルデバイス及びこれを用いた電子システム装置 |
-
2010
- 2010-06-23 JP JP2010143140A patent/JP2012009098A/ja not_active Withdrawn
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101174856B1 (ko) | 2012-03-23 | 2012-08-17 | 하나에버텍 주식회사 | 발전소 제어카드의 반도체 집적회로 검사장치 및 방법 |
JPWO2015068285A1 (ja) * | 2013-11-08 | 2017-03-09 | 株式会社日立製作所 | プログラマブルデバイス及びこれを用いた電子システム装置 |
CN105510763A (zh) * | 2016-02-25 | 2016-04-20 | 珠海全志科技股份有限公司 | 集成电路管脚测试装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101519491B1 (ko) | 누적 테스트를 위한 반도체 메모리 장치 및 이를 포함하는 시스템 | |
US7266028B1 (en) | Method and apparatus for bit mapping memories in programmable logic device integrated circuits during at-speed testing | |
US7457187B2 (en) | Design structure for in-system redundant array repair in integrated circuits | |
US7702976B2 (en) | Integration of LBIST into array BISR flow | |
TWI502385B (zh) | 修改積體電路佈局之方法 | |
US7895028B2 (en) | Structure for increasing fuse programming yield | |
WO2002103706A2 (en) | System and method for identification of faulty or weak memory cells under simulated extreme operating conditions | |
JP2010123159A (ja) | 半導体集積回路 | |
CN108511029B (zh) | 一种fpga中双端口sram阵列的内建自测和修复系统及其方法 | |
TWI691833B (zh) | 在儲存資料值中的錯誤偵測 | |
US9715942B2 (en) | Built-in self-test (BIST) circuit and associated BIST method for embedded memories | |
JP5611916B2 (ja) | 半導体集積回路 | |
JP2020048022A (ja) | 半導体集積回路及び再構成半導体システム | |
KR20060111856A (ko) | 반도체 기억 장치 | |
JP2012009098A (ja) | プログラム可能論理デバイス及びその試験方法 | |
KR20030020957A (ko) | 메모리를 분석하고 복구하기 위한 방법 및 장치 | |
Sridhar et al. | Built-in self-repair (BISR) technique widely Used to repair embedded random access memories (RAMs) | |
Koshy et al. | Diagnostic data detection of faults in RAM using different march algorithms with BIST scheme | |
US9672094B1 (en) | Interconnect circuitry fault detection | |
Silveira et al. | Flexible architecture of memory BISTs | |
Cheng | Comprehensive study on designing memory BIST: algorithms, implementations and trade-offs | |
JP4886559B2 (ja) | 半導体設計支援装置、半導体設計支援方法および半導体設計支援プログラム | |
JP2021534427A (ja) | デジタル回路試験及び分析モジュール、システム及びそれの方法 | |
Singh | Performance Analysis of March M & B Algorithms for Memory Built-In Self-Test (BIST) | |
CN113311319B (zh) | 集成电路芯片与配置方法以及测试系统和测试方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20130201 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20130304 |