JP2006058048A - パターン生成プログラムの最適化方法、プログラムおよび信号生成装置 - Google Patents
パターン生成プログラムの最適化方法、プログラムおよび信号生成装置 Download PDFInfo
- Publication number
- JP2006058048A JP2006058048A JP2004237882A JP2004237882A JP2006058048A JP 2006058048 A JP2006058048 A JP 2006058048A JP 2004237882 A JP2004237882 A JP 2004237882A JP 2004237882 A JP2004237882 A JP 2004237882A JP 2006058048 A JP2006058048 A JP 2006058048A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- signal
- pattern
- program
- pattern generation
- 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
- 238000000034 method Methods 0.000 title claims abstract description 45
- 238000005457 optimization Methods 0.000 title claims abstract description 27
- 238000003860 storage Methods 0.000 claims abstract description 24
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 claims description 29
- 238000012545 processing Methods 0.000 claims description 23
- 230000008859 change Effects 0.000 claims description 18
- 238000011161 development Methods 0.000 claims description 6
- 230000008569 process Effects 0.000 description 15
- 230000006870 function Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 230000014759 maintenance of location Effects 0.000 description 5
- 238000012360 testing method Methods 0.000 description 3
- 238000012804 iterative process Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 102100036464 Activated RNA polymerase II transcriptional coactivator p15 Human genes 0.000 description 1
- 101000713904 Homo sapiens Activated RNA polymerase II transcriptional coactivator p15 Proteins 0.000 description 1
- 229910004444 SUB1 Inorganic materials 0.000 description 1
- 229910004438 SUB2 Inorganic materials 0.000 description 1
- 101100311330 Schizosaccharomyces pombe (strain 972 / ATCC 24843) uap56 gene Proteins 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 101150018444 sub2 gene Proteins 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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/31813—Test pattern generators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/22—Microcontrol or microprogram arrangements
- G06F9/26—Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
- G06F9/261—Microinstruction address formation
-
- 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
- G01R31/318314—Tools, e.g. program interfaces, test suite, test bench, simulation hardware, test compiler, test program languages
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Tests Of Electronic Circuits (AREA)
- Devices For Executing Special Programs (AREA)
- Advance Control (AREA)
Abstract
【課題】冗長化を防止しつつ、デフォルトが生じないパターン生成プログラムの最適化方法を提供する。
【解決手段】上記課題は、パターン生成プログラムに基づいて信号パターンを生成する生成手段と、前記信号パターンを格納する記憶手段と、前記記憶手段に格納された前記信号パターンを所定周期毎に出力する出力手段とを備える信号生成装置に用いられる前記パターン生成プログラムの最適化方法であって、前記パターン生成プログラムの命令ごとに、当該命令が展開必要か判断する判断ステップと、前記命令を展開する展開ステップとを含む最適化方法により解決される。
【選択図】図1
【解決手段】上記課題は、パターン生成プログラムに基づいて信号パターンを生成する生成手段と、前記信号パターンを格納する記憶手段と、前記記憶手段に格納された前記信号パターンを所定周期毎に出力する出力手段とを備える信号生成装置に用いられる前記パターン生成プログラムの最適化方法であって、前記パターン生成プログラムの命令ごとに、当該命令が展開必要か判断する判断ステップと、前記命令を展開する展開ステップとを含む最適化方法により解決される。
【選択図】図1
Description
本発明は、ディジタルパターン信号生成装置のパターン生成プログラムの最適化に関し、特に先入れ先出しメモリ(FIFOメモリ)を備える信号生成装置のパターン生成プログラムの最適化方法、プログラムおよび信号生成装置に関する。
ディジタル信号処理機能をもつ半導体素子やボードなどのディジタル回路は、一般に、外部から所定パターンのディジタル信号を入力して、回路の動作制御を行ったり、出力信号を検出して機能試験を行うことが多い。このような制御や試験では、外部入力信号として複数種の信号パターンが必要となることが多く、また制御条件や試験条件の変更に対応して柔軟に信号パターンを変更することが必要となる。このため、ディジタル信号パターンを生成する信号生成装置は、生成する信号パターンを記述したプログラムをプロセッサで実行することによって信号パターンを生成する方式が主流である。
図2に従来の代表的な信号生成装置を示す。信号生成装置26は、メモリ20、メモリ20に接続されたプロセッサ23、およびプロセッサ23の出力が接続された信号出力回路24で構成されている。メモリ20には、信号パターンを記述したパターン生成プログラム21と基本となる信号パターンのパターンデータ22が格納されている。パターン生成プログラム21とパターンデータ22の一例を、それぞれ図3(a)および(b)に示す。プロセッサ23は、クロック信号に同期してパターン生成プログラム21を実行して信号パターンを生成する。信号出力回路24は、プロセッサ23により生成された信号パターンを、制御や試験の対象となるデバイス25にあった信号レベルの電気信号に変換してデバイス25に出力する。
次に、図2の信号生成装置25の動作を、図3のパターン生成プログラムの実行時の動作を例に説明を行う。図4はクロック信号ごとの実行命令を表した図であり、信号パターンがデバイス25に出力されるクロックを下線で示した。なお、図3(a)のプログラムにおいて、DATA命令は、パターンデータ22の中から引数で示されるパターンデータを生成する命令である。LOOP命令は、LOOP命令からLOOP END命令までの命令を引数の回数だけ繰り返す繰返命令である。JSR命令は、引数のサブルーチンの実行命令である。STOP命令は、プログラムの終了を示す命令である。
パターン生成プログラムが実行されると、最初のクロック(クロック1)でステップ30のDATA命令が実行され、プロセッサ23がパターンデータ22のDATA0に格納されている信号パターン「0000」を生成する。次のクロック(クロック2)では、ステップ31のLOOP命令が実行され、LOOP命令(ステップ31)からLOOP END命令(ステップ34)までのステップを3回繰り替えすように設定される。クロック3では、ステップ32のJSR命令が実行され、サブルーチンSUB1(ステップ36、37)が呼び出される。この呼出によって、クロック4ではステップ36のDATA命令が実行され、パターンデータ22のDATA1に格納されている信号パターン「1010」が生成される。クロック5では、ステップ37のRTN命令が実行され、サブルーチンからメインルーチンへ復帰する。
クロック6から8まではサブルーチンSUB2について、同様な動作を行ってパターンデータ22のDATA2に格納されている信号パターン「1111」が生成される。クロック9ではLOOP END命令により、繰返回数の判定と繰返処理が行われる。この時点では、ステップ31〜34の繰返しは1回しか実行されていないため、ステップ32に戻って2回目の繰返内容を実行する。クロック10〜16の2回目の繰返し、クロック17〜23の3回目の繰返しが終了すると、クロック24でSTOP命令により、パターン生成プログラムが終了する。
図4から明らかなように、図3(a)のパターン生成プログラムの実行には24クロックの時間が必要となる。この間、下線で示したクロック1、4、7、11、14、18、21のときに信号パターンが生成される。ここで、各信号パターンが生成されるタイミングに着目すると、クロック1の信号パターンが生成されてからクロック4の信号パターンが生成されるまでの時間間隔は3クロックであるのに対して、クロック7の信号パターンが生成されてからクロック11の信号パターンが生成されるまでの時間間隔は4クロックである。このように、図2の信号生成装置26で図3のパターン生成プログラムを実行すると、パターン生成間隔が一定間隔にならないという問題が生ずる。
この問題に対して、図5に示すようにDATA命令のみでパターン生成プログラム21を記述することにより、パターン生成間隔を一定にする方法が考えられる。この方法では、DATA命令間に他の命令の処理を行う必要がないため、DATA命令の処理時間(1クロック)と同じ時間間隔で信号パターンを出力することができる。しかし、信号パターンの長さに比例してパターン生成プログラム21が長くなるため、同一の信号パターンを幾度も繰返す場合には、パターン生成プログラムが冗長となり、大容量のメモリ20が必要となるという問題がある。
また、特許文献1記載の技術のように、プログラム中に所定時間の待機命令(NOP命令)を適切に配置することにより、信号パターン発生周期を一定にする技術がある。しかし、命令の実行に必要な時間は、パターン生成プログラム21のコンパイラやプロセッサ23の種類毎に異なるため、信号生成装置26の特性に応じたパターン生成プログラム21を装置毎に作成せねばならない。また、信号生成タイミングを考慮しながらプログラミングを行う必要があるため、高度なプログラミング技術が必要となる。さらに、この方法では、最も信号生成時間間隔が長いタイミングに残り信号パターンの生成タイミングをあわせることになるため、信号パターンの最大周波数が、クロック信号周波数の数分の一から数十分の一になってしまうという問題がある。
そこで、図6の信号生成装置60ように、出力段にFIFOメモリ62を設ける方法がある。信号生成装置60と図2の信号生成装置26とは、プロセッサ61の出力と信号出力回路24の間にFIFOメモリ62が設けられていることと、FIFOメモリ62が満杯になったときには、プロセッサ61が動作を停止する機能を有する点が異なるが、他の構成要素の動作は同じである。
信号生成装置60は、デバイス25への信号パターン出力に先立って信号パターンを生成し、FIFOメモリ62に所定数の信号パターンが格納された時点で、順次、信号パターンを出力する。プロセッサ61の信号生成速度よりFIFOメモリ62からの出力速度の方が速い場合には、プロセッサ61は再停止することなく信号生成を行うが、DATA命令が連続してFIFOメモリ62が満杯になった場合には、プロセッサ61はFIFOメモリ62に空き容量ができるまで動作を停止する。
このように、図6の信号生成装置60では、プロセッサ61が生成した信号パターンをいったんFIFOメモリ62に格納し、FIFOメモリ62から一定周期でデバイス25に信号パターンを出力するため、パターン生成プログラム21の作成の際に、信号生成タイミングを考慮する必要がない。また、予めFIFOメモリ62に信号パターンを格納してから信号出力を開始するため、プロセッサ61の図2の信号生成装置26よりも高い周波数で信号パターンを出力することが可能となる。
ところで、FIFOメモリ62の容量は有限であることから、複雑な構造をもつパターン生成プログラム21を実行すると、信号パターンの生成が追いつかずに、プログラムの実行途中でFIFOメモリ62が空の状態になってしまい、一定周期で信号パターンを出力することができなくなってしまう(デフォルト)。デフォルトを防止するため大容量のFIFOメモリ62を搭載すると、装置の大型化、複雑化、コストアップを招く。そこで、FIFOメモリ62の容量やパターン生成とパターン出力の速度比などのシステム特性にあわせて、パターン生成プログラム21を最適化する必要がある。
本発明は、パターン生成プログラムに基づいて信号パターンを生成する生成手段と、前記信号パターンを格納する記憶手段と、前記記憶手段に格納された前記信号パターンを所定周期毎に出力する出力手段とを備える信号生成装置に用いられる前記パターン生成プログラムの最適化方法であって、前記パターン生成プログラムの命令ごとに、当該命令が展開必要か判断する判断ステップと、前記命令を展開する展開ステップとを含む最適化方法により、上記課題を解決する。
すなわち、パターン生成プログラム21を実行する前に、プログラムの各命令ごとに、該命令の実行によるFIFOメモリ62のパターン格納数の変化を調べて、デフォルトが起こる可能性がある命令のみを簡素化する。繰返命令やサブルーチン命令は、命令自体だけでデフォルトの有無や最適化構造を判断することができないため、繰返内容や呼び出されるサブルーチンの内容を調べて判断を行う必要がある。
本発明により、パターン生成プログラムを、冗長化を防止しつつ、デフォルトを解消することができる。
以下に図面を参照して、本発明の好適実施態様となる信号生成装置について詳細に説明する。
図7は、本発明を利用した信号生成装置80の概略構成図である。図7の各構成要素うち、図2や図6の構成要素と同等または類似の機能を有するものについては、同じ符号をふった。
信号生成装置80は、メモリ81(第2の記憶手段)と、メモリ81に接続されたプロセッサ61(生成手段)と、プロセッサ81の出力に接続されたFIFOメモリ62(第1の記憶手段)と、FIFOメモリ62の出力に接続された信号出力回路24(出力手段)により構成されている。信号生成装置80の出力は、デバイス25の信号パターン入力に接続されている。
図7は、本発明を利用した信号生成装置80の概略構成図である。図7の各構成要素うち、図2や図6の構成要素と同等または類似の機能を有するものについては、同じ符号をふった。
信号生成装置80は、メモリ81(第2の記憶手段)と、メモリ81に接続されたプロセッサ61(生成手段)と、プロセッサ81の出力に接続されたFIFOメモリ62(第1の記憶手段)と、FIFOメモリ62の出力に接続された信号出力回路24(出力手段)により構成されている。信号生成装置80の出力は、デバイス25の信号パターン入力に接続されている。
メモリ81には、信号パターンを記述したパターン生成プログラム21と、基本信号パターンのパターンデータ22と、本発明の方法によりパターン生成プログラム21を最適化するための最適化プログラム82が格納されている。パターン生成プログラム21とパターンデータ22の一例を、それぞれ図3(a)および(b)に示す。
プロセッサ61は、クロック信号に従って、パターン生成プログラム21や最適化プログラム82を実行する。本実施例で用いたプロセッサ61は、いずれの命令も1クロックで処理する機能を有する。本実施例の信号生成装置80のプロセッサ61も、図6の信号生成装置60のと同様に、FIFOメモリ62が満杯のときには、空き容量ができるまで動作を停止する機能を有する。
FIFOメモリ62は、プロセッサ61からの書き込み要求に応じて、クロック信号に同期してプロセッサ61からの信号パターンを入力して格納する。また、信号出力回路24は、読み出しクロックに同期して格納された信号パターンを順次出力する。本実施例では、プロセッサ61のクロック信号を1/2に分周(半分の周波数)したクロック信号を読み出しクロックとして利用している。なお、読み出しクロックの生成方法については、プロセッサ61のクロック信号を分周してそのまま利用してもよいし、プロセッサ61とクロック信号と非同期の信号を利用してもよい。
次に、図7の信号生成装置80の動作を説明する。はじめに、プロセッサ61が最適化プログラム82を実行し、パターン生成プログラム21の実行中にデフォルトが発生しないように、パターン生成プログラム21の最適化を行う。次に、プロセッサ61が最適化されたパターン生成プログラム21を実行し、信号パターンを生成する。生成された信号パターンは、順次、FIFOメモリ62に格納される。FIFOメモリ62に所定の数の信号パターンが格納されたところで、信号出力回路24はデバイス25への信号出力を開始する。DATA命令が連続してFIFOメモリ62が満杯になった場合には、FIFOメモリ62に空き容量ができるまでプロセッサ61の動作を再停止する。以上により、プロセッサ61の信号パターン生成タイミングに拘わらず、FIFOメモリ62の読み出しクロックによる一定周期の信号パターンを得ることができる。
なお、以下の説明において、サブルーチン呼出命令(JSR命令)自体をサブルーチンのヘッダ、復帰命令(RTN命令)をサブルーチンのテイル、復帰命令以外のサブルーチンの内容をサブルーチンのボディーと呼ぶ。また、繰返命令(LOOP命令)自体を繰返のヘッダ、繰返終了命令(LOOP END命令)を繰返のテイル、LOOP命令とLOOP END命令の間にあるル繰返内容を繰返のボディーと呼ぶ。さらに、パターン生成命令(DATA命令)は、DATA命令自体をボディーと呼ぶ。
サブルーチンのヘッダ、ボディーおよびテイルを処理する間に、FIFOメモリ62に格納される信号パターンの数の変化量をそれぞれHj、B、Tjと表す。FIFOメモリ62に格納される信号パターンの数の変化量とは、当該命令の実行中にFIFOメモリ62に格納される数から、信号出力回路24により出力される数を差し引いた理論値である。本実施例の信号生成装置80では、いずれの命令も1クロックで実行され、2クロック毎に信号出力回路24から信号パターンから出力されることから、DATA命令では0.5増加し、DATA命令以外の命令では0.5減少することになる。従って、HjとTjは−0.5の固定値、Bはサブルーチンの内容によって変動する変数である。
同様に、繰返のヘッダ、ボディーおよびテイルにおいてFIFOメモリ62に格納される信号パターンの数の変動量を、それぞれHl、B、Tlと表す。本実施例においては、Hl=Tl=−0.5の固定値であり、Bは繰返内容により変動する変数である。さらに、DATA命令のボディーをBdと表す。Bdは単一命令であることから固定値(+0.5)である。以上をまとめたものを表1に示す。
次に、図3(a)のパターン生成プログラム21の最適化を例にとり、図1、図8および図9のフローチャート参照下に、最適化プログラム82による最適化方法について説明を行う。図1は、最適化プログラム82のメインルーチンのフローチャートである。図8は、サブルーチン呼出命令(JSR命令)について展開が必要が判断し、必要であれば展開を実施するJSRルーチン103のフローチャートである。図9は、繰返命令(LOOP命令)について、展開が必要か否かを判断し、必要であれば展開を実施するLOOPルーチン104のフローチャートである。
なお、以下の説明おいて、図3、図4等のようなプログラムにおけるステップ番号と、図1、図6等のようなフローチャートにおけるステップ番号の混同を避けるため、フローチャートにおけるステップ番号を「フローチャート100」のように表記する。
フローチャートの変数のうち、RはFIFOメモリ62に格納されている信号パターンの数である。通常はパターン生成プログラム21実行時点でFIFOメモリ62は空であるためRは0に初期設定されるが、いくつかのパターン生成プログラムを連続して実行する場合や予めFIFOメモリ62に所定数の信号パターンを格納してからプログラムを実行する場合には、R≠0となる。本実施例ではFIFOメモリ62に2つの信号パターンが格納されている状態からパターン生成プログラム21を実行する条件で最適化を行うため、Rの初期値を2とする。
RiおよびCは、それぞれR、Bの退避変数である。また、Mはボディーの実行中(繰返命令の場合は1回目の実行中)に、各処理ルーチンの開始時点を基準として、FIFOメモリ62の格納数が最小となる値である。なお、変数BやMはローカル変数であるため、ルーチン間での変数値の授受はなく、ルーチン実行中に異なるルーチンが呼び出されると、現在値をメモリにスタックして、復帰時に当該スタック値を読み出して代入される。
最適化プログラム82は、まずR値を2に初期設定する(フローチャート100)。次に最初の命令種別を判定する(フローチャート101)。最初の命令はステップ30のDATA命令であるから、C=Bd(=0.5)を代入して(フローチャート102)、Rに加える(フローチャート107)。この結果、R=2.5となる。
次の命令はステップ31のLOOP命令であることから、LOOPルーチン104を実行する。LOOPルーチンでは、まず変数を初期設定する(フローチャート130)。次に、繰返の実行(ステップ31〜34)によるR値の変動量と第1回目の繰返実行時のM値(B値の最小値)を求めるために、繰返内容の解析を行う。まず、ステップ32の命令種別を判定する(フローチャート131)。ステップ32は、JSR命令であることから、JSRルーチン103を呼び出す。なお、ステップ31のLOOP命令実行によってR値はHl(=−0.5)だけ変動するため、JSRルーチンを処理する際のRの初期値は2である。
JSRルーチンでは、まず変数を初期設定する(フローチャート110)。次に、サブルーチン実行時における、FIFOメモリ62に格納された信号パターンの数の最小値Mを求める。まず、サブルーチン内容の最初の命令種別を判定する(フローチャート111)。ステップ36はDATA命令なので、C=Bd(=0.5)を代入して(フローチャート112)、BとRに加える(フローチャート115)。B=0.5となりM=0より大きいため、次の命令の分析に移行する。もし、ステップ36がFIFOメモリ62に格納されている信号パターン数が減少する処理の場合には、M≧Bとなり(フローチャート116)、MにBの値が代入される(フローチャート117)。これにより、Mにはサブルーチン実行時におけるBの最小値が記録されることになる。
ふたたび、図3のプログラムの動作説明に戻る。ステップ37は、サブルーチンの終了を示すRTN命令である。よって、この時点で、B値にはサブルーチン内容の処理によるR値の変動量が、M値にはB値の最小値が格納されている。そこで、まずJSRルーチンのスタート時の信号パターン格納数RiにMを加えた値を評価する(フローチャート118)。この値が0より小さい場合にはサブルーチンを展開(サブルーチン命令をサブルーチン内容で置き換えること)してもデフォルト状態を解消することができない。従って、この場合にはエラー表示をおこなって(フローチャート124)、最適化プログラムの実行を終了する(フローチャート125)。
本実施例の場合にはRi+M=2であるため、最適化可能である。そこで、次に展開が必要か否かを判断するために、呼出及び復帰処理を含めたサブルーチン全体の信号パターン格納数の変化量(Hj+B+Tj)の評価を行う(フローチャート119)。Hj+B+Tj値が0より大きい場合には、サブルーチンの実行により信号パターン格納数が増加するため、展開の必要がない。この場合には、Cにサブルーチン処理実行時に信号パターン格納数の変化量(Hj+B+Tj)を代入して(フローチャート122)、JSRルーチンを終了する(フローチャート123)。
本実施例の場合には、Hj+B+Tj=−0.5<0であるため、ステップ32のJSR命令をステップ36のサブルーチン内容に置き換える(フローチャート120)。展開よって、サブルーチン呼出処理と復帰処理が無くなるため、信号パターン格納数の変化量はサブルーチン内容の実行時の変化量B(=0.5)となる。この値をCに代入して(フローチャート121)、JSRルーチンを終了してLOOPルーチンへ復帰する(フローチャート123)。以上で、ステップ31〜34の繰返処理のうち、ステップ32の最適化処理が終了する。
復帰したLOOPルーチンにおいて、まずC値をB値とR値に加算する(フローチャート135)。C=0.5であるから、B=0.5、R=2.5となる。その後、M値とB値を比較する(フローチャート136)。M≧Bの場合にはMにBが代入されるが(フローチャート1347)、この時点でM値は0であるから、M<Bとなり代入は行われない。
ステップ33はJSR命令であるため、ステップ32と同様にJSRルーチンを実行する。その結果、ステップ33はステップ32と同様に展開される。この最適化により、ステップ33実行後のB値は1、R値は3となる(フローチャート135)。ステップ34は、繰返命令の終了を示すLOOP END命令である。よって、この時点で、B値には繰返内容の1回あたりの処理によるR値の変動量が、M値にはB値の最小値が格納されている。そこで、まずLOOPルーチン開始時のR値Ri(LOOPルーチン開始時の信号パターン格納数)と、繰返回数(n)から1を引いたものにB値を掛けた値(繰返し開始から最終回開始時点までの格納数の変化量)と、M値(最終回の繰返実行中のBの最小値)の合計が0より小さいか否かを評価する(フローチャート138)。この値が0より小さい場合には、繰返命令を全展開(繰返内容を繰返回数分順次記述すること)しても、デフォルトを解消することができない。従って、この場合にはエラー表示をおこなって(フローチャート139)、最適化プログラムの実行を終了する(フローチャート140)。
本実施例の場合には、Ri+(n−1)×B+M=2.5+2×1+0≧0となるため、最適化が可能である。そこで、次にLOOP命令自体の格納数変化量(Hl)と、1回の繰返処理による格納数変化量(B+Tl)に繰返回数(n)を掛けた値との合計値が0以上か否かを評価する(フローチャート141、第1の展開要否判断条件)。合計値が0より小さい場合には繰返実行によって、格納数が減ることになるため展開(繰返内容を繰返内外に記述し、繰返終了命令の実行回数を削減すること)を行う。展開前後ではLOOP END命令の処理による格納数の変化分が変化することになる。そこで、デフォルトが生じないためのLOOP END命令の最大処理回数pを求める(フローチャート142)。すなわち、LOOP END命令をp回実行すると、n×B+Hl+p×Tlだけ格納数が変動するから、n×B+Hl+p×Tl≧0となるpの最大値を求める。更に具体的には−(n×B+Hl)/Tlの値を求め、その小数部分を切り捨てた値をp値とする。
次に、繰返終了命令の実行回数がp回となるように、ループ内(繰返命令の後)に配置する繰返内容の回数qと、ループ前(繰返命令の前)に配置する繰返内容の回数rを求める。すなわち、nをpで割った商をq、剰余をrとする。例えば、図11(a)のような7回のループ(n=7)を2回の繰返終了命令となるように展開する場合(p=2)には、図11(b)のようにループ内に繰返内容を3回記述し(q=3)、ループ前に繰返し内容を1回記述すればよい(r=1)。
本実施例の場合には、Hl+n×(B+Tl)=−0.5+3×(1−0.5)=1≧0であるから、フローチャート142、143の処理は行わない。次に、繰返処理前の格納数Riと、繰返内容実行による格納数変化量Bにrを掛けた値と、LOOP命令自体の格納数変化量Hlと、繰返内容の実行中における格納数の最小値Mとの合計値が0以上か否かを評価する(フローチャート144、第2の展開要否判断条件)。この合計値が0より小さいと、繰返処理全体では格納数が増加したとしても、第1回目の繰返処理途上においてデフォルトが生じてしまう。そこで、繰返処理を開始する前に十分な格納数が得られるように、さらに繰返内容を繰返命令の前に配置する。このため、まず、合計値が0以上となるようなrの最小値を算出する(フローチャート145)。より具体的には、r≧−(Ri+Hl+M)/Bとなるr値を求めればよいから、−(Ri+Hl+M)/Bの値を求め、その値が整数値の場合にはその値を、小数以下を含む場合には整数部分に1を加えたうえで小数部分を切り捨てた値をr値とする。
次に、繰返回数の残数(n−r)からp、q、rを再計算する(フローチャート146)。このとき、再計算後のrはフローチャート145で求めたr値より大きくなるように設定する。
また、繰返終了命令がフローチャート142で求めたp以下となるように設定する(フローチャート142を実行していない場合は制限なし)。すなわち、n−r<pの場合はp=n−rとしたうえで、n−rをpで割った商をqとし、剰余をrに加算する。
また、繰返終了命令がフローチャート142で求めたp以下となるように設定する(フローチャート142を実行していない場合は制限なし)。すなわち、n−r<pの場合はp=n−rとしたうえで、n−rをpで割った商をqとし、剰余をrに加算する。
本実施例の場合には、Ri+r×B+Hl+M=2.5+3×1−0.5+0>0であるため、フローチャート145、146の処理は行わない。以上の、第1および第2の展開要否判断条件により得られた結果をもとに展開処理を行う。まず、p値を評価する(フローチャート147)。p≦1の場合には、繰返処理を全展開する。また、1<p<nの場合には、図11にように、LOOP命令の前に繰返内容をr回配置し、LOOP命令の後に繰返内容をq回配置して繰返回数をp回に設定する。本実施例のように、p=nの場合、すなわち展開後の繰返回数nが展開前の繰返回数pと同じ場合には、展開が不要であるから、展開は行わない。
最後に、展開後の繰返処理における信号パターンの変動量(Hl+n×B+p×Tl)をCに代入する(フローチャート150)。以上でステップ31〜34までの繰返処理の最適化が終了し、メインルーチンへ復帰する。次の命令(ステップ35)はパターン生成プログラム21の終了を示すSTOP命令なので、最適化プログラムの実行を終了する(フローチャート106)。展開後のパターン生成プログラム21を図10に示す。このように、本発明に係る最適化方法により、パターン生成プログラム21を、冗長化を防止しつつ、デフォルトを回避する最適化を行うことができる。
なお、本実施例では、展開要否の判断(フローチャート119、141、144)において、評価する変数と0との比較を行っているが、1以上の任意の値との比較してもよい。比較する値が大きくなるほど、デフォルトに対する耐性が増し、パターン生成プログラム21動作中に何らかの要因によりプロセッサ61の処理能力が一時的に低下しても、デフォルトの発生を抑制し、安定した信号パターンの出力を行うことができる。ただし、比較する値が大きいほど、最適化後のプログラムは冗長になるため、必要以上に大きな値とすることは避けることが望ましい。
本実施例においては、信号パターンの生成手段とパターン生成プログラムの最適化手段が共通のプロセッサ61を利用しているため、パターン生成プログラム21と最適化プログラム82を同一のプロセッサ61で実行しているが、それぞれ別々のプロセッサで構成してもよい。本実施例のように同一プロセッサで構成するメリットは、装置構成が簡素化しコストが安くなる点にある。他方、最適化手段は高速メモリ処理が可能なプロセッサ、信号生成手段はDSPなどの信号処理に特化したプロセッサを利用すると、高速な最適化・信号パターン生成が可能となるというメリットがある。
また、本実施例で用いたプロセッサ61は、プログラム中のいずれの命令も1クロックで処理する機能を有しているが、このような機能を有さないプロセッサでも本発明は実施可能である。この場合には、FIFOメモリ62に格納された信号パターン数の変動量(例えば、Hj、Tl、Bdなど)を算出する際に、信号出力回路24から出力される信号パターン周期と各命令の処理時間から変動量を求めることになる。例えば、DATA命令の実行時間が2クロックの場合には、DATA命令によって1つの信号パターンが生成される間に信号出力回路24から1つ信号パターンが出力されるため、変動量(Bd)=0となる。
以上、本発明に係る技術的思想を特定の実施例を参照しつつ詳細にわたり説明したが、本発明の属する分野における当業者には、請求項の趣旨及び範囲から離れることなく様々な変更及び改変を加えることが出来ることは明らかである。例えば、最適化プログラム82を、コンピュータで読み込み可能なフレキシブルディスク、CD−ROM、ハードディスクなどの記録媒体に格納し、信号発生装置とは異なるコンピュータで最適化プログラムを実行してパターン生成プログラムの最適化を行ってから、最適化されたパターン信号発生装置を信号発生装置に格納して信号パターンを得ることができるが、かかる実施も本発明に係る最適化方法の一実施態様であり、本発明に係る技術的思想の範囲を超えるものではない。
20、81 メモリ
21 パターン生成プログラム
22 パターンデータ
23、61 プロセッサ
24 信号出力回路
25 デバイス
26、60,80 信号生成装置
62 FIFOメモリ
82 最適化プログラム
21 パターン生成プログラム
22 パターンデータ
23、61 プロセッサ
24 信号出力回路
25 デバイス
26、60,80 信号生成装置
62 FIFOメモリ
82 最適化プログラム
Claims (8)
- パターン生成プログラムに基づいて信号パターンを生成する生成手段と、
前記信号パターンを格納する記憶手段と、
前記記憶手段に格納された前記信号パターンを所定周期毎に出力する出力手段とを備える信号生成装置に用いられる前記パターン生成プログラムの最適化方法であって、
前記パターン生成プログラムの命令ごとに、当該命令が展開必要か判断する判断ステップと、
前記命令を展開する展開ステップとを含む最適化方法。 - 前記判断ステップが、
前記命令がサブルーチン呼出命令か否かを判断するステップと、
前記命令がサブルーチン呼出命令である場合には、
サブルーチン実行中における、前記記憶手段に格納された前記信号パターンの数の変化量を求めるステップと、前記変化量が所定値以下の場合に前記サブルーチンの展開が必要と判断するステップとを含むことを特徴とする請求項1に記載の最適化方法。 - 前記判断ステップが、
前記命令が繰返命令か否かを判断するステップと、
前記命令が繰返命令である場合には、
繰返実行前後における、前記記憶手段に格納された前記信号パターン数の変化量を求めるステップと、
繰返内容の実行中における、前記記憶手段に格納された前記信号パターンの数の最小値を求めるステップと、
前記変化量および前記最小値が所定値以下の場合に前記繰返命令の展開が必要と判断するステップとを含むことを特徴とする請求項1に記載の最適化方法。 - 前記展開ステップが、
デフォルトが発生しない繰返終了命令の最大実行回数を求めるステップと、
前記最大実行回数に基づいて前記繰返命令の前後に前記繰返内容を追加するステップとを含むことを特徴とする請求項3に記載の最適化方法。 - 前記命令が最適化可能か否かの判定を行うステップと、
前記命令が最適化できない場合には、エラー処理を行うステップとを、さらに、含むことを特徴とする請求項1から4のいずれかに記載の最適化方法。 - コンピュータに、請求項1から5のいずれかに記載の最適化方法を実行させるためのプログラム。
- 請求項6に記載のプログラムを格納するコンピュータ読み取り可能な記録媒体。
- パターン生成プログラムに基づいて信号パターンを生成する生成手段と、
前記信号パターンを格納する第1の記憶手段と、
前記パターン生成プログラムの命令ごとに、当該命令が展開必要か判断する判断ステップと 前記命令を展開する展開ステップとを含む最適化方法を実行させるためのプログラムを格納した第2の記憶手段と、
前記第1の記憶手段に格納された前記信号パターンを所定周期毎に出力する出力手段とを備えた信号生成装置。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004237882A JP2006058048A (ja) | 2004-08-18 | 2004-08-18 | パターン生成プログラムの最適化方法、プログラムおよび信号生成装置 |
US11/181,955 US7404130B2 (en) | 2004-08-18 | 2005-07-14 | Method for optimizing a pattern generation program, a program, and a signal generator |
TW094125008A TW200619653A (en) | 2004-08-18 | 2005-07-22 | A method for optimizing a pattern generation program, a program, and a signal generator |
CN200510090843.6A CN1737601A (zh) | 2004-08-18 | 2005-08-16 | 图案产生程序的最佳化方法、程序以及信号产生装置 |
KR1020050075342A KR20060050529A (ko) | 2004-08-18 | 2005-08-17 | 패턴 생성 프로그램의 최적화 방법, 프로그램 및 신호 생성장치 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004237882A JP2006058048A (ja) | 2004-08-18 | 2004-08-18 | パターン生成プログラムの最適化方法、プログラムおよび信号生成装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006058048A true JP2006058048A (ja) | 2006-03-02 |
Family
ID=35910932
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004237882A Pending JP2006058048A (ja) | 2004-08-18 | 2004-08-18 | パターン生成プログラムの最適化方法、プログラムおよび信号生成装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US7404130B2 (ja) |
JP (1) | JP2006058048A (ja) |
KR (1) | KR20060050529A (ja) |
CN (1) | CN1737601A (ja) |
TW (1) | TW200619653A (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6054151B2 (ja) * | 2012-11-26 | 2016-12-27 | ルネサスエレクトロニクス株式会社 | テスト装置 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6336163A (ja) * | 1986-07-30 | 1988-02-16 | Hitachi Ltd | Ic試験装置 |
JPH0221331A (ja) * | 1988-07-08 | 1990-01-24 | Nec Corp | マイクロコンピュータのプログラム制御方式 |
JPH04194764A (ja) * | 1990-11-28 | 1992-07-14 | Hitachi Ltd | パターン発生器 |
JPH07198798A (ja) * | 1993-12-28 | 1995-08-01 | Hitachi Ltd | アルゴリズミックパターン発生器 |
JPH10160808A (ja) * | 1996-11-28 | 1998-06-19 | Advantest Corp | Ic試験装置 |
JPH112668A (ja) * | 1997-05-20 | 1999-01-06 | Schlumberger Technol Inc | Ate回路テスターにおけるテストパターンのチェーン化及びループ化 |
JPH1164469A (ja) * | 1997-08-21 | 1999-03-05 | Advantest Corp | 半導体試験装置用パターン発生器 |
JP2000162287A (ja) * | 1998-11-24 | 2000-06-16 | Advantest Corp | パターン信号を生成するパターン発生器 |
JP2004053340A (ja) * | 2002-07-18 | 2004-02-19 | Advantest Corp | 半導体試験装置のタイミングセットの最適化方法、半導体試験装置のタイミングセットの最適化プログラム、半導体試験装置 |
JP2004118301A (ja) * | 2002-09-24 | 2004-04-15 | Fujitsu Ltd | 展開型試験プログラムツールの生成方法及び装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004157079A (ja) * | 2002-11-08 | 2004-06-03 | Renesas Technology Corp | チップ内蔵半導体検査装置 |
JP4569182B2 (ja) * | 2004-03-19 | 2010-10-27 | ソニー株式会社 | 半導体装置 |
-
2004
- 2004-08-18 JP JP2004237882A patent/JP2006058048A/ja active Pending
-
2005
- 2005-07-14 US US11/181,955 patent/US7404130B2/en not_active Expired - Fee Related
- 2005-07-22 TW TW094125008A patent/TW200619653A/zh unknown
- 2005-08-16 CN CN200510090843.6A patent/CN1737601A/zh active Pending
- 2005-08-17 KR KR1020050075342A patent/KR20060050529A/ko not_active Application Discontinuation
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6336163A (ja) * | 1986-07-30 | 1988-02-16 | Hitachi Ltd | Ic試験装置 |
JPH0221331A (ja) * | 1988-07-08 | 1990-01-24 | Nec Corp | マイクロコンピュータのプログラム制御方式 |
JPH04194764A (ja) * | 1990-11-28 | 1992-07-14 | Hitachi Ltd | パターン発生器 |
JPH07198798A (ja) * | 1993-12-28 | 1995-08-01 | Hitachi Ltd | アルゴリズミックパターン発生器 |
JPH10160808A (ja) * | 1996-11-28 | 1998-06-19 | Advantest Corp | Ic試験装置 |
JPH112668A (ja) * | 1997-05-20 | 1999-01-06 | Schlumberger Technol Inc | Ate回路テスターにおけるテストパターンのチェーン化及びループ化 |
JPH1164469A (ja) * | 1997-08-21 | 1999-03-05 | Advantest Corp | 半導体試験装置用パターン発生器 |
JP2000162287A (ja) * | 1998-11-24 | 2000-06-16 | Advantest Corp | パターン信号を生成するパターン発生器 |
JP2004053340A (ja) * | 2002-07-18 | 2004-02-19 | Advantest Corp | 半導体試験装置のタイミングセットの最適化方法、半導体試験装置のタイミングセットの最適化プログラム、半導体試験装置 |
JP2004118301A (ja) * | 2002-09-24 | 2004-04-15 | Fujitsu Ltd | 展開型試験プログラムツールの生成方法及び装置 |
Also Published As
Publication number | Publication date |
---|---|
KR20060050529A (ko) | 2006-05-19 |
TW200619653A (en) | 2006-06-16 |
CN1737601A (zh) | 2006-02-22 |
US20060041809A1 (en) | 2006-02-23 |
US7404130B2 (en) | 2008-07-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100875836B1 (ko) | 병렬 처리 vliw 컴퓨터를 위한 인스트럭션 명령어 압축장치 및 그 방법 | |
Dice et al. | Scalable statistics counters | |
US20130318540A1 (en) | Data flow graph processing device, data flow graph processing method, and data flow graph processing program | |
EP1267287A2 (en) | High-level synthesis apparatus and method, method for producing logic circuit using the high-level synthesis method, and recording medium | |
JP2020098545A (ja) | 制御プログラム、情報処理装置及び制御方法 | |
US8196146B2 (en) | Information processing apparatus, parallel processing optimization method, and program | |
US20090235026A1 (en) | Data transfer control device and data transfer control method | |
JP5632651B2 (ja) | 半導体回路及び設計装置 | |
JP2006058048A (ja) | パターン生成プログラムの最適化方法、プログラムおよび信号生成装置 | |
US6505340B2 (en) | Circuit synthesis method | |
JP2006215799A (ja) | メモリコントローラ | |
US8352234B2 (en) | Model generation based on a constraint and an initial model | |
US20090249132A1 (en) | Data Processing Apparatus and Method of Verifying Programs | |
JP6512640B1 (ja) | 非同期fifo回路 | |
US11734003B2 (en) | Non-transitory computer-readable recording medium, compilation method, and compiler device | |
JP5009243B2 (ja) | 動作合成装置、動作合成方法、プログラム、記録媒体、および半導体集積回路の製造方法 | |
JP2016162091A (ja) | プログラムプロファイラ回路、プロセッサおよびプログラムカウント方法 | |
US20090235223A1 (en) | Program generation apparatus and program generation method | |
JP2019219717A (ja) | 演算処理装置、及び制御方法 | |
US10606602B2 (en) | Electronic apparatus, processor and control method including a compiler scheduling instructions to reduce unused input ports | |
US9021234B2 (en) | Indirect designation of physical configuration number as logical configuration number based on correlation information, within parallel computing | |
JP4869911B2 (ja) | ロジックbist回路及びモジュロ回路 | |
JP2012043327A (ja) | クロックツリー設計方法及びクロックツリー設計装置 | |
JP2011127976A (ja) | 測定装置、測定方法、電子デバイス、およびプログラム | |
JP5176780B2 (ja) | 半導体集積回路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070802 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100217 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20100714 |