(57)【特許請求の範囲】
【請求項１】
中央演算ユニットと、
前記中央演算ユニットに接続されたデータバスと、
プログラムモードと通常読み出しモードとが設定される不揮発性メモリと、
前記不揮発性メモリに接続され、前記不揮発性メモリを制御するデータが格納されたレジスタと、
入出力装置と、
前記入出力装置を前記データバス及び前記レジスタの一方に切り換えて接続する第１のスイッチと、
前記不揮発性メモリを前記データバス及び前記レジスタの一方に切り換えて接続する第２のスイッチと、
を有し、
前記レジスタのアドレス値は、前記不揮発性メモリの割り当てられているアドレス空間とは別空間に存在し、
前記通常読み出しモード時が設定された時には、前記不揮発性メモリを前記第２のスイッチを介して中央演算処理ユニットに接続して、前記中央演算処理ユニットが前記不揮発性メモリをアクセスし、
前記プログラムモードが設定された時には、前記入出力装置は前記第１のスイッチを介して前記レジスタに接続され、かつ、前記不揮発性メモリは前記第２のスイッチを介して前記レジスタに接続され、前記プログラムモードの実行に必要な複数のデータが前記入出力装置を介して外部から前記レジスタに供給され、かつ前記複数のデータの各々が前記レジスタより読み出されて前記不揮発性メモリに供給され、
前記プログラムモードにはデータ書き換え動作が含まれ、前記レジスタの書き込みを制御するレジスタライト信号の入力タイミングを前記入出力装置を介して外部から制御しながら、データ書き換えに必要な書換アドレスデータ、書換データ及び書換制御データが、前記入出力装置を介して所望のタイミングで順次前記レジスタに格納され、かつ前記書換アドレスデータ、前記書換データ及び前記書換制御データが前記レジスタより読み出され、読み出された前記書換制御データを前記不揮発性メモリの書換制御信号として用いて、前記不揮発性メモリのデータ書き換えを行うことを特徴とするマイクロコンピュータ。
【請求項２】
請求項１において、
前記プログラムモードにはデータ消去動作が含まれ、前記レジスタライト信号の入力タイミングを前記入出力装置を介して外部から制御しながら、データ消去に必要な消去アドレスデータ及び消去制御データが、前記入出力装置を介して所望のタイミングで順次前記レジスタに格納され、かつ前記消去アドレスデータ及び消去制御データが読み出され、読み出された前記消去制御データを前記不揮発性メモリの消去制御信号として用いて、前記不揮発性メモリのデータ消去を行うことを特徴とするマイクロコンピュータ。
【請求項３】
請求項１において、
前記書換制御データが格納される前記レジスタは複数のフリップフロップを含み、前記複数のフリップフロップの各々のデータ入力端子にそれぞれ異なる複数の前記書換制御データの各々が入力され、前記レジスタライト信号とレジスタイネーブル信号とが共にアクティブの時に前記複数のフリップフロップのクロック入力端子にクロックが入力されることで、前記複数の書換制御データが前記データ入力端子を介して前記複数のフリップフロップに格納され、かつ前記複数のフリップフロップの出力端子より読み出されて、複数の前記書換制御信号として前記不揮発性メモリに供給されることを特徴とするマイクロコンピュータ。
【請求項４】
請求項１において、
前記書換データが格納される前記レジスタは複数のフリップフロップを含み、データバスを介して供給された前記書換データの各ビットが前記複数のフリップフロップのデータ入力端子に入力され、前記レジスタライト信号とレジスタイネーブル信号とが共にアクティブの時に前記複数のフリップフロップのクロック入力端子にクロックが入力されることで、前記書換データが前記データ入力端子を介して前記複数のフリップフロップに格納され、かつ前記複数のフリップフロップの出力端子より読み出されて、前記不揮発性メモリに供給されることを特徴とするマイクロコンピュータ。
【請求項５】
請求項４において、
前記プログラムモードには書換データの読出し動作が含まれ、前記レジスタイネーブル信号とレジスタリード信号とが共にアクティブの時に動作されるクロックインバータが、前記不揮発性メモリの出力線と前記データバスとの間に設けられていることを特徴とするマイクロコンピュータ。
【請求項６】
請求項３において、
前記複数の書換制御信号の少なくとも一つは、アクティブとなる論理が他と異なっていることを特徴とするマイクロコンピュータ。
【請求項７】
請求項１乃至６のいずれかにおいて、
前記レジスタに記憶された前記複数のデータは、前記入出力装置を介して外部から入力される信号により初期化できることを特徴とするマイクロコンピュータ。
【請求項８】
請求項１乃至７のいずれかにおいて、
前記入出力装置は、複数のデータがパラレルで入力されるパラレル入出力装置を含み、
前記パラレル入出力装置を介して入力された前記複数のデータが前記レジスタに供給されることを特徴とするマイクロコンピュータ。
【発明の詳細な説明】
［技術分野］
本発明は、ＥＥＰＲＯＭ（Electrically Erasable Programable Read Only Memory）等の不揮発性メモリ及びそれを用いたマイクロコンピュータに関する。
［背景技術］
図９に従来技術によるＥＥＰＲＯＭ内蔵の半導体装置の内部構成例を示す。この半導体装置は、ＥＥＰＲＯＭブロック２１４とシーケンサ回路２０２とを有する。ＥＥＰＲＯＭブロック２１４はさらに、ＥＥＰＲＯＭ２０１、センスアンプ回路２１２及び昇圧回路２１３を含んでいる。ＥＥＰＲＯＭブロック２１４を半導体装置外部から制御できる信号として、ＥＥＰＲＯＭ２０１のアドレス値を指定できるＥＥＰＲＯＭアドレスバス２０３、ＥＥＰＲＯＭ２０１に対してデータ値を入出力させるＥＥＰＲＯＭデータバス２０４、ＥＥＰＲＯＭブロック２１４自体のアクセス可否が決定されるイネーブル信号２０５、ＥＥＰＲＯＭ２０１へのデータの書き込みを命令するプログラム信号２０６、ＥＥＰＲＯＭ２０１のデータの消去を命令するイレース信号２０７が用意されている。ここで、イネーブル信号２０５、プログラム信号２０６及びイレース信号２０７はそれぞれＬＯＷレベルがアクティブ状態であるとする。
また、半導体装置内部におけるＥＥＰＲＯＭブロック２１４の制御信号として、Ｘデコーダイネーブル信号２０８、Ｙデコーダイネーブル信号２０９、センスアンプイネーブル信号２１０、昇圧回路イネーブル信号２１１、プログラムパルス信号２１５、イレースパルス信号２１６があり、それぞれＨＩＧＨレベルがアクティブ状態である。
ここで、ＥＥＰＲＯＭ２０１の特定アドレスへデータの書き込みを行おうとする場合を考える。このデータ書き込み動作を、書き込み時のタイミングチャートである図１０を参照して説明する。
各信号の初期状態は下記の通りである。イネーブル信号２０５、プログラム信号２０６及びイレース信号２０７はそれぞれＨＩＧＨレベルであり、Ｘデコーダイネーブル信号２０８、Ｙデコーダイネーブル信号２０９、センスアンプイネーブル信号２１０及び昇圧回路イネーブル信号２１１はＬＯＷレベルであり、アドレスバス２０３には任意のレベルが入力され、データバス２０４には任意のデータ値が前記ＥＥＰＲＯＭ２０１から出力されている。
この初期状態からデータ書き込みを行うには、まずイネーブル信号２０５をＬＯＷとして、データ書き込みを行いたいアドレス値をアドレスバス２０３に入力する。その後プログラム信号２０６をＬＯＷレベルにした上で、データバス２０４に書き込みたいデータ値を入力させる。この時、イネーブル信号２０５及びプログラム信号２０６を受けたシーケンサ回路２０２は、Ｘデコーダイネーブル信号２０８、Ｙデコーダイネーブル信号２０９、センスアンプイネーブル信号２１０、昇圧回路イネーブル信号２１１をアクティブ状態で発生させ、プログラムパルス信号２１５をアクティブ状態として発生させる。これらは、ＥＥＰＲＯＭ２０１がデータの書き込み動作を行うための信号となる。各イネーブル信号の発生されるタイミング、パルス信号のパルス長がＥＥＰＲＯＭ２０１の特性仕様通りに発生されれば、ＥＥＰＲＯＭ２０１の特定のアドレスに対して希望するデータ値を書き込むことができる。
書き込みを終了させる場合も、シーケンサ回路２０２により各信号を非アクティブ状態にさせ、外部からの入力信号も非アクティブ状態となるよう制御すれば、初期状態に戻すことができる。
データの消去を行う場合も、書き込み時と同様に、図１１に従って行われる。データ消去の場合は、イレース信号がアクティブ状態となり、ＥＥＰＲＯＭ２０１のデータの消去が行われる。
上述した従来技術においては、半導体装置内部にシーケンサ回路２０２が不可欠である。このシーケンサ回路２０２にて発生させるべき各信号は、図１０に示した通りのタイミングで発生させなければならない。正常にＥＥＰＲＯＭ２０１に対してデータの書き込みを行うためには、これら信号間の発生タイミングをできる限り仕様に近い値で正確に発生させなければならない。そのため、シーケンサ回路２０２の回路構成は、精密に信号遅延を作らねばならず複雑なものとなり、回路規模も大きくなるという問題が生する。そのため、満足のいくシーケンサ回路２０２を設計して得るためには、十分な検討及び検証が必要であり、開発時間が長期化してしまう。また、製品開発時におけるデバッグが困難であるという欠点も有する。
さらに、ＥＥＰＲＯＭ制御信号全てを半導体装置外部から操作できるような構成にすると、半導体装置の端子数が増え、配線領域が増えることによるチップの集積度の悪化、チップ面積増大といった問題が生ずる。また、信号の遅延時間を正確に得るために、回路構成の上で発振回路を搭載させる、あるいは半導体装置外部から発振信号を入力させるなどといった手段を必要とする場合が生ずる。この場合、発振信号処理用に半導体装置のチップ上に新たな回路を追加させなければならず、低コストの商品を市場に供給する場合には好ましくない。
そこで、本発明の目的は、回路規模が大きく検証に長時間を要しデバックが困難なシーケンサ回路を内蔵させずに、プログラミングが可能な不揮発性メモリ装置及びそれを用いたマイクロコンピュータを提供することにある。
本発明の他の目的は、シーケンサ回路を内蔵せずにプログラミング可能としながらも、外部端子数を減らし、内部配線面積を縮小できる不揮発性メモリ装置及びそれを用いたマイクロコンピュータを提供することにある。
本発明のさらに他の目的は、不揮発性メモリを制御するレジスタを設けても、アドレス領域を拡大しなくても該レジスタのアドレス値と不揮発性メモリのアドレス値の重複を防止できる不揮発性メモリ装置を提供することにある。
本発明のさらに他の目的は、プログラミングに必要なデータをパラレル入力モードおよびシリアル入力モードのいずれのモードでも入力でき、しかも回路規模を縮小できるマイクロコンピュータを提供することにある。
［発明の開示］
本発明に係る不揮発性メモリ装置は、プログラムモードと通常読み出しモードとが設定される不揮発性メモリと、前記不揮発性メモリに接続されたレジスタとを有する。プログラムモードが設定された時には、プログラムモードの実行に必要な複数のデータがレジスタに供給され、かつ各々の前記データが前記レジスタより読み出されて前記不揮発性メモリに供給される。従って、各種タイミング信号もレジスタから発せられることにより、不揮発性メモリ装置内部にシーケンサなどを要せず、回路構成が従来に比べ簡易となる。
ここで、プログラムモードには、データ書き換え動作に加えて、書き換えデータの読み出し動作及びデータ消去動作を含むことができる。これらの各動作を実行する際には、その動作に必要なアドレスデータ、書換データ及び制御データなどがレジスタに供給され、かつ各々のデータが前記レジスタより読み出されることで、前記不揮発性メモリのプログラミングを実行できる。
レジスタは複数のフリップフロップを含んで構成できる。制御データが複数のフリップフロップに供給され、かつ読み出されることで、プログラムモードの実行に必要な複数の制御タイミング信号を不揮発性メモリに供給することができる。このように、制御タイミング信号をフリップフロップから出力させることで、従来のシーケンサ回路に比較して回路が大幅に簡易化される。
この複数の制御タイミング信号の少なくとも一つは、アクティブとなる論理が他と異なっていることが好ましい。こうすると、電源投入時などに全ての制御タイミング信号がＨＩＧＨまたはＬＯＷとなっても、不揮発性メモリに記憶されたデータが破壊されることがなくなる。
本発明の不揮発性メモリ装置は、入出力装置をさらに有し、レジスタに供給されるデータを、入出力装置を介して装置外部より入力することができる。これにより、レジスタの動作を装置外部から制御することができる。
本発明に係るマイクロコンピュータは、プログラムモードと通常読み出しモードが設定される不揮発性メモリと、前記不揮発性メモリに接続されたレジスタと、前記通常読み出しモード時に前記不揮発性メモリにアクセスする中央演算処理ユニットとを有する。プログラムモードが設定された時には、プログラムモードの実行に必要なデータが前記レジスタに供給され、かつ各々の前記データが前記レジスタより読み出されて前記不揮発性メモリに供給される。
このマイクロコンピュータもまた、各種タイミング信号もレジスタから発せられることにより、マイクロコンピュータ内部にシーケンサなどを要せず、回路構成が従来に比べ簡易となる。
このレジスタはアドレス値を有し、アドレス指定できることが好ましい。そして、レジスタのアドレス値は、不揮発性メモリの割り当てられているアドレス空間とは別空間に存在していることが好ましい。こうすると、マイクロコンピュータは同一アドレス空間内にレジスタのアドレス値を用意する必要が無くなる。従って、特に小容量のアドレス領域しか持たないマイクロコンピュータの場合に有利となる。
本発明のマイクロコンピュータは入出力装置をさらに有することができ、レジスタに供給される信号は、入出力装置を介して外部より入力される。こうすると、レジスタのアドレス値を、入出力装置を介して外部から入力される信号により指定することができる。さらに、レジスタに記憶されるデータ値も、入出力装置を介して外部から入力される。さらには、レジスタに記憶されたデータを、入出力装置を介して外部から入力される信号により初期化することもできる。
前記入出力装置は、複数のデータがパラレルで入力されるパラレル入出力装置を含んで構成することができる。この場合、パラレル入出力装置を介して入力された複数のデータがレジスタに供給される。
このパラレル入出力装置を、中央演算処理ユニットに接続されたデータバス及びレジスタの一方に択一的に接続させる第１のスイッチを設けることができる。この第１のスイッチは、プログラムモード時にはパラレル入出力装置をレジスタに接続することで、パラレル入出力装置を介して入力された複数のデータがレジスタに供給できる。一方、通常読み出しモード時にはパラレル入出力装置を第１のスイッチによってデータバスに接続することで、中央演算処理ユニットの制御によって各種データをデータバス及びパラレル入出力装置を介して入出力することができる。
さらに、不揮発性メモリの入出力線を、中央演算処理ユニットに接続されたデータバス及びレジスタの一方に択一的に接続させる第２のスイッチを設けることが好ましい。この第２のスイッチは、プログラムモード時には不揮発性メモリの入出力線をレジスタに接続することで、中央演算処理ユニットが、シリアル入出力装置を介してシリアル入力された複数のデータを、レジスタにパラレルにて供給することができる。一方、通常読み出しモード時には不揮発性メモリの入出力線を第２のスイッチを介してデータバスに接続する。これにより、中央演算処理ユニットは不揮発性メモリをＲＯＭなどの記憶装置として利用できる。
前記入出力装置は、複数のデータがシリアルで入力されるシリアル入出力装置を含んで構成することができる。この場合は、中央演算処理ユニットが、シリアル入出力装置を介してシリアル入力された複数のデータを、レジスタにパラレルにて供給する。
前記入出力装置は、前記シリアル入力モード時に複数のデータをシリアルで入力するシリアル入出力装置と、前記パラレル入力モード時に前記複数のデータをパラレルで入力するパラレル入出力装置と、を含んで構成することもできる。そして、シリアル入力モード時には、前記シリアル入出力装置を介してシリアル入力された前記複数のデータが、前記中央演算装置によって前記レジスタにパラレルにて供給され、前記パラレル入力モード時には、前記パラレル入出力装置を介して入力された前記複数のデータが前記レジスタに供給される。この場合にも、上述した第１，第２のスイッチを設けることが好ましい。
【図面の簡単な説明】
図１は、本発明のマイクロコンピュータの一例を示すブロック図である。
図２Ａ〜図２Ｃは、異なる動作モード時のメモリ空間を説明するための概略説明図である。
図３は、図１に示すマイクロコンピュータのレジスタブロック及びＥＥＰＲＯＭブロックの詳細図である。
図４は、図３に示すレジスタブロックの内部構成の一例を示すブロック図である。
図５は、ＥＥＰＲＯＭへのデータ書き込みを説明するタイミングチャートである。
図６は、レジスタブロック内のレジスタの構成要素の概略説明図である。
図７は、レジスタブロック内の制御信号生成用レジスタの概略説明図である。
図８は、レジスタブロック内の書換データ用レジスタの概略説明図である。
図９は、従来の技術による半導体装置の構成を示すブロック図である。
図１０は、従来の技術によるＥＥＰＲＯＭへのデータ書き込みを説明するタイミングチャートである。
図１１は、従来の技術によるＥＥＰＲＯＭへのデータ消去を説明するタイミングチャートである。
［発明を実施するための最良の形態］
以下、本発明の実施の形態について図面を参照して詳細に説明する。
（１チップマイクロコンピュータの概要）
図１は、本発明を適用した１チップマイクロコンピュータ１０のブロック図である。図１に示すマイクロコンピュータ１０は、ＥＥＰＲＯＭブロック１１４を内蔵し、このＥＥＰＲＯＭブロック１１４に対してプログラムモードと通常読み出しモードを設定できる。さらに、図１に示すＥＥＰＲＯＭブロック１１４のプログラムモードの実行方式は２種類あり、一つはパラレル入力モードであり、他の一つはシリアル入力モードである。図１に示すマイクロコンピュータ１０は、そのパラレル／シリアル入力モードの切換が、外部からの信号により可能である。
図１に示すマイクロコンピュータ１０において、ＣＰＵ（中央演算処理ユニット）１２に接続されたデータバス１３には、上述したＥＥＰＲＯＭブロック１１４の他に、ＲＡＭ（Random Access Memory）１４、汎用ロジック回路１６等が接続されている。発振回路１８はマイクロコンピュータ１０内部において動作上必要なクロック信号を出力する。
このマイクロコンピュータ１０はさらに、シリアル入出力装置２０とパラレル入出力装置２２とを有する。シリアル入力装置２０はデータバス１３に接続されている。パラレル入出力装置２２は、第１のスイッチ２４を介して、ＥＥＰＲＯＭブロック１１４及びデータバス１３に接続されている。
このマイクロコンピュータ１０はさらに、ＥＥＰＲＯＭブロック１１４を制御するためのレジスタブロック１０２を有する。このレジスタブロック１０２はデータバス１３に接続されている。また、ＥＥＰＲＯＭブロック１１４は、第２のスイッチ２６を介して、レジスタブロック１０２とデータバス１３とに接続されている。
（プログラムモードと通常読み出しモード）
図１に示すマイクロコンピュータ１０では、ＥＥＰＲＯＭブロック１１４をプログラミングするためのプログラムモードと、ＥＥＰＲＯＭブロック１１４をＲＯＭとして用いてそれからのデータ読み出しを実行する通常読み出しモードとが設定可能である。
通常読み出しモードが設定されると、ＥＥＰＲＯＭブロック１１４は第２のスイッチ２６を介してデータバス１３とのみ接続され、レジスタブロック１０２との接続が断たれる。従って、ＣＰＵ１０はデータバス１３を介してＥＥＰＲＯＭブロック１１４にアクセスし、必要なデータを読み出す。なお、通常読み出しモード時には、パラレル入出力装置２２が第１のスイッチ２４を介してデータバス１３と接続され、パラレル入出力装置２２とレジスタブロック１０２との接続が断たれる。
この通常読み出しモード時において、ＣＰＵ１０から見たアドレス空間には、図２Ａに示すように、ＥＥＰＲＯＭブロック１１４、ＲＡＭ１４、汎用ロジック１６及びパラレル入出力装置２２が存在し、レジスタブロック１０２は存在しない。
プログラムモードが設定された場合には、ＥＥＰＲＯＭブロック１１４は第２のスイッチ２６を介してレジスタブロック１０２と接続され、データバス１３との接続が断たれる。
また、プログラムモードが設定された場合には、下記の通り、シリアル入力モード及びパラレル入力モードの一方がさらに選択されて、選択されたモードに従って、ＥＥＰＲＯＭブロック１１４に対するプログラムモードが実行される。
（パラレル入力モードとシリアル入力モード）
パラレル入力モードが選択された場合には、パラレル入出力装置２２は、第１のスイッチ２２を介してレジスタブロック１０２と接続され、データバス１３との接続が断たれる。従って、パラレル入力モードにてプログラムモードを実行する際には、ＣＰＵ１０は全く関与せず、マイクロコンピュータ１０の外部からの操作のみに頼ることになる。すなわち、パラレル入出力装置２２を介して入力されるアドレスデータ、記憶データ及び制御データは、レジスタブロック１０２に直接セットされる。そして、レジスタブロック１０２にセットされたデータに基づいて、このレジスタブロック１０２よりプログラムに必要な信号がＥＥＰＲＯＭブロック１１４に供給され、プログラミングが実行される。
この場合、マイクロコンピュータ１０の外部から見たメモリ空間には、図２Ｂに示す通り、レジスタブロック１０２のみが存在し、ＥＥＰＲＯＭブロック１１４はレジスタブロック１０２を介して認識できる。
一方、シリアル入力モードが選択された場合には、パラレル入力装置２２は第１のスイッチ２４を介してデータバス１３に接続されたままでよい。この場合、シリアル入出力装置２０を介してシリアル入力されるアドレスデータ、信号データ及び制御データは、ＣＰＵ１０を介してレジスタブロック１０２にセットされる。そして、レジスタブロック１０２にセットされたデータに基づいて、このレジスタブロック１０２よりプログラミングに必要な信号がＥＥＰＲＯＭブロック１１４に供給され、プログラミングが実行される。
この場合、ＣＰＵ１０から見たメモリ空間には、図２Ｃに示す通り、ＲＡＭ１４、汎用ロジック１６、パラレル入出力装置２２及びレジスタブロック１０２が存在し、ＥＥＰＲＯＭブロック１１４はレジスタブロック１０２を介在して認識できるだけである。
図２Ａ〜図２Ｃから明らかなように、レジスタブロック１０２とＥＥＰＲＯＭブロック１１４が同一アドレス空間上に存在させる必要はなく、本実施の形態ではそれらのアドレス空間を異ならせている。
なお、本実施の形態のようにパラレル入力モード及びシリアル入力モードの双方が実行可能とするものに限らず、どちらか一方の入力モードのみを実行するものでも良い。プログラミング時にパラレル入力のみ受け付ける場合には、シリアル入出力装置２０は不要である。また、プログラミング時にシリアル入力のみ受け付ける場合には、第１のスイッチ２４は不要であり、パラレル入出力装置２２をデータバスに接続しておけばよい。
また、シリアル入出力装置２０はレジスタブロック１０２を介してデータバス１３に接続する構成としても良い。
（ＥＥＰＲＯＭブロックとレジスタブロックとの関係）
図３に、ＥＥＰＲＯＭブロック１１４とレジスタブロック１０２とを拡大して示す。ＥＥＰＲＯＭブロック１１４は、ＥＥＰＲＯＭ１０１、センスアンプ回路１１２及び昇圧回路１１３を含んでいる。レジスタブロック１０２内には複数のアドレッシングされたレジスタが存在するが、その詳細については後述する。
ここで、センスアンプ回路１１２は、ＥＥＰＲＯＭ１０１に格納されているデータのＨＩＧＨまたはＬＯＷのレベルを判定する回路である。昇圧回路１１３は、ＥＥＰＲＯＭ１０１にデータの書き込み／消去をする際に必要となる電圧を発生させる回路である。
レジスタブロック１０２には、レジスタアドレスバス１０３及びレジスタデータバス１０４が接続され、さらにレジスタ制御信号が入力される。なお、パラレル入力モードの時には、レジスタアドレスバス１０３及びレジスタデータバス１０４は、パラレル入出力装置２２とレジスタブロック１０２との間に形成され、シリアル入力モードの時には、データバス１３とレジスタブロック１０２との間にて形成される。
このレジスタ制御信号には、レジスタライト信号１０５、レジスタリード信号１０６及びレジスタリセット信号１０７の各信号が含まれる。これらの制御信号１０５、１０６及び１０７は、おのおのＬＯＷレベルがアクティブ状態であるとする。レジスタブロック１０２からは、ＥＥＰＲＯＭブロック１１４に対して、Ｘデコーダイネーブル信号１０８、Ｙデコーダイネーブル信号１０９、センスアンプイネーブル信号１１０、昇圧回路イネーブル信号１１３、プログラム信号１１７、イレース信号１１８などのＥＥＰＲＯＭブロック制御信号が発生される。さらに、レジスタブロック１０２とＥＥＰＲＯＭブロック１１４とは、第２のスイッチ２６の切換状態に基づいて、ＥＰＲＯＭアドレスバス１１５、ＥＥＰＲＯＭデータバス１１６を介して接続されている。
ここで、ＥＥＰＲＯＭブロック制御信号は、信号１０８，１０９，１１０及び１１３についてはＨＩＧＨアクティブであり、信号１１７，１１８についてはＬＯＷアクティブであるとする。
ＥＥＰＲＯＭ１０１のプログラムモードを実行するために必要となる制御信号は、マイクロコンピュータ１０の外部から操作されるレジスタブロック１０２から発せられる仕組みになっている。マイクロコンピュータ１０の外部から直接ＥＥＰＲＯＭ制御信号を操作することはしない。ＥＥＰＲＯＭ１０１に対してデータのプログラムモードを実行するときの制御信号入力の手順は、図９に示した従来の技術による例と同じであるとする。
（レジスタブロックの説明）
レジスタブロック１０２の構成例を図４に示す。レジスタブロック１０２内部には、ＥＥＰＲＯＭ制御信号レジスタブロック３０１、ＥＥＰＲＯＭアドレスレジスタブロック３０２、ＥＥＰＲＯＭデータレジスタブロック３０３の３つのレジスタブロックと、レジスタアドレスデコードブロック３０４とが設けられている。レジスタアドレスデコードブロック３０４は、マイクロコンピュータ１０の外部から入力されるレジスタアドレスバス１０３の信号の内容をデコードし、次段の３つのレジスタブロック３０１，３０２，３０３に対してイネーブル信号３０６を発する。各レジスタブロック３０１，３０２，３０３に入力されるイネーブル信号は１本または複数本存在する。３つのレジスタブロック３０１，３０２，３０３には、それぞれマイクロコンピュータ１０の外部から供給されたレジスタライト信号１０５、レジスタリード信号１０６及びレジスタリセット信号１０７が入力されている。また、３つのレジスタブロック３０１，３０２，３０３には、マイクロコンピュータ１０の外部との間でデータを入出力するレジスタデータバス１０４が接続されている。３つのレジスタブロック３０１，３０２，３０３からは、それぞれ異なる信号がＥＥＰＲＯＭブロック１１４に対して出力されるか、あるいはＥＥＰＲＯＭブロック１１４との間で入出力されている。すなわち、ＥＥＰＲＯＭ制御信号レジスタブロック３０１からは、ＥＥＰＲＯＭへのデータ書き込み／消去を制御する信号群３１０（図３におけるＸデコータイネーブル信号１０８など）が発せられる。ＥＥＰＲＯＭアドレスレジスタブロック３０２からは、ＥＥＰＲＯＭアドレスバス１１５に対してアドレス信号が発せられる。ＥＥＰＲＯＭデータレジスタブロック３０３は、ＥＥＰＲＯＭブロック１１４との間で、ＥＥＰＲＯＭデータバス１１６を介してデータ信号が入出力されている。
一例として、以下の説明ではレジスタアドレスバス１０３はＲＡ［０］，ＲＡ［１］，ＲＡ［２］という３ビットの信号にて構成され、アドレス指定するものとする。レジスタデータバス１０４はＲＤ［０］，ＲＤ［１］，ＲＤ［２］，ＲＤ［３］という４ビットで構成されているものと仮定する。以下、レジスタアドレスバス１０３上のアドレス信号をＲＡ［０：２］、レジスタデータバス１０４上のデータ信号をＲＤ［０：３］と記す。また、ＥＥＰＲＯＭアドレスバス１１５は、ＥＡ［０］，ＥＡ［１］，ＥＡ［２］，ＥＡ［３］，ＥＡ［４］，ＥＡ［５］，ＥＡ［６］，ＥＡ［７］という８ビットで構成され、アドレス指定するものとする。ＥＥＰＲＯＭデータバス１１６は、ＥＤ［０］，ＥＤ［１］，ＥＤ［２］，ＥＤ［３］という４ビットで構成されているものと仮定する。以下、ＥＥＰＲＯＭアドレスバス１１５上のアドレス信号をＥＡ［０：７］、ＥＥＰＲＯＭデータバス１１６上のデータ信号をＥＤ［０：３］と記す。
アドレス信号ＲＡ［０：２］及びデータ信号ＲＤ［０：３］と、アドレス信号ＥＡ［０：７］及びデータ信号ＥＤ［０：３］とは、アドレス及びデータの組として同種の信号でありながら、それぞれ別空間に位置している。
加えて、レジスタブロック１０２内のレジスタのアドレス割り付けば表１の通りとなっている。
0003937456.tif 000002
（プログラムモードの実行手順）
図３に示すマイクロコンピュータにおけるＥＥＰＲＯＭのプログラムモードを実行する手順について説明する。
まず、データの書き込み方法を例にとって、図５のタイミングチャートを参照して説明する。初期状態では、マイクロコンピュータ１０の外部からの信号である、レジスタリセット信号（ＸＲＥＳＥＴ）、レジスタライト信号（ＸＥＷＲ）、レジスタリード信号（ＸＥＲＤ）は非アクティブ状態（ＨＩＧＨレベル）になっている。レジスタアドレスバス１０３上のアドレス信号（ＲＡ［０：２］）及びレジスタデータバス１０４上のデータ信号（ＲＤ［０：３］）は任意のレベルとなっている。また、レジスタブロック１０２から発せられているＥＥＰＲＯＭ制御信号１０５，１０６，１０７は、いずれも非アクティブ状態であるとする。
まず、レジスタリセット信号（ＸＲＥＳＥＴ）としてＬＯＷパルスを入力して、レジスタブロック１０２を初期化させる。レジスタブロック１０２の初期化が外部信号入力により行うことができ、書き込みを行うための初期状態設定が容易にできる。その後、書き込みたいレジスタのアドレスをアドレス信号ＲＡ［０：２］で指定し、書き込みたいデータをデータ信号ＲＤ［０：３］で指定する。その上でレジスタライト信号（ＸＥＷＲ）としてＬＯＷパルスを入力させる。すると、このＬＯＷパルスの立ち下がりエッジのタイミングにて指定したアドレスのレジスタに指定したデータが書き込まれる。
具体的には、レジスタリセット信号（ＸＲＥＳＥＴ）としてＬＯＷパルス入力後、例えばアドレス４（この場合、ＲＡ［０：２］＝４Ｈであり、“Ｈ”は１６進数であることを示す。以下同様とする。）にＲＤ［０：３］＝１Ｈを書き込む。その手順は、マイクロコンピュータ１０の外部からレジスタアドレスバス１０３に対して“４Ｈ”を入力し、またレジスタデータバス１０４に対してもマイクロコンピュータ１０の外部から“１Ｈ”を入力する。その上でレジスタライト信号（ＸＥＷＲ）としてＬＯＷパルスを入力することにより、上記設定が行える。すると、アドレス４のレジスタは、ＥＥＰＲＯＭブロック１１４に対してプログラム信号（ＸＰＲＯＧ）を発し、ＥＥＰＲＯＭブロック１１４は書き込みモードであることを認識する。
次に、例えばアドレス１（ＲＡ［０：２］＝１Ｈ）に対し、書き込みを行いたいＥＥＰＲＯＭ１０１の任意のアドレスを指定する。この場合も前述の動作と同様に、ＲＡ［０：２］＝１Ｈを外部よりレジスタアドレスバス１０３を介して入力し、ＲＤ［０：３］としてＥＥＰＲＯＭ１０１のアドレス値をレジスタデータバス１０４を介して入力する。その後レジスタライト信号（ＸＥＷＲ）としてＬＯＷパルスを入力する。アドレス２（ＲＡ［０：２］＝２Ｈ）にも同様の手順でアドレス値を設定する。するとアドレスレジスタブロック３０２からはＥＥＰＲＯＭブロック１１４に対して、書き込みを行いたいアドレス値がＥＥＰＲＯＭアドレスバス１１５を介してアドレス信号ＥＡ［０：７］として出力された状態になる。ＥＥＰＲＯＭ１０１に書き込みたいデータ値も、アドレス信号ＲＡ［０：２］＝３Ｈをマイクロコンピュータ１０の外部よりレジスタアドレスバス１０３を介して入力し、そのデータ値をレジスタデータバス１１６に入力する。その後レジスタライト信号（ＸＥＷＲ）としてＬＯＷパルスを入力すると、書き込みたいデータ値がＥＥＰＲＯＭ１０１に対してＥＥＰＲＯＭデータバス１１６を介してデータ信号ＥＤ［０：３］として出力された状態になる。
こうしてアドレス及びデータの指定が終わると、アドレス信号ＲＡ［０：２］＝０Ｈと設定し、データ信号ＲＤ［０：３］＝１Ｈと設定した上で、レジスタライト信号（ＸＥＷＲ）としてＬＯＷパルスを入力する。するとアドレス０のレジスタに１Ｈが書き込まれ、このアドレス０のレジスタからは、Ｘデコーダイネーブル信号（ＸＤＥＣＥ）がＨＩＧＨレベルとなってＥＥＰＲＯＭ１０１へ出力される。
その後、同様の手順によりアドレス０にＲＤ［０：３］＝３Ｈを設定した後、レジスタライト信号（ＸＥＷＲ）としてＬＯＷパルスが入力されると、Ｙデコーダイネーブル信号（ＹＤＥＣＥ）が発生される。さらに、ＲＤ［０：３］＝７Ｈを設定した後、レジスタライト信号（ＸＥＷＲ）としてＬＯＷパルスが入力されると、昇圧回路イネーブル信号（ＣＨＧＥ）が発生される。さらに、ＲＤ［０：３］＝０ＦＨを設定した後、レジスタライト信号（ＸＥＷＲ）としてＬＯＷがパルス入力されると、センスアンプイネーブル信号（ＳＥＮＥ）が発生される。これらの手順を踏むと、ＥＥＰＲＯＭ１０１へのデータ書き込みに必要な制御信号を全てアクティブ状態にしたことになり、ＥＥＰＲＯＭ１０１の指定したアドレスへ任意のデータ値の書き込みを開始することができる。
上述のアクティブ状態が維持されたままで書き込みに必要な時間が経過したら、書き込みを終了させる。それには、書き込み開示時の手順と逆の手順で順次ＥＥＰＲＯＭ制御信号が非アクティブとなるようにすればよい。このため、まずアドレス０にＲＤ［０：３］＝７Ｈ→３Ｈ→１Ｈ→０Ｈという順序で書き込みを行い、最後にアドレス４に３Ｈを書き込めば、ＥＥＰＲＯＭへのデータ書き込みが終了する。
ＥＥＰＲＯＭのデータ消去を行う際は、まずアドレス４に２Ｈを書き込むことによりデータ消去モードの設定を行う。その後はデータ書き込みモードでの手順と同様の方法でレジスタのデータを書き換え、ＥＥＰＲＯＭ制御信号を操作すればＥＥＰＲＯＭの特定アドレスのデータを消去することができる。
レジスタにデータが書き込まれると、以降データが書き換えられるまでは同じデータがレジスタに保持される。また、レジスタをフリップフロップで構成し、データの保持はクロック信号の立ち下がりエッジのタイミングにて行われる。よって、Ｘデコーダイネーブル信号、Ｙデコーダイネーブル信号などといったＥＥＰＲＯＭ制御信号をアドレスマッピングされたレジスタの出力として得るように構成すれば、マイクロコンピュータ１０の外部からのレジスタライト信号（ＸＷＲ）の入力のタイミングでＥＥＰＲＯＭ制御信号を発生できる。ＥＥＰＲＯＭのアドレス及びデータも同様にレジスタからの出力をＥＥＰＲＯＭに入力させるようにすれば、レジスタへのデータ書き込み制御のみでＥＥＰＲＯＭデータの書き込み／消去が行える。従って、マイクロコンピュータ１０の外部からのＸＷＲ信号入力のタイミングのみでＥＥＰＲＯＭ制御信号、ＥＥＰＲＯＭアドレス・データの発生タイミングを直に制御できることになり、半導体装置内部にシーケンサ回路及び発振回路、発振信号制御回路といったタイミング生成のための回路を搭載させることなく、ＥＥＰＲＯＭ制御信号発生タイミングを容易に操れることになる。複雑な構成であるシーケンサ回路を設計及び検証する必要がないため、短納期にてＥＥＰＲＯＭ内蔵の半導体装置を開発することができる。また、マイクロコンピュータ１０の外部に出すアドレス信号数、データ信号数の削減も図れ、ＥＥＰＲＯＭを制御する信号をマイクロコンピュータ１０の外部に端子として出すことなく制御信号を操ることもできるため、端子数の削減、そのための配線領域を減らせることによる半導体装置内部の集積率向上、チップ面積の縮小にも有効に作用することになる。マイクロコンピュータ１０の外部からの操作も単純化され、半導体装置内部のＥＥＰＲＯＭへの書き込み／消去のための外部あるいは内部搭載のツール類の開発が容易になり、開発工数削減、開発容易化も推進することができる。
また、本実施の形態ではレジスタアドレスバスとＥＥＰＲＯＭアドレスバスとを分離しており、レジスタのアドレス空間とＥＥＰＲＯＭのアドレス空間を別個なものとしている。そのため、同一アドレスがレジスタとＥＥＰＲＯＭとの間で重複することがない。従って、マイクロコンピュータの場合を例にとると、ＥＥＰＲＯＭをマイクロコンピュータのプログラム格納用として用いている場合に同一アドレス空間内にレジスタ用のアドレス領域を用意することなく実現でき、アドレス領域の使用範囲を広げることができる。このことは、特に小容量のアドレス領域しか持たないマイクロコンピュータにとって有効である。ＥＥＰＲＯＭアドレスバスをマイクロコンピュータのアドレスバスと共用することも可能であり、半導体装置面積の小型化にとって有用である。加えて、レジスタの数が少ない仕様で設計すれば、レジスタアドレスバスのバス幅を小さくでき、配線領域をさらに低減できる。
（レジスタの構成要素の説明）
次に、レジスタの構成要素の一例を図６に示す。レジスタはフリップフロップ回路により構成され、フリップフロップ回路７０１のデータ入力信号７０２として、レジスタデータバスＲＤ［０：３］上のデータ信号ＲＤ［ｘ］（ここで、ｘは０，１，２，３のいずれか）が入力される。また、アドレスデコード回路より発生されたレジスタイネーブル信号７０３（ＸＡＤＥＮ）とマイクロコンピュータ１０の外部から入力されるレジスタライト信号７０４（ＸＥＷＲ）がナンド回路７０８に入力される。そして、各信号７０３，７０４が同時にＬＯＷレベルになった瞬間に、インバータ７０９を介して、フリップフロップ回路７０１へのクロック信号７０５としてＬＯＷレベル信号が入力される。そのＬＯＷパルスがフリップフロップ回路７０１のクロック端子（Ｃ）に入った瞬間に、フリップフロップ回路７０１はデータ値を記憶する。記憶されたデータ値は、データ出力端子（Ｑ）よりデータ出力信号７０６として出力され、ＥＥＰＲＯＭ制御信号、ＥＥＰＲＯＭアドレス信号またはＥＥＰＲＯＭデータ信号として機能する。
以上より、マイクロコンピュータ１０の外部からのレジスタブロック１０２へのレジスタライト信号７０４（ＸＥＷＲ）の入力タイミングにより、ＥＥＰＲＯＭ１０１への書き込みを行う信号を直接制御できることになる。従って、ＥＥＰＲＯＭへ入力させる信号を得るためのタイミングを考慮した精密かつ複雑なシーケンサ回路を搭載させることなく、比較的簡易な構成のみでＥＥＰＲＯＭへの書き込み／消去が行える。このため、開発時のデバッグ、外部からの単純制御にも有効なマイクロコンピュータを実現できることになる。
（制御信号生成用レジスタの説明）
図７は、ＥＥＰＲＯＭ１０１のための制御信号を生成するレジスタの構成例を示している。図７において、図６に示すフリップフロップ７０１と同じ例えば８つのフリップフロップ７０１−１〜７０１−８が配置されている。これらのデータ入力端子（Ｄ）には、パラレル入力される８ビットの各データＲＤ［Ｘ］が入力され、この各データＲＤ［Ｘ］が図６と同じタイミングにて反転出力端子（ＸＱ）より同時に出力され、インバータを介してＥＥＰＲＯＭブロック１１４に供給される。
また、読み出し動作の時には、クロックドインバータ７１４−１〜７１４−８を介して同時に、フリップフロップ７０１−１〜７０１−８の反転出力端子（ＸＱ）からの制御信号が読み出される。このために、レジスタリード信号（ＸＥＲＤ）とレジスタイネーブル信号（ＸＡＤＥＮ）とが入力されるナンド回路７１０とインバータ７１１が設けられ、インバータ７１１の出力がクロックドインバータ７１４−１〜７１４−８のクロック端子に入力されるようになっている。
フリップフロップ７０１−１〜７０１−８を同時に初期化するために、ＬＯＷアクティブのレジスタリセット信号（ＸＲＥＳＥＴ）がフリップフロップ７０１−１〜７０１−８に供給されるようになっている。ここで、一つのフリップフロップ７０１−５を除く他のフリップフロップ７０１−１〜７０１−４及び７０１−６〜７０１−８のリセット端子（ＣＬ）には、レジスタリセット信号（ＸＲＥＳＥＴ）がインバータ７１２を介して入力され、初期化が行われる（ＸＱ端子がＨＩＧＨとなる）。一方、フリップフロップ７０１−５のセット端子（Ｓ）には、レジスタリセット信号（ＸＲＥＳＥＴ）が２つのインバータ７１２，７１３を介して入力され、初期化が行われる（ＸＱ端子がＬＯＷとなる）。
ここで、フリップフロップ７０１−５の出力に対応する制御信号ＸＸＺＤＥＣＥＮのみがＬＯＷアクティブであり、他のフリップフロップ７０１−１〜７０１−４及び７０１−６〜７０１−８の出力に対応する制御信号は全てＨＩＧＨアクティブである。従って、電源投入時にフリップフロップ７０１−１〜７０１−８の出力が全てＨＩＧＨまたはＬＯＷになったとしても、ＥＥＰＲＯＭ１０１のデータが破壊されることはない。
（書換データ用レジスタの説明）
図８に、書換データ用レジスタの一例を示す。このレジスタは８ビットのデータを転送するもので、図７に示すレジスタと同一の構成を有する。図８においては、書換データ読み出し時に用いられるクロックドインバータ７１４−１〜７１４−８の入力端子は、図示しないトライステートスイッチを介してＥＥＰＲＯＭブロック１１４の出力線に接続されている点が、図７と相違している。従って、書換データ読み出し動作では、図７と同じタイミングにてＥＥＰＲＯＭ１０１に記憶されているデータがクロックドインバータ７１４−１〜７１４−８を介して読み出される。
【図１】
0003937456.tif 000003
【図２Ａ】
0003937456.tif 000004
【図２Ｂ】
0003937456.tif 000005
【図２Ｃ】
0003937456.tif 000006
【図３】
0003937456.tif 000007
【図４】
0003937456.tif 000008
【図５】
0003937456.tif 000009
【図６】
0003937456.tif 000010
【図７】
0003937456.tif 000011
【図８】
0003937456.tif 000012
【図９】
0003937456.tif 000013
【図１０】
0003937456.tif 000014
【図１１】
0003937456.tif 000015