(57)【特許請求の範囲】
【請求項１】
データを電気的に書き込み可能で、データを電気的に書き換え不可能な不揮発性メモリを内蔵した半導体集積回路であって、
前記不揮発性メモリは、複数のブロックに分割され、各ブロックは、データを格納する複数のメモリセルを有したデータメモリ領域を備え、
各ブロックに対応して設けられ、データが書き込まれ再書き込みが不能であるか否かを示す第１のフラグを格納する第１のフラグメモリと、
前記第１のフラグメモリに格納された前記第１のフラグに基づいて、前記複数のブロックの中、データが書き込まれていないブロックを選択する選択動作を行うブロック選択回路と、
前記ブロックに最終的に更新されたデータが書き込まれたか否かを示す第２のフラグを格納する第２のフラグメモリと、を備え、
前記ブロック選択回路は、前記第２のフラグメモリに格納された前記第２のフラグに基づいて、前記複数のブロックの中、最終的にどのブロックを使用するかを選択する選択動作を行うことを特徴とする半導体集積回路。
【請求項２】
前記ブロック選択回路は、いずれのブロックについても、前記第２のフラグが最終的に更新されたデータが書き込まれていないことを示している場合に、第１のフラグが、データが書き込まれ再書き込みが不能であることを示しているブロックの中から、最も大きいアドレスを有するブロックを選択することを特徴とする請求項１に記載の半導体集積回路。
【請求項３】
前記第１及び第２のフラグメモリは、前記ブロック内に設けられたことを特徴とする請求項１に記載の半導体集積回路。
【請求項４】
前記第１及び第２のフラグメモリのメモリセルは、前記データメモリ領域のメモリセルと同一の構造を有していることを特徴とする請求項３に記載の半導体集積回路。
【請求項５】
前記ブロック選択回路は半導体集積回路のリセット信号に基づいて、前記選択動作を行うことを特徴とする請求項１、２、３、４のいずれかに記載の半導体集積回路。
【請求項６】
前記不揮発性メモリの前記データ領域に格納されるデータは、半導体集積回路のトリミングデータ、又は半導体集積回路の識別コードデータであることを特徴とする請求項１、２、３、４、５のいずれかに記載の半導体集積回路。
【請求項７】
前記トリミングデータは、半導体集積回路に内蔵された発振回路の発振周波数の調整に用いられることを特徴とする請求項６に記載の半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性メモリを内蔵した半導体集積回路に関する。
【背景技術】
【０００２】
従来より、データメモリや、プログラムメモリとして、不揮発性メモリを内蔵した半導体集積回路（例えば、マイクロコンピュータ）が知られている。不揮発性メモリとしては、マスクＲＯＭや、紫外線消去型ＥＰＲＯＭ、電気的に書き込み及び消去が可能なフラッシュメモリが知られている。
【０００３】
また、近年では、半導体集積回路の内部回路のトリミングデータや、半導体集積回路の識別コードデータ等のデータを格納するために、小容量の不揮発性メモリを内蔵した半導体集積回路が開発されている。
【０００４】
なお、フラッシュメモリを内蔵した半導体集積回路については、例えば特許文献１、２に記載されている。
【特許文献１】特開２０００−１１２７５５号公報
【特許文献２】特開２０００−１０５７５８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
内部回路のトリミングデータや、識別コードデータ等を格納するために、小容量の不揮発性メモリを内蔵した半導体集積回路において、それらのデータを書き換えることが必要な場合には、不揮発性メモリとして、電気的に書き換え可能なメモリ（例えば、フラッシュメモリ）を用いることが必要であった。
【０００６】
しかしながら、そのような用途の不揮発性メモリは、小規模であることから、フラッシュメモリ等を用いることは半導体集積回路のコストが高くなるという問題があった。
【０００７】
一方で、電気的に書き換えが不可能な不揮発性メモリでは、一度書き込んだデータを書き換えることができず、不揮発性メモリの再利用ができないという問題があった。
【課題を解決するための手段】
【０００８】
本発明は、データを電気的に書き込み可能で、データを電気的に書き換え不可能な不揮発性メモリを内蔵した半導体集積回路であって、前記不揮発性メモリは、複数のブロックに分割され、各ブロックは、データを格納する複数のメモリセルを有したデータメモリ領域を備え、各ブロックに対応して設けられ、データが書き込まれ再書き込みが不能であるか否かを示す第１のフラグを格納する第１のフラグメモリと、前記第１のフラグメモリに格納された前記第１のフラグに基づいて、前記複数のブロックの中、データが書き込まれていないブロックを選択する選択動作を行うブロック選択回路と、前記ブロックに最終的に更新されたデータが書き込まれたか否かを示す第２のフラグを格納する第２のフラグメモリと、を備え、前記ブロック選択回路は、前記第２のフラグメモリに格納された前記第２のフラグに基づいて、前記複数のブロックの中、最終的にどのブロックを使用するかを選択する選択動作を行うことを特徴とする。
【発明の効果】
【０００９】
本発明によれば、電気的に書き換えが不可能な不揮発性メモリを内蔵した半導体集積回路において、データの更新、不揮発性メモリの再利用が可能になる。また、不揮発性メモリとして電気的に書き換え可能なメモリ（例えば、フラッシュメモリ）を用いる場合に比べて、コストダウンを図ることができる。
【発明を実施するための最良の形態】
【００１０】
以下、本発明の実施形態による半導体集積回路について図面を参照して説明する。図１は本発明の実施形態による半導体集積回路の構成を示す図である。半導体集積回路は不揮発性メモリを内蔵したものであるが、図１においては不揮発性メモリだけを示している。半導体集積回路は、不揮発性メモリ以外の内部回路（例えば、マイクロコンピュータの場合には、ＣＰＵ、発振回路、入出力回路等）を内蔵している。
【００１１】
不揮発性メモリは、データが書き込まれて半永久的に保持される不揮発性メモリ領域１０、アドレス発生回路１１、データ読み出し書き込み回路１２、ブロック選択回路１３を備えている。
【００１２】
まず、不揮発性メモリ領域１０の構成例について説明する。不揮発性メモリ領域１０は、５つのブロック、第１〜第５のブロック１０１〜１０５に分割されており、それぞれ異なるアドレスが順番に割り当てられている。この例では、第１のブロック１０１にはアドレス００００〜００１Ｆが割り当てられ、第２のブロック１０２にはアドレス００２０〜００３Ｆが割り当てられ、第３のブロック１０３にはアドレス００４０〜００５Ｆが割り当てられ、第４のブロック１０４にはアドレス００６０〜００７Ｆが割り当てられ、第５のブロック１０５にはアドレス００８０〜００９Ｆが割り当てられている。
【００１３】
また、第１〜第５のブロック１０１〜１０５のそれぞれには、当該ブロックにデータが書き込まれ、再書き込みが不能であるか否かを示す、第１のフラグ（再書き込み禁止フラグ）を格納する第１のフラグメモリ領域１Ａ〜５Ａと、当該ブロックに最終的に更新されたデータが書き込まれたか否かを示す、第２のフラグを格納する第２のフラグメモリ領域１Ｂ〜５Ｂが、当該ブロックの一部として設けられている。
【００１４】
第１〜第５のブロック１０１〜１０５の残りのメモリ領域が、半導体集積回路の内部回路のトリミングデータや、半導体集積回路の識別コードデータ（半導体集積回路を識別するためのコードデータ）等を格納するためのデータメモリ領域になっている。このように構成することで、第１のフラグ、第２のフラグを格納するための格別のレジスタを設ける必要が無くなり、回路規模を小さくできる。
【００１５】
第１のフラグメモリ領域１Ａ〜５Ａ、第２のフラグメモリ領域１Ｂ〜５Ｂは、例えば、１ビットで形成され、第１のフラグがデータ「１」に設定されている時は、当該ブロックにデータが書き込まれ、再書き込みが不能であることを示し、第１のフラグがデータ「０」に設定されている時は、その反対で、データが未だ書き込まれていないため、書き込みが可能であることを示す。また、第２のフラグがデータ「１」に設定されている時は、当該ブロックに最終的に更新されたデータが書き込まれたことを示し、第１のフラグがデータ「０」に設定されている時は、その反対で、当該ブロックに最終的に更新されたデータが未だ書き込まれていないことを示す。
【００１６】
図２は第１〜第５のブロック１０１〜１０５のメモリセルの構成を示す図である。図２（Ａ）はメモリセルの回路図、図２（Ｂ）はその断面図である。メモリセルは、コントロールゲート２０、フローティングゲート２１、Ｎ＋型のソース２２、Ｎ＋型のドレイン２３を有しており、コントロールゲート２０はワード線ＷＬに接続され、ソース２２はソース線ＳＬに接続され、ドレイン２３はビット線ＢＬに接続されている。このメモリセルは、ワード線にＨレベルの電圧を印加し、ビット線ＢＬに高電圧を印加することにより、チャネル電流を流し、その一部の電荷をフローティングゲート２１に注入することでデータを記憶させることができる。
【００１７】
しかしながら、このメモリセルは、フローティングゲート２１に注入された電荷を除去して、データを消去するためのデバイス構造、周辺回路を有していないため、電気的にデータの書き換えができない。不揮発性メモリには、紫外線によっては消去が可能なものもあるが、半導体集積回路をパッケージングした後には、不揮発性メモリに書き込まれたデータを消去する手段はない。つまり、この不揮発性メモリは１回だけ書き込みができるものである。（このような不揮発性メモリは、ワンタイムＲＯＭと呼ばれる）
【００１８】
また、データ読み出し書き込み回路１２は、アドレス発生回路１１によって、指定されたアドレスのデータメモリ領域、あるいは第１のフラグメモリ領域１Ａ〜５Ａ、あるいは第２のフラグメモリ領域１Ｂ〜５Ｂに対して、データ（第１、第２のフラグを含む）の読み出し書き込みを行う。ブロック選択回路１３は、データ読み出し書き込み回路１２によって読み出された第１のフラグ又は第２のフラグに基づいて、第１〜第５のブロック１０１〜１０５の中、特定のブロックを選択する選択動作を行う。
【００１９】
そのような選択動作は、ブロック選択回路１３が第１のフラグ又は第２のフラグに基づいてブロック選択信号を出力し、そのブロック選択信号を受け取ったアドレス発生回路１１が、選択されたブロックに対応したアドレスを発生することにより行われる。
【００２０】
このように、本発明によれば、不揮発性メモリを複数のブロックに分割して、ブロックを使い捨てにする形で、不揮発性メモリのデータの更新、不揮発性メモリの再利用を可能にしたものである。そのために、第１、第２のフラグが利用される。即ち、あるブロックの第１のフラグがデータ「１」に設定されている場合には、当該ブロックはすでにデータが書き込まれ、再書き込みが不能であるとブロック選択回路１３によって判定される。
【００２１】
従って、そのデータを更新したい場合には、残りのどれかのブロック（第１のフラグがデータ「０」に設定されており、通常はデータが書き込まれていない次のアドレスを有するブロック）がブロック選択回路１３によって選択され、そのブロックに更新されたデータが書き込まれる。この時、そのブロックの第２のフラグをデータ「１」に設定する。このようにして、次々とデータを更新していき、あるブロックに最終的な更新データが書き込まれた場合には、そのブロックの第２のフラグをデータ「１」に設定する。
【００２２】
また、データの読み出しを行う場合には、データ読み出し書き込み回路１２を用いて、各ブロックの第２のフラグを次々と読み出す。そして、ブロック選択回路１３によって、どのブロックの第２のフラグがデータ「１」に設定されているかを判別する。これにより、第２のフラグがデータ「１」に設定されているブロック（つまり、最終的な更新データが格納されているブロック）が選択され、そのブロックから読み出されたデータが、内部回路のトリミングや、識別コードデータとして利用される。すなわち、ブロック選択回路１３は、第２のフラグに基づいて、最終的にどのブロックを使用するかを選択する。
【００２３】
尚、ブロック選択回路１３は、半導体集積回路のリセット信号（例えば、マイクロコンピュータのリセット信号）に基づいて、前記選択動作を行うことが好ましい。
【００２４】
次に、上記不揮発性メモリに格納された内部回路のトリミングデータの利用について、発振回路を例として説明する。図３は発振回路の構成図である。これは、奇数個のインバータ３１から成るリングオシレータであり、各インバータ３１の動作電流を与える定電流源３２が各インバータ３１に接続されている。そして、定電流源３２が発生する電流の電流値Ｉを制御するための電流制御回路３３が設けられている。電流制御回路３３には不揮発性メモリから読み出されたトリミングデータが入力され、電流制御回路３３はトリミングデータに応じた電流値Ｉを有する電流を発生させるようになっている。
【００２５】
電流値Ｉが増加するとインバータ３１の動作電流が増加するので、リングオシレータの発振周波数は増加し、電流値Ｉが減少するとインバータ３１の動作電流が減少するので、リングオシレータの発振周波数は減少する。このように、定電流源３２の電流値Ｉを調整することで発振周波数をトリミングすることができる。
【００２６】
以下、発振回路のトリミングデータを例にして、不揮発性メモリの使用例（動作例）について図４を用いて説明する。このとき、半導体集積回路はパッケージングされているものとする。図４（ａ）に示すように、初期状態においては、不揮発性メモリはデータの書き込みが行われていない。この状態では、すべてのブロックについて第１のフラグ、第２のフラグはいずれもデータ「０」になっている。
【００２７】
次に、図４（ｂ）に示すように、アドレスの最も小さいブロックである第１のブロック１０１に第１のトリミングデータを書き込むと共に、第１のフラグをデータ「１」に設定する。つまり、第１のブロック１０１内に設けられた第１のフラグメモリ領域１Ａに、データ「１」を書き込む。これで、第１のフラグは、データ「１」に設定されたので再書き込み不能を示すことになる。そして、データ読み出し書き込み回路１２により、第１のトリミングデータが読み出され、発振回路の電流制御回路３３に供給される。この第１のトリミングデータに基づく電流値Ｉにより発振回路を動作させ、その発振周波数を測定する。
【００２８】
次に、図４（ｃ）に示すように、次の第２のブロック１０２に第２のトリミングデータを書き込み、第１のフラグを「１」に設定する。そして、同様にして、第２のトリミングデータに基づく電流値Ｉにより発振回路を動作させ、その発振周波数を測定する。また、次の第３のブロック１０３に第３のトリミングデータを書き込み、第１のフラグを「１」に設定する。そして、同様にして、第３のトリミングデータに基づく電流値Ｉにより発振回路を動作させ、その発振周波数を測定する。
【００２９】
そして、以上のようなテスト段階を経て、第１〜第３のトリミングデータの中、例えば第２のトリミングデータが最も適切であると判断された場合（目標とする発振周波数に最も近く調整できる）、それに対応した第２のフラグがデータ「１」に設定される。つまり、第２のブロック１０２の第２のフラグメモリ領域２Ｂに、データ読み出し書き込み回路１２によって、第２のフラグにデータ「１」が書き込まれる。
【００３０】
すると、次にデータを読み出す時には、ブロック選択回路１３は、第２のフラグがデータ「１」に設定されているブロックを探していき、その結果、第２のブロック１０２を選択する。これにより、第２のブロック１０２から第２のトリミングデータが読み出され、発振回路のトリミングデータとして利用されることになる。
【００３１】
尚、上記の不揮発性メモリの動作は一例であって、これに限定されることはなく、様々に変更が可能である。例えば、図４（ｂ）に示すように、第１のブロック１０１に書き込まれた第１のトリミングデータが適切であると判断された場合には、第２、第３のトリミングデータの書き込みを行うことなく、第１のブロック１０１の第２のフラグをデータ「１」に設定してもよい。
【００３２】
また、ブロック選択回路１３は、いずれのブロックについても、第２のフラグにデータ「１」が設定されていない場合には、第１のフラグにデータ「１」が設定されているブロックの中から、最も大きいアドレスを有するブロックを選択する。例えば、図４（ｃ）の例において、第１〜第３のブロック１０１〜１０３について、第１のフラグがデータ「１」に設定されているが、いずれのブロックについても、第２のフラグにデータ「１」が設定されていない場合には、最も大きいアドレスを有するブロックである第３のブロック１０３（アドレス：００４０〜００５Ｆ）を使用するブロックとして選択する。
【００３３】
このように構成することで、第２のフラグにデータ「１」が設定されていない場合にも、最も大きいアドレスを有するブロックを選択して、そのブロックに書き込まれたデータをトリミングデータ等として利用することができる。上記の例では、アドレスの順にブロックがアクセスされていくので、最後にデータ書き込まれたブロックが最も大きいアドレスを有するブロックとなる。そのようなブロックは、テストが何回か繰り返された結果、最も適切なデータが書き込まれている可能性が高い。
【図面の簡単な説明】
【００３４】
【図１】本発明の実施形態による半導体集積回路の構成を示す図である。
【図２】不揮発性メモリのメモリセルの構成を図である。
【図３】発振回路の構成を示す図である。
【図４】本発明の実施形態による半導体集積回路の使用例を示す図である。
【符号の説明】
【００３５】
１０  不揮発性メモリ領域            １１  アドレス発生回路
１２  データ読み出し書き込み回路    １３  ブロック選択回路
２０  コントロールゲート            ２１  フローティングゲート
２２  ソース                        ２３  ドレイン
３１  インバータ                    ３２  定電流源
３３  電流制御回路                  １０１〜１０５  第１〜第５のブロック
ＢＬ  ビット線                      ＷＬ  ワード線
ＳＬ  ソース線
【図１】
0005258244.tif 000002
【図２】
0005258244.tif 000003
【図３】
0005258244.tif 000004
【図４】
0005258244.tif 000005