JP4919084B2 - シーケンス制御回路 - Google Patents

シーケンス制御回路 Download PDF

Info

Publication number
JP4919084B2
JP4919084B2 JP2007314290A JP2007314290A JP4919084B2 JP 4919084 B2 JP4919084 B2 JP 4919084B2 JP 2007314290 A JP2007314290 A JP 2007314290A JP 2007314290 A JP2007314290 A JP 2007314290A JP 4919084 B2 JP4919084 B2 JP 4919084B2
Authority
JP
Japan
Prior art keywords
program counter
signal
counter signal
indicating
outputs
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2007314290A
Other languages
English (en)
Other versions
JP2009140122A (ja
Inventor
太 河原崎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yokogawa Electric Corp
Original Assignee
Yokogawa Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Yokogawa Electric Corp filed Critical Yokogawa Electric Corp
Priority to JP2007314290A priority Critical patent/JP4919084B2/ja
Publication of JP2009140122A publication Critical patent/JP2009140122A/ja
Application granted granted Critical
Publication of JP4919084B2 publication Critical patent/JP4919084B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Testing Of Individual Semiconductor Devices (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Programmable Controllers (AREA)

Description

本発明は、シーケンス制御回路に関する。
従来、半導体メモリなどのIC回路を試験するための半導体試験装置が知られている。図6は、従来の半導体試験装置の一例を示す構成図である。図6に示すように、半導体試験装置100は、被試験IC200の良否を判定するものであって、シーケンス制御回路300と、インストラクションメモリ400と、パターン発生回路500と、比較器600とを備えている。
シーケンス制御回路300は、シーケンス制御命令を実行するものである。また、シーケンス制御回路300は、シーケンス制御命令の実行に応じてプログラムカウンタ信号Saを出力する。インストラクションメモリ400は、シーケンス制御回路300からのプログラムカウンタ信号Saによってアクセスされ、入力したプログラムカウンタ信号Saに対応したパターン発生命令Sbを出力するものである。
図7は、図6を参照して説明したシーケンス制御命令及びパターン発生命令Sbの一例を示す図である。図7に示すように、シーケンス制御命令及びパターン発生命令Sbはプログラムカウンタのカウント値(「0」「1」「2」・・・)毎に、それぞれ予め設定されている。
シーケンス制御命令は、「NOOP」や「LOOP」などの実行プログラムである。「NOOP」は、「NOOP」と記述された行を実行し、プログラムカウンタをインクリメントする命令である。図7に示す例の場合、プログラムカウンタのカウント値「0」及び「2」が「NOOP」となっている。このため、シーケンス制御回路300は、プログラムカウンタのカウント値「0」及び「2」の行を実行して、プログラムカウンタのカウント値を「1」及び「3」にインクリメントすることとなる。
「LOOP」は、指定された行から「LOOP」と記述された行までの命令を指定回数だけ繰り返し実行する命令である。図7に示す例の場合、プログラムカウンタのカウント値「1」が「LOOP」となっている。また、「6」は指定回数であり、「AA」は行の指定である。「AA」で指定された行が「LOOP」と記述された行と同一であるので、この行は6回繰り返して実行される。すなわち、プログラムカウンタのカウント値「1」の行は6回繰り返して実行されることとなる。
ここで、シーケンス制御回路300の動作を説明する。シーケンス制御回路300は、プログラムカウンタ「0(初期値)」から順番にシーケンス制御命令を実行し、プログラムカウンタ信号Saを出力する。すなわち、シーケンス制御回路300は、まず、プログラムカウンタ「0(初期値)」のときにプログラムカウンタ信号Sa「0」を出力する。また、シーケンス制御回路300は、プログラムカウンタ「0(初期値)」のときに「NOOP(改行)」を実行して、プログラムカウンタを「1」に進める。次いで、シーケンス制御回路300は、プログラムカウンタ「1」において、「LOOP 6(6回繰り返し)」を実行する。これにより、シーケンス制御回路300は、「1」となるプログラムカウンタ信号Saを6回繰り返して出力することとなる。「1」となるプログラムカウンタ信号Saを6回繰り返して出力した後、シーケンス制御回路300は、プログラムカウンタを「2」に進める。その後、シーケンス制御回路300は、プログラムカウンタ「2」において、「2」を示すプログラムカウンタ信号Saを出力する。また、シーケンス制
御回路300は、プログラムカウンタ「2」において、「NOOP(改行)」を実行して、プログラムカウンタを「3」に進める。以上のような動作により、シーケンス制御回路300から出力されるプログラムカウンタ信号Saは「0」「1」「1」「1」「1」「1」「1」「2」・・・となる(図8参照)。
また、パターン発生命令Sbは、「X=0」「X=X+1」などの演算式である。インストラクションメモリ400は、入力したプログラムカウンタ信号Saに対応した演算式を出力する。図7に示す例では、プログラムカウンタ「0」のときの演算式が「X=0」であり、プログラムカウンタ「1」のときの演算式が「X=X+1」である。また、プログラムカウンタ「2」のときの演算式が「X=0」である。このため、インストラクションメモリ400は、「0」「1」「1」「1」「1」「1」「1」「2」・・・となるプログラムカウンタ信号Saが入力されると、「X=0」「X=X+1」「X=X+1」「X=X+1」「X=X+1」「X=X+1」「X=X+1」「X=0」・・・となるパターン発生命令Sbを出力することとなる(図8参照)。
再度、図6を参照する。パターン発生回路500は、インストラクションメモリ400からのパターン発生命令Sbを入力し、パターン発生命令Sbに従って、被測定IC200に試験パターンScを出力すると共に、比較器600に期待パターンSdを出力するものである。
図8は、試験パターンSc、及び期待パターンSdの詳細を示すタイミングチャートである。「0」「1」「1」「1」「1」「1」「1」「2」・・・となるプログラムカウンタ信号Saがインストラクションメモリ400に入力され、「X=0」「X=X+1」「X=X+1」「X=X+1」「X=X+1」「X=X+1」「X=X+1」「X=0」・・・となるパターン発生命令Sbがパターン発生回路500に入力されたとする。このとき、パターン発生回路500は、入力したパターン発生命令Sb(演算式)を実行し、実行して得られた試験パターンSc、及び期待パターンSdを出力する。すなわち、パターン発生回路500は、入力したパターン発生命令Sbが「X=0」「X=X+1」「X=X+1」「X=X+1」「X=X+1」「X=X+1」「X=X+1」「X=0」・・・である場合、「0」「1」「2」「3」「4」「5」「6」「0」・・・となる試験パターンSc、及び期待パターンSdを出力することとなる。
比較器600は、パターン発生回路500からの期待パターンSdと被測定IC200からの出力信号Seとを比較して、被測定IC200の良否を判定するものである。すなわち、比較器600は、パターン発生回路500からの期待パターンSdが「0」「1」「2」「3」「4」「5」「6」「0」・・・である場合、被測定IC200から期待パターンSdと一致する「0」「1」「2」「3」「4」「5」「6」「0」・・・となる出力信号Seを入力した場合、被測定IC200を「良」と判定する。
次に、シーケンス制御回路300の詳細構成について説明する。図9は、図6に示したシーケンス制御回路300の詳細を示す構成図である。図9に示すように、シーケンス制御回路300は、インストラクションメモリ301と、プログラムカウンタ制御部302と、フリップフロップ303とを備えている。
インストラクションメモリ301は、フリップフロップ303からのプログラムカウンタ信号Saによってアクセスされ、アクセスされたプログラムカウンタ信号Saのカウント値に応じたシーケンス制御命令Sfをプログラムカウンタ制御部302に出力するものである。
プログラムカウンタ制御部302は、インストラクションメモリ301からのシーケン
ス制御命令Sfに応じて次回のプログラムカウンタ信号Sgを出力するものである。フリップフロップ303は、プログラムカウンタ信号Saを出力すると共に、次回のプログラムカウンタ信号Sgを保持するものである。このフリップフロップ303は、初期値「0」を記憶しており、初期的には「0」のプログラムカウンタ信号Saをシーケンス制御回路300内のインストラクションメモリ301及び外部のインストラクションメモリ400に出力することとなる。
図10は、プログラムカウンタ信号Sa、シーケンス制御命令Sf及び次のプログラムカウンタ信号Sgの詳細を示すタイミングチャートである。フリップフロップ303には、初期値「0」が記憶されている。このため、最初にフリップフロップ303から出力されるプログラムカウンタ信号Saは「0」となる。そして、「0」となるプログラムカウンタ信号Saが、外部及びシーケンス制御回路300内のインストラクションメモリ301に出力される。
インストラクションメモリ301は、「0」のプログラムカウンタ信号Saによってアクセスされると、図7に示したように、「NOOP」のシーケンス制御命令Sfを出力する。これにより、プログラムカウンタ制御部302は、「NOOP」を解読し、次回のプログラムカウンタ信号Sg「1」を出力する。これによって、フリップフロップ303は、次回のクロック入力時に、「1」のプログラムカウンタ信号Saを出力する。以後、上記動作を繰り返し、シーケンス制御回路300のフリップフロップ303は、「0」「1」「1」「1」「1」「1」「1」「2」・・・となるプログラムカウンタ信号Saを出力する(特許文献1参照)。
特開2001−282324号公報
ここで、従来のシーケンス制御回路300では、インストラクションメモリ301のアクセスの後に、プログラムカウンタ制御部302の制御を行って、プログラムカウンタ信号Saを出力する。このため、プログラムカウンタ信号Saの出力周期の最高動作速度が、インストラクションメモリ301のアクセス時間とプログラムカウンタ制御部302の動作速度との合計で決まることとなる。
しかし、従来のシーケンス制御回路300では、プログラムカウンタ信号Saの出力周期の最高動作速度が、インストラクションメモリ301のアクセス時間とプログラムカウンタ制御部302の動作速度との合計で決まることから、この双方の合計時間よりも速い周期でプログラムカウンタ信号Saを出力することができない。このため、シーケンス制御回路300の一層の高速化を図るうえで障害となってしまう。
本発明は、このような従来の課題を解決するためになされたものであり、その目的とするところは、高速化を図ることが可能なシーケンス制御回路を提供することにある。
上記目的を達成するため、本発明に係るシーケンス制御回路は、アドレスを示すカウント値の情報を有したプログラムカウンタ信号を出力すると共に、出力した前記プログラムカウンタ信号を自ら入力し、入力したプログラムカウンタ信号のカウント値に応じて次回のプログラムカウンタ信号を出力するカウンタ信号出力手段と、カウンタ信号出力手段からプログラムカウンタ信号を入力し、入力したプログラムカウンタ信号のカウント値に応じて、シーケンス制御命令を出力するインストラクションメモリと、シーケンス制御命令を入力し、入力したシーケンス制御命令に応じて、カウンタ信号出力手段が出力する次回のプログラムカウンタ信号のカウント値を書き換えるプログラムカウンタ制御部と、を備
え、インストラクションメモリとプログラムカウンタ制御部とをパイプライン処理にて動作させる。
本発明に係るシーケンス制御回路によればインストラクションメモリとプログラムカウンタ制御部とをパイプライン処理にて動作させる。このため、インストラクションメモリのアクセスと、プログラムカウンタ制御部の制御とを同時的に行うことができる。すなわち、インストラクションメモリがカウンタ信号出力手段からのプログラムカウンタ信号によりアクセスされる間に、プログラムカウンタ制御部は、フリップフロップからのシーケンス制御命令を入力して制御を行うことができる。このように、プログラムカウンタ制御部は、インストラクションメモリがプログラムカウンタ信号によりアクセスされ、シーケンス制御命令が出力された後に、制御を行うことがなくなっており、インストラクションメモリのアクセスと、プログラムカウンタ制御部の制御とを同時的に行うことができる。また、カウンタ信号出力手段は、出力したプログラムカウンタ信号を自ら入力し、入力したプログラムカウンタ信号のカウント値に応じて次回のプログラムカウンタ信号を出力する。このため、プログラムカウンタ制御部により次回のプログラムカウンタ信号の書き換えが行われる場合以外については、インストラクションメモリのアクセス時間とプログラムカウンタ制御部の動作速度に影響を受けず、プログラムカウンタ信号を出力することができる。また、プログラムカウンタ制御部による次回のプログラムカウンタ信号の書き換えが行われるとしても、インストラクションメモリのアクセスとプログラムカウンタ制御部の制御とが同時的に行われるため、双方の合計時間に影響を受けることなく、書き換えを行うことができる。以上のように、インストラクションメモリのアクセスと、プログラムカウンタ制御部の制御とを同時的に行うことで、書き換えについても双方の合計時間に影響を受けることなく、書き換えを行わない場合については、そもそもインストラクションメモリ及びプログラムカウンタ制御部を介さず、プログラムカウンタ信号を出力できるため、高速化を図ることができる。
また、インストラクションメモリは、プログラムカウンタ信号によってアクセスされたアドレスにループを示すシーケンス制御命令を記憶している場合、ループを示すシーケンス制御命令を出力すると共に、回路構成に応じたループ回数を示すループ信号を出力し、プログラムカウンタ制御部は、ループ信号を入力した後、所定タイミング毎に、ループ信号が示すループ回数をカウントダウンしていき、カウントダウン終了時にプログラムカウンタ信号のカウント値を書き換える書き換え信号を前記カウンタ信号出力手段に出力することが好ましい。
このシーケンス制御回路によれば、インストラクションメモリは、回路構成に応じたループ回数を示すループ信号を出力し、プログラムカウンタ制御部は、所定タイミング毎に、ループ信号が示すループ回数をカウントダウンしていき、カウントダウン終了時に書き換え信号を出力する。このように、カウントダウン終了時というループサイクルの終了にあわせて書き換え信号を出力する。これにより、例えば、ループサイクルの終了にあわせてループを抜けるように、カウンタ信号出力手段から出力される次回のプログラムカウンタ信号を書き換えることができる。従って、出力したプログラムカウンタ信号を自ら入力し、入力したプログラムカウンタ信号のカウント値に応じて次回のプログラムカウンタ信号を出力するカウンタ信号出力手段を備えつつも、適切なループサイクルを実現することができる。
また、プログラムカウンタ制御部は、次回のプログラムカウンタ信号のカウント値を書き換えた場合、所定条件成立時に書き換えた内容を元に戻す復帰信号を出力することが好ましい。
このシーケンス制御回路によれば、次回のプログラムカウンタ信号のカウント値を書き
換えた場合、所定条件成立時に書き換えた内容を元に戻すため、次回、新たにシーケンス制御回路を作動させる場合に、書き換え後の状態のままとならず、次回のシーケンス制御回路の作動時においても適切にプログラムカウンタ信号を出力することができる。
また、プログラムカウンタ制御部は、今回のプログラムカウンタ信号と前回のプログラムカウンタ信号とを入力し、今回のプログラムカウンタ信号が示すカウント値から、前回のプログラムカウンタ信号が示すカウント値を減算した値が1となったときに、所定条件が成立したと判断して復帰信号を出力することが好ましい。
このシーケンス制御回路によれば、今回のプログラムカウンタ信号が示すカウント値から、前回のプログラムカウンタ信号が示すカウント値を減算した値が1となったときに、復帰信号を出力する。このため、ループが終了して改行が行われた場合に、書き換えた内容を元に戻すこととなり、プログラムカウンタ信号の出力に影響なく、次回のシーケンス制御回路の作動時においても適切にプログラムカウンタ信号を出力することができる。
本発明に係るシーケンス制御回路によれば、高速化を図ることができる。
以下、本発明の好適な実施形態を図面に基づいて説明する。図1は、本発明の実施形態に係るシーケンス制御回路を示す構成図である。図1に示すように、シーケンス制御回路1は、図6を参照して説明したように、半導体試験装置の構成要素の1つであり、外部のインストラクションメモリにプログラムカウンタ信号Saを出力するものである。なお、以下の説明においては、シーケンス制御回路1の内部において出力され、後にプログラムカウンタ信号Saとして出力される信号についても、プログラムカウンタ信号と称呼するものとする。
このシーケンス制御回路1は、図1に示すように、カウンタ信号出力部(カウンタ信号出力手段)10と、インストラクションメモリ20と、フリップフロップ31〜33,50と、プログラムカウンタ制御部40とからなっている。
カウンタ信号出力部10は、アドレスを示すカウント値の情報を有したプログラムカウンタ信号Sj1を出力するものであって、デュアルポートメモリ11と、セレクタ12とによって構成されている。デュアルポートメモリ11は、リードアドレス(R_ADD)に入力された信号が示すカウント値に応じて、リードデータ(R_DATA)から信号Shを出力するものである。また、デュアルポートメモリ11は、ライトイネーブル(W_EN)に所定の信号が入力されることにより、ライトアドレス(W_ADD)、及びライトデータ(W_DATA)に入力される信号に従って、内部の記憶内容を書き換える構成となっている。
セレクタ12は、デュアルポートメモリ11から出力された信号Shと、スタートアドレス信号Siとのうち、いずれか一方を選択し、選択した信号をプログラムカウンタ信号Sj1として出力するものである。
具体的にデュアルポートメモリ11は、図2に示す内容を記憶している。図2は、図1に示したデュアルポートメモリ11の記憶内容を示す概念図である。図2に示すように、デュアルポートメモリ11は、メモリアドレス「0」にメモリデータ「1」を記憶し、メモリアドレス「1」にメモリデータ「1」を記憶し、メモリアドレス「2」にメモリデータ「3」を記憶している。なお、メモリアドレス「3」以降については、省略する。
また、カウンタ信号出力部10は、出力したプログラムカウンタ信号Sj1を自ら入力し、入力したプログラムカウンタ信号Sj1のカウント値に応じて次回のプログラムカウンタ信号Sj1を出力する構成となっている。この点について詳説する。
本実施形態に係るカウンタ信号出力部10では、セレクタ12によりカウント値「0」を示すプログラムカウンタ信号Sj1が出力されると、デュアルポートメモリ11のリードアドレスに入力される(図1参照)。これにより、デュアルポートメモリ11は、メモリアドレス「0」に対応するメモリデータ「1」を読み出し(図2参照)、カウント値「1」を示す信号Shをリードデータから出力することとなる。
また、セレクタ12によりカウント値「1」を示すプログラムカウンタ信号Sj1が出力されると、デュアルポートメモリ11のリードアドレスに入力され(図1参照)、デュアルポートメモリ11は、メモリアドレス「1」に対応するメモリデータ「1」を読み出し(図2参照)、カウント値「1」を示す信号Shをリードデータから出力することとなる。
なお、図1から明らかなように、本実施形態に係るカウンタ信号出力部10は、インストラクションメモリ20及びプログラムカウンタ制御部40を介することなく、プログラムカウンタ信号Sj1を自ら入力する。
インストラクションメモリ20は、シーケンス制御命令を記憶したものであって、図1に示すように、プログラムカウンタ信号Sj1を入力する構成となっている。図3は、図1に示したインストラクションメモリ20の記憶内容を示す概念図である。図3に示すように、インストラクションメモリ20は、メモリアドレス記憶領域、命令記憶領域、ループ回数記憶領域、及びジャンプアドレス記憶領域を有しており、メモリアドレスのカウント値毎に、それぞれ「NOOP」や「LOOP」などの命令、ループ回数、及びループ先のアドレスを記憶している。
具体的に説明すると、インストラクションメモリ20は、メモリアドレス「0」に対応する命令記憶領域に「NOOP」を記憶している。メモリアドレス「0」に対応するループ回数記憶領域、及びジャンプアドレス記憶領域には、ループ回数及びループ先のアドレスは記憶されていない。また、インストラクションメモリ20は、メモリアドレス「1」に対応する命令記憶領域に「LOOP」を記憶している。メモリアドレス「1」に対応するループ回数記憶領域には、ループ回数「3」が記憶されており、ジャンプアドレス記憶領域には、ループ先のアドレス「1」が記憶されている。なお、本実施形態において、ループさせるべき回数は「6」となっているが、回路構成上、ループ回数記憶領域にはループ回数が「3」として記憶されている。すなわち、ループ回数記憶領域には、ループさせるべき回数「6」から、回路構成上必要となる数「3」を減算した数「3」が記憶されている。
また、インストラクションメモリ20は、メモリアドレス「2」に対応する命令記憶領域に「NOOP」を記憶している。メモリアドレス「2」に対応するループ回数記憶領域、及びジャンプアドレス記憶領域には、ループ回数及びループ先のアドレスは記憶されていない。なお、メモリアドレス「3」以降については、省略する。
このインストラクションメモリ20は、入力したプログラムカウンタ信号Sj1のカウント値に応じて、改行又はループ、すなわち「NOOP」や「LOOP」を示すシーケンス制御命令を出力する。この点について詳説する。
本実施形態に係るインストラクションメモリ20は、セレクタ12からカウント値「0
」を示すプログラムカウンタ信号Sj1が出力されると、これを入力し(図1参照)、「NOOP」を示すシーケンス制御命令Sl1を第3フリップフロップ33に出力する。
また、セレクタ12によりカウント値「1」を示すプログラムカウンタ信号Sj1が出力された場合、インストラクションメモリ20は、「LOOP」を示すシーケンス制御命令Sl1を出力する。また、この場合において、インストラクションメモリ20は、「LOOP」を示すシーケンス制御命令Sl1を出力すると共に、回路構成に応じたループ回数(本実施形態では「3」)を示すループ信号Sl2を第3フリップフロップ33に出力する。さらに、インストラクションメモリ20は、「1」を示すジャンプアドレス信号Sp1を第2フリップフロップ32に出力する。
また、セレクタ12によりカウント値「2」を示すプログラムカウンタ信号Sj1が出力された場合、インストラクションメモリ20は、「NOOP」を示すシーケンス制御命令Sl1を第3フリップフロップ33に出力する。なお、メモリアドレス「3」以降については、省略する。
フリップフロップ31〜33,50は、入力した信号を保持すると共に、前回入力して保持していた信号を出力するものである。第1フリップフロップ31は、カウンタ信号出力部10と第4フリップフロップ50との間に介在されている。この第1フリップフロップ31は、カウンタ信号出力部10からのプログラムカウンタ信号Sj1を保持し、前回入力して保持していたプログラムカウンタ信号Sj2を第4フリップフロップ50、プログラムカウンタ制御部40及びデュアルポートメモリ11のライトアドレスに出力する構成となっている。
第2及び第3フリップフロップ32,33は、インストラクションメモリ20とプログラムカウンタ制御部40との間に介在されている。このうち、第2フリップフロップ32は、インストラクションメモリ20からのジャンプアドレス信号Sp1を保持し、前回入力して保持していたジャンプアドレス信号Sp2をプログラムカウンタ制御部40に出力する構成となっている。また、第3フリップフロップ33は、インストラクションメモリ20からのシーケンス制御命令Sl1及びループ信号Sl2を保持し、前回入力して保持していたシーケンス制御命令Sl3及びループ信号Sl4をプログラムカウンタ制御部40に出力する構成となっている。
第4フリップフロップ50は、第1〜第3フリップフロップ31〜33と同様であり、第1フリップフロップ31から入力したプログラムカウンタ信号Sj2を保持すると共に、前回入力して保持していたプログラムカウンタ信号Saを出力するものである。第4フリップフロップ50から出力されるプログラムカウンタ信号Saは、図6に示したように、外部のインストラクションメモリに出力されることとなる。
プログラムカウンタ制御部40は、第3フリップフロップ33からシーケンス制御命令Sl3を入力し、入力したシーケンス制御命令Sl3に応じて、カウンタ信号出力部10が出力する次回のプログラムカウンタ信号Sj1のカウント値を書き換え等するものである。以下、プログラムカウンタ制御部40について具体的に説明する。
プログラムカウンタ制御部40は、ジャンプ制御回路41と、ループカウンタ42と、加算器43と、セレクタ44とを備えている。ジャンプ制御回路41は、第3フリップフロップ33からのシーケンス制御命令Sl3及びループ信号Sl4を入力すると共に、ループカウンタ42を動作させるものである。また、ジャンプ制御回路41は、第1所定条件成立時に、デュアルポートメモリ11の記憶内容(すなわち図2に示した記憶内容)を書き換える書き換え信号Ss1をデュアルポートメモリ11のライトイネーブルに出力す
るものである。さらに、ジャンプ制御回路41は、第2所定条件成立時(所定条件成立時)には、書き換えた内容を元に戻す復帰信号Ss2をデュアルポートメモリ11のライトイネーブルに出力するものである。
ループカウンタ42は、ループ信号Sl4の入力時に、ループ信号Sl4が示す数にセットされ、クロックを入力する毎(所定タイミング毎)に、ループ信号Sl4が示す数(図3に示す例では「3」)をカウントダウンしていくものである。
加算器43は、第1フリップフロップ31から出力されるプログラムカウンタ信号Sj2を入力し、プログラムカウンタ信号Sj2が示すカウント値に「1」を加え、「1」を加えて得られた加算信号Soをセレクタ44に出力するものである。
セレクタ44は、第2フリップフロップ32からのジャンプアドレス信号Sp2と、加算器43からの加算信号Soのうち、いずれか一方を選択するものである。また、セレクタ44は、選択により得られた信号Srをデュアルポートメモリ11のライトデータに出力する構成となっている。
なお、セレクタ44は、ジャンプ制御回路41から出力される選択信号Sqによって、ジャンプアドレス信号Sp2と加算信号Soとのうちいずれか一方を選択する。選択信号Sqは、ジャンプ制御回路41に入力されるシーケンス制御命令Sl3が「NOOP」である場合、加算器43からの加算信号Soが選択されるように設定される。また、選択信号Sqは、ジャンプ制御回路41に入力されるシーケンス制御命令Sl3が「LOOP」であり、ループカウンタ42の値が「1」以上である場合、ジャンプアドレス信号Sp2が選択されるように設定される。
また、選択信号Sqは、ジャンプ制御回路41に入力されるシーケンス制御命令Sl3が「LOOP」であり、ループカウンタ42の値が「0」である場合、加算器43からの加算信号Soが選択されるように設定される。さらに、選択信号Sqは、ジャンプ制御回路41に入力されるシーケンス制御命令Sl3が「LOOP」であり、ループカウンタ42の値が「0」である場合であっても、ループカウンタ42の値が「0」となった時点から、所要のタイミング後となったとき(本実施形態では「2」回の「LOOP」が入力されたとき)には、ジャンプアドレス信号Sp2が選択されるように設定される。
ここで、上記したように、インストラクションメモリ20とプログラムカウンタ制御部40との間に、第3フリップフロップ33が介在されている。このため、両者はパイプライン処理にて動作することとなる。なお、パイプライン処理とは、回路間にフリップフロップを挿入して分割し、クロック入力毎に分割した各回路が独立して動作できるようにする処理をいう。
次に、本実施形態に係るシーケンス制御回路1の動作を図4及び図5を参照して説明する。図4は、本実施形態に係るシーケンス制御回路1の動作を示すタイミングチャートである。
シーケンス制御回路1が動作を開始すると、まず、図4の時刻t1に示すように、セレクタ12はカウント値「0」を示すスタートアドレス信号Siを選択する。これにより、カウンタ信号出力部10から出力されるプログラムカウンタ信号Sj1は「0」を示すものとなる。また、カウント値「0」を示すプログラムカウンタ信号Sj1はデュアルポートメモリ11のリードアドレスに入力されると共に、第1フリップフロップ31に入力される。さらに、カウント値「0」を示すプログラムカウンタ信号Sj1は、インストラクションメモリ20に入力される。これにより、インストラクションメモリ20は、図3に
示すように、「NOOP」を示すシーケンス制御命令Sl1を出力する。そして、第2フリップフロップ32は、シーケンス制御命令Sl1を入力して保持する。
次いで、時刻t2において、デュアルポートメモリ11は、時刻t1にカウント値「0」を示すプログラムカウンタ信号Sj1が入力されたことから、図2に示す記憶内容に示すように、リードデータからカウント値「1」を示す信号Shを出力する。セレクタ12は、時刻t1のように、スタートアドレス信号Siを選択せず、信号Shを選択する。これにより、カウント値「1」を示すプログラムカウンタ信号Sj1はデュアルポートメモリ11のリードアドレスに入力されると共に、第1フリップフロップ31に入力される。また、第1フリップフロップ31は、前回入力したカウント値「0」を示すプログラムカウンタ信号Sj2を、デュアルポートメモリ11のライトアドレス、プログラムカウンタ制御部40及び第4フリップフロップ50に出力する。
また、時刻t2において、カウント値「1」を示すプログラムカウンタ信号Sj1は、インストラクションメモリ20に入力される。これにより、インストラクションメモリ20は、図3に示すように、「LOOP」を示すシーケンス制御命令Sl1を出力すると共に、「3」を示すループ信号Sl2を第3フリップフロップ33に出力する。これに加えて、インストラクションメモリ20は、「1」を示すジャンプアドレス信号Sp1を第2フリップフロップ32に出力する。第3フリップフロップ33は、時刻t1において入力した「NOOP」を示すシーケンス制御命令Sl3を出力する。
さらに、時刻t2においてジャンプ制御回路41は、シーケンス制御命令Sl3が「NOOP」を示すため、加算器43からの加算信号Soを選択する旨の選択信号Sqをセレクタ44に送信する。これにより、セレクタ44は、「0」を示すプログラムカウンタ信号Sj2に「1」を加えた「1」を示す加算信号Soを信号Srとしてデュアルポートメモリ11のライトデータに出力することとなる。
時刻t3において、デュアルポートメモリ11は、時刻t2にカウント値「1」を示すプログラムカウンタ信号Sj1が入力されたことから、図2に示す記憶内容に示すように、リードデータからカウント値「1」を示す信号Shを出力する。セレクタ12は、時刻t2と同様に、信号Shを選択する。これにより、カウント値「1」を示すプログラムカウンタ信号Sj1はデュアルポートメモリ11のリードアドレスに入力されると共に、第1フリップフロップ31に入力される。また、第1フリップフロップ31は、前回入力したカウント値「1」を示すプログラムカウンタ信号Sj2を、デュアルポートメモリ11のライトアドレス、プログラムカウンタ制御部40及び第4フリップフロップ50に出力する。そして、第4フリップフロップ50は、時刻t2において入力した「0」を示すプログラムカウンタ信号Saを外部に出力することとなる。
また、時刻t3において、カウント値「1」を示すプログラムカウンタ信号Sj1は、インストラクションメモリ20に入力される。これにより、インストラクションメモリ20は、「LOOP」を示すシーケンス制御命令Sl1を出力する。これに加えて、インストラクションメモリ20は、「1」を示すジャンプアドレス信号Sp1を第2フリップフロップ32に出力する。そして、第2フリップフロップ32は、時刻t2において入力した「1」を示すジャンプアドレス信号Sp2をセレクタ44に出力する。また、第3フリップフロップ33は、時刻t2において入力した「LOOP」を示すシーケンス制御命令Sl3及び「3」を示すループ信号Sl4を出力する。
さらに、時刻t3においてジャンプ制御回路41は、シーケンス制御命令Sl3が「LOOP」を示し、「3」を示すループ信号Sl4を入力したことから、ループカウンタ42の値を「3」にロードするロード信号Smを出力する。また、ジャンプ制御回路41は
、ループカウンタ42からカウンタ信号Snを読み込む。そして、シーケンス制御命令Sl3が「LOOP」を示し、ループカウンタ42の値が「0」となっていないため、第2フリップフロップ32からのジャンプアドレス信号Sp2を選択する旨の選択信号Sqをセレクタ44に送信する。これにより、セレクタ44は、「1」を示すジャンプアドレス信号Sp2を信号Srとしてデュアルポートメモリ11のライトデータに出力することとなる。
時刻t4において、デュアルポートメモリ11は、時刻t3にカウント値「1」を示すプログラムカウンタ信号Sj1が入力されたことから、図2に示す記憶内容に示すように、リードデータからカウント値「1」を示す信号Shを出力する。セレクタ12は、時刻t2〜t3と同様に、信号Shを選択する。これにより、カウント値「1」を示すプログラムカウンタ信号Sj1はデュアルポートメモリ11のリードアドレスに入力されると共に、第1フリップフロップ31に入力される。また、第1フリップフロップ31は、前回入力したカウント値「1」を示すプログラムカウンタ信号Sj2を、デュアルポートメモリ11のライトアドレス、プログラムカウンタ制御部40及び第4フリップフロップ50に出力する。そして、第4フリップフロップ50は、時刻t3において入力した「1」を示すプログラムカウンタ信号Saを外部に出力することとなる。
また、時刻t4において、カウント値「1」を示すプログラムカウンタ信号Sj1は、インストラクションメモリ20に入力される。これにより、インストラクションメモリ20は、「LOOP」を示すシーケンス制御命令Sl1を出力する。これに加えて、インストラクションメモリ20は、「1」を示すジャンプアドレス信号Sp1を第2フリップフロップ32に出力する。そして、第2フリップフロップ32は、時刻t3において入力した「1」を示すジャンプアドレス信号Sp2をセレクタ44に出力する。また、第3フリップフロップ33は、時刻t3において入力した「LOOP」を示すシーケンス制御命令Sl3を出力する。
さらに、時刻t4においてループカウンタ42は、クロックの入力にあわせて、カウンタの値をカウントダウンし、カウンタ値を「2」とする。また、ジャンプ制御回路41は、ループカウンタ42からカウンタ信号Snを読み込む。そして、ジャンプ制御回路41は、シーケンス制御命令Sl3が「LOOP」を示し、ループカウンタ42の値が「0」となっていないため、第2フリップフロップ32からのジャンプアドレス信号Sp2を選択する旨の選択信号Sqをセレクタ44に送信する。これにより、セレクタ44は、「1」を示すジャンプアドレス信号Sp2を信号Srとしてデュアルポートメモリ11のライトデータに出力することとなる。
時刻t5において、デュアルポートメモリ11は、時刻t4にカウント値「1」を示すプログラムカウンタ信号Sj1が入力されたことから、図2に示す記憶内容に示すように、リードデータからカウント値「1」を示す信号Shを出力する。セレクタ12は、時刻t2〜t4と同様に、信号Shを選択する。これにより、カウント値「1」を示すプログラムカウンタ信号Sj1はデュアルポートメモリ11のリードアドレスに入力されると共に、第1フリップフロップ31に入力される。また、第1フリップフロップ31は、前回入力したカウント値「1」を示すプログラムカウンタ信号Sj2を、デュアルポートメモリ11のライトアドレス、プログラムカウンタ制御部40及び第4フリップフロップ50に出力する。そして、第4フリップフロップ50は、時刻t4において入力した「1」を示すプログラムカウンタ信号Saを外部に出力することとなる。
また、時刻t5において、カウント値「1」を示すプログラムカウンタ信号Sj1は、インストラクションメモリ20に入力される。これにより、インストラクションメモリ20は、「LOOP」を示すシーケンス制御命令Sl1を出力する。これに加えて、インス
トラクションメモリ20は、「1」を示すジャンプアドレス信号Sp1を第2フリップフロップ32に出力する。そして、第2フリップフロップ32は、時刻t4において入力した「1」を示すジャンプアドレス信号Sp2をセレクタ44に出力する。また、第3フリップフロップ33は、時刻t4において入力した「LOOP」を示すシーケンス制御命令Sl3を出力する。
さらに、時刻t5においてループカウンタ42は、クロックの入力にあわせて、カウンタの値をカウントダウンし、カウンタ値を「1」とする。また、ジャンプ制御回路41は、ループカウンタ42からカウンタ信号Snを読み込む。そして、ジャンプ制御回路41は、シーケンス制御命令Sl3が「LOOP」を示し、ループカウンタ42の値が「0」となっていないため、第2フリップフロップ32からのジャンプアドレス信号Sp2を選択する旨の選択信号Sqをセレクタ44に送信する。これにより、セレクタ44は、「1」を示すジャンプアドレス信号Sp2を信号Srとしてデュアルポートメモリ11のライトデータに出力することとなる。
時刻t6において、デュアルポートメモリ11は、時刻t5にカウント値「1」を示すプログラムカウンタ信号Sj1が入力されたことから、図2に示す記憶内容に示すように、リードデータからカウント値「1」を示す信号Shを出力する。セレクタ12は、時刻t2〜t5と同様に、信号Shを選択する。これにより、カウント値「1」を示すプログラムカウンタ信号Sj1はデュアルポートメモリ11のリードアドレスに入力されると共に、第1フリップフロップ31に入力される。また、第1フリップフロップ31は、前回入力したカウント値「1」を示すプログラムカウンタ信号Sj2を、デュアルポートメモリ11のライトアドレス、プログラムカウンタ制御部40及び第4フリップフロップ50に出力する。そして、第4フリップフロップ50は、時刻t5において入力した「1」を示すプログラムカウンタ信号Saを外部に出力することとなる。
また、時刻t6において、カウント値「1」を示すプログラムカウンタ信号Sj1は、インストラクションメモリ20に入力される。これにより、インストラクションメモリ20は、「LOOP」を示すシーケンス制御命令Sl1を出力する。これに加えて、インストラクションメモリ20は、「1」を示すジャンプアドレス信号Sp1を第2フリップフロップ32に出力する。そして、第2フリップフロップ32は、時刻t5において入力した「1」を示すジャンプアドレス信号Sp2をセレクタ44に出力する。また、第3フリップフロップ33は、時刻t5において入力した「LOOP」を示すシーケンス制御命令Sl3を出力する。
さらに、時刻t6においてループカウンタ42は、クロックの入力にあわせて、カウンタの値をカウントダウンし、カウンタ値を「0」とする。これにより、シーケンス制御命令Sl3が「LOOP」を示し、ループカウンタ42の値が「0」を示すこととなる。よって、ジャンプ制御回路41は、加算器43からの加算信号Soを選択する旨の選択信号Sqをセレクタ44に送信する。これにより、セレクタ44は、プログラムカウンタ信号Sj2に「1」を加えた「2」を示す加算信号Soを信号Srとしてデュアルポートメモリ11のライトデータに出力することとなる。
加えて、ジャンプ制御回路41は、ループカウンタ42の値が「0」を示したとき、すなわちループカウンタ42のカウントダウン終了時に次々回(すなわち時刻t8)にカウンタ信号出力部10から出力されるプログラムカウンタ信号Sj1のカウント値を書き換える書き換え信号Ss1をカウンタ信号出力部10(具体的にはデュアルポートメモリ11のライトイネーブル)に出力する。より正確には、ジャンプ制御回路41がデュアルポートメモリ11のライトイネーブルに送信しているライトイネーブル信号Ssをイネーブルとする。
時刻t7において、デュアルポートメモリ11は、時刻t6にカウント値「1」を示すプログラムカウンタ信号Sj1が入力されたことから、図2に示す記憶内容に示すように、リードデータからカウント値「1」を示す信号Shを出力する。セレクタ12は、時刻t2〜t6と同様に、信号Shを選択する。これにより、カウント値「1」を示すプログラムカウンタ信号Sj1はデュアルポートメモリ11のライトアドレスに入力されると共に、第1フリップフロップ31に入力される。また、第1フリップフロップ31は、前回入力したカウント値「1」を示すプログラムカウンタ信号Sj2を、デュアルポートメモリ11のライトアドレス、プログラムカウンタ制御部40及び第4フリップフロップ50に出力する。そして、第4フリップフロップ50は、時刻t6において入力した「1」を示すプログラムカウンタ信号Saを外部に出力することとなる。
また、時刻t7においてデュアルポートメモリ11は、書き換え信号Ss1を入力したことから、図2に示す記憶内容を図5に示すように書き換えることとなる。図5は、図1に示したデュアルポートメモリ11が記憶内容を書き換えた後の状態を示す概念図である。具体的に、デュアルポートメモリ11のライトアドレスには、時刻t6において「1」を示すプログラムカウンタ信号Sj2が入力されている。また、ライトデータには、時刻t6において「2」を示す信号Srが入力されている。このため、図5に示すように、メモリアドレス「1」に対応するメモリデータは「1」から「2」に書き換えられることとなる。
また、時刻t7において、カウンタ信号出力部10から出力されたカウント値「1」を示すプログラムカウンタ信号Sj1は、インストラクションメモリ20に入力される。これにより、インストラクションメモリ20は、「LOOP」を示すシーケンス制御命令Sl1を出力する。これに加えて、インストラクションメモリ20は、「1」を示すジャンプアドレス信号Sp1を第2フリップフロップ32に出力する。そして、第2フリップフロップ32は、時刻t6において入力した「1」を示すジャンプアドレス信号Sp2をセレクタ44に出力する。また、第3フリップフロップ33は、時刻t6において入力した「LOOP」を示すシーケンス制御命令Sl3を出力する。
さらに、時刻t7においてジャンプ制御回路41は、ループカウンタ42からカウンタ信号Snを読み込む。そして、ジャンプ制御回路41は、シーケンス制御命令Sl3が「LOOP」であり、ループカウンタ42の値が「0」であるため、加算器43からの加算信号Soを選択する旨の選択信号Sqをセレクタ44に送信する。これにより、セレクタ44は、プログラムカウンタ信号Sj2に「1」を加えた「2」を示す加算信号Soを信号Srとしてデュアルポートメモリ11のライトデータに出力することとなる。なお、ループカウンタ42のカウント値が「0」を示すものの、カウントダウンは時刻t6において既に終了しているため、ジャンプ制御回路41は、書き換え信号Ss1をカウンタ信号出力部10に出力しない。
時刻t8において、デュアルポートメモリ11は、時刻t7にカウント値「1」を示すプログラムカウンタ信号Sj1が入力されたことから、図5に示す記憶内容に示すように、リードデータからカウント値「2」を示す信号Shを出力する。このように、デュアルポートメモリ11のデータの書き換えが行われるため、6回連続して「1」を示すプログラムカウンタ信号Sj1が出力された後に、「2」を示すプログラムカウンタ信号Sj1が出力される。そして、セレクタ12は、時刻t2〜t7と同様に、信号Shを選択する。これにより、カウント値「2」を示すプログラムカウンタ信号Sj1はデュアルポートメモリ11のライトアドレスに入力されると共に、第1フリップフロップ31に入力される。
また、第1フリップフロップ31は、前回入力したカウント値「1」を示すプログラムカウンタ信号Sj2を、デュアルポートメモリ11のライトアドレス、プログラムカウンタ制御部40及び第4フリップフロップ50に出力する。そして、第4フリップフロップ50は、時刻t7において入力した「1」を示すプログラムカウンタ信号Saを外部に出力することとなる。
また、時刻t7において、カウンタ信号出力部10から出力されたカウント値「2」を示すプログラムカウンタ信号Sj1は、インストラクションメモリ20に入力される。これにより、インストラクションメモリ20は、「NOOP」を示すシーケンス制御命令Sl1を出力する。また、第2フリップフロップ32は、時刻t7において入力した「1」を示すジャンプアドレス信号Sp2をセレクタ44に出力する。また、第3フリップフロップ33は、時刻t7において入力した「LOOP」を示すシーケンス制御命令Sl3を出力する。
さらに、時刻t8においてジャンプ制御回路41は、カウンタ信号出力部10から「2」を示すジャンプアドレス信号Sp1を入力すると共に、第1フリップフロップ31から「1」を示すジャンプアドレス信号Sp2を入力する。そして、ジャンプ制御回路41は、今回のプログラムカウンタ信号Sj1が示すカウント値から、前回のプログラムカウンタ信号Sj2が示すカウント値を減算した値が「1」となっていることから、ループサイクルの終了であると判断し、デュアルポートメモリ11のデータについて書き換えた内容を元に戻す復帰信号Ss2を出力する。より正確に、ジャンプ制御回路41がデュアルポートメモリ11のライトイネーブルに送信しているライトイネーブル信号Ssをイネーブルとする。
また、ジャンプ制御回路41は、ループサイクルの終了であるため、ジャンプアドレス信号Sp2を選択する旨の選択信号Sqをセレクタ44に送信する。これにより、セレクタ44は、「1」を示すジャンプアドレス信号Sp2を信号Srとしてデュアルポートメモリ11のライトデータに出力することとなる。
時刻t9において、デュアルポートメモリ11は、時刻t8にカウント値「2」を示すプログラムカウンタ信号Sj1が入力されたことから、図2に示す記憶内容に示すように、リードデータからカウント値「3」を示す信号Shを出力する。セレクタ12は、時刻t2〜t8と同様に、信号Shを選択する。これにより、カウント値「3」を示すプログラムカウンタ信号Sj1はデュアルポートメモリ11のライトアドレスに入力されると共に、第1フリップフロップ31に入力される。また、第1フリップフロップ31は、前回入力したカウント値「2」を示すプログラムカウンタ信号Sj2を、デュアルポートメモリ11のライトアドレス、プログラムカウンタ制御部40及び第4フリップフロップ50に出力する。そして、第4フリップフロップ50は、時刻t8において入力した「1」を示すプログラムカウンタ信号Saを外部に出力することとなる。
また、時刻t9において、カウンタ信号出力部10から出力されたカウント値「3」を示すプログラムカウンタ信号Sj1は、インストラクションメモリ20に入力される。また、第2フリップフロップ32は、時刻t8において入力した「1」を示すジャンプアドレス信号Sp2をセレクタ44に出力し、第3フリップフロップ33は、時刻t8において入力した「NOOP」を示すシーケンス制御命令Sl3を出力する。
さらに、時刻t9においてジャンプ制御回路41は、シーケンス制御命令Sl3が「NOOP」を示すため、加算器43からの加算信号Soを選択する旨の選択信号Sqをセレクタ44に送信する。これにより、セレクタ44は、「2」を示すプログラムカウンタ信号Sj2に「1」を加えた「3」を示す加算信号Soを信号Srとしてデュアルポートメ
モリ11のライトデータに出力することとなる。
また、時刻t9においてデュアルポートメモリ11は、復帰信号Ss2を入力したことから、図5に示す記憶内容を図2に示すように戻すこととなる。具体的に、デュアルポートメモリ11のライトアドレスには、時刻t8において「1」を示すプログラムカウンタ信号Sj2が入力されている。また、ライトデータには、時刻t8において「1」を示す信号Srが入力されている。このため、メモリアドレス「1」に対応するメモリデータは「2」から「1」に書き換えられることとなる。
その後、時刻t10において、第1フリップフロップ31は、時刻t9に入力した「3」を示すプログラムカウンタ信号Sj2をデュアルポートメモリ11のライトアドレス、プログラムカウンタ制御部40及び第4フリップフロップ50に出力することとなる。また、時刻t10において加算器43は、第1フリップフロップ31からの「3」を示すプログラムカウンタ信号Sj2に「1」を加えた「4」を示す加算信号Soを出力する。
さらに、第4フリップフロップ50は、時刻t10に「2」を示すプログラムカウンタ信号Saを外部に出力し、時刻t11において「3」を示すプログラムカウンタ信号Saを外部に出力する。
このようにして、本実施形態に係るシーケンス制御回路1によれば、インストラクションメモリ20とプログラムカウンタ制御部40とをパイプライン処理にて動作させる。このため、インストラクションメモリ20のアクセスと、プログラムカウンタ制御部40の制御とを同時的に行うことができる。すなわち、インストラクションメモリ20がカウンタ信号出力部10からのプログラムカウンタ信号Sj1によりアクセスされる間に、プログラムカウンタ制御部40は、第3フリップフロップ33からのシーケンス制御命令Sl3を入力して制御を行うことができる。このように、プログラムカウンタ制御部40は、インストラクションメモリ20がプログラムカウンタ信号Sj1によりアクセスされ、シーケンス制御命令Sl1が出力された後に、制御を行うことがなくなっており、インストラクションメモリ20のアクセスと、プログラムカウンタ制御部40の制御とを同時的に行うことができる。また、カウンタ信号出力部10は、出力したプログラムカウンタ信号Sj1を自ら入力し、入力したプログラムカウンタ信号Sj1のカウント値に応じて次回のプログラムカウンタ信号Sj1を出力する。このため、プログラムカウンタ制御部40により次回のプログラムカウンタ信号Sj1の書き換えが行われる場合以外については、インストラクションメモリ20のアクセス時間とプログラムカウンタ制御部40の動作速度に影響を受けず、プログラムカウンタ信号Sj1を出力することができる。また、プログラムカウンタ制御部40による次回のプログラムカウンタ信号Sj1の書き換えが行われるとしても、インストラクションメモリ20のアクセスとプログラムカウンタ制御部40の制御とが同時的に行われるため、双方の合計時間に影響を受けることなく、書き換えを行うことができる。以上のように、インストラクションメモリ20のアクセスと、プログラムカウンタ制御部40の制御とを同時的に行うことで、書き換えについても双方の合計時間に影響を受けることなく、書き換えを行わない場合については、そもそもインストラクションメモリ20及びプログラムカウンタ制御部40を介さず、プログラムカウンタ信号Sj1を出力できるため、高速化を図ることができる。
また、インストラクションメモリ20は、回路構成に応じたループ回数(本実施形態では6回ループさせる場合に、回路構成に応じた「3」を減算し、ループ回数は「3」となる)を示すループ信号Sl2を出力し、プログラムカウンタ制御部40は、所定タイミング毎(本実施形態ではクロック入力毎)に、ループ信号Sl2が示すループ回数をカウントダウンしていき、カウントダウン終了時に書き換え信号Ss1を出力する。このように、カウントダウン終了時というループサイクルの終了にあわせて書き換え信号Ss1を出
力する。これにより、例えば、ループサイクルの終了にあわせてループを抜けるように、カウンタ信号出力部10から出力される次回のプログラムカウンタ信号Sj1を書き換えることができる。従って、出力したプログラムカウンタ信号Sj1を自ら入力し、入力したプログラムカウンタ信号Sj1のカウント値に応じて次回のプログラムカウンタ信号Sj1を出力するカウンタ信号出力部10を備えつつも、適切なループサイクルを実現することができる。
また、次回のプログラムカウンタ信号Sj1のカウント値を書き換えた場合、所定条件成立時に書き換えた内容を元に戻すため、次回、新たにシーケンス制御回路1を作動させる場合に、書き換え後の状態のままとならず、次回のシーケンス制御回路1の作動時においても適切にプログラムカウンタ信号Sj1を出力することができる。
また、今回のプログラムカウンタ信号Sj1が示すカウント値から、前回のプログラムカウンタ信号Sj1が示すカウント値を減算した値が「1」となったときに、復帰信号Ss2を出力する。このため、ループが終了して改行が行われた場合に、書き換えた内容を元に戻すこととなり、プログラムカウンタ信号Sj1の出力に影響なく、次回のシーケンス制御回路の作動時においても適切にプログラムカウンタ信号Sj1を出力することができる。
以上、本発明に係るシーケンス制御回路を実施形態に基づいて説明したが、本発明は上記に限定されるものではなく、本発明の趣旨を逸脱しない範囲で、変更を加えてもよい。例えば、本実施形態では、ループサイクルが6回となっているが、これに限らず、6回未満又は7回以上ループさせる場合に適用されてもよい。さらに、本実施形態では、ループサイクルが6回の場合に、ループカウンタ42のカウント値を「3」にロードしているが、回路構成によっては、「3」に限らず、「3」未満又は「4」以上とされてもよい。
また、本実施形態では、第4フリップフロップ50を備えているが、これに限らず、第4フリップフロップ50を備えてなくてもよい。また、本実施形態においてループカウンタ42は、クロック入力毎にカウンタの値をカウントダウンしているが、これに限らず、他の信号等の入力にあわせてカウントダウンする構成であってもよい。
また、本実施形態では、シーケンス制御命令の一例として「NOOP」と「LOOP」とを挙げているが、これに限らず、シーケンス制御命令は、「NOOP」及び「LOOP」以外であってもよい。
また、本実施形態では、一例として図1に示す構成を挙げているが、これに限らず、例えば以下の構成であってもよい。例えば、インストラクションメモリ20とプログラムカウンタ制御部40との間にデコード回路を備え、デコード回路とプログラムカウンタ制御部40との間に第3フリップフロップ33を備えていてもよい。
なお、上記構成の場合、プログラムカウンタ制御部40はデコード回路によってデコード処理されたシーケンス制御命令を入力することとなる。すなわち、プログラムカウンタ制御部40は、シーケンス制御命令を加工した信号を入力することとなるが、本発明はこのような構成であってもよい。
また、以下の構成であってもよい。例えば、図1に示すインストラクションメモリ20に代えて、複数のインストラクションメモリ20を備え、複数のインストラクションメモリ20が並列に設ける。さらに、複数のインストラクションメモリ20の後段(すなわちプログラムカウンタ制御部40側)にはそれぞれ第3フリップフロップ33が設ける。さらに、第3フリップフロップ33の後段には、第3フリップフロップ33から出力された
それぞれのシーケンス制御命令Sl1のうち1つを選択して出力するセレクタを設ける。このような構成の場合、プログラムカウンタ信号Sj1を例えば10bitの信号とし、複数のインストラクションメモリ20は10bitのうち下位9bitの信号を処理するものとする。上位1bitの信号はセレクタに直接入力され、セレクタは上位1bitの信号に基づいて、第3フリップフロップ33から出力されたそれぞれのシーケンス制御命令Sl1のうち1つを選択して出力する。
以上のように、デコード回路を備える例や、インストラクションメモリ20を複数備える例であっても、図1に示した例と同様に、パイプライン処理を行うことができ、シーケンス制御回路の高速化を図ることができる。
本発明の実施形態に係るシーケンス制御回路を示す構成図である。 図1に示したデュアルポートメモリの記憶内容を示す概念図である。 図1に示したインストラクションメモリの記憶内容を示す概念図である。 本実施形態に係るシーケンス制御回路の動作を示すタイミングチャートである。 図1に示したデュアルポートメモリが記憶内容を書き換えた後の状態を示す概念図である。 従来の半導体試験装置の一例を示す構成図である。 図6を参照して説明したシーケンス制御命令及びパターン発生命令Sbの一例を示す図である。 試験パターンSc、及び期待パターンSdの詳細を示すタイミングチャートである。 図6に示したシーケンス制御回路の詳細を示す構成図である。 プログラムカウンタ信号Sa、シーケンス制御命令Sf及び次のプログラムカウンタ信号Sgの詳細を示すタイミングチャートである。
符号の説明
1 シーケンス制御回路
10 カウンタ信号出力部
11 デュアルポートメモリ
12 セレクタ
20 インストラクションメモリ
31〜33,50フリップフロップ
40 プログラムカウンタ制御部
41 ジャンプ制御回路
42 ループカウンタ
43 加算器
44 セレクタ

Claims (3)

  1. アドレスを示すカウント値の情報を有したプログラムカウンタ信号を出力すると共に、出力した前記プログラムカウンタ信号を自ら入力し、入力したプログラムカウンタ信号のカウント値に応じて次回のプログラムカウンタ信号を出力するカウンタ信号出力手段と、
    前記カウンタ信号出力手段からプログラムカウンタ信号を入力し、入力したプログラムカウンタ信号のカウント値に応じて、シーケンス制御命令を出力するインストラクションメモリと、
    前記シーケンス制御命令を入力し、入力したシーケンス制御命令に応じて、前記カウンタ信号出力手段が出力する次回のプログラムカウンタ信号のカウント値を書き換えるプログラムカウンタ制御部と、を備え、
    前記インストラクションメモリと前記プログラムカウンタ制御部とをパイプライン処理にて動作させ
    前記インストラクションメモリは、プログラムカウンタ信号によってアクセスされたアドレスにループを示すシーケンス制御命令を記憶している場合、ループを示すシーケンス制御命令を出力すると共に、回路構成に応じたループ回数を示すループ信号を出力し、
    前記プログラムカウンタ制御部は、前記ループ信号を入力した後、所定タイミング毎に、前記ループ信号が示すループ回数をカウントダウンしていき、カウントダウン終了時にプログラムカウンタ信号のカウント値を書き換える書き換え信号を前記カウンタ信号出力手段に出力する
    ことを特徴とするシーケンス制御回路。
  2. 前記プログラムカウンタ制御部は、次回のプログラムカウンタ信号のカウント値を書き換えた場合、所定条件成立時に書き換えた内容を元に戻す復帰信号を出力する
    ことを特徴とする請求項1に記載のシーケンス制御回路。
  3. 前記プログラムカウンタ制御部は、今回のプログラムカウンタ信号と前回のプログラムカウンタ信号とを入力し、今回のプログラムカウンタ信号が示すカウント値から、前回のプログラムカウンタ信号が示すカウント値を減算した値が1となったときに、前記所定条件が成立したと判断して復帰信号を出力する
    ことを特徴とする請求項2に記載のシーケンス制御回路。
JP2007314290A 2007-12-05 2007-12-05 シーケンス制御回路 Active JP4919084B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007314290A JP4919084B2 (ja) 2007-12-05 2007-12-05 シーケンス制御回路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007314290A JP4919084B2 (ja) 2007-12-05 2007-12-05 シーケンス制御回路

Publications (2)

Publication Number Publication Date
JP2009140122A JP2009140122A (ja) 2009-06-25
JP4919084B2 true JP4919084B2 (ja) 2012-04-18

Family

ID=40870686

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007314290A Active JP4919084B2 (ja) 2007-12-05 2007-12-05 シーケンス制御回路

Country Status (1)

Country Link
JP (1) JP4919084B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5233852B2 (ja) 2009-06-11 2013-07-10 アイシン・エィ・ダブリュ株式会社 電磁弁装置
KR20120136474A (ko) 2011-06-09 2012-12-20 삼성전자주식회사 반도체 테스트 장치 및 그 테스트 방법

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002342076A (ja) * 2001-05-18 2002-11-29 Sharp Corp パイプライン制御方式
JP2003256237A (ja) * 2002-02-27 2003-09-10 Toshiba Corp 割り込み発生装置、割り込み発生方法および割り込み発生プログラム

Also Published As

Publication number Publication date
JP2009140122A (ja) 2009-06-25

Similar Documents

Publication Publication Date Title
US5966723A (en) Serial programming mode for non-volatile memory
US7853727B2 (en) Apparatus and method for producing identifiers regardless of mixed device type in a serial interconnection
JPS6239780B2 (ja)
US4670879A (en) Pattern generator
KR100498508B1 (ko) 데이터 전송시간을 감소시키는 듀얼 버퍼링(Dualbuffering) 메모리 시스템 및 이에 대한 제어방법
JPH0963300A (ja) 半導体メモリ試験装置のフェイル解析装置
US8250320B1 (en) Command cancellation channel for read—modify—write operation in a memory
US4759021A (en) Test pattern generator
JP4919084B2 (ja) シーケンス制御回路
US9436466B2 (en) Blank bit and processor instructions employing the blank bit
US9916878B2 (en) Methods and systems for parallel column twist interleaving
JP4248359B2 (ja) 半導体装置およびその試験方法
JP5032137B2 (ja) 半導体記憶装置
US7345496B2 (en) Semiconductor apparatus and test execution method for semiconductor apparatus
EP0142562B1 (en) Pipeline system for microprogram control unit
JP5149115B2 (ja) 半導体試験装置
JP3777047B2 (ja) フラッシュメモリ装置の消去方法
JP2568268B2 (ja) データ列発生回路及びその回路を用いたメモリテスト装置
JP2007058450A (ja) 半導体集積回路
KR102724459B1 (ko) 데이터 입출력 유닛, 전자 장치 및 그 제어 방법들
US9557384B2 (en) Testing device
JP2004030783A (ja) パターン発生回路及び半導体装置並びに半導体装置の試験方法
US20010021973A1 (en) Processor
JPWO2008026273A1 (ja) Dmaコントローラ
JPH05120080A (ja) フアームウエア実行履歴記憶方式

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100924

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111014

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111020

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111212

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120118

R150 Certificate of patent or registration of utility model

Ref document number: 4919084

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150210

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20180210

Year of fee payment: 6

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20180210

Year of fee payment: 6

S201 Request for registration of exclusive licence

Free format text: JAPANESE INTERMEDIATE CODE: R314201

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20180210

Year of fee payment: 6

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250