(57)【特許請求の範囲】
【請求項１】
フローティングゲートを有するメモリセルを記憶素子としてデータを記憶するフラッシュメモリと、前記フラッシュメモリを駆動する駆動手段と、バスに接続されプログラムに従って前記データの処理を行う中央演算処理部とを備えるフラッシュメモリ内蔵マイクロコンピュータにおいて、
前記フローティングゲートから電子を引き抜くときに前記メモリセルに印加する電圧を発生し、所定の出力端を介して前記駆動手段に供給する電圧発生手段と、
一端がそれぞれ接地された所定のＮ個のコンデンサと、
前記バスに接続され、それぞれ１ビットの値を記憶する前記Ｎ個のレジスタと、
前記出力端と前記Ｎ個のコンデンサの残りの一端とにそれぞれ接続され、前記Ｎ個のレジスタの値に応じて前記Ｎ個のコンデンサの残りの一端を前記出力端にそれぞれ電気的に接続する前記Ｎ個の接続手段とを備え、
前記Ｎ個のレジスタは正補正値を格納する第１レジスタと負補正値を格納する第２レジスタとからなり、前記第１レジスタ及び第２レジスタはプログラムにより設定されることを特徴とするフラッシュメモリ内蔵マイクロコンピュータ。
【請求項２】
Ｎ個のうちの所定のｍ個のレジスタに接続され、前記ｍ個のレジスタの値をそれぞれ反転する前記ｍ個のインバータを備え、
前記Ｎ個のうちの前記ｍ個の接続手段は、前記ｍ個のインバータにより前記レジスタの値を反転した値に応じて前記Ｎ個のうちの前記ｍ個のコンデンサの残りの一端を前記出力端にそれぞれ電気的に接続することを特徴とする請求項１記載のフラッシュメモリ内蔵マイクロコンピュータ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、フラッシュメモリを内蔵するマイクロコンピュータ（以下、マイコンという）に関し、特に、内部あるいは外部メモリに記憶されたプログラムに従って中央演算処理装置（以下、ＣＰＵという）を動作させてフラッシュメモリの内容を書き換えるフラッシュメモリ内蔵マイクロコンピュータに関するものである。
【０００２】
【従来の技術】
フラッシュメモリ内蔵マイコンのフラッシュメモリにおける記憶内容の書換方式は、次の２つの方式に大別することができる。
（１）ＣＰＵの動作を停止させた状態で、外部の書き込みアダプタとＰＲＯＭライタを利用してフラッシュメモリの記憶内容の書き換えを行う外部書換方式。
（２）内部メモリまたは外部メモリに記憶されているプログラムに従ってＣＰＵを動作させ、フラッシュメモリの記憶内容の書き換えを行うＣＰＵ書換方式。
【０００３】
図７は上述のＣＰＵ書換方法でフラッシュメモリの記憶内容の書き換えを行う従来のフラッシュメモリ内蔵マイコンを示す構成図である。図において、１はマイコンであり、２はＣＰＵであり、３はタイマ、シリアルＩ／Ｏインタフェースなどの周辺装置であり、４はＲＡＭであり、５はＩ／Ｏポートである。
６はＤ−Ａ変換器であり、７はＡ−Ｄ変換器であり、８はＣＰＵ２、周辺装置３、ＲＡＭ４、Ｉ／Ｏポート５、Ｄ−Ａ変換器６、Ａ−Ｄ変換器７、およびフラッシュメモリ部１９に接続されたデータバスである。なお、データバス８と同様に図示せぬアドレスバスも設けられている。
【０００４】
１９は、フラッシュメモリ制御部２０、電圧発生回路３１、ソース回路３７、アドレスデコーダ３８、読出書込制御回路４０、およびフラッシュメモリ（メモリセルアレイ）４１で構成されるフラッシュメモリ部である。フラッシュメモリ部１９において、２０は、フラッシュ制御レジスタ２１、フラッシュコマンドレジスタ２２、コマンドデコーダ２３およびシーケンス回路２６で構成され、制御線２９を介して読出書込制御回路４０とアドレスデコーダ３８を制御し、制御線２７を介して電圧発生回路３１を制御するフラッシュメモリ制御部であり、３１は電源端子４３，４４，４５を介してマイコン１外部よりそれぞれ供給される電圧Ｖｐｐ（例えば１２．０ボルト），Ｖｃｃ（例えば５．０ボルト），Ｖｓｓから、電源線３９を介して読出書込制御回路４０に供給される読み出し電圧と書き込み電圧、電源線３６を介してアドレスデコーダ３８に供給されるアドレスデコード電圧、および、電源線３５を介してソース回路３７に供給される消去電圧を生成する電圧発生回路である。
【０００５】
１０−０〜１０−ｎは端子ＡＮ０〜ＡＮｎのうちのいずれかを選択し、Ａ−Ｄ変換器７の入力端子ＡＮｉｎの電位をその端子の電位と同電位にするトランスミッションゲートであり、９−０〜９−ｎ，はＤ−Ａ変換器６からの出力信号を選択し、端子ＤＡ０〜ＤＡｎへ出力するトランスミッションゲートである。図８は、トランスミッションゲート９−０〜９−ｎ，１０−０〜１０−ｎの構成を示す図である。図８（ａ）に示すトランスミッションゲート９０は、その実際の回路としては、図８（ｂ）に示すようにｎチャネルトランジスタ９１とｐチャネルトランジスタ９２のソースとドレインがそれぞれ接続された構成になっており、その接続されたソースとドレインが端子１２０，１２１に接続されている。
【０００６】
１６はＡ−Ｄ変換器７の動作を開始するときに外部トリガ信号ＡＤｔｒｇを入力される外部トリガ入力端子である。１７はＤ−Ａ変換器６およびＡ−Ｄ変換器７に供給されるアナログ電源ＡＶｓｓ（接地電位）が印加されるアナログ電源端子であり、１８はＤ−Ａ変換器６およびＡ−Ｄ変換器７に供給される、Ｄ−Ａ変換およびＡ−Ｄ変換の基準電圧Ｖｒｅｆが印加される基準電圧端子である。
【０００７】
次に動作について説明する。
ここでは、上述のＣＰＵ書換方式に従った動作について説明する。
まず、ＣＰＵ２は、フラッシュメモリ４１に格納されている、ＣＰＵ書換動作を記述した制御プログラム（以下、ブートプログラムという）を、データバス８を介してＲＡＭ４に転送し、記憶させる。次に、ＣＰＵ２は、処理を、ＲＡＭ４に転送したブートプログラムにジャンプさせる。すなわち、これ以降の動作は、ブートプログラムに従って実行される。
【０００８】
そして、ＣＰＵ２は、フラッシュメモリ制御部２０のフラッシュ制御レジスタ２１のうちのＣＰＵ書換モード選択ビットに値「１」を書き込む。これにより、ＣＰＵ書換方式が選択される。
【０００９】
次に、ＣＰＵ２は、フラッシュコマンドレジスタ２２に後述のコマンドを書き込み、コマンドデコーダ２３は、書き込まれたコマンドを解読し、実行すべきコマンドをシーケンス回路２６に対して指示する。シーケンス回路２６は、指示されたコマンドに対応するシーケンスを実行し、制御線２７，２９を介して制御信号を供給し、電圧発生回路３１、読出書込制御回路４０およびアドレスデコーダ３８をシーケンスに従って動作させる。
【００１０】
電圧発生回路３１は、制御線２７を介して供給される制御信号に応じて、電源端子４３，４４，４５より供給される電源Ｖｐｐ，Ｖｃｃ，Ｖｓｓから所定の電圧値の電源電圧を発生し、電源線３５，３６，３９にその電圧を所定のタイミングで印加し、ソース回路３７、読出書込制御回路４０およびアドレスデコーダ３８にそれぞれ供給する。
【００１１】
なお、上述のコマンドには、例えば次に示すようなものがある。
（１）リードコマンド：フラッシュメモリ（メモリセル）に記憶されたデータ（０または１）を読み出すためのコマンド
（２）プログラムコマンド：フラッシュメモリ（メモリセル）に値「０」のデータを書き込むためのコマンド
（３）プログラムベリファイコマンド：書込実行後のデータを読み出し、値「０」のデータの書込みが正しく行われたを検証するためのコマンド
（４）イレーズコマンド：フラッシュメモリから値「０」のデータを消去するためのコマンド（すなわち、メモリセルに記憶されるデータの値を「１」にするコマンド）
（５）イレーズベリファイコマンド：消去実行後にフラッシュメモリの内容を読み出し、値「０」のデータが確実に消去されたことを確認するためのコマンド
【００１２】
次に、フラッシュメモリ部１９のうちの、フラッシュメモリ４１の１つのメモリセルに接続される、アドレスデコーダ３８、読出書込制御回路４０およびソース回路３７の部分的な回路を示し、各コマンド実行時の動作について説明する。
【００１３】
図９は、図７のフラッシュメモリ部１９のうちの、フラッシュメモリ４１の１つのメモリセルに接続される、アドレスデコーダ３８、読出書込制御回路４０およびソース回路３７の部分的な回路を示すブロック図であり、図１０は、各コマンド実行時における、図９の回路の各電源の電圧値を示す図である。図９において、１０１は、ゲートがワード線１０２に接続され、ドレインがビット線１０３に接続され、ソースがソース回路３７ｉに接続された１ビットのフラッシュメモリセル（以下、単にメモリセルという）であり、１０４は、アドレスデコーダ３８においてワード線１０２に接続され、電源ＶＤＥＣで駆動されるワード線バッファであり、１０５はアドレスデコーダ３８において電源ＶＤＥＣ２で駆動され、アドレスバス１０６からのアドレスデータに応じた電圧をワード線バッファ１０４に出力するアドレスデコード回路である。なお、この電源ＶＤＥＣ，ＶＤＥＣ２は電源線３６を介して供給される。また、ソース回路３７ｉは、ソース回路３７のうちの、１つのメモリセル１０１に対応する回路であり、電源ＶＭＳで駆動され、メモリセル１０１のフローティングゲート１１５から電子を引き抜くものである。
【００１４】
１０７は、読出書込制御回路４０において電源ＶＡＭＰで駆動され、データ読出時にビット線１０３を介してメモリセル１０１に記憶されたデータを読み出し、データバス８に出力するセンスアンプであり、１０８は読出書込制御回路４０において電源ＶＭＤで駆動され、データ書込時に、データバス８からのデータを、ビット線１０３を介してメモリセル１０１に書き込む書込回路である。１１１は、複数のメモリセル１０１にそれぞれ接続される複数のビット線１０３のうちのいずれかを選択し、選択したビット線１０３をセンスアンプ１０７および書込回路１０８に接続するセレクタである。
【００１５】
なお、図９には１ビットのメモリセル１０１に対応する部分的な回路だけが記載されており、実際には、多数のメモリセル１０１に対応して同様の回路が多数設けられている。
【００１６】
次に、まずリードコマンド実行時の動作について説明する。
図１０に示すように、イレーズコマンド実行時に使用される電源ＶＭＳ以外のすべての電源は、５．０ボルトに設定され、ワード線１０２の電位も５．０ボルトになる。センスアンプ１０７は、ビット線１０３の電位を検出して、メモリセル１０１のドレイン電流の流れ易さを調べ、電流が流れにくいときはメモリセル１０１に記憶されているデータの値が「０」であり、電流が流れ易いときはデータの値が「１」であるとして、そのデータの値をデータバス８に出力する。
【００１７】
次に、プログラムコマンド実行時の動作について説明する。
図１０に示すように、ワード線バッファ１０４の電源ＶＤＥＣが１２．０ボルトに設定されるので、ワード線１０２の電位も１２．０ボルトになる。また、書込回路１０８の電源ＶＭＤも１２．０ボルトに設定され、その電圧が中間の回路により降圧されるので、メモリセル１０１のドレインに接続されるビット線１０３の電位は約７ボルトになる。一方、ソース回路３７ｉの電源ＶＭＳは０ボルトである。したがって、ソース−ドレイン間には、約７ボルトの電圧が印加され、ドレイン電流が生じる。この電流により発生したホットエレクトロンがフローティングゲート１１５に注入され、値「０」のデータが書き込まれる。
【００１８】
次に、イレーズコマンド実行時の動作について説明する。
図１０に示すように、ソース回路３７ｉの電源ＶＭＳが１２．０ボルトに設定される。このとき、ワード線１０２の電位は、アドレスデコード回路１０５により０ボルトに設定され、ビット線１０３は、セレクタ１１１により遮断される。したがって、ソース−ゲート間に１２．０ボルトの電圧が印加され、トンネル現象を利用してフローティングゲート１１５の電子をソース側に引き抜き、値「０」のデータを消去する。なお、このように電子が引き抜かれた状態では、値「１」のデータを記憶していることになる。
【００１９】
次に、プログラムベリファイコマンド実行時の動作について説明する。
図１０に示すように、ワード線バッファ１０４の電源ＶＤＥＣが６．３ボルトに設定され、ワード線１０２の電位も同様に６．３ボルトになる。一方、センスアンプ１０７の電源ＶＡＭＰは５．５ボルトに設定される。この場合、リードコマンド実行時に比較してドレイン電流が流れ易い状態になる。すなわち、メモリセル１０１の内容が、値「１」のデータとして読み出され易い状態になる。したがって、プログラムコマンド実行時において、メモリセル１０１のフローティングゲート１１５にホットエレクトロンが注入され、値「０」のデータが確実に書き込まれていないと、値「０」のデータが書き込まれたと判断されない。なお、読み出されたデータの値が「１」であると判断された場合、プログラムコマンドを再度実行した後、再度プログラムベリファイコマンドが実行される。そして、この動作は、値「０」のデータが書き込まれたと判断されるまで繰り返される。
【００２０】
次に、イレーズベリファイコマンド実行時の動作について説明する。
図１０に示すように、ワード線バッファ１０４の電源ＶＤＥＣとアドレスデコード回路１０５の電源ＶＤＥＣ２が３．５ボルトに設定され、ワード線１０２の電位が３．５ボルトになる。また、センスアンプ１０７の電源ＶＡＭＰが４．０ボルトに設定される。この場合、プログラムベリファイ実行時とは逆に、リードコマンド実行時に比較してドレイン電流が流れにくい状態になる。すなわち、メモリセル１０１の内容は、値「０」のデータとして読み出され易い状態になる。したがって、イレーズコマンド実行時において、メモリセル１０１のフローティングゲート１１５から確実に電子が引き抜かれていないと、値「０」のデータが消去されたと判断されない（すなわち、値「１」のデータを記憶していると判断されない）。なお、読み出されたデータの値が「０」であると判断された場合、イレーズコマンドを再度実行した後、再度イレーズベリファイコマンドが実行される。そして、この動作は、値「０」のデータが消去されたと判断されるまで繰り返される。
【００２１】
なお、プログラムベリファイ時やイレーズベリファイ時において、ワード線バッファ１０４の電源ＶＤＥＣ、アドレスデコード回路１０５の電源ＶＤＥＣ２、およびセンスアンプ１０７の電源ＶＡＭＰの電圧値を、例えば６．３ボルト、５．５ボルトといった１２．０ボルトと５．０ボルトとの間の中間電位、または、例えば４．０ボルト、３．５ボルトといった５．０ボルトと０ボルトとの間の中間電位に適宜設定することにより、プログラム動作による書込レベル（ドレイン電流の流れにくさ）およびイレーズ動作による消去レベル（ドレイン電流の流れ易さ）を調整することができる。以下、電源ＶＤＥＣ，ＶＤＥＣ２，ＶＡＭＰなどの中間電位を発生する電源をアナログ電源というとともに、その電源電圧をアナログ電源電圧という。
【００２２】
次に、アナログ電源電圧を発生する回路の一例について説明する。
図１１は、アナログ電源電圧を発生するアナログ電源電圧発生回路の一例を示す回路図である。なお、図１１のアナログ電源電圧発生回路は、１つのアナログ電源電圧を発生する回路であり、同様の回路が、供給するアナログ電源電圧の数だけ設けられている。図において、２００は基準電圧ＡＶｒｅｆを生成する基準電圧発生部であり、２０１は基準電圧発生部２００により生成された基準電圧ＡＶｒｅｆをアナログ電源電圧として上述の回路に印加し、その回路を駆動する駆動部である。
【００２３】
２０３は、入力端が動作モード信号供給端２０６に接続され、出力端が基準電圧発生部２００のｐチャネルトランジスタ２１１のゲートとｎチャネルトランジスタ２０４のゲートに接続されたインバータであり、２０４はゲートがインバータ２０３の出力端に接続され、ソースが接地され、ドレインが基準電圧発生部２００の基準電圧点２１２に接続されたｎチャネルトランジスタである。２０５は、入力端が動作モード信号供給端２０６に接続され、出力端が駆動部２０１のｎチャネルトランジスタ２２３のゲートに接続されたインバータである。２０６は、上述のコマンドに対応して電源電圧を発生するときに、Ｈレベルの動作モード信号を供給される動作モード信号供給端である。なお、動作モード信号は、フラッシュメモリ制御部２０から制御線２７を介して供給される。
【００２４】
基準電圧発生部２００において、２１１は、ゲートがインバータ２０３の出力端に接続され、ソースが電源２０２に接続され、ドレインが基準電圧点２１２に接続されたｐチャネルトランジスタである。２１３〜２１６は、それぞれのゲートとドレインが接続されるとともに、ソースが隣りのｎチャネルトランジスタのドレインとゲートに接続されたｎチャネルトランジスタ群であり、一端のｎチャネルトランジスタ群２１３のゲートとドレインは基準電圧点２１２に接続され、他端のｎチャネルトランジスタ群２１６のソースは接地されている。なお、電源２０２としては、電源Ｖｐｐと電源Ｖｃｃとの間の中間電位を発生させる場合、電源Ｖｐｐが使用され、電源Ｖｃｃと０ボルトとの間の中間電位を発生させる場合、電源Ｖｃｃが使用され、電源Ｖｐｐと電源Ｖｃｃとの間の中間電位および電源Ｖｃｃと０ボルトとの間の中間電位のいずれかを適宜発生させる場合、動作（コマンド）に応じて電圧値が電圧Ｖｐｐまたは電圧Ｖｃｃに切り替えられる電源Ｖｃｃｐｐが使用される。
【００２５】
駆動部２０１においては、２２１は、ｐチャネルトランジスタ２３１，２３２とｎチャネルトランジスタ２３３，２３４，２３５で構成され、出力点２２４の電圧を基準電圧ＡＶｒｅｆに保つように動作するカレントミラー回路であり、２２２は、ゲートがｎチャネルトランジスタ２３４のドレインに接続され、ソースが電源２０２に接続され、ドレインが出力点２２４に接続されたｐチャネルトランジスタであり、２２３はゲートがインバータ２０５の出力端に接続され、ソースが接地され、ドレインが出力点２２４に接続されたｎチャネルトランジスタである。
【００２６】
次に動作について説明する。
Ｈレベルの動作モード信号が供給されると、基準電圧発生部２００のｐチャネルトランジスタ２１１のゲートの電位は、インバータ２０３で反転されたＬレベルになるので、ｐチャネルトランジスタ２１１はオン状態になる。同様に、ｎチャネルトランジスタ２０４のゲートの電位はＬレベルになるので、ｎチャネルトランジスタ２０４はオフ状態になる。したがって、基準電圧発生部２００において、ｎチャネルトランジスタ群２１３〜２１６と、ｐチャネルトランジスタ２１１により電源２０２の電圧が分圧され、分圧された電圧が、基準電圧点２１２の電圧、すなわち基準電圧ＡＶｒｅｆになる。
【００２７】
そして、このとき、駆動部２０１においては、ｎチャネルトランジスタ２２３がオフ状態になるとともに、カレントミラー回路２２１のｎチャネルトランジスタ２３５がオン状態になり、カレントミラー回路２２１が動作する。したがって、カレントミラー回路２２１とｐチャネルトランジスタ２２２により出力点２２４の電圧が、基準電圧点２１２の電圧に等しくなるように制御される。
【００２８】
このようにして、動作モード信号が供給されると、アナログ電源電圧が発生される。
【００２９】
一方、Ｈレベルの動作モード信号が供給されずに、動作モード信号供給端２０６の電位がＬレベルである場合、基準電圧発生部２００のｐチャネルトランジスタ２１１はオフ状態になり、ｎチャネルトランジスタ２０４はオン状態になる。駆動部２０１においては、ｎチャネルトランジスタ２２３がオン状態になるとともに、カレントミラー回路２２１のｎチャネルトランジスタ２３５がオフ状態になるので、出力点２２４の電圧は０ボルトになる。
【００３０】
次に、イレーズコマンド実行時の電源電圧すなわち消去電圧を発生する回路について説明する。
【００３１】
図１２は、ソース回路３７ｉ、および電圧発生回路３１に設けられている消去電圧発生回路２４０を示す回路図であり、図１３は、イレーズコマンド実行時における電源ＶＭＳの電圧波形を示す図である。図において、２４０は、消去電圧発生回路であり、３７ｉは１つのメモリセル１０１に対応するソース回路である。消去電圧発生回路２４０において、２４１は、メモリセル１０１に記憶されたデータを消去するときにフラッシュメモリ制御部２０からイレーズパルス信号ＥＲＳＭを供給される入力端子であり、２４２は、ゲートが電源Ｖｃｃに接続され、ドレインが入力端子２４１に接続され、ソースがインバータ２４３の入力端に接続されたｎチャネルトランジスタである。
【００３２】
２４３は、入力端がｎチャネルトランジスタ２４２のソースとｐチャネルトランジスタ２４４のドレインに接続され、出力端がｐチャネルトランジスタ２４４のゲートとｐチャネルトランジスタ２４５のゲートに接続されたインバータであり、２４４は、ゲートがインバータ２４３の出力端に接続され、ソースが電源Ｖｃｃｐｐに接続され、ドレインがインバータ２４３の入力端に接続されたｐチャネルトランジスタである。なお、電源Ｖｃｃｐｐは、その電圧がイレーズコマンド実行時にＶｐｐ（１２ボルト）に、その他の時にはＶｃｃ（５ボルト）に設定される電源である。
【００３３】
２４５は、ゲートがインバータ２４３の出力端に接続され、ソースが電源Ｖｃｃｐｐに接続され、ドレインが消去電圧供給端２４９（すなわち、電源ＶＭＳ）に接続されたｐチャネルトランジスタであり、２４６は、入力端が入力端子２４１に接続され、出力端がｎチャネルトランジスタ２４７のゲートに接続されたインバータであり、２４７は、ゲートがインバータ２４６の出力端に接続され、ソースが接地され、ドレインが消去電圧供給端２４９に接続されたｎチャネルトランジスタである。
【００３４】
ソース回路３７ｉにおいて、２４８は、電源Ｖｃｃｐｐにゲートが接続され、ソースが接地され、ドレインが消去電圧供給端２４９に接続された、β値（電流増幅率）の小さいｎチャネルトランジスタである。
【００３５】
次に動作について説明する。
イレーズコマンドが実行されると、入力端子２４１にＨレベルのイレーズパルス信号ＥＲＳＭが供給される。このとき、ｎチャネルトランジスタ２４７のゲートの電位は、インバータ２４６によりイレーズパルス信号を反転したＬレベルの電位になり、ｎチャネルトランジスタ２４７はオフ状態になる。一方、ｐチャネルトランジスタ２４５のゲートの電位は、インバータ２４３によりイレーズパルス信号を反転したＬレベルの電位になり、ｐチャネルトランジスタ２４５はオン状態になる。なお、ｎチャネルトランジスタ２４２は常にオン状態である。
【００３６】
したがって、消去電圧供給端２４９の電位が電源Ｖｃｃｐｐの電位になり、メモリセル１０１のフローティングゲート１１５に蓄積された電子は、メモリセル１０１のソースを介して引き抜かれ、ｐチャネルトランジスタ２４５を介して電源Ｖｃｃｐｐに出力される。なお、ソース回路３７ｉのｎチャネルトランジスタ２４８は常時オン状態であるが、β値が小さいため、イレーズコマンド実行時において、消去電圧供給端２４９の電位が接地電位と同一になることはない。
【００３７】
このとき、電源ＶＭＳ（消去電圧供給端２４９）の電圧は、図１３に示すように、所定の立ち上がり時間（約６８０ナノ秒）をかけて電源Ｖｃｃｐｐの電位に到達する。この立ち上がり時間は、主に、ｐチャネルトランジスタ２４５のβ値、電源ＶＭＳの内部抵抗、および電源ＶＭＳに付加される静電容量成分（メモリセル１０１のソースに発生する寄生容量、電源ＶＭＳの配線容量など）に応じて発生する。
【００３８】
以上のようにして、アナログ電源ＶＤＥＣ，ＶＤＥＣ２，ＶＡＭＰ、およびメモリセル１０１から電子を引き抜くための電源ＶＭＳが構成されている。
【００３９】
【発明が解決しようとする課題】
従来のフラッシュメモリ内蔵マイクロコンピュータは以上のように構成されているので、電圧発生回路３１により発生されるアナログ電源電圧の値は、フラッシュメモリ内蔵マイクロコンピュータを作成するときのウエハプロセス時の環境、生産ラインの違い、プロダクトパラメータの変動などに起因して、予め設計された値から変動してしまう可能性があるなどの課題があった。
【００４０】
なお、アナログ電源電圧が変動すると、メモリセル１０１へのデータの書込レベルや消去レベルが適正なレベルにならない可能性があり、その場合、例えばデータの値が誤って読み出される可能性がある。
【００４１】
なお、電源電圧が所定の電圧値になるように制御する回路として、例えば特開平８−１６８２３７号公報に記載されている回路などがあるが、この回路を利用しようとすると、制御回路が常に動作状態にあるので、常に基準電圧値を供給する必要があるとともに、フラッシュメモリ内蔵マイクロコンピュータの消費電力を低減させることが困難になる。
【００４２】
また、従来のフラッシュメモリ内蔵マイクロコンピュータでは、イレーズコマンド実行時にメモリセル１０１に接続される電源ＶＭＳの立ち上がり時間は、フラッシュメモリ内蔵マイクロコンピュータを回路構成に応じて所定の長さに固定されてしまうので、この立ち上がり時間が短いと、フローティングゲート１１５から電子が急激に引き抜かれてしまい、メモリセル１０１が故障する可能性があるという課題があった。
【００４３】
なお、逆に、この立ち上がり時間が長いと、イレーズコマンドの実行時間が長くなってしまう。また、立ち上がり時間が長い場合に、所定の時間でイレーズコマンドの実行を終了するようにすると、電源ＶＭＳの電圧が設定値（図１３では１２ボルト）に到達する前にイレーズ動作が終了してしまうので、フローティングゲート１１５に電子が残留してしまう。
【００４４】
この発明は上記のような課題を解決するためになされたもので、イレーズコマンド実行時の電源ＶＭＳを発生する消去電圧発生回路の出力端と接地点との間に、接続制御用のトランジスタとコンデンサとが直列に接続されて構成されている回路を、所定の数だけ並列に接続し、ＣＰＵによって所定のレジスタに設定される値に応じて上述のコンデンサを消去電圧発生回路の出力端と接地点との間に電気的に接続させるようにして、ＣＰＵによって電源から消去電圧発生回路の出力端までの回路の時定数を適宜変更させ、電源ＶＭＳの電圧の立ち上がり時間を最適に設定することができるフラッシュメモリ内蔵マイクロコンピュータを得ることを目的とする。
【００４５】
また、この発明は、プログラムベリファイ動作時またはイレーズベリファイ動作時に、プログラムに従って、レジスタの値に応じてアナログ電源電圧を発生し、そのアナログ電源電圧をアドレスデコーダ、読出書込制御回路、またはソース回路に供給し、そのアナログ電源電圧のアナログ値をデジタルデータにＡ−Ｄ変換し、ＣＰＵで、そのデジタルデータの値に応じてレジスタの値を変更するようにして、アナログ電源電圧の値を所定の値に自動設定するためのフラッシュメモリ内蔵マイクロコンピュータを得ることを目的とする。
【００４６】
【課題を解決するための手段】
この発明に係るフラッシュメモリ内蔵マイクロコンピュータは、フローティングゲートから電子を引き抜くときにメモリセルに印加する電圧を発生し、所定の出力端を介して駆動手段に供給する電圧発生手段と、一端がそれぞれ接地された所定のＮ個のコンデンサと、バスに接続され、それぞれ１ビットの値を記憶するＮ個のレジスタと、出力端とＮ個のコンデンサの残りの一端とにそれぞれ接続され、Ｎ個のレジスタの値に応じてＮ個のコンデンサの残りの一端を出力端にそれぞれ電気的に接続するＮ個の接続手段とを備え、Ｎ個のレジスタは正補正値を格納する第１レジスタと負補正値を格納する第２レジスタとからなり、第１レジスタ及び第２レジスタはプログラムにより設定されるものである。
【００４７】
この発明に係るフラッシュメモリ内蔵マイクロコンピュータは、Ｎ個のうちの所定のｍ個のレジスタに接続され、ｍ個のレジスタの値をそれぞれ反転するｍ個のインバータを備え、Ｎ個のうちのｍ個の接続手段は、ｍ個のインバータによりレジスタの値を反転した値に応じてＮ個のうちのｍ個のコンデンサの残りの一端を出力端にそれぞれ電気的に接続するものである。
【００５０】
【発明の実施の形態】
以下、この発明の実施の一形態を説明する。
実施の形態１．
図１は、この発明の実施の形態１によるフラッシュメモリ内蔵マイクロコンピュータを示す構成図である。図において、１はフラッシュメモリ内蔵マイクロコンピュータであり、２はＣＰＵ（中央演算処理部）であり、３はタイマ、シリアルＩ／Ｏインタフェースなどの周辺装置であり、４はＲＡＭであり、５はＩ／Ｏポートである。６はＤ−Ａ変換器であり、７はＡ−Ｄ変換器（Ａ−Ｄ変換手段）であり、８はＣＰＵ２、周辺装置３、ＲＡＭ４、Ｉ／Ｏポート５、Ｄ−Ａ変換器６、Ａ−Ｄ変換器７、およびフラッシュメモリ部１９に接続されたデータバス（バス）である。なお、データバス８と同様に図示せぬアドレスバスも設けられている。
【００５１】
１９は、フラッシュメモリ制御部２０、電圧発生回路３１、ソース回路（駆動手段）３７、アドレスデコーダ（駆動手段）３８、読出書込制御回路（駆動手段）４０、およびフラッシュメモリ４１で構成されるフラッシュメモリ部である。フラッシュメモリ部１９において、２０はフラッシュ制御レジスタ２１、フラッシュコマンドレジスタ２２、コマンドデコーダ２３およびシーケンス回路２６で構成され、制御線２９を介して読出書込制御回路４０とアドレスデコーダ３８を制御し、制御線２７を介して電圧発生回路３１を制御するフラッシュメモリ制御部であり、３１は電源端子４３，４４，４５を介してマイコン１外部から供給される電圧Ｖｐｐ（第１の電圧），Ｖｃｃ（第２の電圧），Ｖｓｓ（第３の電圧）に応じて、電源線３９を介して読出書込制御回路４０に供給される読み出し電圧と書き込み電圧、電源線３６を介してアドレスデコーダ３８に供給されるアドレスデコード電圧、および、電源線３５を介してソース回路３７に供給される消去電圧を生成する電圧発生回路である。
【００５２】
１０−０〜１０−ｎは端子ＡＮ０〜ＡＮｎのうちのいずれかを選択し、Ａ−Ｄ変換器７の入力端子ＡＮｉｎをその端子と同電位にするトランスミッションゲートであり、９−０〜９−ｎはＤ−Ａ変換器６からの出力信号を選択し、端子ＤＡ０〜ＤＡｎへ出力するトランスミッションゲートである。
【００５３】
１６はＡ−Ｄ変換器７の変換を開始するときに外部トリガ信号ＡＤｔｒｇを入力される外部トリガ入力端子である。１７はＤ−Ａ変換器６およびＡ−Ｄ変換器７に供給されるアナログ電源ＡＶｓｓ（接地電位）が印加されるアナログ電源端子であり、１８はＤ−Ａ変換およびＡ−Ｄ変換の基準電圧Ｖｒｅｆが印加される基準電圧端子である。
【００５４】
２８はデータバス８に接続され、信号線群３０を介して電圧発生回路３１から出力されるアナログ電圧値を設定するアナログ電圧調整レジスタである。
【００５５】
図２は、図１のソース回路３７の一部、および電圧発生回路３１に設けられている消去電圧発生回路４５０を示す回路図であり、図３は、イレーズコマンド実行時における電源ＶＭＳの電圧波形を示す図である。図２において、４５０は消去電圧発生回路（電圧発生手段）であり、３７ｉは１つのメモリセル１０１に対応するソース回路である。消去電圧発生回路４５０において、２４１は、メモリセル１０１に記憶されたデータを消去するときにフラッシュメモリ制御部２０からイレーズパルス信号ＥＲＳＭを供給される入力端子であり、２４２は、ゲートが電源Ｖｃｃに接続され、ドレインが入力端子２４１に接続され、ソースがインバータ２４３の入力端に接続されたｎチャネルトランジスタである。
【００５６】
２４３は、入力端がｎチャネルトランジスタ２４２のソースとｐチャネルトランジスタ２４４のドレインに接続され、出力端がｐチャネルトランジスタ２４４のゲートとｐチャネルトランジスタ２４５のゲートに接続されたインバータであり、２４４は、ゲートがインバータ２４３の出力端に接続され、ソースが電源Ｖｃｃｐｐに接続され、ドレインがインバータ２４３の入力端に接続されたｐチャネルトランジスタである。
【００５７】
２４５は、ゲートがインバータ２４３の出力端に接続され、ソースが電源Ｖｃｃｐｐに接続され、ドレインが消去電圧供給端（所定の出力端）２４９に接続されたｐチャネルトランジスタであり、２４６は、入力端が入力端子２４１に接続され、出力端がｎチャネルトランジスタ２４７のゲートに接続されたインバータであり、２４７は、ゲートがインバータ２４６の出力端に接続され、ソースが接地され、ドレインが消去電圧供給端２４９に接続されたｎチャネルトランジスタである。
【００５８】
２７１−ｉ（ｉ＝１，・・・，ｎ）は、ゲートがアナログ電圧調整レジスタ２８のプラス補正用レジスタ３４１のレジスタ３５１−ｉに接続され、ドレインが消去電圧供給端２４９に接続され、ソースがプラス補正用コンデンサ２７２−ｉの一端に接続された接続制御用のトランジスタ（接続手段）であり、２７２−ｉ（ｉ＝１，・・・，ｎ）は、一端が接続制御用のトランジスタ２７１−ｉのソースに接続され、他端が接地されたプラス補正用コンデンサ（コンデンサ）である。
【００５９】
２７３−ｉ（ｉ＝１，・・・，ｍ）は、ゲートがアナログ電圧調整レジスタ２８のインバータ３４３−ｉに接続され、ドレインが消去電圧供給端２４９に接続され、ソースがマイナス補正用コンデンサ２７４−ｉの一端に接続された接続制御用のトランジスタ（接続手段）であり、２７４−ｉ（ｉ＝１，・・・，ｎ）は、一端が接続制御用のトランジスタ２７３−ｉのソースに接続され、他端が接地されたマイナス補正用コンデンサ（コンデンサ）である。
【００６０】
アナログ電圧調整レジスタ２８において、３４１は、消去電圧発生回路４５０のプラス補正用コンデンサ２７２−１〜２７２−ｎの数ｎと同ビット数のレジスタ３５１−１〜３５１−ｎを有し、データバス８を介して値を設定されるプラス補正用レジスタであり、３４２は、消去電圧発生回路４５０のマイナス補正用コンデンサ２７４−１〜２７４−ｍの数ｍと同ビット数のレジスタ３５２−１〜３５２−ｍを有し、データバス８を介して値を設定されるマイナス補正用レジスタである。
【００６１】
３５１−ｉ（ｉ＝１，・・・，ｎ）は、プラス補正用コンデンサ２７２−ｉに直列に接続された接続制御用のトランジスタ２７１−ｉのゲートに接続される１ビットのレジスタである。３５２−ｉ（ｉ＝１，・・・，ｍ）は、インバータ３４３−ｉの入力端に接続される１ビットのレジスタである。すなわち、合計で（ｎ＋ｍ）個（Ｎ個）のレジスタが設けられている。
【００６２】
３４３−ｉ（ｉ＝１，・・・，ｍ）は、入力端がレジスタ３５２−ｉに接続され、出力端がマイナス補正用コンデンサ２７４−ｉに直列に接続された接続制御用のトランジスタ２７３−ｉのゲートに接続されるインバータである。
【００６３】
なお、ソース回路３７ｉは、図１２のものと同一であるので、その説明を省略する。
【００６４】
次に動作について説明する。
なお、イレーズコマンド実行時以外の動作は図７のものの動作と同様であるので、ここでは、イレーズコマンド実行時の動作について説明する。
フラッシュメモリ制御部２０のシーケンス回路２６によりイレーズコマンドが実行されると、入力端子２４１にＨレベルのイレーズパルス信号ＥＲＳＭが供給される。このとき、ｎチャネルトランジスタ２４７のゲートの電位は、インバータ２４６によりイレーズパルス信号を反転したＬレベルの電位になり、ｎチャネルトランジスタ２４７はオフ状態になる。一方、ｐチャネルトランジスタ２４５のゲートの電位は、インバータ２４３によりイレーズパルス信号を反転したＬレベルの電位になり、ｐチャネルトランジスタ２４５はオン状態になる。
【００６５】
このとき、アナログ電圧調整レジスタ２８のプラス補正レジスタ３４１およびマイナス補正レジスタ３４２の値に応じてプラス補正用コンデンサ２７２−１〜２７２−ｎおよびマイナス補正用コンデンサ２７４−１〜２７４−ｍが消去電圧供給端２４９に並列に接続されているので、接続されているコンデンサの静電容量の合計に応じた立ち上がり時間をかけて消去電圧供給端２４９の電位が電源Ｖｃｃｐｐの電位になる。
【００６６】
そして、メモリセル１０１のフローティングゲート１１５に蓄積された電子は、メモリセル１０１のソースを介して引き抜かれ、ｐチャネルトランジスタ２４５を介して電源Ｖｃｃｐｐに出力される。なお、ソース回路３７ｉのｎチャネルトランジスタ２４８は常時オン状態であるが、β値が小さいため、イレーズコマンド実行時において、消去電圧供給端２４９の電位が接地電位と同一になることはない。なお、イレーズコマンド実行時以外においては、ｐチャネルトランジスタ２４５がオフ状態になり、ｎチャネルトランジスタ２４７がオン状態になるので、電源ＶＭＳの電圧は０ボルトになる。
【００６７】
イレーズコマンド実行時の電源ＶＭＳ（消去電圧供給端２４９）の電圧は、例えば図３の波形Ａに示すように、所定の立ち上がり時間をかけて電源Ｖｃｃｐｐの電圧に到達する。
【００６８】
次にこの立ち上がり時間を調整するときの動作について説明する。
まず、立ち上がり時間を長くする場合、ＣＰＵ２は、所定のプログラムに従って、アナログ電圧調整レジスタ２８におけるプラス補正用レジスタ３４１のレジスタ３５１−１〜３５１−ｎのうち、値が「０」である１つのレジスタ３５１−ｉの値を「１」に変更させる。
【００６９】
プラス補正用レジスタ３４１において１つのレジスタ３５１−ｉの値が「０」から「１」に変更されると、消去電圧発生回路４５０において接続制御用のトランジスタ２７１−ｉがオン状態になり、新たに１つのプラス補正用コンデンサ２７２−ｉが消去電圧供給端２４９に並列に接続されるので、電源Ｖｃｃｐｐから消去電圧供給端２４９までの回路の時定数が大きくなり、立ち上がり時間が増加する。このようにすることにより、電源ＶＭＳの電圧波形は、例えば図３の波形Ａから波形Ｂへと変化する。
【００７０】
一方、立ち上がり時間を短くする場合、ＣＰＵ２は、所定のプログラムに従って、アナログ電圧調整レジスタ２８におけるマイナス補正用レジスタ３４２のレジスタ３５２−１〜３５２−ｍのうち、値が「０」である１つのレジスタ３５２−ｉの値を「１」に変更させる。
【００７１】
マイナス補正用レジスタ３４２において１つのレジスタ３５２−ｉの値が「０」から「１」に変更されると、インバータ３４３−ｉによりレジスタ３５２−ｉの値を反転した値が接続制御用のトランジスタ２７３−ｉのゲートに印加される。したがって、消去電圧発生回路４５０において、そのトランジスタ２７３−ｉがオフ状態になり、新たに１つのマイナス補正コンデンサ２７４−ｉが、消去電圧供給端２４９から切断されるので、電源Ｖｃｃｐｐから消去電圧供給端２４９までの回路の時定数が小さくなり、立ち上がり時間が減少する。このようにすることにより、電源ＶＭＳの電圧波形は、例えば図３の波形Ａから波形Ｃへと変化する。
【００７２】
以上のように、この実施の形態１によれば、イレーズコマンド実行時の電源ＶＭＳを発生する消去電圧発生回路４５０の消去電圧供給端２４９と接地点との間に、接続制御用のトランジスタ２７１−１〜２７１−ｎ，２７３−１〜２７３−ｍとコンデンサ２７２−１〜２７２−ｎ，２７４−１〜２７４−ｍとが直列に接続されて構成されている回路を、所定の数（ｎ＋ｍ）だけ並列に接続し、ＣＰＵ２によってレジスタ３５１−１〜３５１−ｎ，３５２−１〜３５２−ｍに設定される値に応じて上述のコンデンサ２７２−１〜２７２−ｎ，２７４−１〜２７４−ｍを消去電圧発生回路４５０の消去電圧供給端２４９と接地点との間に電気的に接続させるように構成したので、ＣＰＵ２によって電源Ｖｃｃｐｐから消去電圧発生回路４５０の出力端（消去電圧供給端２４９）までの回路の時定数を適宜変更させ、電源ＶＭＳの電圧の立ち上がり時間を最適に設定することができるという効果が得られる。
【００７３】
実施の形態２．
図４は、この発明の実施の形態２によるフラッシュメモリ内蔵マイクロコンピュータを示す構成図であり、図５は、このフラッシュメモリ内蔵マイクロコンピュータにおけるアナログ電圧調整レジスタ２８と電圧発生回路３１の構成を示す回路図である。図４において、８０は、ＣＰＵ２で処理されるプログラムが予め記録されているＲＯＭ（プログラムを記録した記録媒体）であり、８１は、ＲＯＭ８０をＩ／Ｏポート５に接続するデータバスおよびアドレスバスである。５００は、一端が電源線３６のうちの電源ＶＤＥＣの電源線に接続され、他端が端子ＡＮ０に接続されたトランスミッションゲートであり、５０１は、一端が電源線３６のうちの電源ＶＤＥＣ２の電源線に接続され、他端が端子ＡＮ０に接続されたトランスミッションゲートであり、５０２は、一端が電源線３９のうちの電源ＶＡＭＰの電源線に接続され、他端が端子ＡＮ０に接続されたトランスミッションゲートである。
【００７４】
なお、ＲＯＭ８０には、後述のアナログ電源電圧（中間電圧）を調整するときの処理を記述したプログラムが記録されている。
【００７５】
図５において、３００は電圧発生回路３１における基準電圧発生部（中間電圧発生手段）であり、２８はアナログ電圧調整レジスタである。基準電圧発生部３００において、３０１並びに３１６〜３１９は、図１１の基準電源発生部２００のｐチャネルトランジスタ２１１並びにｎチャネルトランジスタ群２１３〜２１６と同様に、電源２０２の電圧を分圧するｐチャネルトランジスタ並びにｎチャネルトランジスタ群である。
【００７６】
３０２は、ｎチャネルトランジスタ群３１６〜３１９に並列に接続され、アナログ電圧調整レジスタ２８のマイナス補正用レジスタ３１２の値に応じて分圧比（電源２０２の電圧と基準電圧点２１２の電圧との比）を補正するマイナス補正回路であり、３０３は、ｎチャネルトランジスタ群３１６〜３１９に並列に接続され、アナログ電圧調整レジスタ２８のプラス補正用レジスタ３１３の値を反転させた値に応じて分圧比を補正するプラス補正回路である。
【００７７】
マイナス補正回路３０２およびプラス補正回路３０３は、ｎチャネルトランジスタ群３０５〜３０７と、そのｎチャネルトランジスタ群３０５〜３０７に直列に接続された接続制御用のトランジスタ３０４とで構成される補正用トランジスタ群３０８が所定の数だけ並列に接続されて構成される。
【００７８】
なお、マイナス補正回路３０２の接続制御用のトランジスタ３０４は、ゲートがアナログ電圧調整レジスタ２８におけるマイナス補正用レジスタ３１２の１ビットのレジスタ３１４にそれぞれ接続され、そのレジスタ３１４の記憶値に応じてスイッチング動作を行うものである。
【００７９】
また、プラス補正回路３０３の接続制御用のトランジスタ３０４は、ゲートがアナログ電圧調整レジスタ２８におけるインバータ３１５に接続され、そのレインバータ３１５の出力値に応じてスイッチング動作を行うものである。
【００８０】
アナログ電圧調整レジスタ２８において、３１２は、基準電圧発生部３００のマイナス補正回路３０２における補正用トランジスタ群３０８の数と同ビット数のレジスタ３１４を有し、データバス８を介して値を設定されるマイナス補正用レジスタであり、３１３は、基準電圧発生部３００のプラス補正回路３０３における補正用トランジスタ群３０８の数と同ビット数のレジスタ３１４を有し、データバス８を介して値を設定されるプラス補正用レジスタである。
【００８１】
３１４は、補正用トランジスタ群３０８の接続制御用のトランジスタ３０４、またはインバータ３１５にそれぞれ接続される１ビットのレジスタである。
【００８２】
３１５は、入力端がプラス補正用レジスタ３１３の１ビットのレジスタ３１４にそれぞれ接続され、出力端がプラス補正回路３０３における接続制御用のトランジスタ３０４のゲートに接続されたインバータである。
【００８３】
なお、ｐチャネルトランジスタ３０１と、プラス補正回路３０３の補正用トランジスタ群３０８およびｎチャネルトランジスタ群３１６〜３１９とによる分圧比は、図１１の基準電圧発生部２００のｐチャネルトランジスタ２１１と、ｎチャネルトランジスタ群２１３〜２１６とによる分圧比と同程度になるように設計される。そして、初期状態においては、レジスタ３１４には値「０」が設定され、プラス補正回路３０３の補正用トランジスタ群３０８が、ｎチャネルトランジスタ群３１６〜３１９に並列に接続された状態になる。
【００８４】
なお、図５の基準電圧発生部３００は１つのアナログ電源電圧に対応するものであり、実際には、アナログ電源電圧の数に対応して、図５の基準電圧発生部３００、マイナス補正用レジスタ３１２、プラス補正用レジスタ３１３、およびインバータ３１５が設けられている。
【００８５】
また、その他の構成要素は、実施の形態１（図１）のものと同様であるので、その説明を省略する。
【００８６】
次に動作について説明する。
リードコマンドなどのコマンド実行時の動作は、図７のものと同様であるので省略し、アナログ電源電圧を自動調整するときの動作について説明する。図６は、アナログ電源電圧を予め設定された所望の値に調整するときの動作を説明するフローチャートである。
アナログ電源電圧を調整するときには、ＲＯＭ８０からデータバスおよびアドレスバス８１、Ｉ／Ｏポート５並びにデータバス８を介してＲＡＭ４にアナログ電源電圧調整用のプログラムが転送された後、ＣＰＵ２により、そのプログラムに従った処理が実行される。
【００８７】
まず、ＣＰＵ２は、ステップＳＴ１において、Ａ−Ｄ変換器７の動作を開始させ、ステップＳＴ２において、トランスミッションゲート５００〜５０２のいずれかと、トランスミッションゲート１０−０とを制御して、電源ＶＤＥＣ、電源ＶＤＥＣ２および電源ＶＡＭＰのいずれかとＡ−Ｄ変換器７を接続させる。
【００８８】
選択された電源とＡ−Ｄ変換器７が接続されると、ステップＳＴ３において、Ａ−Ｄ変換器７による、その電源の電圧のＡ−Ｄ変換が開始される。そして、Ａ−Ｄ変換により生成されたデジタルデータが、データバス８を介してＣＰＵ２に供給された後、ステップＳＴ４において、Ａ−Ｄ変換が終了する。
【００８９】
次に、ステップＳＴ５において、ＣＰＵ２は、供給されたデジタルデータ（アナログ電源電圧値）が期待値（図１０に示すような所望の電圧値）に等しいか否かを判定し、検出したアナログ電源電圧値が期待値に等しいと判定された場合、アナログ電源電圧の調整を終了する。
【００９０】
一方、検出したアナログ電源電圧値が期待値に等しくないと判定された場合、ステップＳＴ６に進み、ＣＰＵ２は、検出したアナログ電源電圧値が期待値より大きいか否かを判定し、検出したアナログ電源電圧値が期待値より大きいと判定した場合、ステップＳＴ７に進み、データバス８を介して、アナログ電圧調整レジスタ２８におけるマイナス補正用レジスタ３１２のレジスタ３１４のうち、値が「０」である１つのレジスタ３１４の値を「１」に変更させる。
【００９１】
マイナス補正用レジスタ３１２において、１つのレジスタ３１４の値が「０」から「１」に変更されると、基準電圧発生部３００において、新たに１つの補正用トランジスタ群３０８が、ｎチャネルトランジスタ群３１６〜３１９に並列に接続されるので、分圧比が低くなる。したがって、基準電圧ＡＶｒｅｆが低下し、アナログ電源電圧値も低下する。
【００９２】
一方、ステップＳＴ６において、検出したアナログ電源電圧値が期待値より大きくない、すなわち、この場合、検出したアナログ電源電圧値が期待値より小さいと判定された場合、ステップＳＴ８に進み、データバス８を介して、アナログ電圧調整レジスタ２８におけるプラス補正用レジスタ３１３のレジスタ３１４のうち、値が「０」である１つのレジスタ３１４の値を「１」に変更させる。
【００９３】
プラス補正用レジスタ３１３において、１つのレジスタ３１４の値が「０」から「１」に変更されると、インバータ３１５によりレジスタ３１４の値を反転された値が１つの補正用トランジスタ群３０８の接続制御用のトランジスタ３０４のゲートに印加されるので、基準電圧発生部３００において、新たに１つの補正用トランジスタ群３０８が、ｎチャネルトランジスタ群３１６〜３１９から切断され、分圧比が高くなる。したがって、基準電圧ＡＶｒｅｆが上昇し、アナログ電源電圧値も上昇する。
【００９４】
このように、検出したアナログ電源電圧値が期待値より大きい場合、ＣＰＵ２は、プログラムに従ってアナログ電源電圧値を低下させ、検出したアナログ電源電圧値が期待値より小さい場合、アナログ電源電圧値を上昇させる。
【００９５】
そして、ステップＳＴ３に戻り、検出したアナログ電源電圧値が期待値に等しくなるまで、ステップＳＴ３〜ステップＳＴ８の処理が繰り返される。
【００９６】
なお、上述の処理は、すべてのアナログ電源に対して順次実行される。
【００９７】
以上のように、この実施の形態２によれば、プログラムベリファイ動作時またはイレーズベリファイ動作時に、プログラムに従って、レジスタ３１４の値に応じてアナログ電源電圧を発生し、そのアナログ電源電圧をアドレスデコーダ３８、読出書込制御回路４０、またはソース回路３７に供給し、そのアナログ電源電圧のアナログ値をデジタルデータにＡ−Ｄ変換し、ＣＰＵ２で、そのデジタルデータの値に応じてレジスタ３１４の値を変更するように構成したので、フラッシュメモリ内蔵マイクロコンピュータ１が作成された後に、プログラムに従って、アナログ電源電圧の値を所定の値に自動設定することができるという効果が得られる。
【００９８】
また、実施の形態２によれば、プログラムに従ってアナログ電源電圧が調整され、その調整の結果がレジスタ３１４に記憶されているので、アナログ電源電圧を常時調整する専用の制御回路を設けることなく、アナログ電源電圧を調整することができるという効果が得られる。
【００９９】
【発明の効果】
以上のように、この発明によれば、フローティングゲートから電子を引き抜くときにメモリセルに印加する電圧を発生し、所定の出力端を介して駆動手段に供給する電圧発生手段と、一端がそれぞれ接地された所定のＮ個のコンデンサと、バスに接続され、それぞれ１ビットの値を記憶するＮ個のレジスタと、出力端とＮ個のコンデンサの残りの一端とにそれぞれ接続され、Ｎ個のレジスタの値に応じてＮ個のコンデンサの残りの一端を出力端にそれぞれ電気的に接続するＮ個の接続手段とを備えたので、中央処理演算部によって、電源から電圧発生手段の出力端までの回路の時定数を適宜変更させ、電源ＶＭＳの電圧の立ち上がり時間を最適に設定することができるという効果がある。
【０１００】
この発明によれば、Ｎ個のうちの所定のｍ個のレジスタに接続され、ｍ個のレジスタの値をそれぞれ反転するｍ個のインバータを備え、ｍ個のインバータによりレジスタの値を反転した値に応じて、Ｎ個のうちのｍ個のコンデンサの残りの一端を出力端にそれぞれ電気的に接続するように構成したので、電源ＶＭＳの電圧の立ち上がり時間を長くするように立ち上がり時間を調整することができるとともに、立ち上がり時間を短くするように調整することができるという効果がある。
【０１０１】
この発明によれば、フローティングゲートを有するメモリセルを記憶素子としてデータを記憶するフラッシュメモリと、バスに接続されプログラムに従ってデータの処理を行う中央演算処理部と、リード動作、プログラム動作、イレーズ動作、プログラムベリファイ動作、およびイレーズベリファイ動作時にフラッシュメモリを駆動する駆動手段と、バスに接続され、それぞれ１ビットの値を記憶する所定の数のレジスタと、第１の電圧を供給する第１の電源、第１の電圧より低い第２の電圧を供給する第２の電源、および第２の電圧より低い第３の電圧を供給する第３の電源に接続され、プログラムベリファイ動作時またはイレーズベリファイ動作時に、レジスタの値に応じて、第１の電圧と第２の電圧との間の中間電圧、または第２の電圧と第３の電圧との間の中間電圧を発生し、駆動手段に供給する中間電圧発生手段と、中間電圧発生手段により発生された中間電圧のアナログ値をデジタルデータに変換するＡ−Ｄ変換手段とを備えたフラッシュメモリ内蔵マイクロコンピュータにおいて、中央演算処理部が、中間電圧発生手段により発生された中間電圧の値が所定の値になるまで、Ａ−Ｄ変換手段により変換されたデジタルデータの値に応じてレジスタの値を変更するようにしたので、フラッシュメモリ内蔵マイクロコンピュータが作成された後に、プログラムに従って、アナログ電源電圧の値を所定の値に自動設定することができるという効果がある。
【０１０２】
また、この発明によれば、プログラムに従って中間電圧が調整され、その調整の結果がレジスタに記憶されているので、中間電圧を常時調整する専用の制御回路を設けることなく、中間電圧を調整することができるという効果がある。
【図面の簡単な説明】
【図１】  この発明の実施の形態１によるフラッシュメモリ内蔵マイクロコンピュータを示す構成図である。
【図２】  図１のソース回路、および電圧発生回路に設けられている消去電圧発生回路を示す回路図である。
【図３】  イレーズコマンド実行時における電源ＶＭＳの電圧波形を示す図である。
【図４】  この発明の実施の形態２によるフラッシュメモリ内蔵マイクロコンピュータを示す構成図である。
【図５】  図４のフラッシュメモリ内蔵マイクロコンピュータにおけるアナログ電圧調整レジスタと電圧発生回路の構成を示す回路図である。
【図６】  実施の形態２によるフラッシュメモリ内蔵マイクロコンピュータにおいてアナログ電源電圧を予め設定された所望の値に調整するときの動作を説明するフローチャートである。
【図７】  ＣＰＵ書換方法でフラッシュメモリの記憶内容の書き換えを行う従来のフラッシュメモリ内蔵マイコンを示す構成図である。
【図８】  トランスミッションゲートの構成を示す図である。
【図９】  図７のフラッシュメモリ部のうちの、フラッシュメモリの１つのメモリセルに接続されるアドレスデコーダ、読出書込制御回路およびソース回路の部分的な回路を示すブロック図である。
【図１０】  各コマンド実行時における、図９の回路の各電源の電圧値を示す図である。
【図１１】  アナログ電源電圧を発生するアナログ電源電圧発生回路の一例を示す回路図である。
【図１２】  ソース回路、および電圧発生回路に設けられている消去電圧発生回路を示す回路図である。
【図１３】  イレーズコマンド実行時における電源ＶＭＳの電圧波形を示す図である。
【符号の説明】
１  フラッシュメモリ内蔵マイクロコンピュータ、２  ＣＰＵ（中央演算処理部）、７  Ａ−Ｄ変換器（Ａ−Ｄ変換手段）、８  データバス（バス）、３７  ソース回路（駆動手段）、３８  アドレスデコーダ（駆動手段）、４０  読出書込制御回路（駆動手段）、４１  フラッシュメモリ、８０  ＲＯＭ（プログラムを記録した記録媒体）、１０１  メモリセル、１１５  フローティングゲート、２４９  消去電圧供給端（所定の出力端）、２７１−１〜２７１−ｎ，２７３−１〜２７３−ｍ  トランジスタ（接続手段）、２７２−１〜２７２−ｎ  プラス補正用コンデンサ（コンデンサ）、２７４−１〜２７４−ｍ  マイナス補正用コンデンサ（コンデンサ）、３００  基準電圧発生部（中間電圧発生手段）、３４３−１〜３４３−ｍ  インバータ、３５１−１〜３５１−ｎ，３５２−１〜３５２−ｍ  レジスタ、４５０  消去電圧発生回路（電圧発生手段）。
【図１】
0004245680.tif 000002
【図２】
0004245680.tif 000003
【図３】
0004245680.tif 000004
【図４】
0004245680.tif 000005
【図５】
0004245680.tif 000006
【図６】
0004245680.tif 000007
【図７】
0004245680.tif 000008
【図８】
0004245680.tif 000009
【図９】
0004245680.tif 000010
【図１０】
0004245680.tif 000011
【図１１】
0004245680.tif 000012
【図１２】
0004245680.tif 000013
【図１３】
0004245680.tif 000014