(57)【要約】【課題】アンチヒューズ型のＯＴＰメモリへの書き込み時間を短縮化すること。【解決手段】書込回路は、ＯＴＰマクロに対して書き込むデータを記憶する記憶部と、前記書き込むデータの書き込みを前記ＯＴＰマクロに実行させる第一の信号を印加し、前記ＯＴＰマクロが記憶しているデータの読み出しを前記ＯＴＰマクロに実行させる第二の信号を印加する制御部と、前記第二の信号に応じて前記ＯＴＰマクロから読み出されたデータと、前記記憶部が記憶するデータとを比較し、比較結果を出力する比較部とを有し、前記制御部は、前記比較結果が一致を示す場合、前記書き込むデータに関する処理を終了し、前記比較結果が不一致を示す場合、前記第一の信号及び前記第二の信号の印加を再度行う。【選択図】図７
2013037749.tif 000002
【特許請求の範囲】
【請求項１】
ＯＴＰマクロに対して書き込むデータを記憶する記憶部と、
前記書き込むデータの書き込みを前記ＯＴＰマクロに実行させる第一の信号を印加し、前記ＯＴＰマクロが記憶しているデータの読み出しを前記ＯＴＰマクロに実行させる第二の信号を印加する制御部と、
前記第二の信号に応じて前記ＯＴＰマクロから読み出されたデータと、前記記憶部が記憶するデータとを比較し、比較結果を出力する比較部とを有し、
前記制御部は、前記比較結果が一致を示す場合、前記書き込むデータに関する処理を終了し、前記比較結果が不一致を示す場合、前記第一の信号及び前記第二の信号の印加を再度行う書込回路。
【請求項２】
前記第一の信号の印加の回数をカウントし、該回数が上限値に達した場合に前記制御部に通知を行うカウント部を有し、
前記制御部は、前記比較部による比較結果が一致を示す場合、又は前記通知に応じて前記書き込むデータに関する処理を終了する請求項１記載の書込回路。
【請求項３】
前記書き込むデータにおいて、値が１であるビットのうちの一つのビットを１とし、他のビットを０としたデータを生成する生成部を有し、
前記制御部は、前記生成部が生成したデータに関して前記第一の信号を印加し、
前記比較部は、前記第二の信号に応じて前記ＯＴＰマクロから読み出されたデータと、前記記憶部が記憶するデータとのビット毎の排他的論理和を出力し、
前記生成部は、前記ビット毎の排他的論理和をビット順に配列したデータにおいて、値が１であるビットのうちの一つのビットを１とし、他のビットを０としたデータを生成する請求項１又は２記載の書込回路。
【請求項４】
請求項１乃至３いずれか一項記載の書込回路を含む半導体集積回路。
【請求項５】
書込回路が、
ＯＴＰマクロに対して書き込むデータを記憶部に記憶し、
前記書き込むデータの書き込みを前記ＯＴＰマクロに実行させる第一の信号を印加し、
前記ＯＴＰマクロが記憶しているデータの読み出しを前記ＯＴＰマクロに実行させる第二の信号を印加し、
前記第二の信号に応じて前記ＯＴＰマクロから読み出されたデータと、前記記憶部が記憶するデータとを比較する処理を実行し、
前記比較結果が一致を示す場合、前記書き込むデータに関する処理を終了し、前記比較結果が不一致を示す場合、前記第一の信号及び前記第二の信号の印加を再度行う書込方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、書込回路、半導体集積回路、及び書込方法に関する。
【背景技術】
【０００２】
ＯＴＰ（One Time Programmable）メモリは、電源を切っても記憶情報が保持される不揮発メモリの一種であり、基本的に一回限りの書き込みが可能である。ここでは、アンチヒューズ（酸化膜破壊）型のＯＴＰメモリに着目する。
【０００３】
図１は、アンチヒューズ型のＯＴＰメモリの原理を示す図である。同図では、一つのメモリセルに関するトランジスタ（ＭＯＳＦＥＴ（Metal-Oxide-Semiconductor Field-Effect Transistor））が示されている。ＯＴＰメモリへの書き込み時には、ゲートＶｇとドレインＶｄとの間に、例えば、定格外の高電圧が印加される。その結果、ゲートＶｇ部分の酸化膜（絶縁膜）が破壊又は損傷し、トランジスタの電源−電流特性が変化する。ＯＴＰメモリからの読み出し時には、トランジスタの電源−電流特性に基づいて、記憶されている値が「０」であるか「１」であるかが判定される。通常、酸化膜破壊前は「０」とされ、酸化膜破壊後は「１」とされる。
【０００４】
一般的に、ＬＳＩ（Large Scale Integration）に搭載されたＯＴＰメモリに対する書き込みには、ＬＳＩテスタと呼ばれる装置が用いられる。ＬＳＩテスタは、ＬＳＩの製造段階において、ＬＳＩの配線の断線やショート等の製造不良を検出する装置である。具体的には、ＬＳＩテスタは、試験対象のＬＳＩの外部入力端子に対してパターンシーケンスに応じた信号を印加し、ＬＳＩの外部出力端子より出力される信号値を観測する。当該信号値が期待値と異なる場合にＬＳＩの製造不良が検出される。
【０００５】
ＯＴＰメモリに対するデータの書き込み時において、ＬＳＩテスタは、ＯＴＰメモリへの書き込み用のパターンシーケンスに応じた信号をＬＳＩの外部入力端子に印加する。書き込み用のパターンシーケンスとは、図１において説明したように、酸化膜が破壊される程度の高電圧がトランジスタに印加されるようなパターンシーケンス（以下、「書き込みシーケンス」という。）をいう。書き込みの成否の確認時において、ＬＳＩテスタは、ＯＴＰメモリからデータを読み出すためのパターンシーケンス（以下、「読み込みシーケンス」という。）をＬＳＩの外部入力端子に印加し、外部出力端子より出力される信号値を観測する。当該信号値が、期待値に合致すれば書き込みは成功である。
【０００６】
但し、一回の書き込みシーケンスの印加によって、必ずしも書き込みが成功するとは限らない。酸化膜が容易に破壊されない場合があるからである。したがって、ＬＳＩテスタは、図２に示されるような手順で、ＯＴＰメモリへの書き込み及び書き込みの成否の確認を行う。
【０００７】
図２は、ＯＴＰメモリへの書き込み及び書き込みの成否の確認の手順の一例を説明するためのフローチャートである。
【０００８】
同図において、「Ｐｒｏｇｒａｍ」は、書き込みシーケンスに応じた信号の印加を示す。「ＲＥＡＤ」は、読み出しシーケンスに応じた信号の印加及び出力される信号値と期待値との比較を示す。
【０００９】
まず、書き込み対象のＬＳＩに対して、Ｐｒｏｇｒａｍが実行され（Ｓ１）、続いて、ＲＥＡＤが実行される。書き込みに成功した場合（Ｐａｓｓ）、当該ＬＳＩのＯＴＰメモリへのデータの書き込みは終了する。一方、書き込みに失敗した場合（Ｆａｉｌ）、再びＰｒｏｇｒａｍ及びＲＥＡＤが実行される（Ｓ３、Ｓ４）。例えば、ステップＳ３及びＳ４では、ステップＳ１及びＳ２における書き込み条件又は読み出し条件と異なる条件が採用される。書き込みに失敗した場合（Ｆａｉｌ）、上限の回数（ＭＡｘ）の範囲内で、Ｐｒｏｇｒａｍ及びＲＥＡＤが繰り返される。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２００６−３１０８２９号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
上記ＰｒｏｇｒａｍとＲＥＡＤとをＬＳＩテスタに実行させるプログラムは、それぞれ別個のプログラムとして実装される。したがって、Ｐｒｏｇｒａｍの実行開始時及びＲＥＡＤの実行開始時において、ＬＳＩテスタは、Ｐｒｏｇｒａｍ又はＲＥＡＤに応じたプログラムのロード等の初期化に時間を要するという問題がある。
【００１２】
ＬＳＩテスタの使用コストは非常に高く、ＬＳＩテスタの使用時間に応じた使用コストがＬＳＩの製造コストに上積みされる。したがって、ＬＳＩテスタの使用時間の短縮は、利益率の向上のためにも非常に重要である。
【００１３】
そこで、1側面では、アンチヒューズ型のＯＴＰメモリへの書き込み時間を短縮化することのできる書込回路、半導体集積回路、及び書込方法の提供を目的とする。
【課題を解決するための手段】
【００１４】
一つの案では、書込回路は、ＯＴＰマクロに対して書き込むデータを記憶する記憶部と、前記書き込むデータの書き込みを前記ＯＴＰマクロに実行させる第一の信号を印加し、前記ＯＴＰマクロが記憶しているデータの読み出しを前記ＯＴＰマクロに実行させる第二の信号を印加する制御部と、前記第二の信号に応じて前記ＯＴＰマクロから読み出されたデータと、前記記憶部が記憶するデータとを比較し、比較結果を出力する比較部とを有し、前記制御部は、前記比較結果が一致を示す場合、前記書き込むデータに関する処理を終了し、前記比較結果が不一致を示す場合、前記第一の信号及び前記第二の信号の印加を再度行う。
【発明の効果】
【００１５】
一態様によれば、アンチヒューズ型のＯＴＰメモリへの書き込み時間を短縮化することができる。
【図面の簡単な説明】
【００１６】
【図１】アンチヒューズ型のＯＴＰメモリの原理を示す図である。
【図２】ＯＴＰメモリへの書き込み及び書き込みの成否の確認の手順の一例を説明するためのフローチャートである。
【図３】本発明の実施の形態におけるＬＳＩ及びＬＳＩテスタの概略構成例を示す図である。
【図４】本発明の実施の形態のＯＴＰマクロの構成例を示す図である。
【図５】ＯＴＰマクロへの書込データの書き込み動作を説明するためのタイミングチャートである。
【図６】ＯＴＰマクロからのデータの読み出し動作を説明するためのタイミングチャートである。
【図７】第一の実施の形態の書込回路の構成例を示す図である。
【図８】第一の実施の形態の制御回路とステートマシンとの論理の一例を説明するための図である。
【図９】第一の実施の形態の書込回路の動作の一例を説明するためのタイミングチャートである。
【図１０】ＬＳＩテスタが実行する処理の処理手順の一例を説明するためのフローチャートである。
【図１１】第二の実施の形態の書込回路の構成例を示す図である。
【発明を実施するための形態】
【００１７】
以下、図面に基づいて本発明の実施の形態を説明する。図３は、本発明の実施の形態におけるＬＳＩ及びＬＳＩテスタの概略構成例を示す図である。
【００１８】
同図において、ＬＳＩ（Large Scale Integration）１０は、半導体集積回路の一例である。ＬＳＩ１０は、ＯＴＰマクロ１１及び書込回路１２等を含む。ＯＴＰマクロ１１は、アンチヒューズ型（酸化膜（絶縁膜）破壊型）のＯＴＰ（One Time Programmable）メモリを含む回路群である。書込回路１２は、ＯＴＰメモリへのデータの書き込み及び書き込みの成否の確認等を実行する回路である。すなわち、ＬＳＩ１０には、ＯＴＰマクロ１１の書き込み機能及び書き込みの成否の確認機能等が内蔵されている。
【００１９】
ＬＳＩテスタ２０は、一般的なＬＳＩテスタである。ＬＳＩテスタ２０は、例えば、ＣＰＵ２１、メモリ２２、ドライバ回路２３、及びレシーバ回路２４等を含む。メモリ２２は、ＬＳＩ１０のテスト用のプログラム（テストプログラム）等を記憶する。本実施の形態において、テストプログラムは、ＬＳＩ１０のＯＴＰマクロ１１に関する、データの書き込み及び書き込みの成否の確認等を書込回路１２に実行させるプログラムである。ＣＰＵ２１は、当該テストプログラムに従って処理制御を実行する。例えば、ＣＰＵ２１は、ＬＳＩ１０の外部入力端子への信号の印加をドライバ回路２３に実行させる。当該信号は、テストプログラムに実装されたパターンシーケンスに応じた信号である。ＣＰＵ２１は、また、レシーバ回路２４によって受信される、ＬＳＩ１０の外部出力端子からの出力信号値に基づいて、パターンシーケンスの終了を判定する。なお、同図では、ドライバ回路２３とＬＳＩ１０とは２本の線で接続されている。当該線は模式的なものであり、当該線の数は、ドライバ回路２３からＬＳＩ１０へ入力される信号の種類の数を厳密に表現するものではない。レシーバ回路２４とＬＳＩ１０とを接続する線に関しても同様である。
【００２０】
図４は、本発明の実施の形態のＯＴＰマクロの構成例を示す図である。同図において、ＯＴＰマクロ１１は、ＯＴＰメモリアレイ１１１、冗長セル行１１２、デコーダ１１３、コンパレータ１１４、データレジスタ１１５、冗長レジスタ１１６、及びコントローラ１１７等を含む。ＯＴＰメモリアレイ１１１は、同図の右側に拡大されて示されているように、一以上のＯＴＰメモリセル（以下、単に「メモリセル」という。）が、一以上の行及び一以上の列を有する格子状に配列されたものである。各メモリセル（（ＭＯＳＦＥＴ（Metal-Oxide-Semiconductor Field-Effect Transistor））のゲートは、選択ビット線ＢＬに接続され、各メモリセルのドレインは、選択ワード線ＷＬに接続される。或るメモリセルにデータを書き込む場合、当該メモリセルのゲートが接続された選択ビット線ＢＬと、当該メモリセルのドレインが接続された選択ワード線ＷＬ間に対して高電圧が印加される。同図では、太線で表現されている選択ビット線ＢＬ２と選択ワード線ＷＬ２間に高電圧が印加され、メモリセルｄの酸化膜が破壊された様子が示されている。
【００２１】
冗長セル行１１２は、ＯＴＰメモリアレイ１１１内の一部のメモリセルが故障した場合に、代替されるメモリセルの集合である。
【００２２】
デコーダ１１３は、ＯＴＰメモリアレイ１１１へのデータの書き込み時又はＯＴＰメモリアレイ１１１からのデータの読み出し時において、Ａｄｄｒｅｓｓ信号の示すアドレスに対応する選択ビット線ＢＬ及び選択ワード線ＷＬを選択する回路である。
【００２３】
コンパレータ１１４は、ＯＴＰメモリアレイ１１１からのデータの読み出し時において、ＯＴＰメモリアレイ１１１より出力される電流の特性に基づいて、読み出し対象とされたメモリセルに記憶されていた値が「１」であるか「０」であるかを判定し、判定結果を出力する回路である。すなわち、コンパレータ１１４によってアナログからデジタルへの変換が行われる。データレジスタ１１５は、データの書き込み時において、ＯＴＰマクロ１１の外部より印加されるＤａｔａ信号（データ入力信号）が示す書込データを記憶し、データの読み出し時において、コンパレータ１１４より出力されるデータを記憶する回路である。データの読み出し時においてデータレジスタ１１５に記憶されたデータは、ＯＴＰマクロ１１の外部に出力される。データレジスタ１１５は、例えば、データを記憶するための一以上のフリップフロップを含む。
【００２４】
冗長レジスタ１１６は、冗長セル行１１２に含まれるメモリセルが使用される場合に、ＯＴＰメモリアレイ１１１のいずれのメモリセルが、冗長セル行１１２のいずれのメモリセルによって代替されるのかを示す情報を記憶する回路である。なお、冗長セル行１１２及び冗長レジスタ１１６は、ＯＴＰマクロ１１の冗長性を確保するための回路であるため、ＯＴＰマクロ１１に含まれていなくてもよい。
【００２５】
コントローラ１１７は、Ｒｅａｄ信号、Ｗｒｉｔｅ信号、又はＰＧＭ信号等の入力をＯＴＰマクロ１１の外部より受け付け、各信号に応じた制御を行う。Ｒｅａｄ信号は、データの読み出し命令を示す信号である。Ｗｒｉｔｅ信号は、データレジスタ１１５への書込データの設定（書き込み）命令を示す信号である。ＰＧＭ信号は、ビット選択線ＢＬ及びワード選択線間に印加される高電圧の信号である。
【００２６】
図５は、ＯＴＰマクロへの書込データの書き込み動作を説明するためのタイミングチャートである。
【００２７】
Ｄａｔａ信号が有効な値（すなわち、書込データ）を示すようになった後、Ｗｒｉｔｅ信号が所定時間（Ｔｗ）の間印加されると、データレジスタ１１５に書込データが記憶される。続いて、Ａｄｄｒｅｓｓ信号が有効な値（すなわち、書込データを書き込むアドレス）を示すようになった後、ＰＧＭ信号が所定時間（Ｔpgm）の間印加されると、デコーダ１１３は、ＰＧＭ信号の電圧をＡｄｄｒｅｓｓ信号の示すアドレスに対応する選択ビット線ＢＬ及び選択ワード線ＷＬ間に印加する。その結果、当該アドレスに対応するメモリセルに書込データが書き込まれる。
【００２８】
図６は、ＯＴＰマクロからのデータの読み出し動作を説明するためのタイミングチャートである。
【００２９】
Ａｄｄｒｅｓｓ信号が有効な値（すなわち、読み出し先のアドレス）を示すようになった後、Ｒｅａｄ信号が所定時間（ｔＲＰ）間印加されると、コンパレータ１１４は、Ａｄｄｒｅｓｓ信号が示すアドレスに対応するメモリセルの電流特性に応じた値（「０」又は「１」）を出力する。コンパレータ１１４より出力された値は、データレジスタ１１５に記憶される。Ｒｅａｄ信号が印加されてから所定時間（ｔＡＣＣ）経過後に、データレジスタ１１５に記憶されたデータを示す信号Ｑがデータレジスタ１１５より出力される。
【００３０】
図７は、第一の実施の形態の書込回路の構成例を示す図である。同図において、書込回路１２は、ステートマシン１２１、制御回路１２２、比較データ記憶部１２３、設定データ生成回路１２４、比較器１２５、及びカウンタ１２６等を含む。なお、第一の実施の形態では、便宜上、書込データの情報量（ビット数）が、１ビットである場合について説明する。
【００３１】
ステートマシン１２１は、書込回路１２の動作状態を記憶する回路である。ステートマシン１２１は、例えば、二つのフリップフロップを含み、２ビットの情報量で、ｓｅｔ状態、ｒｅａｄ状態、ｗｒｉｔｅ状態、及びｅｎｄ状態等の４通りの動作状態を表現する。ｓｅｔ状態とは、書込データを比較データ記憶部１２３とにセットすべき（記憶させるべき）状態である。ｒｅａｄ状態は、ＯＴＰメモリアレイ１１１に書き込まれたデータを読み出すべき状態である。ｗｒｉｔｅ状態は、比較データ記憶部１２３に記憶されている書込データをデータレジスタ１１５に記憶させ、データレジスタ１１５に記憶されている書込データを、ＯＴＰメモリアレイ１１１に書き込むべき状態である。ｅｎｄ状態は、一つのパターンシーケンスを終了すべき状態である。
【００３２】
ステートマシン１２１には、ＲＳＴ信号及びクロック信号がＬＳＩテスタ２０より入力され、制御回路１２２よりＭｏｄｅ信号が入力される。ＲＳＴ信号の入力に応じ、ステートマシン１２１の記憶値は「００」に初期化（リセット）される。後述されるように「００」は、ｓｅｔ状態を示す。ＣＬＫ信号の入力に応じ、ステートマシン１２１は、現在の記憶値を制御回路１２２に出力する。Ｍｏｄｅ信号の入力に応じ、ステートマシン１２１は、Ｍｏｄｅ信号の値と、現在の動作状態（記憶値）とに基づいて、次に遷移すべき動作状態を判定し、当該動作状態に応じた値を記憶する。ステートマシン１２１は、現在の記憶値（すなわち、動作状態）を示すＳｔ信号を、制御回路１２２に出力する。
【００３３】
比較データ記憶部１２３は、ｓｅｔ状態において、ＦＦ＿ＣＬＫ信号が入力されると、ＬＳＩテスタ２０より入力されているＤａｔａ信号が示す書込データを記憶する。第一の実施の形態において、書込データの情報量は１ビットであるため、比較データ記憶部１２３は、例えば、一つのフリップフロップである。比較データ記憶部１２３が記憶する書込データは、ＯＴＰメモリアレイ１１１への書込データの書き込みの成否の確認のために用いられる。
【００３４】
比較器１２５は、ｒｅａｄ状態において、ＯＴＰメモリアレイ１１１より読み出されデータレジスタ１１５に記憶されているデータと、比較データ記憶部１２３に記憶されている書込データとを比較し、比較結果を示す信号を出力する。具体的には、比較器１２５は、一つのＸＯＲゲートを含む。比較器１２５は、ＯＴＰメモリアレイ１１１より読み出されデータレジスタ１１５に記憶されているデータと、比較データ記憶部１２３に記憶されている書込データとの排他的論理和を演算し、演算結果を示すＣｍｐ信号を出力する。したがって、Ｃｍｐ信号の「0」は、比較対象のデータの一致を示し、「1」は比較対象のデータの不一致を示す。Ｃｍｐ信号は、制御回路１２２、設定データ生成回路１２４、及びＬＳＩテスタ２０に入力される。
【００３５】
設定データ生成回路１２４は、ｓｅｔ状態において、比較データ記憶部１２３に記憶されている書込データに基づいて、データレジスタ１１５に設定する（記憶させる）データ（以下、「設定データ」という。）を生成する回路である。生成された設定データは、ｗｒｉｔｅ状態において、データレジスタ１１５に設定される。なお、書込データが１ビットである第一の実施の形態において、設定データ生成回路１２４は、比較データ記憶部１２３に記憶された書込データを、そのまま設定データとすることも可能である。設定データ生成回路１２４は、また、１回目のｗｒｉｔｅ状態以降のｒｅａｄ状態において、比較器１２５より出力されるＣｍｐ信号の値を設定データとする。
【００３６】
カウンタ１２６は、ＯＴＰメモリアレイ１１１への書込データの書き込み回数をカウント（計数）する回路である。カウンタ１２６は、制御回路１２２より出力されるＣＮＴ＿ＲＳＴ信号の入力に応じ、書き込み回数を「０」に初期化する。カウンタ１２６は、制御回路１２２より出力されるＣＮＴ＿ＣＬＫ信号の入力に応じ、書き込み回数に１を加算する。カウンタ１２６は、書き込み回数が上限値に達すると、制御回路１２２に対して通知を行う。具体的には、カウンタ１２６は、出力するＭａｘ信号の値を「１」にする。Ｍａｘ信号の値は、書き込み回数が上限値に達していない場合は、「０」とされる。カウンタ１２６によって、書込データの書き込み回数を所定回数内に限定することができ、書き込み（酸化膜の破壊）が困難なＯＴＰマクロ１１に対して消費される時間を抑制することができる。
【００３７】
制御回路１２２は、ステートマシン１２１が示す動作状態等に応じた制御を行う回路である。制御回路１２２の動作については、図８を参照しつつ説明する。
【００３８】
図８は、第一の実施の形態の制御回路とステートマシンとの論理の一例を説明するための図である。同図では、行方向において動作状態が区別されており、列方向（但し、４列目以降）において、制御回路１２２の制御内容（すなわち、制御回路１２２が出力する信号の状態）が示されている。信号の状態において「Ｐ」はパルス（信号の印加）を示す。
【００３９】
１列目は、ステートマシン１２１より制御回路１２２に入力されるＳｔ信号の値を２ビットで示す。なお、本実施の形態では、当該値に対して、Ｓｔ信号の値であることを示す符号「ｓ」が先頭に付される。２列目は、Ｓｔ信号の各値が、ｓｅｔ状態、ｒｅａｄ状態、ｗｒｉｔｅ状態、及びｅｎｄ状態のいずれに該当するのかを示す。なお、ｓｅｔ状態、ｒｅａｄ状態、ｗｒｉｔｅ状態、及びｅｎｄ状態は、説明の便宜上、Ｓｔ信号の各値に付与された名称である。３列目は、４列目以降に示される制御が実行された後の動作状態の遷移先を示す。
【００４０】
制御回路１２２に入力されるＳｔ信号の値が「ｓ００」である場合（すなわち、ｓｅｔ状態である場合）、制御回路１２２は、ＬＳＩテスタ２０より入力されるＭＤ信号の値が「０」であれば、ＦＦ＿ＣＬＫ信号を印加する。その結果、比較データ記憶部１２３には、Ｄａｔａ信号が示す書込データが記憶される。また、比較データ記憶部１２３に記憶された書込データに基づいて、設定データ生成回路１２４によって設定データが生成される。但し、設定データの値は、書込データと同じである。また、制御回路１２２は、ＭＤ信号の値が「０」以外であれば、ＣＮＴ＿ＲＳＴ信号を印加すると共に、Ｍｏｄｅ信号の値を１にする。Ｍｏｄｅ信号の値が１となった後のＣＬＫ信号の入力に応じ、ステートマシン１２１は、Ｍｏｄｅ信号の値「１」と、現在の記憶値「ｓ００」との組み合わせに基づいて、記憶値を「ｓ０１」に変更する。したがって、制御回路１２２に入力されるＳｔ信号の値は、「ｓ０１」となる。なお、ＭＤ信号は、書込回路１２の動作状態を強制的に遷移させるために、ＬＳＩテスタ２０から書込回路１２に入力される信号である。
【００４１】
制御回路１２２に入力されるＳｔ信号の値が「ｓ０１」である場合（すなわち、ｒｅａｄ状態である場合）、制御回路１２２は、Ｒｅａｄ信号を印加すると共に、Ｍｏｄｅ信号の値を１にする。その結果、データレジスタ１１５には、ＯＴＰメモリアレイ１１１において、Ａｄｄｒｅｓｓ信号が示すアドレスに対応するメモリセルに記憶されている値が記憶される（読み出される）。また、ｒｅａｄ状態へ遷移後のＣＬＫ信号の入力に応じ、ステートマシン１２１は、Ｍｏｄｅ信号の値「１」と、現在の記憶値「ｓ０１」との組み合わせに基づいて、記憶値を「ｓ１０」に変更する。したがって、制御回路１２２に入力されるＳｔ信号の値は「ｓ１０」となる。
【００４２】
制御回路１２２に入力されるＳｔ信号の値が「ｓ１０」である場合（すなわち、ｗｒｉｔｅ状態である場合）において、比較器１２５から入力されるＣｍｐ信号の値が「０」であるときは、制御回路１２２は、Ｍｏｄｅ信号の値を「１」にすると共に、ＥＮＤ信号を出力する。Ｃｍｐ信号の値が「０」以外であって、カウンタ１２６から入力されるＭａｘ信号の値が「１」であるときも、制御回路１２２は、Ｍｏｄｅ信号の値を「１」にすると共に、ＥＮＤ信号を出力する。
【００４３】
その結果、ｗｒｉｔｅ状態へ遷移後のＣＬＫ信号の入力に応じ、ステートマシン１２１は、Ｍｏｄｅ信号の値「１」と、現在の記憶値「ｓ１０」との組み合わせに基づいて、記憶値を「ｓ１１」に変更する。したがって、制御回路１２２に入力されるＳｔ信号の値は「ｓ１１」となる。また、ＥＮＤ信号は、ＬＳＩテスタ２０に入力され、ＣＰＵ２１は、パターンシーケンスの終了（書込データの書き込みの終了）を判定する。
【００４４】
また、制御回路１２２に入力されるＳｔ信号の値が「ｓ１０」である場合において、比較器１２５から入力されるＣｍｐ信号の値が「０」以外であり、かつ、カウンタ１２６から入力されるＭａｘ信号の値が「０」であるときは、制御回路１２２は、Ｗｒｉｔｅ信号及びＰＧＭ信号を印加する。Ｗｒｉｔｅ信号の印加に応じ、設定データ生成回路１２４に生成された設定データがデータレジスタ１１５に設定される。また、高電圧のＰＧＭ信号の印加に応じ、データレジスタ１１５に設定された書込データについて、ＯＴＰメモリアレイ１１１においてＡｄｄｒｅｓｓ信号の示すアドレスに対応するメモリセルに対する書き込みが行われる。すなわち、当該メモリセルに係る酸化膜の破壊が実行される。
【００４５】
なお、図８では、Ｗｒｉｔｅ信号とＰＧＭ信号とは、一つの列に統合されているが、これは、ｗｒｉｔｅ状態においてＷｒｉｔｅ信号とＰＧＭ信号とが印加されることを示すものであり、Ｗｒｉｔｅ信号とＰＧＭ信号が同時に印加されることを示すものではない。図５において説明したように、Ｗｒｉｔｅ信号とＰＧＭ信号との印加のタイミングには多少のずれがある。
【００４６】
また、本実施の形態では、制御回路１２２より高電圧のＰＧＭ信号が印加される例が示されているが、ＰＧＭ信号は、ＬＳＩテスタ２０より供給されてもよい。この場合、制御回路１２２は、ＰＧＭ信号をＯＴＰマクロ１１に印加するか否かを制御するための制御信号をＰＧＭ信号の代わりに印加してもよい。具体的には、ＬＳＩテスタ２０からＰＧＭ信号が供給される信号線と、制御回路１２２からの当該制御信号が供給される信号とはＡＮＤゲートに接続され、ＡＮＤゲートによる論理積の演算結果がＯＴＰマクロに入力されるようにすればよい。そうすることにより、制御回路１２２は、制御信号の値を「１」にすることにより、高電圧のＰＧＭ信号をＯＴＰマクロ１１に印加することができる。
【００４７】
制御回路１２２は、また、ｗｒｉｔｅ状態において、ＣＮＴ＿ＣＬＫ信号を印加する。ＣＮＴ＿ＣＬＫ信号の印加に応じ、カウンタ１２６は、書き込み回数に１を加算する。制御回路１２２は、更に、Ｍｏｄｅ信号の値を０にする。その結果、ｗｒｉｔｅ状態へ遷移後のＣＬＫ信号の入力に応じ、ステートマシン１２１は、Ｍｏｄｅ信号の値「０」と、現在の記憶値「ｓ１０」との組み合わせに基づいて、記憶値を「ｓ０１」に変更する。したがって、制御回路１２２に入力されるＳｔ信号の値は「ｓ０１」となる。すなわち、制御回路１２２に入力されるＳｔ信号の値が「ｓ１０」である場合において、比較器１２５から入力されるＣｍｐ信号の値が「０」以外であり、かつ、カウンタ１２６から入力されるＭａｘ信号の値が「０」であるときは、Ｗｒｉｔｅ信号及びＰＧＭ信号の印加と、Ｒｅａｄ信号の印加とが繰り返される。
【００４８】
制御回路１２２に入力されるＳｔ信号の値が「ｓ１１」である場合（すなわち、ｅｎｄ状態である場合）、制御回路１２２は、書込データに関する処理を終了する。具体的には、制御回路１２２は、ＥＮＤ信号を印加する。ＥＮＤ信号は、ＬＳＩテスタ２０に入力される。ＬＳＩテスタ２０は、ＥＮＤ信号が入力されると、パターンシーケンスを終了させる。
【００４９】
続いて、書込回路１２の動作の一例を、タイミングチャートを用いて説明する。図９は、第一の実施の形態の書込回路の動作の一例を説明するためのタイミングチャートである。なお、同図において、書込データの値は「１」であるとする。また、同図は、２回のＰＧＭ信号の印加で、書き込み（酸化膜の破壊）が成功した例を示す。
【００５０】
まず、ＬＳＩテスタ２０よりＲＳＴ信号がステートマシン１２１に印加される。ＲＳＴ信号の印加に応じ、ステートマシン１２１は、記憶値を「ｓ００」に初期化する。すなわち、書込回路１２はｓｅｔ状態となる。
【００５１】
続いて、ＬＳＩテスタ２０は、ＣＬＫ信号の印加を開始する。また、ＬＳＩテスタは、Ｄａｔａ信号及びＡｄｄｒｅｓｓ信号の値を有効化（ｖａｌｉｄ）する。すなわち、Ｄａｔａ信号は、書込データの値を示し、Ａｄｄｒｅｓｓ信号の値は、書き込み先のアドレスを示すようになる。また、ＬＳＩテスタ２０は、ＭＤ信号の値を「０」にする。
【００５２】
ＣＬＫ信号の印加に応じて、制御回路１２２には値が「ｓ００」であるＳｔ信号が入力される。制御回路１２２は、Ｓｔ信号の値が「ｓ００」であり、かつ、ＭＤ信号の値は「０」であることに基づいて、ＦＦ＿ＣＬＫ信号を印加する。ＦＦ＿ＣＬＫ信号の印加に応じ、比較データ記憶部１２３は、Ｄａｔａ信号が示す値（すなわち、書込データ）を記憶する。また、設定データ生成回路１２４は、比較データ記憶部１２３に記憶された書込データと同じ値の設定データを生成する。
【００５３】
続いて、ＬＳＩテスタ２０は、ＭＤ信号の値を「１」にする。ＭＤ信号の値が「１」になったことに応じ、制御回路１２２は、ＣＮＴ＿ＲＳＴ信号を印加すると共に、Ｍｏｄｅ信号の値を「１」にする。ＣＮＴ＿ＲＳＴ信号の印加に応じ、カウンタ１２６は、書き込み回数の値を「０」に初期化する。
【００５４】
Ｍｏｄｅ信号の値が「１」になった後のＣＬＫ信号の入力に応じ、ステートマシン１２１は、Ｍｏｄｅ信号の値「１」と現在の記憶値「ｓ００」との組み合わせに基づいて、記憶値を「ｓ０１」に変更する。次のクロック信号の入力に応じ、ステートマシン１２１は、値が「ｓ０１」であるＳｔ信号を、制御回路１２２に出力する。制御回路１２２は、Ｓｔ信号の値が「ｓ０１」であることに基づいて、Ｒｅａｄ信号を印加する。制御回路１２２は、また、Ｍｏｄｅ信号の値を「１」のままとする。Ｒｅａｄ信号の印加に応じ、データレジスタ１１５には、ＯＴＰメモリアレイ１１１において、Ａｄｄｒｅｓｓ信号が示すアドレスに対応するメモリセルに記憶されている値が記憶される（読み出される）。この段階では、いずれのメモリセルにも書き込みは行われていないため、「０」が読み出される。
【００５５】
次のＣＬＫ信号の入力に応じ、ステートマシン１２１は、Ｍｏｄｅ信号の値「１」と現在の記憶値「ｓ０１」との組み合わせに基づいて、記憶値を「ｓ１０」に変更する。更に、次のＣＬＫ信号の入力に応じ、ステートマシン１２１は、値が「ｓ１０」であるＳｔ信号を、制御回路１２２に出力する。また、比較器１２５は、データレジスタ１１５が記憶する値（「０」）と比較データ記憶部１２３が記憶する値（「１」）との排他的論理和である「１」を示すＣｍｐ信号を出力する。設定データ生成回路１２４は、Ｃｍｐ信号の値を設定データとする。但し、書込データが１ビットの場合、Ｃｍｐ信号の値（「１」）によって設定データが更新されたとしても、設定データの値は、書込データと同じである。なお、この段階において、書き込み回数は上限（例えば、５回）に達していないため、カウンタ１２６から出力されるＭａｘ信号の値は「０」である。
【００５６】
制御回路１２２は、Ｓｔ信号の値が「ｓ１０」であり、Ｃｍｐ信号の値が「１」であり、Ｍａｘ信号の値が「０」であることに基づいて、Ｗｒｉｔｅ信号及びＰＧＭ信号を印加する。Ｗｒｉｔｅ信号の印加に応じ、設定データ生成回路１２４によって生成された設定データは、データレジスタ１１５に設定される。また、ＰＧＭ信号の印加に応じ、データレジスタ１１５に記憶された書込データについて、ＯＴＰメモリアレイ１１１においてＡｄｄｒｅｓｓ信号の示すアドレスに対応するメモリセルに対する書き込みが行われる。但し、ここでは、書き込みに失敗したこととする。すなわち、当該メモリセルに係る酸化膜は破壊されなかったこととする。
【００５７】
制御回路１２２は、また、ＣＮＴ＿ＣＬＫ信号を印加する。ＣＮＴ＿ＣＬＫ信号の印加に応じ、カウンタ１２６は、書き込み回数に１を加算する。制御回路１２２は、更に、Ｍｏｄｅ信号の値を０にする。ステートマシン１２１は、Ｍｏｄｅ信号の値「０」と、現在の記憶値「ｓ１０」との組み合わせに基づいて、記憶値を「ｓ０１」に変更する。
【００５８】
次のＣＬＫ信号の入力に応じ、ステートマシン１２１は、値が「ｓ０１」であるＳｔ信号を、制御回路１２２に出力する。制御回路１２２は、Ｓｔ信号の値が「ｓ０１」であることに基づいて、Ｒｅａｄ信号を印加する。制御回路１２２は、また、Ｍｏｄｅ信号の値を「１」にする。Ｒｅａｄ信号の印加に応じ、データレジスタ１１５には、ＯＴＰメモリアレイ１１１において、Ａｄｄｒｅｓｓ信号が示すアドレスに対応するメモリセルに記憶されている値が記憶される（読み出される）。前回の書き込み時において。当該メモリセルへの書き込みは失敗しているため、「０」が読み出される。
【００５９】
次のＣＬＫ信号の入力に応じ、ステートマシン１２１は、Ｍｏｄｅ信号の値「１」と、現在の記憶値「ｓ０１」との組み合わせに基づいて、記憶値を「ｓ１０」に変更する。更に、次のＣＬＫ信号の入力に応じ、ステートマシン１２１は、値が「ｓ１０」であるＳｔ信号を、制御回路１２２に出力する。また、比較器１２５は、データレジスタ１１５が記憶する値（「０」）と比較データ記憶部１２３が記憶する値（「１」）との排他的論理和である「１」を示すＣｍｐ信号を出力する。設定データ生成回路１２４は、Ｃｍｐ信号の値を設定データとする。なお、この段階において、書き込み回数は上限に達していないため、カウンタ１２６から出力されるＭａｘ信号の値は「０」である。
【００６０】
制御回路１２２は、Ｓｔ信号の値が「ｓ１０」であり、Ｃｍｐ信号の値が「１」であり、Ｍａｘ信号の値が「０」であることに基づいて、Ｗｒｉｔｅ信号及びＰＧＭ信号を印加する。Ｗｒｉｔｅ信号の印加に応じ、設定データ生成回路１２４によって生成された設定データは、データレジスタ１１５に設定される。また、ＰＧＭ信号の印加に応じ、データレジスタ１１５に記憶された書込データについて、ＯＴＰメモリアレイ１１１においてＡｄｄｒｅｓｓ信号の示すアドレスに対応するメモリセルに対する書き込みが行われる。ここでは、書き込みに成功したこととする。すなわち、当該メモリセルに係る酸化膜は破壊されたこととする。
【００６１】
制御回路１２２は、また、ＣＮＴ＿ＣＬＫ信号を印加する。ＣＮＴ＿ＣＬＫ信号の印加に応じ、カウンタ１２６は、書き込み回数に１を加算する。制御回路１２２は、更に、Ｍｏｄｅ信号の値を０にする。ステートマシン１２１は、Ｍｏｄｅ信号の値「０」と、現在の記憶値「ｓ１０」との組み合わせに基づいて、記憶値を「ｓ０１」に変更する。
【００６２】
次のＣＬＫ信号の入力に応じ、ステートマシン１２１は、値が「ｓ０１」であるＳｔ信号を、制御回路１２２に出力する。制御回路１２２は、Ｓｔ信号の値が「ｓ０１」であることに基づいて、Ｒｅａｄ信号を印加する。制御回路１２２は、また、Ｍｏｄｅ信号の値を「１」にする。Ｒｅａｄ信号の印加に応じ、データレジスタ１１５には、ＯＴＰメモリアレイ１１１において、Ａｄｄｒｅｓｓ信号が示すアドレスに対応するメモリセルに記憶されている値が記憶される（読み出される）。前回の書き込み時において。当該メモリセルへの書き込みは成功しているため、「１」が読み出される。
【００６３】
次のＣＬＫ信号の入力に応じ、ステートマシン１２１は、Ｍｏｄｅ信号の値「１」と、現在の記憶値「ｓ０１」との組み合わせに基づいて、記憶値を「ｓ１０」に変更する。更に、次のＣＬＫ信号の入力に応じ、ステートマシン１２１は、値が「ｓ１０」であるＳｔ信号を、制御回路１２２に出力する。また、比較器１２５は、データレジスタ１１５が記憶する値（「１」）と比較データ記憶部１２３が記憶する値（「１」）との排他的論理和である「０」を示すＣｍｐ信号を出力する。
【００６４】
制御回路１２２は、Ｓｔ信号の値が「ｓ１０」であることに基づいて、Ｍｏｄｅ信号の値を「１」のままとする。その結果、次のＣＬＫ信号の入力に応じ、ステートマシン１２１は、Ｍｏｄｅ信号の値「１」と、現在の記憶値「ｓ１０」との組み合わせに基づいて、記憶値を「ｓ１１」に変更する。ステートマシン１２１は、値が「ｓ１１」であるＳｔ信号を、制御回路１２２に出力する。制御回路１２２は、Ｓｔ信号の値が「ｓ１１」であることに基づいて、ＥＮＤ信号を「１」にする。すなわち、制御回路１２２は、書込データの書き込みを終了させる。
【００６５】
書込回路１２が上記のような動作を行うため、本実施の形態のＬＳＩテスタ２０（ＣＰＵ２１）は、例えば、図１０に示される処理を実行すればよい。
【００６６】
図１０は、ＬＳＩテスタが実行する処理の処理手順の一例を説明するためのフローチャートである。
【００６７】
ステップＳ１０１において、ＣＰＵ２１は、初期化処理を実行する。初期化処理では、ＲＳＴ信号の印加が行われる。続いて、ＣＰＵ２１は、ＬＳＩ１０に対して、ＣＬＫ信号の印加を開始し、Ｄａｔａ信号及びＡｄｄｒｅｓｓ信号を有効化する（Ｓ１０２）。ＣＬＫ信号、Ｄａｔａ信号、及びＡｄｄｒｅｓｓ信号の印加は、ＬＳＩ１０より入力されるＥＮＤ信号の値が「１」となるまで継続される。なお、ＣＰＵ２１は、ＣＬＫ信号、Ｄａｔａ信号、及びＡｄｄｒｅｓｓ信号の印加の開始後、所定のタイミングでＭＤ信号を印加する。書込回路１２の状態を、ｓｅｔ状態からｒｅａｄ状態へ遷移させるためである。ＭＤ信号の印加は、所定時間経過後に停止される。
【００６８】
ＣＰＵ２１は、ＬＳＩ１０より入力されるＥＮＤ信号の値が「１」になったことを検出すると（Ｓ１０３でＹｅｓ）、ＬＳＩ１０より入力されるＣｍｐ信号の値は「０」であるか否かを判定する（Ｓ１０４）。Ｃｍｐ信号の値が「０」である場合（Ｓ１０４でＹｅｓ）、ＣＰＵ２１は、書込データの書き込みは成功したと判定する（ＰＡＳＳ）。一方、Ｃｍｐ信号の値が「１」である場合（Ｓ１０４でＮｏ）、ＣＰＵ２１は、書込データの書き込みは失敗したと判定する（ＦＡＩＬ）。
【００６９】
上述したように、第一の実施の形態によれば、ＬＳＩ１０に搭載された書込回路１２によって書込データの書き込み及び書き込みの成否の確認が実行される。したがって、ＬＳＩテスタ２０において、書き込み用のパターンシーケンスが実装されたプログラムと、読み出し用のパターンシーケンスが実装されたプログラムとを切り替える必要はない。すなわち、図１０に示されるパターンシーケンスを実行する一つのプログラムが実行されればよい。その結果、ＯＴＰマクロ１１に対する書込データの書き込み時間を短縮化することができる。したがって、ＬＳＩテスタ２０の使用時間（占有時間）を削減することができ、ＬＳＩ１０の製造コストの削減も期待することができる。
【００７０】
また、書き込み用のパターンシーケンスが実装されたプログラムと、読み出し用のパターンシーケンスが実装されたプログラムとを切り替える場合はオペレータによる監視が必要とされるが、本実施の形態では、斯かる切り替えは不要であるため、人件費の削減も期待できる。
【００７１】
次に、第二の実施の形態について説明する。第二の実施の形態では、第一の実施の形態と異なる点に関して説明する。したがって、第二の実施の形態において特に言及されない点については、第一の実施の形態と同様でよい。
【００７２】
図１１は、第二の実施の形態の書込回路の構成例を示す図である。第二の実施の形態では、ＯＴＰメモリアレイにおける１ワードが、複数ビットである場合について説明する。本実施の形態において「ワード」とは、一つのアドレスに対応する情報量の単位をいう。１ワードが複数ビットであることにより、書込データは、複数ビット（ここでは、便宜上、３ビットとする。）となる。したがって、ＯＴＰマクロ１１のデータレジスタ１１５は、３ビット分データを記憶可能なように、３つのフリップフロップを含む。
【００７３】
また、書込回路１２ａは、比較データ記憶部１２３、比較器１２５、及び設定データ生成回路１２４が拡張されている。具体的には、比較データ記憶部１２３は、３ビットの書込データを記憶可能とするため、三つのフリップフロップを含む。
【００７４】
比較器１２５は、３ビットのデータの比較を可能とするため、各ビットに対応する三つのＸＯＲゲートと一つのＯＲゲートとを含む。すなわち、Ｎビット目に対応するＸＯＲゲートは、比較データ記憶部１２３のＮビット目のフリップフロップが記憶するデータと、データレジスタ１１５のＮビット目のフリップフロップが記憶するデータとの排他的論理和を演算する。演算結果は、ＯＲゲートに出力される。ＯＲゲートは、三つの排他的論理和の演算結果の論理和を演算し、演算結果を示すＣｍｐ信号を出力する。全てのビットに関して比較対象のデータが一致した場合（すなわち、書き込みに成功した場合）、三つの排他的論理和の演算結果は、それぞれ「０」となる。したがって、その論理和であるＣｍｐ信号の値は「０」となる。一方、いずれかのビットに関して比較対象のデータが一致しない場合（すなわち、書き込みに失敗した場合）、当該ビットに関する排他的論理和は「１」となる。したがって、「１」を含む論理和であるＣｍｐ信号の値は、「１」となる。
【００７５】
設定データ生成回路１２４は、比較データ記憶部１２３に記憶されている３ビットの書込データに基づいて、３ビットの設定データを生成する。本実施の形態では、最下位（一番右）のビットを「０ビット目」と呼ぶ。したがって、３ビットの各ビットは、右のビットから順に、０ビット目、１ビット目、２ビット目と呼ばれる。
【００７６】
設定データ生成回路１２４は、書込データの０ビット目の値を、設定データの０ビット目の値とする。１ビット目以降のＮビット目に関して、設定データ生成回路１２４は、書込データのＮ−１ビット目以下の各ビットの値の論理和が「１」であれば、「０」を設定データのＮビット目の値とする。設定データ生成回路１２４は、当該論理和が「０」であれば、書込データのＮビット目の値を、設定データのＮビット目の値とする。
【００７７】
具体的には、Ｎ＝１の場合、Ｎ−１ビット以下の各ビットは、０ビット目のみである。したがって、設定データの１ビット目の値は、書込データの０ビット目の値が「１」であれば「０」となり、書込データの０ビット目の値が「０」であれば書込データの１ビット目の値となる。Ｎ＝２の場合、Ｎ−１ビット以下のビットは、０ビット目及び１ビット目である。したがって、設定データの２ビット目の値は、書込データの０ビット目及び１ビット目の値の論理和が「１」であれば「０」となり、書込データの０ビット目及び１ビット目の値の論理和が「０」であれば、書込データの２ビット目の値となる。なお、書込データのビット数が４ビット以上である場合も、同様である。
【００７８】
その結果、設定データ生成回路１２４によって生成される設定データは、最大で１つのビットにのみ「１」が含まれる３ビットのデータとなる。具体的に、書込データが「１０１」である場合に生成される設定データについて説明する。この場合、設定データの０ビット目の値は、書込データの０ビット目での値あるから「１」である。設定データの１ビット目の値は、書込データの０ビット目の値は１であるから、「０」である。設定データの２ビット目の値は、書込データの０ビット目及び１ビット目の値の論理和は「１」であるから「０」である。したがって、設定データは、「００１」となる。また、書込データが「１１１」である場合に生成される設定データについて説明する。この場合、設定データの０ビット目は、書込データの０ビット目での値あるから「１」である。設定データの１ビット目の値は、書込データの０ビット目の値は１であるから、「０」である。設定データの２ビット目の値は、書込データの０ビット目及び１ビット目の値の論理和は「１」であるから「０」である。したがって、設定データは、「００１」となる。
【００７９】
このように、設定データが最大で１つのビットにのみ「１」が含まれるデータとされるのは、ＯＴＰマクロ１１において一回のｗｒｉｔｅ状態において（すなわち、一回のＷｒｉｔｅ信号及びＰＧＭ信号の印加によって）書き込みを行えるのは、１ビット分だけであるからである。換言すれば、データレジスタ１１５への記憶対象（設定対象）として許容されるデータは、最大で１つのビットにのみ「１」が含まれるデータであるからである。
【００８０】
但し、設定データに、「１」が含まれるが最大で１ビットのみの制限があるため、他のビットの「１」をＯＴＰメモリアレイ１１１に書き込むことができない。そこで、設定データ生成回路１２４は、１回目のｗｒｉｔｅ状態以降のｒｅａｄ状態では、比較器１２５の各ＸＯＲゲートより出力される値をビット順に配列したデータに関して、比較データ記憶部１２３が記憶する書込データに対する演算と同様の演算を行う。当該演算結果は、１回目のｗｒｉｔｅ状態以降のｒｅａｄ状態の設定データとされる。すなわち、２回目以降のｗｒｉｔｅ状態では、比較器１２５の各ＸＯＲゲートより出力される値に基づく設定データが、データレジスタ１１５に設定される。
【００８１】
なお、比較データ記憶部１２３が記憶する書込データ、又は比較器１２５の各ＸＯＲゲートより出力される値をビット順に配列したデータにおいて、値が１であるビットのうちの一つのビットを１とし、他のビットを０としたデータであれば、他の方法によって設定データが生成されてもよい。
【００８２】
以上に基づいて、書込回路１２ａの動作を説明する。第二の実施の形態において制御回路１２２とステートマシン１２１との論理は、第一の実施の形態（図８）と同様である。ここでは、書込データは、「１０１」であるとして説明する。したがって、ｓｅｔ状態において、比較データ記憶部１２３には、「１０１」が設定される。設定データ生成回路１２４は、書込データ「１０１」に基づいて、設定データ「００１」を生成する。
【００８３】
続いて、ｒｅａｄ状態に遷移すると、制御回路１２２は、Ｒｅａｄ信号を印加する。Ｒｅａｄ信号の印加に応じ、データレジスタ１１５には、ＯＴＰメモリアレイ１１１においてＡｄｄｒｅｓｓ信号が示すアドレスに対応するワードに係るメモリセル群に記憶されているデータが読み出される。一度も書き込みが行われていない場合、「０００」が読み出される。比較器１２５は、読み出されたデータ「０００」と、書込データ「１０１」とを比較する。両者は異なるため、「１」を示すＣｍｐ信号が比較器１２５より出力される。また、比較器１２５の各ＸＯＲゲートからは、ビットごとの排他的論理和の演算結果が、設定データ生成回路１２４に出力される。「０００」と「１０１」とのビットごとの排他的論理和は、「１０１」となる。設定データ生成回路１２４は、「１０１」に基づいて設定データ「００１」を生成する。
【００８４】
続いて、ｗｒｉｔｅ状態に遷移すると、制御回路１２２は、Ｗｒｉｔｅ信号及びＰＧＭ信号を印加する。Ｗｒｉｔｅ信号に応じて、データレジスタ１１５には、設定データ「００１」が設定される。また、ＰＧＭ信号に応じて、ＯＴＰメモリアレイ１１１において、Ａｄｄｒｅｓｓ信号が示すアドレスに対応するワードの０ビット目に対応するメモリセル対して、「１」の書き込みが行われる。ここでは、書き込みに成功したこととする。
【００８５】
続いて、ｒｅａｄ状態に遷移し、データレジスタ１１５には、ＯＴＰメモリアレイ１１１において、Ａｄｄｒｅｓｓ信号が示すアドレスに対応するワードに係るメモリセル群に記憶されているデータが読み出される。ここでは、「００１」が読み出される。比較器１２５は、読み出されたデータ「００１」と、書込データ「１０１」とを比較する。両者は異なるため、「１」を示すＣｍｐ信号が比較器１２５より出力される。また、比較器１２５の各ＸＯＲゲートからは、ビットごとの排他的論理和の演算結果が、設定データ生成回路１２４に出力される。「００１」と「１０１」とのビットごとの排他的論理和は、「１００」となる。設定データ生成回路１２４は、「１００」に基づいて設定データ「１００」を生成する。
【００８６】
続いて、ｗｒｉｔｅ状態に遷移すると、制御回路１２２は、Ｗｒｉｔｅ信号及びＰＧＭ信号を印加させる。Ｗｒｉｔｅ信号に応じて、データレジスタ１１５には、設定データ「１００」が設定される。また、ＰＧＭ信号に応じて、ＯＴＰメモリアレイ１１１において、Ａｄｄｒｅｓｓ信号が示すアドレスに対応するワードの２ビット目に対応するメモリセル対して、「１」の書き込みが行われる。ここでは、書き込みに成功したこととする。
【００８７】
続いて、ｒｅａｄ状態に遷移し、データレジスタ１１５には、ＯＴＰメモリアレイ１１１において、Ａｄｄｒｅｓｓ信号が示すアドレスに対応するワードに係るメモリセル群に記憶されているデータが読み出される。ここでは、「１０１」が読み出される。比較器１２５は、読み出されたデータ「１０１」と、書込データ「１０１」とを比較する。両者は一致するため、「０」を示すＣｍｐ信号が比較器１２５より出力される。
【００８８】
Ｃｍｐ信号の値が「０」となったためｅｎｄ状態に遷移し、制御回路１２２は、ＥＮＤ信号を印加する。その結果、書込データ「１０１」の書き込みは終了する。
【００８９】
上述したように、第二の実施の形態によれば、書込データが複数ビットである場合にも、第一の実施と同様の効果を得ることができる。
【００９０】
なお、上記各実施の形態では、複数ビット又は複数ワードに関してデータを書き込む場合、ビット毎又はワード毎に、Ａｄｄｒｅｓｓ信号及びＤａｔａ信号が入力される必要がある。但し、全アドレス（又は全ワード）分の書込データが、予め（例えば、図１０の初期化処理において）、書込回路１２（書込回路１２ａも含む。）内に記憶されるようにしてもよい。この場合、全アドレス分の書込データは、全アドレス分に拡張された比較データ記憶部１２３に記憶されてもよい。又は、書込回路１２にＳＲＡＭ（Static Random Access Memory）を追加し、当該ＳＲＡＭに全アドレス分の書込データが記憶されてもよい。
【００９１】
また、書き込み回数がＭａｘ回数に達した場合に、ｅｎｄ状態に遷移するのではなく、書き込みに失敗しているビットに関して冗長セル行１１２への書き込みが行われるようにしてもよい。この場合、例えば、冗長セル行１１２への書き込みを示す新たな状態（「冗長ｗｒｉｔｅ状態」という。）が定義されればよい。冗長ｗｒｉｔｅ状態が定義されることで、動作状態の種類は５つとなるので、ステートマシン１２１は、３ビットによって各状態を示す値を記憶すればよい。ｗｒｉｔｅ状態において、Ｃｏｍｐ信号の値が「０」ではなく、かつ、Ｍａｘ信号の値が「１」である場合に、冗長ｗｒｉｔｅ状態に遷移するようにすればよい。
【００９２】
なお、本実施の形態において、比較データ記憶部１２３は、比較部の一例である。制御回路１２２は、制御部の一例である。Ｗｒｉｔｅ信号及びＰＧＭ信号は、第一の信号の一例である。Ｒｅａｄ信号は、第二の信号の一例である。比較器１２５は、比較部の一例である。カウンタ１２６は、カウント部の一例である。設定データ生成部１２４は、生成部の一例である。
【００９３】
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【００９４】
以上の説明に関し、更に以下の項を開示する。
（付記１）
ＯＴＰマクロに対して書き込むデータを記憶する記憶部と、
前記書き込むデータの書き込みを前記ＯＴＰマクロに実行させる第一の信号を印加し、前記ＯＴＰマクロが記憶しているデータの読み出しを前記ＯＴＰマクロに実行させる第二の信号を印加する制御部と、
前記第二の信号に応じて前記ＯＴＰマクロから読み出されたデータと、前記記憶部が記憶するデータとを比較し、比較結果を出力する比較部とを有し、
前記制御部は、前記比較結果が一致を示す場合、前記書き込むデータに関する処理を終了し、前記比較結果が不一致を示す場合、前記第一の信号及び前記第二の信号の印加を再度行う書込回路。
（付記２）
前記第一の信号の印加の回数をカウントし、該回数が上限値に達した場合に前記制御部に通知を行うカウント部を有し、
前記制御部は、前記比較部による比較結果が一致を示す場合、又は前記通知に応じて前記書き込むデータに関する処理を終了する付記１記載の書込回路。
（付記３）
前記書き込むデータにおいて、値が１であるビットのうちの一つのビットを１とし、他のビットを０としたデータを生成する生成部を有し、
前記制御部は、前記生成部が生成したデータに関して前記第一の信号を印加し、
前記比較部は、前記第二の信号に応じて前記ＯＴＰマクロから読み出されたデータと、前記記憶部が記憶するデータとのビット毎の排他的論理和を出力し、
前記生成部は、前記ビット毎の排他的論理和をビット順に配列したデータにおいて、値が１であるビットのうちの一つのビットを１とし、他のビットを０としたデータを生成する付記１又は２記載の書込回路。
（付記４）
付記１乃至３いずれか一項記載の書込回路を含む半導体集積回路。
（付記５）
書込回路が、
ＯＴＰマクロに対して書き込むデータを記憶部に記憶し、
前記書き込むデータの書き込みを前記ＯＴＰマクロに実行させる第一の信号を印加し、
前記ＯＴＰマクロが記憶しているデータの読み出しを前記ＯＴＰマクロに実行させる第二の信号を印加し、
前記第二の信号に応じて前記ＯＴＰマクロから読み出されたデータと、前記記憶部が記憶するデータとを比較する処理を実行し、
前記比較結果が一致を示す場合、前記書き込むデータに関する処理を終了し、前記比較結果が不一致を示す場合、前記第一の信号及び前記第二の信号の印加を再度行う書込方法。
（付記６）
前記書込回路が、前記第一の信号の印加の回数をカウントする処理を実行し、
前記比較部による比較結果が一致を示す場合、又は前記回数が上限値に達した場合に前記書き込むデータに関する処理を終了する付記５記載の書込方法。
（付記７）
前記書込回路が、前記書き込むデータにおいて、値が１であるビットのうちの一つのビットを１とし、他のビットを０としたデータを生成する処理を実行し、
前記第一の信号を印加する処理は、前記生成部が生成したデータに関して前記第一の信号を印加し、
前記比較する処理は、前記第二の信号に応じて前記ＯＴＰマクロから読み出されたデータと、前記記憶部が記憶するデータとのビット毎の排他的論理和を出力し、
前記書込回路が、前記ビット毎の排他的論理和をビット順に配列したデータにおいて、値が１であるビットのうちの一つのビットを１とし、他のビットを０としたデータを生成する処理を実行する付記５又は６記載の書込方法。
【符号の説明】
【００９５】
１０          ＬＳＩ
１１          ＯＴＰマクロ
１２          書込回路
２０          ＬＳＩテスタ
２１          ＣＰＵ
２２          メモリ
２３          ドライバ回路
２４          レシーバ回路
１１１        ＯＴＰメモリアレイ
１１２        冗長セル行
１１３        デコーダ
１１４        コンパレータ
１１５        データレジスタ
１１６        冗長レジスタ
１１７        コントローラ
１２１        ステートマシン
１２２        制御回路
１２３        比較データ記憶部
１２４        設定データ生成回路
１２５        比較器
１２６        カウンタ
【図１】
2013037749.tif 000003
【図２】
2013037749.tif 000004
【図３】
2013037749.tif 000005
【図４】
2013037749.tif 000006
【図５】
2013037749.tif 000007
【図６】
2013037749.tif 000008
【図７】
2013037749.tif 000009
【図８】
2013037749.tif 000010
【図９】
2013037749.tif 000011
【図１０】
2013037749.tif 000012
【図１１】
2013037749.tif 000013