(57)【要約】【課題】高位合成および論理シミュレーションを従来技術と比べて短時間で実施可能な半導体回路設計装置を提供することにある。【解決手段】不揮発性メモリ装置の論理モデルは、高位合成および論理シミュレーションに共通に利用される。また、不揮発性メモリ装置の論理モデルは、不揮発性メモリ装置の１回の書換え要求領域を、複数の領域に分割し、前記複数に分割された領域の各々の書換えを、時分割で実施する。【選択図】図１
2018097769.tif 000002
【特許請求の範囲】
【請求項１】
設計対象とされる不揮発性メモリ装置の論理モデルを有するライブラリ部と、
前記論理モデルを用いて高位合成処理と、前記高位合成処理により得られた合成結果を用いて前記不揮発性メモリ装置の動作を確認するためのエミュレーション処理とを実行する高位合成及びエミュレーション実行部と、
前記論理モデルを用いて、前記不揮発性メモリ装置の機能を確認するための論理シミュレーションを実行する論理シミュレーション実行部と、を具備する、
半導体回路設計装置。
【請求項２】
請求項１において、
前記ライブラリ部は、
メモリアレイを定義するメモリセル配列部と、
前記メモリアレイの指定された書込み領域または消去領域に対するデータの書込み動作または消去動作を定義する書換え制御部と、を含む、
半導体回路設計装置。
【請求項３】
請求項２において、
前記書換え制御部は、前記指定された書込み領域または消去領域を、複数の領域に分割し、前記複数に分割された領域のおのおのを、時分割的に順次消去する定義を含む、
半導体回路設計装置。
【請求項４】
請求項３において、
前記複数に分割された領域のおのおのの消去は、クロック信号の立ち上がりエッジにしたがって行われる、
半導体回路設計装置。
【請求項５】
請求項３において、
前記複数に分割された領域のおのおのの消去は、クロック信号の立ち上がりエッジおよび立ち下りエッジにしたがって行われる、
半導体回路設計装置。
【請求項６】
請求項３において、
前記ライブラリ部は、クロック信号と、前記クロック信号より周波数の高い内部クロック信号と、を定義し、
前記複数に分割された領域のおのおのの消去は、前記内部クロック信号の立ち上がりエッジ、または、立ち上がりエッジおよび立ち下りエッジにしたがって行われる、
半導体回路設計装置。
【請求項７】
設計対象とされる不揮発性メモリ装置の論理モデルを有するライブラリ部と、
前記論理モデルを用いて高位合成処理を行う高位合成実行部と、有し、
前記ライブラリ部は、
メモリアレイを定義するメモリセル配列部と、
前記メモリアレイの指定された書込み領域または消去領域に対するデータの書込み動作または消去動作を定義する書換え制御部と、を含み、
前記書換え制御部は、前記指定された書込み領域または消去領域を、複数の領域に分割し、前記複数に分割された領域のおのおのを、前記不揮発性メモリ装置の消去パルスの電圧印加期間内において、時分割的に順次消去する定義を含む、
半導体回路設計装置。
【請求項８】
請求項７において、
前記複数に分割された領域のおのおのは、クロック信号の立ち上がりエッジにしたがって消去状態とされる、
半導体回路設計装置。
【請求項９】
請求項７において、
前記複数に分割された領域のおのおのは、クロック信号の立ち上がりエッジおよび立ち下りエッジにしたがって消去状態とされる、
半導体回路設計装置。
【請求項１０】
請求項７において、
前記ライブラリ部は、クロック信号と、前記クロック信号より周波数の高い内部クロック信号と、を定義し、
前記複数に分割された領域のおのおのは、前記内部クロック信号の立ち上がりエッジにしたがって消去状態とされる、
半導体回路設計装置。
【請求項１１】
設計対象とされるフラッシュメモリの論理モデルを用いて高位合成処理を行う半導体回路設計装置であって、
前記論理モデルは、
メモリアレイを定義するメモリセル配列部と、
前記メモリアレイの要求された消去領域に対するデータの消去動作を定義する書換え制御部と、を含み、
前記書換え制御部は、前記要求された消去領域を、複数の消去単位領域に分割し、前記複数の消去単位領域のおのおのを、時分割的に順次消去する定義を含む、
半導体回路設計装置。
【請求項１２】
請求項１１において、
前記複数の消去単位領域のおのおのは、前記フラッシュメモリの消去パルスの電圧印加期間内において、クロック信号の立ち上がりエッジにしたがって消去される、
半導体回路設計装置。
【請求項１３】
請求項１１において、
前記複数の消去単位領域のおのおのは、前記フラッシュメモリの消去パルスの電圧印加期間内において、クロック信号の立ち上がりエッジおよび立ち下りエッジにしたがって消去される、
半導体回路設計装置。
【請求項１４】
請求項１１において、
前記論理モデルは、クロック信号と、前記クロック信号より周波数の高い内部クロック信号と、を定義し、
前記複数の消去単位領域のおのおのは、前記フラッシュメモリの消去パルスの電圧印加期間内において前記内部クロック信号の立ち上がりエッジにしたがって消去される、
半導体回路設計装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、半導体回路設計装置に関し、半導体装置に内蔵された不揮発性メモリ装置の回路設計装置に適用可能である。
【背景技術】
【０００２】
特許文献１には、高位合成を行うことなく、集積回路の設計を高速に行うことが出来る集積回路設計装置及び方法の開示がある。
【０００３】
非特許文献１には、シリアルEEPROM verilogモデルの開示がある。このモデルでは、下記非特許文献１におけるM11AA010.vの1106行〜1125行に記載されるように、For Loop 文を用いて複数のメモリセルの状態を同時にセットしている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００４−１６４０３５号公報
【非特許文献】
【０００５】
【非特許文献１】Microchip Technology Inc.、シリアルEEPROM verilogモデル、11xx010 Verilog Model.zip、M11AA010.v、インタネット<URL：http://www.microchip.com/ja/design-centers/memory/serial-eeprom/verilog-ibis-models>、検索日：２０１６年１１月２５日。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１では、高位合成を行わないため、高位合成のメリットである高速な機能検証や高い抽象度での設計資産の活用が出来ない可能性がある。
【０００７】
非特許文献１では、For Loop 文を用いて複数のメモリセルの状態を同時にセットしているため、論理合成の時間が長くなってしまうという虞がある。
【０００８】
本開示の課題は、高位合成および論理シミュレーションを従来技術と比べて短時間で実施可能な半導体回路設計装置を提供することにある。
【０００９】
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１０】
本開示のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【００１１】
すなわち、不揮発性メモリ装置の論理モデルは、高位合成および論理シミュレーションに共通に利用される。また、不揮発性メモリ装置の論理モデルは、不揮発性メモリ装置の１回の書換え要求領域を、複数の領域に分割し、前記複数に分割された領域の各々の書換えを、時分割で実施する。
【発明の効果】
【００１２】
上記半導体回路設計装置によれば、不揮発性メモリ装置の高位合成および論理シミュレーションを、従来技術と比べて短時間で行うことが可能である。
【図面の簡単な説明】
【００１３】
【図１】実施例に係る半導体回路設計装置の構成例を示す図である。
【図２】実施例に係るメモリアレイの構成例を説明するための図である。
【図３】実施例に係る書換え制御を説明するためのタイミング図である。
【図４】比較例に係るメモリアレイの構成例を説明するための図である。
【図５】比較例に係る書換え制御を説明するためのタイミング図である。
【図６】変形例１に係る書換え制御を説明するためのタイミング図である。
【図７】変形例２に係る書換え制御を説明するためのタイミング図である。
【図８】実施例による半導体装置の構成を示すブロック図である。
【図９】メモリセルの構成を模式的に示す断面図である。
【図１０】メモリセルの回路図を示す図である。
【図１１】書込みパルスの電圧印加時の動作の状態を示す図である。
【図１２】消去パルスの電圧印加時の動作の状態を示す図である。
【発明を実施するための形態】
【００１４】
以下、実施例、比較例、変形例について、図面を用いて説明する。ただし、以下の説明において、同一構成要素には同一符号を付し、繰り返しの説明を省略することがある。なお、図面は説明をより明確にするため、実際の態様に比べ、各部の幅、厚さ、形状、数等について模式的に表す場合があるが、あくまで一例であって、本発明の解釈を限定するものではない。
【実施例】
【００１５】
図１は、実施例に係る半導体回路設計装置の構成例を示す図である。半導体回路設計装置１は、設計対象の半導体装置に含まれる不揮発性メモリ装置ＮＶＭのライブラリ部ＮＶＭＬを含む。不揮発性メモリ装置ＮＶＭは、例えば、電気的に書込み及び消去可能な不揮発性メモリの一例であるＥＥＰＲＯＭ（Electrically Erasable and Programmable Read-only Memory）またはフラッシュメモリなどである。この実施例では、不揮発性メモリ装置ＮＶＭとしてフラッシュメモリを例に説明する。
【００１６】
ライブラリ部ＮＶＭＬは、高位合成および論理シミュレーションのためのライブラリ部であり、フラッシュメモリＮＶＭの論理モデルが格納される。ライブラリ部ＮＶＭＬは、メモリセル配列部１０、読み出し制御部１１および書換え制御部１２により構成される。メモリセル配列部１０は、フラッシュメモリＮＶＭのメモリアレイＭＡＲＹの構成を定義する記述を有する。読み出し制御部１１は、フラッシュメモリＮＶＭのメモリアレイＭＡＲＹからのデータの読み出し動作を定義する記述を含む。書換え制御部１２は、フラッシュメモリＮＶＭのメモリアレイＭＡＲＹの指定された書込み領域や消去領域に対するデータの書込み動作や消去動作を定義する記述を含む。なお、書込み動作とは、書込み対象のメモリセルのデータを消去した後、その消去状態のメモリセルへデータを書込む動作（プログラム動作）である。消去動作とは、消去対象のメモリセルのデータを消去する動作である。書換え動作とは、前述の書込み動作か消去動作のいずれかの動作である。本願においては、主に消去動作に関して記載しているが、書込み動作に関しても課題や解決するための手段、効果に関する思想は同一である。
【００１７】
半導体回路設計装置１は、さらに、高位合成及びエミュレーション実行部１３、エミュレーション結果表示部１４、論理シミュレーション実行部１５、および論理シミュレーション結果表示部１６を含む。高位合成及びエミュレーション実行部１３は、ライブラリ部ＮＶＭＬにより定義されるフラッシュメモリＮＶＭの論理モデルを用いて、フラッシュメモリＮＶＭの高位合成処理と、高位合成処理により得られた合成結果を用いてフラッシュメモリＮＶＭの動作を確認するためのエミュレーション処理とを実行する。エミュレーション結果表示部１４は、フラッシュメモリＮＶＭのエミュレーション結果の表示および確認のために設けられる。論理シミュレーション実行部１５は、ライブラリ部ＮＶＭＬにより定義されるフラッシュメモリＮＶＭの論理モデルを用いて、フラッシュメモリＮＶＭの機能を確認するための論理シミュレーションを実行する。論理シミュレーション結果表示部１６は、フラッシュメモリの論理シミュレーション結果の表示および確認のために設けられる。なお、高位合成処理は、設計対象の回路の動作やアルゴリズムを含む論理モデルからレジスタ転送レベル（ＲＴＬ）の回路の記述を生成する処理である。
【００１８】
半導体回路設計装置１は、ライブラリ部ＮＶＭＬにより定義されるフラッシュメモリＮＶＭの論理モデルを、高位合成処理と論理シミュレーションとで共通に利用することにより、フラッシュメモリＮＶＭの回路設計および機能検証を短時間で行うことが出来る。そのため、フラッシュメモリＮＶＭを内蔵するマイクロコンピュータ等の半導体装置の回路設計および機能検証も、同様に、短時間で行うことが可能である。
【００１９】
ここで、設計対象とされるフラッシュメモリ、およびそのフラッシュメモリを内蔵する半導体装置の一例であるマイクロコンピュータについて説明する。マイクロコンピュータに内蔵された中央処理装置（ＣＰＵ）のプログラムやデータを格納する不揮発性メモリ装置として、フラッシュメモリが幅広く使われている。フラッシュメモリは、書換え時に印加する電圧を読み取り時の電圧よりも高くすることで何回も記憶内容の消去・書込みが可能なメモリセルである。メモリセルに対してパルス状の電圧を印加し、ゲート絶縁膜に電流を流してメモリセルに電子を注入したり、電子を引き抜いたりすることによって書換えを行う。
【００２０】
図８は、半導体装置の構成を示すブロック図である。半導体装置の一例であるマイクロコンピュータ１００は、一つの半導体チップに、ＣＰＵ（Central Processing Unit）２と、ＲＡＭ（Random Access Memory）３と、不揮発性メモリ装置４と、周辺回路５と、電源回路６と、インターフェース回路（Ｉ／Ｆ）７と、これらを相互に接続するデータバス８と、クロック発生回路（ＣＰＧ）９と、を含む。
【００２１】
電源回路６は、マイクロコンピュータ１００の外部から受けた外部電源電圧（ＶＣＣ）に基づいて内部電源電圧（ＶＤＤ）を生成する。内部電源電圧（ＶＤＤ）は、マイクロコンピュータ１００の各部に供給される（図８では、不揮発性メモリ装置４への供給のみが代表的に示されている）。ＣＰＧ９は、後述されるクロック信号SIG_CLKを生成し、各内部回路（２，３，４，５、６）等へ供給する。
【００２２】
不揮発性メモリ装置４はフラッシュメモリであり、フラッシュメモリの各メモリセルは、ゲート電極とチャネル層との間に電荷蓄積部を有する。電荷蓄積部に蓄積された電荷によってメモリセルの閾値電圧が変化し、これによってデータ“１”またはデータ“０”の情報を記憶することができる。電荷蓄積部として、一般に、多結晶シリコン膜で形成された浮遊ゲート（フローティングゲート）、または窒化ケイ素膜などが用いられる。窒化ケイ素膜は、膜中に分散して存在する捕獲準位（トラップレベル）によって電荷を蓄積する。この実施例では、窒化ケイ素膜を電荷蓄積部として用いた例について説明する。次に、メモリセルの具体的構成をさらに詳しく説明する。
【００２３】
図９は、メモリセルの構成を模式的に示す断面図である。図１０は、メモリセルの回路図を示す図である。図９および図１０において、対応する部分には同一の符号を付す。
【００２４】
図９および図１０を参照して、メモリセルＭＣは、基板２０上に形成され、コントロールゲート（ＣＧ：Control Gate）２１、電荷蓄積部２２、メモリゲート（ＭＧ：Memory Gate）２３、ソース領域２４、およびドレイン領域２５を含む。コントロールゲート２１は、Ｐ型シリコン基板２０の表面上に絶縁層（図示せず）を介して形成される。電荷蓄積部２２は、コントロールゲート２１の側壁に酸化シリコン膜（図示せず）、窒化ケイ素膜（図示せず）、および酸化シリコン膜（図示せず）からなるＯＮＯ（Oxide-Nitride-Oxide）膜で形成される。ＯＮＯ膜上には、サイドウォール構造のメモリゲート２３が形成される。ソース領域２４およびドレイン領域２５は、コントロールゲート２１の左側およびメモリゲート２３の右側の基板２０にＮ型不純物を注入することによってそれぞれ形成される。基板２０に垂直な方向から見て、メモリゲート２３の一部とソース領域２４の一部とはオーバーラップし、コントロールゲート２１の一部とドレイン領域２５の一部とはオーバーラップしている。
【００２５】
メモリセルＭＣが複数配列されたメモリアレイＭＡＲＹには、各々が、メモリセル行に対応して行方向Ｘに延在する、メモリゲート線ＭＧＬ、コントロールゲート線ＣＧＬ、およびソース線ＳＬが設けられる。メモリセル列に対応して列方向Ｙに延在する主ビット線ＢＬが設けられる。各メモリセルＭＣにおいて、メモリゲート２３は、対応のメモリゲート線ＭＧＬに接続される。コントロールゲート２１は、対応のコントロールゲート線ＣＧＬに接続される。ソース領域２４は、対応のソース線ＳＬに接続される。ドレイン領域２５は、対応の主ビット線ＢＬに接続される。
【００２６】
各メモリセルＭＣには固有のアドレスが割り当てられ、各メモリセルＭＣは電荷蓄積部２２の電荷量に応じた閾値電圧の変化によって１ビットのデータを記憶する。
【００２７】
図１１、図１２には、メモリセルＭＣの動作時の状態が示される。図１１は書込み動作時、すなわち、書込みパルスの電圧印加時の動作の状態を示す図であり、図１２は消去動作時、すなわち、消去パルスの電圧印加時の動作の状態を示す図である。読み出し動作、書込みベリファイ動作、および消去ベリファイ動作については、その説明が省略される。
【００２８】
図１１を参照して、書込みパルス印加動作時は、メモリゲート２３に６．４〜１１Ｖの間の選択された電圧が印加され、コントロールゲート２１には１．０Ｖが印加され、ソース領域２４には３．２〜７．０Ｖの間の選択された電圧が印加され、ドレイン領域２５には０．８Ｖが印加される。これにより、ソースサイド注入（ＳＳＩ：Source Side Injection）方式により、ホットエレクトロンが電荷蓄積部２２に注入されてメモリセルＭＣの閾値電圧が高くなる。書込みパルス印加動作は、メモリセルＭＣの閾値電圧が所定の書込みベリファイ電圧（ＰＶ）よりも高くなるまで繰り返し行なわれる。書込みされたメモリセルＭＣには、データ“０”と“１”のうち、例えば“０”が記憶される。本願においては、“０”が記憶されるとしているが、定義次第で、“１”としてもよいことは言うまでもない。
【００２９】
図１２を参照して、消去パルス印加動作時は、メモリゲート２３に−３．３〜−８Ｖの間の選択された電圧が印加され、コントロールゲート２１には０Ｖが印加され、ソース領域２４には３．２〜７．０Ｖが印加され、ドレイン領域２５はＯＰＥＮ状態にされ、基板２０は接地される（０Ｖが印加される）。これによって、メモリゲート２３とオーバーラップしているソース領域２４の部分には高電界がかかる。このため、エネルギーバンドが曲がるので、価電子帯（Valence Band）から伝導帯（Conduction Band）に電子がトンネルするバンド間トンネル（ＢＴＢＴ：Band To Band Tunneling）が生じる。バンド間トンネルによって、価電子帯には正孔（ホール）が生成される。トンネルした電子はソース線ＳＬに到達し、価電子帯に生成された正孔の一部は基板２０に到達するので、ソース線ＳＬから基板２０に電流が流れる。生成された正孔の一部は高電界で加速されることによりホットホールとなって、電荷蓄積部２２に注入される。この結果、メモリセルＭＣの閾値電圧が低下する。バンド間トンネル方式による消去パルスの電圧印加時の動作は、メモリセルＭＣの閾値電圧が所定の消去ベリファイ電圧（ＥＶ）よりも低くなるまで繰り返し行なわれる。そのため、消去パルスの電圧印加の期間（後述される消去パルスの電圧印加期間ＥＰＳＰ）は比較的長くされる。消去されたメモリセルＭＣには、データ“０”と“１”のうちの“１”が記憶される。
【００３０】
上述の様に、フラッシュメモリ４では、メモリセルに対してパルス状の電圧を印加し、ゲート絶縁膜に電流を流して、電荷蓄積部に電子を注入したり、電荷蓄積部から電子を引き抜いたりすることによって、書込みや消去を行う。そのため、メモリセルの書込み特性や消去特性は、メモリセルのデバイス構造に大きく影響される。また、フラッシュメモリ４は、ＲＡＭ３と比較して、大容量のデータの一括的な書込みや消去の要求がある。つまり、フラッシュメモリの論理モデルでは、上記の様なメモリセルの書込み特性や消去特性、および、大容量のデータの一括的な書込みや消去の要求をも考慮する必要がある。
【００３１】
次に、ライブラリ部ＮＶＭＬの書換え制御部１２について、より詳細に説明する。
【００３２】
図２は、実施例に係るメモリアレイの構成例を説明する図である。メモリセル配列部１の配列宣言例は、verilog hardware description language（verilog HDL）言語を用いた場合、以下とされる。
【００３３】
reg [m:0] mem_user [n:0];
ここで、変数mは正の整数で、ビット方向のメモリセルＭＣの数を定義する。変数nは正の整数で、アドレスのビット数を示す。例えば、m=7、n=20とした場合、８ビットの領域が２１ビットのアドレスで表現される2097152アドレス分あるメモリアレイＭＡＲＹが定義される。この場合、メモリアレイＭＡＲＹは２Ｍバイトのメモリ総容量である。すなわち、図２に示されるように、メモリアレイＭＡＲＹは、ビット方向に８個のメモリセイＭＣが、アドセス方向にアドレス000000(１６進表記)から1fffff(１６進表記)まで行列状に配置されたメモリセルを有するメモリアレイとして定義される。図２において、アドレスは、２１ビットのアドレスを表すものとする。また、メモリセルＭＣはフラッシュメモリのメモリセルである。メモリセルＭＣのデータが“１”であれば消去状態を示し、メモリセルＭＣのデータが“０”であれば書込状態を示すものとする。なお、前述の様に、“０”と“１”が持つ意味を逆にし、メモリセルＭＣのデータが“０”であれば消去状態を示し、メモリセルＭＣのデータが“１”であれば書込状態を示すと定義することもできる。
【００３４】
書換え制御部１２での書換え制御の記述例は、verilog HDL言語を用いた場合、以下の記述例１とされる。
＜記述例１＞
always @( posedge SIG_CLK ) begin
case (SIG_STATE)
ST_ER_EXE : begin
if(add_ers_user[o-1:0] <= {o{1'b1}}) begin
mem_user[{add_ers_user[n:o], {o{1'b0}}}+add_ers_user[o-1:0]] <= {(m+1){1'b1}};
add_ers_user <= add_ers_user+1;
end
end
endcase
end
１行目の「( posedge SIG_CLK ) begin」は、クロック信号SIG_CLKの立ち上がりエッジ（posedge：positive edge）で動作することを宣言する。なお、( negedge SIG_CLK )は、クロック信号SIG_CLKの立ち下がりエッジ（negedge: negative edge）で動作することを定義する。(SIG_CLK )は、クロック信号SIG_CLKの立ち上がりエッジおよび立下りエッジの両エッジで動作することを定義する。
【００３５】
２行目の「case (SIG_STATE)」は、信号状態SIG_STATEの状態による条件分岐処理を宣言する。
【００３６】
３行目の「ST_ER_EXE : begin」は、信号状態SIG_STATEが消去実行状態ST_ER_EXEとされる場合（SIG_STATE=ST_ER_EXEが成立した場合）に実行されることを宣言する。
【００３７】
４行目の「if(add_ers_user[o-1:0] <= {o{1'b1}}) begin」は、SIG_STATE=ST_ER_EXEが成立し、さらに、消去対象アドレスadd_ers_userが消去対象領域（エリア）内である時(10進数の4095以下の場合)、以下の５行目の処理１、および６行目の処理２を繰り返すことを定義する。ここで、{o{1‘b1}} は要求された消去対象領域（エリア）ＥＲＳＲ＿ＲＥＱの定義であり、変数ｏがo=12の場合、２１ビットのアドレスの内、２１ビット目から１３ビット目で示す任意の領域に対し、下位１２ビット目から１ビット目の全ビットを“１”とすることを定義する。消去対象エリアＥＲＳＲ＿ＲＥＱは、最小アドレスが０番地であり、最大アドレスが２進数表記では111111111110、16進数表記ではffe、10進数表記では4095である。
【００３８】
５行目の処理１は、メモリセル(mem_user)の該当する番地(アドレス)に対して消去状態である”1”をセットすることを定義する。消去対象アドレスadd_ers_user[o-1:0] (4096 バイト)中の最下位アドレス(０番地)からスタートする。{(m+1){1‘b1}} は、8ビットのメモリセルをすべて“１”にセットすることを示す。
【００３９】
６行目の処理２は、消去対象アドレスadd_ers_userをインクリメントして、４行目へ戻ることを定義する。
【００４０】
９行目の「endcase」は2行目に宣言された条件分岐処理が終了したことを宣言する。
【００４１】
したがって、verilog HDL言語を用いた書換え制御の記述例では、図２において、要求された消去対象領域（エリア）ＥＲＳＲ＿ＲＥＱが８ビット（１バイト）毎の複数の領域、すなわち、複数の消去単位領域ＥＵＮＩＴ０−ＥＵＮＩＴｏに分割される。そして、その分割された消去単位領域（ＥＵＮＩＴ０、ＥＵＮＩＴ１、ＥＵＮＩＴ２、．..、ＥＵＮＩＴｏ）のおのおのが、クロック信号SIG_CLKの立ち上がりエッジ毎に、時分割で順次消去される。不揮発性メモリ装置のライブラリ部ＮＶＭＬにより定義される論理モデルにおいて、消去処理単位は８ビット（１バイト）であり、１つの消去処理単位は１アドレスに割り当てられる。
【００４２】
図３は、実施例に係る書換え制御を説明するためのタイミング図である。なお、使用している変数m、n、oが、 m=7、n=20 、o=12の場合である。初期状態において、信号状態SIG_STATEは消去初期状態ST_ER_HPとされ、消去対象アドレスadd_ers_userは０(ゼロ)である。また、メモリセルＭＣのデータは不定状態（unknown）であり、“０”または“１”である。図３において、第１時刻ｔ１から第ｎ時刻ｔｎの期間は、設計対象とされるフラッシュメモリの消去パルスの電圧印加期間ＥＰＳＰの定義であり、この期間に消去対象領域（エリア）ＥＲＳＲ＿ＲＥＱ内のメモリセル全てを消去状態にすることが必要な期間である。
【００４３】
第１時刻ｔ１において、クロック信号SIG_CLKが立ち上がり、信号状態SIG_STATEが初期状態ST_ER_HPから消去実行状態ST_ER_EXEへ遷移する。この時、消去対象アドレスadd_ers_userは０(ゼロ)番地目であり、消去対象エリアＥＲＳＲ＿ＲＥＱ内である。
【００４４】
第２時刻ｔ２のクロック信号SIG_CLKの立ち上がりにより、消去対象アドレスadd_ers_userが＋１インクリメントされて、１番地目とされる。また、消去対象アドレスadd_ers_userの０番地目に対応する８ビット（１バイト）のメモリセルＭＣがすべて“１”にセットされて、消去単位領域ＥＵＮＩＴ０の消去処理が実施される。なお、図３では、これを「＊」として示してあり、対象メモリセルＭＣの全セルが消去状態“１”に設定されたことを示す。
【００４５】
第３時刻ｔ３のクロック信号SIG_CLKの立ち上がりにより、消去対象アドレスadd_ers_userが＋１インクリメントされて、２番地目とされる。また、消去対象アドレスadd_ers_userの１番地に対応する８ビット（１バイト）のメモリセルＭＣがすべて“１”にセットされ、消去単位領域ＥＵＮＩＴ１の消去処理が実施される。
【００４６】
前記同様な消去処理が順次実行され、第ｎ−２時刻ｔｎ−２のクロック信号SIG_CLKの立ち上がりにより、消去対象アドレスadd_ers_userが＋１インクリメントされて、fff番地目（１６進表記）とされる。また、消去対象アドレスadd_ers_userのffe番地目（１６進表記）に対応する８ビット（１バイト）のメモリセルがすべて“１”にセットされて、消去単位領域ＥＵＮＩＴｏの消去処理が実施される。これにより、消去パルスの電圧印加期間ＥＰＳＰである第１時刻ｔ１から第ｎ時刻ｔｎの間に、消去対象エリアＥＲＳＲ＿ＲＥＱ内の全てのメモリセルＭＣが消去状態にされる。そして、第ｎ＋１時刻ｔｎ＋１のクロック信号SIG_CLKの立ち上がりエッジにより、信号状態SIG_STATEが消去終了状態ST_ER_ENDとされて、消去対象エリアＥＲＳＲ＿ＲＥＱの消去動作が完了する。
【００４７】
フラッシュメモリのデバイス構造を考慮した場合、メモリセルＭＣのデータの書き替えに必要な時間（ST_ER_EXEの期間）は、消去時に数ms(ミリ秒)、書込み時に数us(マイクロ秒)必要である。この実施例によれば、この期間（ST_ER_EXEの期間）を用いて、メモリセルの書換えを、消去単位（１バイト）ずつ時分割的に実施することで、高位合成の時間を短くすることが出来る。
【００４８】
＜比較例＞
図４は、比較例に係るメモリアレイの構成例を説明する図である。図４は、非特許文献１の1106行〜1125行の記載の書換え制御記述思想を考慮して本発明者らが検討した事項であり、公知とされたものではない。図２と同様に、メモリセル配列部１の配列宣言例は、verilog HDL言語を用いた場合、以下とされる。
【００４９】
reg [m:0] mem_user [n:0];
ここで、変数mおよびnは、図２と同等であり、m=7、n=20とする。したがって、メモリアレイの構成も、図２と同様であり、８ビットの領域が２１ビットのアドレスで表現される2097152アドレス分あるメモリアレイＭＡＲＹが定義される。
【００５０】
書換え制御部１２での書換え制御の記述例は、verilog HDL言語を用いた場合、以下の記述例２とされる。
＜記述例２＞
always @( posedge SIG_CLK ) begin
case (SIG_STATE)
ST_ER_END : begin
for (i=0; i<={o{1'b1}}; i=i+1) mem_user[{add_ers_user[n:o], {o{1'b0}}}+i] = {(m+1){1'b1}};
end
endcase
end
１行目および２行目は、前述の記述例１と同じである。
【００５１】
３行目の「ST_ER_END : begin」は、信号状態SIG_STATEが消去終了状態ST_ER_ENDとされる場合（SIG_STATE=ST_ER_ENDが成立した場合）に実行されることを宣言する。
【００５２】
４行目のfor分は、消去対象エリアＥＲＳＲ＿ＲＥＱの全アドレスに含まれる全メモリセルを消去状態にすることを定義する。{o{1‘b1}} は要求された消去対象エリアＥＲＳＲ＿ＲＥＱの定義であり、変数ｏがo=12の場合、アドレス範囲は前述と同様である。
【００５３】
図５は、比較例に係る書換え制御を説明するためのタイミング図である。なお、使用している変数m、n、oが、 m=7、n=20 、o=12の場合である。図５に示されるように、第ｎ時刻ｔｎのクロック信号SIG_CLKの立ち上がりエッジで信号状態SIG_STATEが消去終了状態ST_ER_ENDとされるので、消去対象の全メモリセルの消去状態へ書込みは、第ｎ＋１時刻ｔｎ＋１のクロック信号SIG_CLKの立ち上がりエッジで開始される。すなわち、消去パルスの電圧印加期間ＥＰＳＰである第１時刻ｔ１から第ｎ時刻ｔｎの経過後に、消去対象の全メモリセルの消去状態へ書込みが一斉に開始されることになる。
【００５４】
本発明者らの検討によれば、市販された高位合成/ハードウェアエミュレータで、比較例のフラッシュメモリの論理モデルを実施したところ、高位合成時、フラッシュメモリに対するポート(端子)が消去対象アドレス分（４０９６ポート）増加することが分かった。そのため、高位合成の負荷が高くなるため、高位合成処理が終了せず、高位合成処理の時間が長時間必要であるという課題が発見された。
【００５５】
＜変形例１＞
書換え制御部１２での書換え制御の記述例の変形例１が以下説明される。変形例１に係る書換え制御の記述例は、verilog HDL言語を用いた場合、以下の記述例３とされる。なお、変数m、n、oが、 m=7、n=20 、o=13の場合である。すなわち、消去対象エリアが、実施例に対して２倍の領域、8192バイトとされている。
＜記述例３＞
always @( SIG_CLK ) begin
case (SIG_STATE)
ST_ER_EXE : begin
if(add_ers_user[o-1:0] <= {o{1'b1}}) begin
mem_user[{add_ers_user[n:o], {o{1'b0}}}+add_ers_user[o-1:0]] <= {(m+1){1'b1}};
add_ers_user <= add_ers_user+1;
end
end
endcase
end
実施例で説明された記述例１とは、１行目の「( SIG_CLK ) begin」が異なる。変形例１の１行目では、クロック信号SIG_CLKの立ち上がりエッジおよび立ち下りエッジの両エッジで、消去動作を実施することを定義している。
【００５６】
図６は、変形例１に係る書換え制御を説明するためのタイミング図である。図６に示されるように、クロック信号SIG_CLKの立ち上がりエッジおよび立ち下りエッジが発生する度に、1バイトの消去単位内の全メモリセルが消去状態にされる。
【００５７】
クロック信号SIG_CLKはフラッシュメモリの外部のクロック生成回路（ＣＰＧ）９から供給されるクロック信号に対応しており、その周期は一定である。また、SIG_STATE=ST_ER_EXEの期間は消去対象メモリセルへの消去パルスの電圧印加期間ＥＰＳＰであり、この期間は設計対象とされるフラッシュメモリの消去特性により決められた所定の時間である。そのため、SIG_STATE=ST_ER_EXEの期間をクロック信号SIG_CLKの周期で割った個数のアドレスに対応するメモリセルしか消去状態とすることができないという課題が実施例には存在する。
【００５８】
変形例１によれば、この課題を解決するため、クロック信号SIG_CLKの立ち上がりエッジおよび立ち下がりエッジの両方が使用される。これにより、消去パルスの電圧印加期間ＥＰＳＰ内に、実施例１の立ち上りエッジのみ使用した場合と比べ、２倍のアドレス数を消去状態にすることが可能である。半導体の微細化技術の進歩と半導体製品の多機能化により、フラッシュメモリに求められる処理能力（書込み領域または消去領域の容量の増加）は年々増えてきている。変形例１は、その要求に対応可能である。
【００５９】
＜変形例２＞
変形例２は、書換え制御部１２での書換え制御の記述を変えた例であり、以下に詳述する。変形例２に係る書換え制御の記述例は、verilog HDL言語を用いた場合、以下の記述例４とされる。なお、変数m、n、oが、 m=7、n=20 、o=13の場合である。すなわち、消去対象エリアが、実施例1に対して２倍の領域、8192バイトとされている。
＜記述例４＞
always @( posedge int_sig_clk ) begin
case (SIG_STATE)
ST_ER_EXE : begin
if(add_ers_user[o-1:0] <= {o{1'b1}}) begin
mem_user[{add_ers_user[n:o], {o{1'b0}}}+add_ers_user[o-1:0]] <= {(m+1){1'b1}};
add_ers_user <= add_ers_user+1;
end
end
endcase
end
実施例の記述例１、および変形例１の記述例３で説明された記述例とは、１行目の「( posedge int_sig_clk ) begin」が異なる。変形例２の１行目では、内部で生成した内部クロック信号int_sig_clkを定義し、その立ち上がりエッジで、消去動作を実施することを定義している。内部クロック信号int_sig_clkはクロック信号SIG_CLKの２倍の周波数として定義する。
【００６０】
図７は、変形例２に係る書換え制御を説明するためのタイミング図である。図７に示されるように、内部クロック信号int_sig_clkの周波数はクロック信号SIG_CLKの周波数の２倍とされており、内部クロック信号int_sig_clkの立ち上がりエッジ毎に、1バイトの消去単位領域内の全メモリセルが１消去単位領域毎に消去状態にされる。
【００６１】
実施例および変形例１はフラッシュメモリの外部のクロック生成回路（ＣＰＧ）９から供給されるクロック信号SIG_CLKを使用したが、クロック信号SIG_CLKの周期は一定のため、消去状態にできるアドレス数には限度がある。そこで、変形例２においては、フラッシュメモリの論理モデルの内部で、仮想的な内部クロック信号int_sig_clkを生成し、その周期をクロック信号SIG_CLKの周期より短くする。これにより、消去パルスの電圧印加期間ＥＰＳＰ内に、消去状態にすることのできるアドレス数を増やすことが可能である。図７は内部クロック信号int_sig_clkの周期をクロック信号SIG_CLKの周期の１／２倍に設定し、その立ち上りエッジのみを使用した場合を示した。
【００６２】
変形例２によれば、変形例１と同様に、消去パルスの電圧印加期間ＥＰＳＰ内に、実施例の２倍のアドレス範囲の消去対象エリアを消去状態にすることが可能である。半導体の微細化技術の進歩と半導体製品の多機能化により、フラッシュメモリに求められる処理能力（書込み領域または消去領域の容量の増加）は年々増えてきている。変形例２は、その要求に対応可能である。
【００６３】
他の変形例として、内部クロック信号int_sig_clkの周波数をさらに高くし、たとえば、３倍とし、変形例１のように、立ち上りエッジおよび立下りエッジの両エッジを使用すれば、消去パルスの電圧印加期間ＥＰＳＰ内に、消去状態にすることのできるアドレス数を、さらに増やすことが可能となる。
【００６４】
以上、本発明者によってなされた発明を実施形態および実施例に基づき具体的に説明したが、本発明は、上記実施形態および実施例に限定されるものではなく、種々変更可能であることはいうまでもない。
【００６５】
例えば、m=7 から m=15 のように増やすことで、1回に消去されるメモリセル数を増加させ、設計対象の半導体製品に搭載されるフラッシュメモリの大容量なメモリセルアレイの構成と一致させたフラッシュメモリの論理モデルとすることが出来る。
【符号の説明】
【００６６】
１：半導体回路設計装置、１０：メモリセル配列部、１１：読み出し制御部、１２：書換え制御部、ＮＶＭＬ：ライブラリ部、１３：高位合成及びエミュレーション実行部、１４：エミュレーション結果表示部、１５：論理シミュレーション実行部、１６：論理シミュレーション結果表示部、ＭＣ：メモリセル、ＭＡＲＹ：メモリアレイ、SIG_CLK：クロック信号、SIG_STATE：信号状態、ST_ER_EXE：消去実行状態、ＥＲＳＲ＿ＲＥＱ：消去対象領域（エリア）、ＥＵＮＩＴ０、ＥＵＮＩＴ１、ＥＵＮＩＴ２、．..、ＥＵＮＩＴｏ：消去単位領域、ＥＰＳＰ：消去パルスの電圧印加期間、int_sig_clk：内部クロック信号
【図１】
2018097769.tif 000003
【図２】
2018097769.tif 000004
【図３】
2018097769.tif 000005
【図４】
2018097769.tif 000006
【図５】
2018097769.tif 000007
【図６】
2018097769.tif 000008
【図７】
2018097769.tif 000009
【図８】
2018097769.tif 000010
【図９】
2018097769.tif 000011
【図１０】
2018097769.tif 000012
【図１１】
2018097769.tif 000013
【図１２】
2018097769.tif 000014