JP2010039611A - テスト回路設計プログラム、テスト回路設計装置およびテスト回路設計方法 - Google Patents
テスト回路設計プログラム、テスト回路設計装置およびテスト回路設計方法 Download PDFInfo
- Publication number
- JP2010039611A JP2010039611A JP2008199440A JP2008199440A JP2010039611A JP 2010039611 A JP2010039611 A JP 2010039611A JP 2008199440 A JP2008199440 A JP 2008199440A JP 2008199440 A JP2008199440 A JP 2008199440A JP 2010039611 A JP2010039611 A JP 2010039611A
- Authority
- JP
- Japan
- Prior art keywords
- test
- clock
- input
- circuit design
- netlist
- 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.)
- Pending
Links
Images
Landscapes
- Tests Of Electronic Circuits (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
【課題】遅延を発生させることなく、高精度なテスト用クロックを提供すること。
【解決手段】テスト回路設計装置100では、テスト対象回路110の中からテスト対象FF111が指定されると、ネットリスト101を参照して、入力端子(クロック入力端子およびクロック制御信号入力端子)からテスト対象FF111までの間に構成されている論理回路を、テスト対象回路110に入力される各クロック(ここでは、クロックA,B)の中から選択されたクロックをテストクロックとしてテスト対象FF111に入力する機構を備えた回路であるテスト用論理回路に修正したテスト対象回路120を構成する。
【選択図】図1
【解決手段】テスト回路設計装置100では、テスト対象回路110の中からテスト対象FF111が指定されると、ネットリスト101を参照して、入力端子(クロック入力端子およびクロック制御信号入力端子)からテスト対象FF111までの間に構成されている論理回路を、テスト対象回路110に入力される各クロック(ここでは、クロックA,B)の中から選択されたクロックをテストクロックとしてテスト対象FF111に入力する機構を備えた回路であるテスト用論理回路に修正したテスト対象回路120を構成する。
【選択図】図1
Description
この発明は、LSI(Large Scale Integration)の動作テストを実行するためのテスト回路設計プログラム、テスト回路設計装置およびテスト回路設計方法に関する。
従来より、LSI設計においては、出荷テスト時に故障検出をより容易にするために「テスト設計」がおこなわれる。この「テスト設計」はDFT(Design For Testability:テスト容易化設計)とも呼ばれている。特に、ASIC(Application Specific Integrated Circuit)の出荷テストにおいて、製造されたASICの歩留まりを向上するための技術として活用されている。
出荷テストには様々な手法があるが、その中の一つとしてTDT(Transition Delay Test)と呼ばれる手法がある。TDTは、テスト対象となるLSIを実速度に近い速度で動作させて、遅延故障を検出するものである。LSI動作時に遅延故障が発生したパスがある場合、遅延が増大するためLSIは、実速度に合わせて動作させようとすると、要求されるタイミングを満たせない。すなわち、実速度で正常な動作を実現できない場合は、LSI内部にて遅延故障が発生していると検出される。
また、上述のような出荷テストを行う場合には、所定のクロックを出力可能なLSIテスタを使用して所望する速度でLSIを動作させる。LSIテスタを利用する場合、通常、クロックとして外部から入力できる本数に制限がある。したがって、TDTにてLSIをテストする際、通常動作において使用されているクロック端子に対してクロックを与えることができない場合がある。そこで、制限されたクロック本数の中、テスト設計において各FFが実速度に近い速度でテストできるように、テストモードの際にテスト対象となるLSIに供給する(入力する)クロックを調整する必要がある。
したがって、従来は、テスト設計時において、LSIに供給するクロック(以下、「テストクロック」という)を調整するために、単純に通常動作でのクロックとテストモードでのクロックの切り替えをテストモード信号によって制御できるような機構を追加する手法がとられている(たとえば、下記特許文献1,2参照。)。
しかしながら、上述のようにテストモード信号によってテストクロックを調整する場合、通常動作でのクロックとテストモードでのテストクロックとを単純に切り替える機構を実現するために、テスト対象回路にセレクタが挿入される。すなわち、従来はこのセレクタをテストモード信号によって制御することによって、テスト対象となるFFへ確実にテストクロックを入力させていた。
たとえば、通常動作のクロックとテストモードのテストクロックとが全く別の場合(周波数が著しく違うなど)には、上述のようなセレクタによる切り替え手法は有効であるが、通常動作のクロックと同等の周波数のクロックをテストモード時のテストクロックとして使用する場合、テストクロックは、本来の論理設計上不必要なセレクタを経由してテスト対象となるFFに入力される。すなわち、FFには、セレクタ分のクロックパスの遅延が増加したテストクロックが入力されることになり、結果としてFFの動作タイミングを悪化させる原因となるという問題があった。
この発明は、上述した従来技術による問題点を解消するため、遅延を発生させることなく、高精度なテスト用クロックを提供することのできるテスト回路設計プログラム、テスト回路設計装置およびテスト回路設計方法を提供することを目的とする。
上述した課題を解決し、目的を達成するため、このテスト回路設計プログラム、テスト回路設計装置およびテスト回路設計方法は、コンピュータが、テスト対象回路のネットリストの中からテスト対象となるFF(フリップ・フロップ)が指定されると、当該FFから、当該FFへ入力されるクロックの各入力端子までの配線状態をあらわす論理式を抽出する処理と、前記各入力端子の中の一の入力端子から入力されるクロックを前記FFのテストクロックとして利用する場合、抽出された論理式と前記ネットリストとを参照して前記一の入力端子から入力されるクロックを前記FFまで透過させるテスト機構を構成する処理と、構成されたテスト機構を前記テスト対象回路に追加したネットリストを生成する処理と、生成されたネットリストを前記FFの動作テスト用のネットリストとして出力する処理と、を含むことを要件とする。
このテスト回路設計プログラム、テスト回路設計装置およびテスト回路設計方法によれば、選択された一の入力端子から入力されるクロックを、テスト対象回路内の論理回路に影響されずにFFの動作テストを実行するためのクロックとして利用することができる。
このテスト回路設計プログラム、テスト回路設計装置およびテスト回路設計方法によれば、遅延を発生させることなく、高精度なテスト用クロックの提供を図ることができるという効果を奏する。
以下に添付図面を参照して、このテスト回路設計プログラム、テスト回路設計装置およびテスト回路設計方法の好適な実施の形態を詳細に説明する。このテスト回路設計プログラム、テスト回路設計装置およびテスト回路設計方法は、テスト対象回路において、外部からのテストクロックの入力を利用することなく、内部供給されているクロックをテストクロックとして活用するためのテスト機構を構成し、テスト機構を含んだテスト対象回路のネットリストを提供するための技術である。
(テスト回路設計処理の概要)
まず、本実施の形態にかかるテスト回路設計処理の概要について説明する。図1は、本実施の形態にかかるテスト回路設計処理の概要を示す説明図である。図1のように、本実施の形態にかかるテスト回路設計処理は、LSI設計工程における、DFTテスト容易化設計に関する処理である。
まず、本実施の形態にかかるテスト回路設計処理の概要について説明する。図1は、本実施の形態にかかるテスト回路設計処理の概要を示す説明図である。図1のように、本実施の形態にかかるテスト回路設計処理は、LSI設計工程における、DFTテスト容易化設計に関する処理である。
通常、クロックパス上にある論理素子に入力される信号は、クロックとクロックを制御するための制御信号とに分かれる。クロックは正確なタイミングでも入力が求められるため遅延の悪化を防ぐ必要がある。一方、クロックを制御する制御信号はクロックほど厳しいタイミングは要求されない。したがって、本実施の形態では、テスト対象回路内部に供給されるクロックの構成を解析して、回路内の配線状態をクロックと制御信号に分ける。そして、制御信号に対して論理素子を挿入して、テスト対象回路内部に供給されるクロックをテストクロックとして利用させ、セレクタなどによるクロックの遅延増大を防ぐことができる。
具体的に説明すると、設計者によって論理設計によって設計対象となるLSIのネットリスト101が生成される(ステップS1)。本実施の形態にかかるテスト回路設計装置100では、テスト対象回路110の中からテスト対象FF111が指定されると、ネットリスト101を参照して、入力端子(クロック入力端子およびクロック制御信号入力端子)からテスト対象FF111までの間に構成されている論理回路をテスト用論理回路に修正したテスト対象回路120を構成する。
本実施の形態において、テスト用論理回路とは、テスト対象回路110に入力される各クロック(ここでは、クロックA,B)の中から選択されたクロックをテストクロックとしてテスト対象FF111に入力する機構を備えた回路である。選択されたクロックは、テストクロックとして利用される場合、論理回路を構成する各論理素子の影響を受けずに透過した信号としてテスト対象FF111に入力されなければならない。したがって、テスト用論理回路は、選択されたクロックとテスト対象FF111に入力されるクロックとが等しくなるような論理構成がテスト対象回路110の論理回路に追加された構成となっている。
そして、テスト回路設計装置100は、テスト対象回路120の構成が反映されたテスト用ネットリスト102を生成する。このテスト用ネットリスト102がLSIの実機の構成となるため、以降の処理としてテスト用ネットリスト102を参照したレイアウト設計がおこなわれる(ステップS2)。
このように、本実施の形態にかかるテスト回路設計処理では、テスト対象回路110内部のクロックをテストクロックに利用することが可能なテスト機構を含んだテスト回路を設計することができる。内部のクロックを利用するため、従来のようなセレクタを挿入する必要がなくなり、クロックの遅延を増大させることなく、高精度のテストクロックによって動作テストを実行させることができる。
(テスト回路設計装置のハードウェア構成)
まず、テスト回路設計装置100のハードウェア構成について説明する。図2−1は、テスト回路設計装置100のハードウェア構成を示すブロック図である。図2−1において、テスト回路設計装置100は、CPU(Central Processing Unit)201と、ROM(Read‐Only Memory)202と、RAM(Random Access Memory)203と、磁気ディスクドライブ204と、磁気ディスク205と、光ディスクドライブ206と、光ディスク207と、I/F(Interface)208と、入力デバイス209と、出力デバイス210と、を備えている。また、各構成部はバス200によってそれぞれ接続されている。
まず、テスト回路設計装置100のハードウェア構成について説明する。図2−1は、テスト回路設計装置100のハードウェア構成を示すブロック図である。図2−1において、テスト回路設計装置100は、CPU(Central Processing Unit)201と、ROM(Read‐Only Memory)202と、RAM(Random Access Memory)203と、磁気ディスクドライブ204と、磁気ディスク205と、光ディスクドライブ206と、光ディスク207と、I/F(Interface)208と、入力デバイス209と、出力デバイス210と、を備えている。また、各構成部はバス200によってそれぞれ接続されている。
ここで、CPU201は、テスト回路設計装置100の全体の制御を司る。また、ROM202は、ブートプログラムや、テスト回路設計プログラムなどのプログラムを記憶している。また、テスト回路設計装置100において、テスト回路設計処理のみならず、ステップS1の論理設計やステップS2のレイアウト設計など、LSI設計処理をおこなう場合には、各設計処理に応じたプログラムも記憶されている。RAM203は、CPU201のワークエリアとして使用される。磁気ディスクドライブ204は、CPU201の制御にしたがって磁気ディスク205に対するデータのリード/ライトを制御する。磁気ディスク205は、磁気ディスクドライブ204の制御で書き込まれたデータを記憶する。
光ディスクドライブ206は、CPU201の制御にしたがって光ディスク207に対するデータのリード/ライトを制御する。光ディスク207は、光ディスクドライブ206の制御で書き込まれたデータを記憶したり、光ディスク207に記憶されたデータをコンピュータに読み取らせたりする。
インターフェース(以下、「I/F」と略する)208は、通信回線を通じてLAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどのネットワーク211に接続され、このネットワーク211を介して他の装置(ステップS1の論理設計やステップS2のレイアウト設計をおこなう装置など)に接続される。そして、I/F208は、ネットワーク211と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。I/F208には、たとえばモデムやLANアダプタなどを採用することができる。
入力デバイス209は、設計者からテスト回路設計装置100への指示を受け付けることができる。入力デバイス209の構成例としては、たとえば、キーボード、マウスなどが挙げられる。キーボードであれば、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなうことができる。また、キーボードは、一般的な鍵盤タイプに限らず、タッチパネル式の入力パッドやテンキーなどであってもよい。また、マウスであれば、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなうことができる。他にも、ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
出力デバイス210は、テスト回路設計装置100による処理結果を設計者に対して出力することができる。出力デバイスの構成例としては、ディスプレイやプリンタが挙げられる。ディスプレイであれば、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示することができる。また、プリンタであれば、生成したテスト用ネットリストに関するデータを印刷することができる。
(テスト回路設計装置の機能的構成)
つぎに、テスト回路設計装置100の機能的構成について説明する。図2−2は、テスト回路設計装置の機能的構成を示すブロック図である。テスト回路設計装置100は、抽出部221と、構成部222と、生成部223と、出力部224と、を含む構成である。この制御部となる機能(抽出部221〜出力部224)は、具体的には、たとえば、図2−1に示したROM202、RAM203、磁気ディスク205、光ディスク207などの記憶領域に記憶されたプログラムをCPU201に実行させることにより、または、I/F208により、その機能を実現する。
つぎに、テスト回路設計装置100の機能的構成について説明する。図2−2は、テスト回路設計装置の機能的構成を示すブロック図である。テスト回路設計装置100は、抽出部221と、構成部222と、生成部223と、出力部224と、を含む構成である。この制御部となる機能(抽出部221〜出力部224)は、具体的には、たとえば、図2−1に示したROM202、RAM203、磁気ディスク205、光ディスク207などの記憶領域に記憶されたプログラムをCPU201に実行させることにより、または、I/F208により、その機能を実現する。
抽出部221は、テスト対象回路のネットリスト101の中からテスト対象となるFF(フリップ・フロップ)が指定されると、指定されたFFから、このFFへ入力されるクロックの各入力端子までの配線状態をあらわす論理式を抽出する。具体的には、指定されたFFを起点にテスト対象回路をバックトレースして論理回路を構成する論理素子の種類に応じて論理積もしくは論理和を抽出する。この作業を各入力端子まで遡ることによって、FF〜入力端子の配線状態をあらわす論理式となる。なお、抽出された論理式に関する情報は、RAM203、磁気ディスク205、光ディスク207などの記憶領域に記憶される。
構成部222は、各入力端子の中の一の入力端子から入力されるクロックを、FFのテストクロックとして利用する場合、抽出部221によって抽出された論理式とネットリスト101とを参照して、各入力端子の中から設定された一の入力端子から入力されるクロックをFFまで透過させるテスト機構を構成する。上述した抽出部221によってFFへ入力されるクロックの各入力端子が抽出されるが、これらの入力端子にそれぞれ入力されているクロックのうち、いずれか一つのクロックがテストクロックに設定される。
テストクロックとして利用するクロックの設定は、抽出された論理式に応じて、設計者がおこなう。また、構成部222に、各入力端子に入力されるクロックの中から、動作テスト用のクロック周波数に最も近い周波数のクロックの入力端子を一の入力端子に設定する設定部を備えて自動的に設定させてもよい。
また、構成部222は、抽出部221によって抽出された論理式においてFFへの入力と、選択された一の入力端子への入力とが等しくなる条件を算出する算出部(不図示)を含み、この算出部によって算出された条件を満たすための論理素子を含んだ配線状態をテスト機構として構成してもよい。なお、いずれの場合も、構成されたテスト機構に関する情報は、RAM203、磁気ディスク205、光ディスク207などの記憶領域に記憶される。
生成部223は、構成部222によって構成されたテスト機構をテスト対象回路のネットリストに追加したネットリスト、すなわち、テスト用ネットリスト102を生成する。そして、出力部224は、生成部223によって生成されたテスト用ネットリスト102を出力する。ここでも、生成されたテスト用ネットリスト102に関する情報は、RAM203、磁気ディスク205、光ディスク207などの記憶領域に記憶される。また、出力されたテスト用ネットリスト102は、I/F208や出力デバイス210によって設計者に確認可能な情報として提供される。
(テスト回路設計処理の手順)
つぎに、上述したテスト回路設計装置100によるテスト回路設計処理の手順について説明する。図3は、テスト回路設計処理の手順を示すフローチャートである。また、図4−1は、クロック定義テーブルを示す図表であり、図4−2は、テストクロック定義テーブルを示す図表であり、図4−3は、FFクロックテーブルを示す図表であり、図4−4は、配線属性テーブルを示す図表である。
つぎに、上述したテスト回路設計装置100によるテスト回路設計処理の手順について説明する。図3は、テスト回路設計処理の手順を示すフローチャートである。また、図4−1は、クロック定義テーブルを示す図表であり、図4−2は、テストクロック定義テーブルを示す図表であり、図4−3は、FFクロックテーブルを示す図表であり、図4−4は、配線属性テーブルを示す図表である。
図1にて説明したように、テスト回路設計装置100には、ネットリスト101が提供されている。このネットリスト101に基づいてSTA・合成ツールを用いることによって図4−1〜図4−4に示すようなテーブルが用意される。そして、テスト回路設計装置100は、これら各テーブルを参照して、テスト回路設計処理をおこなう。
図3のフローチャートにおいて、まず、図4−1のクロック定義テーブル410を参照して、各クロックをテストクロックに振り分ける(ステップS301)。クロック定義テーブル410は、STA・合成ツールなどによってネットリスト101のタイミング制約を読み込むことにより構成される。ステップS301の処理では、クロック定義テーブル410を構成する情報のうち、「クロック名」と「クロックポイント」が読み込まれクロック定義として利用される。
また、図4−1にクロックとして定義されているもののうち、テストクロックとして使用するクロックおよび動作周波数、対象となる元のクロック周波数の上限と下限を定義した情報が、図4−2のテストクロック定義テーブル420である。このテストクロック定義テーブル420にしたがって、図4−1のクロック定義テーブル410に記されているクロック周波数よりテストクロックを割り当てる。ここで割り当てられたテストクロック名が、クロック定義テーブル410に記載されている「テストクロック名」に相当する。また、設計者が直にクロック定義テーブル410の「テストクロック名」に書き込むことにより任意のテストクロックを定義することもできる。
つぎに、クロック定義されたポイントからフォワードトレースして各FFのクロック端子につながっているクロックを定義する(ステップS302)。FFについてはネットリスト101を読み込んで各インスタンスを抽出することによって、図4−3のFFクロックテーブル430に「FF名」として書き込まれる。そして、図4−1のクロック定義テーブル410に定義されている「クロック名」よりフォワードトレースを実行する。
ステップS302におけるフォワードトレースでは、クロックポイントからネットリスト101の記述をトレースし、組み合わせ回路以外のセルに到達するまでトレースを実行する処理がおこなわれる。トレースした結果、FFのクロック端子に到達したものについては、図4−3のFFクロックテーブル430の「クロック名」にクロック名を記載する。すでに「クロック名」にクロック名が記載されているときは、図4−1のクロック定義テーブル410より、クロック周波数の高いクロック名に置き換える。
そして、ステップS302におけるクロックの定義より、各FFのテストクロックを定義し(ステップS303)、各配線の属性を設定する(ステップS304)。このステップS304における属性設定では、下記の4つのいずれかに設定される。また、T(優先順位高)→O(優先順位低)の順番で優先順位が設定されており、属性設定の際に参照される。
T:テストクロックに直接つながっている配線
C:テストクロックでないクロックに直接つながっている配線
L:テストクロックに組み合わせ回路を通してつながっている配線
N:テストクロックでないクロックに組み合わせ回路を通してつながっている配線
O:その他の配線
C:テストクロックでないクロックに直接つながっている配線
L:テストクロックに組み合わせ回路を通してつながっている配線
N:テストクロックでないクロックに組み合わせ回路を通してつながっている配線
O:その他の配線
ステップS304において、各配線はまず、初期値である“O”に設定される。そして、各クロックからのフォワードトレースによりFFのクロック端子に接続されたものについて“T”または“C”または“L”に定義される(詳細な属性設定の手順については後述する)。このように定義された配線属性は、図4−4の配線属性テーブル440に書き込まれる。
その後、FFからステップS303において定義されたテストクロックへバックトレースをおこない、論理式を構成する(ステップS305)。ステップS305では、具体的には、バックトレースを実施するときに到達した組み合わせセルより論理式を組み立てている。バックトレースを実施する場合、各配線の属性を調べて、“O”の属性の配線に到達した場合はその場所でバックトレースを打ち切る。“T”または“C”の属性の配線に到達した場合はクロックポイントに到達するので、バックトレースは停止する。“L”の属性の配線の場合はバックトレースを続行する。
そして、ステップS305によって構成された論理式とテスト条件とからテストクロック=FF入力クロックになる条件を算出する(ステップS306)。具体的には、まず、各配線のうち“O”の属性の配線について“0”または“1”に固定する。これで、テストクロック=FFクロック端子の論理式が成り立たない場合は“L”属性の配線を“0”
または“1”に固定する。これをテストクロック=FFクロック端子の論理式が成り立つまで実行する。テストクロック=FFクロック端子の論理式が成り立つ条件を決定したら、テスト信号(TEST=“1”)により各配線を固定する。
または“1”に固定する。これをテストクロック=FFクロック端子の論理式が成り立つまで実行する。テストクロック=FFクロック端子の論理式が成り立つ条件を決定したら、テスト信号(TEST=“1”)により各配線を固定する。
さらに、ステップS306によって算出された条件に応じて各配線の属性を変更する(ステップS307)。このステップS307は、ステップS306において、バックトレース上で“L”の属性となっていた配線を“T”に置き換える処理である。これは二重に処理を行うことを防ぐためである。
そして、テスト対象回路110のすべてのFFについてテストクロックを調整したか否かを判断する(ステップS308)。ここで、テストクロックの調整が完了していないFFがある場合には(ステップS308:No)、ステップS305の処理に戻り、他のFFについてステップS305以降の処理をおこなう。
ステップS308において、すべてのFFについてのテストクロック調整が完了したと判断された場合には(ステップS308:Yes)、変更された論理式から修正されたネットリスト、すなわちテスト用ネットリストを作成して(ステップS309)、一連の処理を終了する。
(実施例)
つぎに、上述したテスト回路設計処理の実施例を、具体的なテスト対象回路を例に挙げて説明する。図5は、テスト回路設計前のテスト対象回路を示す回路図である。また、図6は、テスト回路設計後のテスト対象回路を示す回路図である。実施例では、図5の回路500をテスト対象回路とする。そして、回路500に入力されるクロックのうち、クロックA(clockA)をテストクロックとして利用可能なテスト機構が追加された図6の回路600を構成するためのテスト用ネットリスト102の生成手順について説明する。
つぎに、上述したテスト回路設計処理の実施例を、具体的なテスト対象回路を例に挙げて説明する。図5は、テスト回路設計前のテスト対象回路を示す回路図である。また、図6は、テスト回路設計後のテスト対象回路を示す回路図である。実施例では、図5の回路500をテスト対象回路とする。そして、回路500に入力されるクロックのうち、クロックA(clockA)をテストクロックとして利用可能なテスト機構が追加された図6の回路600を構成するためのテスト用ネットリスト102の生成手順について説明する。
<論理式の構成>
まず、ネットリストを参照して図5の回路500の論理式を構成する手順について説明する。回路500においてテスト対象FF501を起点に、つぎの論理セルまでバックトレースをおこなうと、OR1までバックトレースされ、下記(1)の論理式が求められる。
まず、ネットリストを参照して図5の回路500の論理式を構成する手順について説明する。回路500においてテスト対象FF501を起点に、つぎの論理セルまでバックトレースをおこなうと、OR1までバックトレースされ、下記(1)の論理式が求められる。
wire6=wire4+wire5 …(1)
さらに、wire4と、wire5とをバックトレースする。すると、wire4はAND1、wire5はAND2までバックトレースされ、下記(2)の論理式が求められる。
wire6=(wire0・wire1)+(wire2・wire3) …(2)
ここで、図4−4の配線属性テーブル440から属性“O”となるwire0と、wire2とに対して「1」または「0」と固定された場合にwire6=wire1となる条件を算出する。wire6=wire1となる条件とは、すなわち、クロックA(clockA)の入力がそのまま論理セルを透過して、テスト対象FF501に入力されるような条件である。ここでは、wire0=1かつwire2=0である場合、wire6=wire1になるという条件が導き出される。なお、このような条件の導出は公知技術であるため説明は省略する。
そして、テスト対象FF501へのテストクロックの入力を制御するためにテストモード信号(TEST=1)をwire0と、wire1とに付加する。TEST=1の場合に、クロックA(clockA)がテストクロックとして入力されるように設定するため、wire0+TEST=1かつwire2・TESTの反転値=0と付加される。したがって、回路500は、下記(3)のように変更され、図6の回路600のようなテスト機構601が追加された構成となる。
wire6=((wire0+TEST)・wire1)+((wire2・TESTの反転値)・wire3) …(3)
<属性設定処理>
つぎに、テスト対象回路を構成する各配線の属性設定について説明する。図7は、配線の属性設定手順を示す回路図である。また、図8−1は、配線の属性設定の初期状態を示す図表である。図7の回路500の各配線(wire0〜wire6)では、初期状態では、図表810のように、すべての配線の属性が“O”に設定されている。
つぎに、テスト対象回路を構成する各配線の属性設定について説明する。図7は、配線の属性設定手順を示す回路図である。また、図8−1は、配線の属性設定の初期状態を示す図表である。図7の回路500の各配線(wire0〜wire6)では、初期状態では、図表810のように、すべての配線の属性が“O”に設定されている。
その後、クロックA(clockA)よりフォワードトレースが実施され、図7のルート1の順序にそって、FFに到達するまでのwireの属性が設定される。ここで、図8−2は、クロックAからのフォワードトレースによる配線の属性設定を示す図表である。このとき、クロックAがテストクロックであるとすれば、テーブル820にように、wire1はテストクロック端子に直接つながっているので属性“T”となり(821)、FFに到達するまでに存在する、wire4とwire6は属性“L”となる(822,823)。
次に、クロックB(clock B)からフォワードトレースが実施され、図7のルート2の順序にそってFFに到達するまでのwireの属性が設定される。ここで図8−3は、クロックBからのフォワードトレースによる配線の属性設定を示す図表である。このとき、wire3はテストクロックでないクロック端子に直接つながっているので、テーブル830のように、属性“C”となり(831)、wire5は属性“N”となる(832)。なお属性には上述したように優先順位がついている。そして、優先順位が高い属性のwireは低い属性に切り替わらないので、wire6は属性“L”のままとなる(833)。
そして、図7の場合は2つのクロックが入力されているが、さらにクロックが入力される回路の場合は、クロックを起点としたフォワードトレースを繰り返す。そして、すべてのクロックに対して実施した後に、設定した属性を図4−4の配線属性テーブル440に記録する。図8−4は、ネットリスト修正後の属性設定を示す図表である。図6の回路600のように、テストモード信号の制御によってテストクロックをFFに入力させるか否かを制御できるようにネットリストを修正した場合は、テーブル840のようにテストクロックを直接入力可能なwire4〜6の属性を“T”に変更する(841)。
<ネットリストの修正処理>
つぎに、上述した論理式の構成と、属性設定を考慮した上で、ネットリストの修正手順について、実施例の回路500を例に挙げて詳細に説明する。図9は、ネットリスト修正の手順を示すフローチャートである。図9のフローチャートにおいて、まず、FFを起点にバックトレースを開始する(ステップS901)。
つぎに、上述した論理式の構成と、属性設定を考慮した上で、ネットリストの修正手順について、実施例の回路500を例に挙げて詳細に説明する。図9は、ネットリスト修正の手順を示すフローチャートである。図9のフローチャートにおいて、まず、FFを起点にバックトレースを開始する(ステップS901)。
つぎに、いずれかの論理セルに到達したか否かを判断する(ステップS902)。ここで、論理セルに到達するまで待ち(ステップS902:Noのループ)、論理セルに到達したと判断されると(ステップS902:Yes)、到達した論理セルから論理式を構成する(ステップS903)。図5の場合、到達した論理セルは、OR1(論理和)であるので wire6=wire4+wire5となる。
つぎに、入力wireの属性がLまたはNか否かを判断する(ステップS904)。ここで、入力wireの属性がLまたはNであった場合(ステップS904:Yes)、到達した論理セルを起点に、さらにバックトレースをおこない(ステップS905)、テストクロックが到達する条件となる論理式を構成する(ステップS906)。なお、ステップS904において、入力wireの属性がLまたはNでなかった場合(ステップS904:No)、バックトレースする必要がないため、そのままステップS907の処理に移行する。
図5の場合、wire4、wire5はそれぞれ属性“L”と“N”となる(図4−4参照)。したがって、wire4=wire0・wire1、wire5=wire2・wire3となるため、wire6=(wire0・wire1)+(wire2・wire3)となる。
つぎに、クロックA(clockA)がテストクロックとなるので、wire6=wire1となる。そして、テストクロックと論理積で括られた項は“1”、テストクロックと論理和で括られた項は“0”に置き換える(ステップS907)。上述のwire0は、wire1と論理積で括られているのでwire0=1となる。そして、(wire2・wire3)はwire1と論理和で括られているので、(wire2・wire3)=0となる。そして、配線属性を確認するとwire2は属性“O”であり、wire3は属性“C”である。したがって、属性“O”のwireをすべて“0”にすると、(0・wire3)=0が成り立つので、wire2=0となる。
その後、信号が固定する箇所をテストモード信号に置き換える(ステップS908)。具体的には、テストモード信号(TEST)への置き換えは、“1”に固定する場合はTEST信号と論理和を取る。また、“0”に固定する場合は、テストモード信号(TEST)の反転との論理積を取る。すなわち、wire0→wire0+TESTとなり、wire1→wire1・TESTの反転値となる。
結果として、wire6=((wire0+TEST)・wire1)+((wire2・TEST)・wire3)となる。すなわち、「(wire0+TEST)」と(wire2・TEST)とが、図6におけるテスト機構601として追加された構成となる。最後に、テストモードにおいて、テストクロックと接続されたwire(wire4、wire6)の属性を“L”から“T”に変更することで(ステップS909)、ネットリストの修正処理が終了する。
以上説明したように、本実施の形態にかかるテスト回路設計処理を適用させることによって、実施例のように、ネットリスト101をあらわす論理式を構成することによって、テスト機構601を含んだ回路600のテスト用ネットリスト102を容易に生成することができる。ここで生成されたテスト用ネットリスト102に基づいて構成したテスト回路によって動作テストをおこなえば、内部のクロックを利用するため、従来のようなセレクタを挿入する必要がなくなり、クロックの遅延を増大させることなく、高精度のテストクロックによって動作テストを実現することができる。
なお、本実施の形態で説明したテスト回路設計方法は、あらかじめ用意されたプログラムをパーソナル・コンピュータやワークステーションなどのコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVDなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、このプログラムは、インターネットなどのネットワークを介して配布することが可能な媒体であってもよい。
また、本実施の形態で説明したテスト回路設計装置100は、スタンダードセルやストラクチャードASIC(Application Specific Integrated Circuit)などの特定用途向けIC(以下、単に「ASIC」と称す。)やFPGAなどのPLD(Programmable Logic Device)によっても実現することができる。具体的には、たとえば、上述したテスト回路設計装置100の機能(抽出部221〜出力部224)をHDL記述によって機能定義し、そのHDL記述を論理合成してASICやPLDに与えることにより、テスト回路設計装置100を製造することができる。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)コンピュータを、
テスト対象回路のネットリストの中からテスト対象となるFF(フリップ・フロップ)が指定されると、当該FFから、当該FFへ入力されるクロックの各入力端子までの配線状態をあらわす論理式を抽出する抽出手段、
前記各入力端子の中の一の入力端子から入力されるクロックを前記FFのテストクロックとして利用する場合、前記抽出手段によって抽出された論理式と前記ネットリストとを参照して前記一の入力端子から入力されるクロックを前記FFまで透過させるテスト機構を構成する構成手段、
前記構成手段によって構成されたテスト機構を前記テスト対象回路のネットリストに追加したテスト用ネットリストを生成する生成手段、
前記生成手段によって生成されたテスト用ネットリストを出力する出力手段、
として機能させることを特徴とするテスト回路設計プログラム。
テスト対象回路のネットリストの中からテスト対象となるFF(フリップ・フロップ)が指定されると、当該FFから、当該FFへ入力されるクロックの各入力端子までの配線状態をあらわす論理式を抽出する抽出手段、
前記各入力端子の中の一の入力端子から入力されるクロックを前記FFのテストクロックとして利用する場合、前記抽出手段によって抽出された論理式と前記ネットリストとを参照して前記一の入力端子から入力されるクロックを前記FFまで透過させるテスト機構を構成する構成手段、
前記構成手段によって構成されたテスト機構を前記テスト対象回路のネットリストに追加したテスト用ネットリストを生成する生成手段、
前記生成手段によって生成されたテスト用ネットリストを出力する出力手段、
として機能させることを特徴とするテスト回路設計プログラム。
(付記2)前記構成手段は、前記コンピュータを、
前記抽出手段によって抽出された論理式において前記FFへの入力と、前記一の入力端子への入力とが等しくなる条件を算出する算出手段として機能させ、前記算出手段によって算出された条件を満たすための論理素子を含んだ配線状態をテスト機構として構成することを特徴とする付記1に記載のテスト回路設計プログラム。
前記抽出手段によって抽出された論理式において前記FFへの入力と、前記一の入力端子への入力とが等しくなる条件を算出する算出手段として機能させ、前記算出手段によって算出された条件を満たすための論理素子を含んだ配線状態をテスト機構として構成することを特徴とする付記1に記載のテスト回路設計プログラム。
(付記3)前記算出手段は、前記論理式にテストモード制御信号を入力するための入力端子を追加し、当該テストモード制御信号が特定の値の場合に、前記一の入力端子から入力されるクロックと前記FFへ入力されるクロックとが等しくなる条件を算出することを特徴とする付記2に記載のテスト回路設計プログラム。
(付記4)前記コンピュータをさらに、
前記各入力端子に入力されるクロックの中から、動作テスト用のクロック周波数に最も近い周波数のクロックの入力端子を前記一の入力端子に設定する設定手段として機能させることを特徴とする付記1〜3のいずれか一つに記載のテスト回路設計プログラム。
前記各入力端子に入力されるクロックの中から、動作テスト用のクロック周波数に最も近い周波数のクロックの入力端子を前記一の入力端子に設定する設定手段として機能させることを特徴とする付記1〜3のいずれか一つに記載のテスト回路設計プログラム。
(付記5)前記抽出手段は、前記指定されたFFをバックトレースして当該FFから当該FFへ入力されるクロックの各入力端子までの配線状態をあらわす論理式を抽出することを特徴とする付記1〜4のいずれか一つに記載のテスト回路設計プログラム。
(付記6)テスト対象回路のネットリストの中からテスト対象となるFF(フリップ・フロップ)が指定されると、当該FFから、当該FFへ入力されるクロックの各入力端子までの配線状態をあらわす論理式を抽出する抽出手段と、
前記各入力端子の中の一の入力端子から入力されるクロックを前記FFのテストクロックとして利用する場合、前記抽出手段によって抽出された論理式と前記ネットリストとを参照して前記一の入力端子から入力されるクロックを前記FFまで透過させるテスト機構を構成する構成手段と、
前記構成手段によって構成されたテスト機構を前記テスト対象回路のネットリストに追加したテスト用ネットリストを生成する生成手段と、
前記生成手段によって生成されたテスト用ネットリストを出力する出力手段と、
を備えることを特徴とするテスト回路設計装置。
前記各入力端子の中の一の入力端子から入力されるクロックを前記FFのテストクロックとして利用する場合、前記抽出手段によって抽出された論理式と前記ネットリストとを参照して前記一の入力端子から入力されるクロックを前記FFまで透過させるテスト機構を構成する構成手段と、
前記構成手段によって構成されたテスト機構を前記テスト対象回路のネットリストに追加したテスト用ネットリストを生成する生成手段と、
前記生成手段によって生成されたテスト用ネットリストを出力する出力手段と、
を備えることを特徴とするテスト回路設計装置。
(付記7)コンピュータが、
テスト対象回路のネットリストの中からテスト対象となるFF(フリップ・フロップ)が指定されると、当該FFから、当該FFへ入力されるクロックの各入力端子までの配線状態をあらわす論理式を抽出する抽出工程と、
前記各入力端子の中の一の入力端子から入力されるクロックを前記FFのテストクロックとして利用する場合、前記抽出工程によって抽出された論理式と前記ネットリストとを参照して前記一の入力端子から入力されるクロックを前記FFまで透過させるテスト機構を構成する構成工程と、
前記構成工程によって構成されたテスト機構を前記テスト対象回路のネットリストに追加したテスト用ネットリストを生成する生成工程と、
前記生成工程によって生成されたテスト用ネットリストを出力する出力工程と、
を実行することを特徴とするテスト回路設計方法。
テスト対象回路のネットリストの中からテスト対象となるFF(フリップ・フロップ)が指定されると、当該FFから、当該FFへ入力されるクロックの各入力端子までの配線状態をあらわす論理式を抽出する抽出工程と、
前記各入力端子の中の一の入力端子から入力されるクロックを前記FFのテストクロックとして利用する場合、前記抽出工程によって抽出された論理式と前記ネットリストとを参照して前記一の入力端子から入力されるクロックを前記FFまで透過させるテスト機構を構成する構成工程と、
前記構成工程によって構成されたテスト機構を前記テスト対象回路のネットリストに追加したテスト用ネットリストを生成する生成工程と、
前記生成工程によって生成されたテスト用ネットリストを出力する出力工程と、
を実行することを特徴とするテスト回路設計方法。
100 テスト回路設計装置
101 ネットリスト
102 テスト用ネットリスト
110 テスト対象回路
111 テスト対象FF(フリップフロップ)
120 修正したテスト対象回路
221 抽出部
222 構成部
223 生成部
224 出力部
101 ネットリスト
102 テスト用ネットリスト
110 テスト対象回路
111 テスト対象FF(フリップフロップ)
120 修正したテスト対象回路
221 抽出部
222 構成部
223 生成部
224 出力部
Claims (5)
- コンピュータを、
テスト対象回路のネットリストの中からテスト対象となるFF(フリップ・フロップ)が指定されると、当該FFから、当該FFへ入力されるクロックの各入力端子までの配線状態をあらわす論理式を抽出する抽出手段、
前記各入力端子の中の一の入力端子から入力されるクロックを前記FFのテストクロックとして利用する場合、前記抽出手段によって抽出された論理式と前記ネットリストとを参照して前記一の入力端子から入力されるクロックを前記FFまで透過させるテスト機構を構成する構成手段、
前記構成手段によって構成されたテスト機構を前記テスト対象回路のネットリストに追加したテスト用ネットリストを生成する生成手段、
前記生成手段によって生成されたテスト用ネットリストを出力する出力手段、
として機能させることを特徴とするテスト回路設計プログラム。 - 前記構成手段は、前記コンピュータを、
前記抽出手段によって抽出された論理式において前記FFへの入力と、前記一の入力端子への入力とが等しくなる条件を算出する算出手段として機能させ、前記算出手段によって算出された条件を満たすための論理素子を含んだ配線状態をテスト機構として構成することを特徴とする請求項1に記載のテスト回路設計プログラム。 - 前記算出手段は、前記論理式にテストモード制御信号を入力するための入力端子を追加し、当該テストモード制御信号が特定の値の場合に、前記一の入力端子から入力されるクロックと前記FFへ入力されるクロックとが等しくなる条件を算出することを特徴とする請求項2に記載のテスト回路設計プログラム。
- テスト対象回路のネットリストの中からテスト対象となるFF(フリップ・フロップ)が指定されると、当該FFから、当該FFへ入力されるクロックの各入力端子までの配線状態をあらわす論理式を抽出する抽出手段と、
前記各入力端子の中の一の入力端子から入力されるクロックを前記FFのテストクロックとして利用する場合、前記抽出手段によって抽出された論理式と前記ネットリストとを参照して前記一の入力端子から入力されるクロックを前記FFまで透過させるテスト機構を構成する構成手段と、
前記構成手段によって構成されたテスト機構を前記テスト対象回路のネットリストに追加したテスト用ネットリストを生成する生成手段と、
前記生成手段によって生成されたテスト用ネットリストを出力する出力手段と、
を備えることを特徴とするテスト回路設計装置。 - コンピュータが、
テスト対象回路のネットリストの中からテスト対象となるFF(フリップ・フロップ)が指定されると、当該FFから、当該FFへ入力されるクロックの各入力端子までの配線状態をあらわす論理式を抽出する抽出工程と、
前記各入力端子の中の一の入力端子から入力されるクロックを前記FFのテストクロックとして利用する場合、前記抽出工程によって抽出された論理式と前記ネットリストとを参照して前記一の入力端子から入力されるクロックを前記FFまで透過させるテスト機構を構成する構成工程と、
前記構成工程によって構成されたテスト機構を前記テスト対象回路のネットリストに追加したテスト用ネットリストを生成する生成工程と、
前記生成工程によって生成されたテスト用ネットリストを出力する出力工程と、
を実行することを特徴とするテスト回路設計方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008199440A JP2010039611A (ja) | 2008-08-01 | 2008-08-01 | テスト回路設計プログラム、テスト回路設計装置およびテスト回路設計方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008199440A JP2010039611A (ja) | 2008-08-01 | 2008-08-01 | テスト回路設計プログラム、テスト回路設計装置およびテスト回路設計方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2010039611A true JP2010039611A (ja) | 2010-02-18 |
Family
ID=42012118
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008199440A Pending JP2010039611A (ja) | 2008-08-01 | 2008-08-01 | テスト回路設計プログラム、テスト回路設計装置およびテスト回路設計方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2010039611A (ja) |
-
2008
- 2008-08-01 JP JP2008199440A patent/JP2010039611A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2006190209A (ja) | 検証支援プログラム、記録媒体、検証支援装置、および検証支援方法 | |
JP4759392B2 (ja) | 検証支援プログラム、該プログラムを記録した記録媒体、検証支援装置、および検証支援方法 | |
JP5098970B2 (ja) | リーク電流分布検証支援プログラム、リーク電流分布検証支援装置およびリーク電流分布検証支援方法 | |
US8661384B2 (en) | Verification support apparatus, verifying apparatus, computer product, verification support method, and verifying method | |
JP2006252438A (ja) | 検証支援装置、検証支援方法、検証支援プログラム、および記録媒体 | |
US20110295536A1 (en) | Clock jitter analyzing method and apparatus | |
US8135557B2 (en) | Apparatus for testing semiconductor integrated circuit and method for testing semiconductor integrated circuit | |
JP4471794B2 (ja) | タイミング解析装置、タイミング解析方法、タイミング解析プログラムおよび記録媒体 | |
JP5316405B2 (ja) | Lsi試験装置、lsi試験方法、lsi試験プログラムおよび記録媒体 | |
US7911466B2 (en) | Method and apparatus for editing timing diagram, and computer product | |
WO2009110615A1 (ja) | 半導体集積回路の設計装置、半導体集積回路の設計方法、並びに半導体集積回路を設計するコンピュータ・プログラム | |
JP2010039611A (ja) | テスト回路設計プログラム、テスト回路設計装置およびテスト回路設計方法 | |
JP2009076679A (ja) | 設計支援プログラム、該プログラムを記録したコンピュータに読み取り可能な記録媒体、設計支援装置、および設計支援方法 | |
JPWO2006025412A1 (ja) | 論理検証方法、論理モジュールデータ、デバイスデータおよび論理検証装置 | |
JP2008004024A (ja) | レイアウト設計プログラム、該プログラムを記録した記録媒体、レイアウト設計装置、およびレイアウト設計方法 | |
JP4231837B2 (ja) | クロックツリー生成装置、クロックツリー生成方法、クロックツリー生成プログラムおよび記録媒体 | |
US20080209368A1 (en) | Layout design method, layout design apparatus, and computer product | |
JP4649356B2 (ja) | 消費電力算出プログラム、記録媒体、消費電力算出方法、および消費電力算出装置 | |
JP5278271B2 (ja) | 設計支援プログラム、設計支援装置および設計支援方法 | |
JP2006344165A (ja) | レイアウト設計装置、レイアウト設計方法、レイアウト設計プログラム、および記録媒体 | |
JP4759419B2 (ja) | 遅延解析プログラム、記録媒体、遅延解析方法、および遅延解析装置 | |
JP2003067438A (ja) | シミュレーションモデルの生成方法及びシミュレーション方法及びその記録媒体 | |
WO2010140216A1 (ja) | 設計支援方法、設計支援装置、設計支援プログラム、および半導体集積回路 | |
Stroud | AUSIM: Auburn University SIMulator-Version L2. 2 | |
JP5263066B2 (ja) | 設計支援プログラム、設計支援装置、および設計支援方法 |