選択トランジスタとメモリトランジスタとを有する不揮発性メモリセルをプログラミングする方法であって:前記メモリセルの第1の入力にバイアス電圧を印加する段階;前記メモリセルの第2の入力に電気的に接続された電流制限回路に予め設定された制限電流を印加する段階;前記電流制限回路により決定された予め設定された制限された電流で前記メモリセルをプログラミングするために、前記メモリセルに傾斜したゲート電圧を印加する段階;を有する方法。前記第1の入力はソース線であり、前記第2の入力はビット線である、ことを特徴とする請求項1に記載の方法。前記第1の入力はビット線であり、前記第2の入力はソース線である、ことを特徴とする請求項1に記載の方法。前記前記電流制限回路により決定された予め設定された制限された電流で前記メモリセルをプログラミングするために、前記メモリセルに傾斜したゲート電圧を印加する段階は:前記ビット線への前記電流制限回路の帰還及び前記予め設定された制限電流による安定化により、前記メモリセルのソース線-ビット線バイアスを制御する段階;を有する、ことを特徴とする請求項1に記載の方法。前記前記電流制限回路により決定された予め設定された制限された電流で前記メモリセルをプログラミングするために、前記メモリセルに傾斜したゲート電圧を印加する段階は:前記ソース線への前記電流制限回路の帰還及び前記予め設定された制限電流による安定化により、前記メモリセルのソース線-ビット線バイアスを制御する段階;を有する、ことを特徴とする請求項1に記載の方法。第1の端子、第2の端子及びゲート端子を有する選択トランジスタ;メモリトランジスタであって、前記選択トランジスタの前記第2の端子に結合された第3の端子、第4の端子、及び該メモリトランジスタをプログラミングするためにプログラム電流を生じさせる傾斜したゲート電圧を受信する制御端子を有するメモリトランジスタ;前記プログラム電流を制限するために、前記選択トランジスタの第1の端子及び前記メモリトランジスタの前記第4の端子に渡る電圧降下を制御する電流制限回路;を有する不揮発性メモリ素子。前記電流制限回路は、前記選択トランジスタの前記第1の端子に電気的に接続される、ことを特徴とする請求項6に記載の不揮発性メモリ素子。前記電流制限回路は、前記メモリトランジスタの前記第4の端子に電気的に接続される、ことを特徴とする請求項6に記載の不揮発性メモリ素子。前記電流制限回路は、前記プログラム電流を検知する入力端子、及び前記検知されたプログラム電流に従い前記電圧降下を制御する出力端子を有する、ことを特徴とする請求項6に記載の不揮発性メモリ素子。前記電流制限回路の前記出力端子は、前記メモリトランジスタの前記第4の端子に電気的に接続される、ことを特徴とする請求項9に記載の不揮発性メモリ素子。前記電流制限回路の前記出力端子は、前記選択トランジスタの前記第1の端子に電気的に接続される、ことを特徴とする請求項9に記載の不揮発性メモリ素子。本発明は、プログラム電流クランプを有する不揮発性メモリ素子及び関連する方法を提供する。一実施形態によると、選択トランジスタとメモリトランジスタとを有する不揮発性メモリセルをプログラミングする方法が提供される。当該方法は:前記メモリセルの第1の入力にバイアス電圧を印加する段階;前記メモリセルの第2の入力に電気的に接続された電流制限回路に予め設定された制限電流を印加する段階;前記電流制限回路により前記制限電圧に従い決定された予め設定された制限された電流で前記メモリセルをプログラミングするために、前記メモリセルに傾斜したゲート電圧を印加する段階;を有する。一実施形態によると、不揮発性メモリ素子は、選択トランジスタ、メモリトランジスタ及び電流制限回路を有する。選択トランジスタは、第1の端子、第2の端子及びゲート端子を有する。メモリトランジスタは、前記選択トランジスタの前記第2の端子に結合された第3の端子、第4の端子及び制御端子を有する。前記メモリトランジスタの制御端子は、前記メモリトランジスタをプログラミングするためにプログラム電流を生じさせる傾斜したゲート電圧を受信する。前記電流制限回路は、プログラム電流を制限するために、前記選択トランジスタの第1の端子と前記メモリトランジスタの第4の端子とに渡るバイアスを制御する。本発明のこれら及び他の目的は、以下の種々の図及びグラフに説明された好適な実施形態の詳細な説明を読むことにより、当業者に明らかである。図4を参照する。図4は、メモリセルに印加されたゲート電圧VGの関数としてゲート電流|Ig|及びドレイン電流|Id|を示す。ゲート電圧VGは、メモリトランジスタ100の制御線からゲートのような制御線入力に、制御線を通じて印加された制御線電圧でありうる。メモリトランジスタ100が初期閾電圧Vtを有していると仮定すると、メモリトランジスタ100のゲートに印加されたゲート電圧VG信号ZCLが閾電圧Vtに近づくにつれて、チャネル熱電子CHE注入が起こり、ゲート電流|Ig|は最大化される。閾電圧Vt未満では、ゲート電圧VGは、結果として、ゲート電流|Ig|を低くさせ、最終的には、チャネル熱ホールCHH注入を引き起こす。チャネル熱ホールCHH注入は、メモリトランジスタ100を損傷させうる。閾電圧Vtを超えた所では、ゲート電圧VGは、結果として、ゲート電流|Ig|を減少させ、ドレイン電流|Id|も減少させる。図4に示すように、プログラミング中は、電子がメモリトランジスタ100のフローティングゲート又はONO層102に注入されるため、閾電圧Vtは増加する。閾電圧Vtのシフト現象が分かると、例えば閾電圧Vtより0.5V高いわずかに増加されたゲート電圧VGでプログラミングすることによって、ゲート電流|Ig|は、プログラミングサイクルのより多くの割合で高いレベルで維持され、そのことが、速いプログラミング時間につながり、CHH注入に陥る危険も下げうる。伝導電流が比較的低いので、チップ面積は減少されうる。図5及び図6を参照する。図5及び図6は、実施形態による傾斜された制御線電圧プログラミング方法での、ゲート電圧に対するゲート電流図5、及び時間に対する閾電圧及びCHEI電流図6を説明する図である。好適な例では、プログラミング中にメモリトランジスタ100に印加されるゲート電圧VGは、閾電圧シフトによって増加する。図5に示すように、初期ゲート電圧左の点線は、ゲート電流を最大化するよう初期ゲート電圧近くにある左のこぶ状のピークに印加されている。プログラミングが進むにつれて、メモリトランジスタ100の閾電圧は増加するので、初期ゲート電圧は、消去電圧Vt_ers左の実線よりも低い。同時に、メモリトランジスタ100の閾電圧は、既により高い電圧Vt_pgmにある。したがって、閾電圧を増加させてVt_pgm近くにある右のこぶ状のピーク、メモリトランジスタ100に印加されたゲート電圧を傾斜させることによって、メモリトランジスタ100は、所定のレベルで、例えばほぼ最大ゲート電流で、ゲート注入電流によってプログラミングされうる。ゲート電圧のステップ状の傾斜は、図6に概念的に示されている。図6では、CHEI電流は、プログラミング全体を通して、およそ最大値に保持されている。これは、時間に対する閾電圧Vtの急速な増加につながる。図7を参照する。図7は、実施例による制御線信号VZCL及びソース線電圧信号VSLのタイミング図である。図7に示すように、メモリトランジスタ100に印加された制御線信号VZCLは、傾斜されている。そして、ソース線110に印加されたソース電圧信号VSLも、また、傾斜されている。ソース線電圧信号VSLを傾斜させることは、ソース線SLをビット線BLバイアスBL電圧=0ボルトまで増加させる。これは、また、よりよいプログラミング結果につながる。図7に示す実施形態では、BLバイアスへのSLの各々の増加は、制御線信号VZCLの傾斜に対応する。制御線信号VZCLの傾斜のステップの数は、本願明細書では制限されず、望ましくは少なくとも一つである。制御線信号VZCLの各々の傾斜に続き、検証処理が実行される。検証が終わると、検証が失敗した場合には、更なるプログラミングが要求される。よって、BLバイアスへSLが増加され、制御線信号VZCLの傾斜が再開する。検証が合格だった場合には、制御線信号VZCL及びソース線電圧信号VSLは、プログラミングを停止するために、それぞれスタンバイモードに入りうる。図7に示すように、高速コーナーメモリセル、標準的なメモリセル、及び低速コーナーメモリセルを網羅するために、3つのサイクルが利用されうる。高速コーナーメモリセルは、1つのプログラミング傾斜の後、検証に合格し、標準的なメモリセルは、2つのプログラミング傾斜の後、検証に合格し、低速コーナーメモリセルは、3つのプログラミング傾斜の後、検証に合格しうる。図8を参照する。図8は、別の実施形態による制御線信号VZCL及びソース線電圧信号VSLのタイミング図である。図8に示すタイミング図は、プログラミング中に検証が実行されるプログラミング中検証、VWPことを除いては、図7に示した図と同様である。したがって、制御線信号VZCLの1つの傾斜が終わると、検証による一時停止なしに、新しい制御線信号VZCLの傾斜が、すぐ後に始まる。図9及び10を参照する。図9は、VWPを有する高速コーナーメモリセルのプログラミングを説明するタイミング図である。図10は、VWPを有する低速コーナーメモリセルのプログラミングを説明するタイミング図である。図9及び図10に示した電圧及び時間は、例として提供されており、実施形態の範囲を制限するものではない。高速かつ低電力消費を達成するために、制御線信号VZCLは傾斜されている。制御線信号VZCLの初期バイアスは、初期閾電圧Vt_startに近く、最終バイアスは、最終プログラミング閾電圧Vt_finalを決定しうる。装置の変動と乱れを克服するために、ソース線電圧信号VSLを傾斜することによって、BLバイアスへとSLは傾斜される。高速コーナーメモリセル図9では、制御線信号VZCLの1つの傾斜で、プログラミングを完了するのに十分であり得るので、ソース線電圧信号VSLがプログラミングを通して一定に保持され、傾斜されない。低速コーナーメモリセル図10では、制御線信号VSLは、十分に高いゲート電流、例えば50マイクロアンペアμAが検出されるまで傾斜されうる。その時点で、制御線信号VZCLが、プログラミングが完了するまで傾斜され始める。図9及び図10に示すように、制御線信号VZCLを傾斜する各々のステップは、プログラミング電流Ipgm、例えば、50μAに達すると開始されうる。SLのBLバイアスへの傾斜の各々のステップは、プログラミング電流Ipgmに達することなしに、最大プログラミング時間、例えば5マイクロ秒μsに達すると開始されうる。留意すべき点は、最大プログラミング時間は、傾斜するソース線電圧信号VSL及び傾斜する制御線信号VZCLの両方に適用されてよいことである。別の実施形態では、最大プログラミング時間が、傾斜するソース線電圧信号VSLに適用されてよく、傾斜するプログラミング時間が、傾斜する制御線信号VZCLに適用されてよい。傾斜するプログラミング時間は、最大プログラミング時間よりも短い速い。図11を参照する。図11は、ある実施形態によるVWPを有するチャネル熱電子注入CHEIプログラミングを実行するための処理70のフローチャートである。メモリセルのプログラミングが要求されると、プログラミングが開始する。段階700初期設定がメモリトランジスタ100及び対応する選択トランジスタに適用される。例えば、VZCL=4.5ボルト、VSL=VNW=5V、VBL=0ボルトである。VNWは、Nウェル電圧を表す。段階702プログラミングが、上述のように実行される。段階704プログラミング時間Tpgmが所定期間、例えば5μsを超え段階706、Nウェル電圧VNWが第1の電圧閾値、例えば6Vより低い場合段階708、Nウェル電圧は、第1のステップ電圧、例えば0.5Vだけ増加される段階710。プログラミング時間Tpgmが所定期間を超え段階706、Nウェル電圧VNWが第1の電圧閾値よりも高い場合段階708、場合によってはメモリセルが遅過ぎるために、プログラミングは終了する段階718。プログラミング時間Tpgmが、所定期間より短く段階706、ビット線電流IBLが所定のプログラミング電流Ipgm、例えば50μAよりも低い場合段階712、処理70は段階706に戻る。ビット線電流IBLが所定のプログラミング電流Ipgmを超え段階712、プログラミング時間Tpgmが所定期間よりも少なく段階706、制御線信号VZCLがゲート電圧閾値、例えばVNW2.5Vよりも少ない場合段階714、制御線信号VZCLは、第2のステップ電圧、例えば0.5Vだけ増加される段階716。第1ステップ電圧及び第2ステップ電圧は、同じでもよいし、異なってもよい。制御線信号VZCLがゲート閾電圧以上の場合、プログラミングは終了する。段階718以上では、第1の電圧閾値は、メモリトランジスタ100の制御線に印加された制御線電圧の所定の制御線電圧制限でありうる。図12を参照する。図12は、実施形態によるゲート電圧ZCLの傾斜を説明する図である。Nウェル電圧NWとほぼ等しいソース線電圧SLは、プログラミング中、電圧Yに一定に保たれる。ゲート電圧ZCLは、最初は電圧Xに設定される。電圧Xは、プログラミング中、スタンバイ電圧よりも高い。ステップ電圧aは、第1段階で、電圧Xに加えられ、ステップ電圧bは、第2段階で、電圧Xaに加えられ、ステップ電圧Xabcdに達するまで、同様に加えられる。検証が実行され、新しい傾斜が電圧Xから開始してもよい。最大バイアス制限は、ゲート電圧ZCLに設定される。ゲート電圧ZCLはXabcdefにほぼ等しい。電圧ステップの数もまた、本願明細書では制限されていない。図13を参照する。図12は、別の実施例によるゲート電圧ZCLの傾斜を説明する図である。図12と同様、ゲート電圧ZCLのみが傾斜され、ソース線電圧SLは、一定のままである。しかしながら、図13では、図12と異なり、検証が、ゲート電圧ZCLの各ステップ増加の後に実行される。例えば、電圧Xが印加された後、検証は実行され、その後、電圧Xaが印加され、検証が実行され、それ以降も同様である。図14を参照する。図14は、別の実施例によるゲート電圧ZCLの傾斜を説明する図である。図14は図12と図13を結合している。先ず、電圧ゲート電圧ZCLの傾斜が、Xabcdに達するまで、中断なしに実行される。その後、電圧Xabcdeにステップ増加される前に、検証が実行される。検証が再び実行され、その後、ゲート電圧ZCLは、電圧Xabcdefにステップ増加される。図12と図13の組み合わせの順序は、図14で示したものに限定されない。図14は、図13の傾斜に図12の傾斜が先行していることを示しているが、図13の傾斜が、図12の傾斜に先行してもよい。図15を参照する。図15は、実施例による傾斜するゲート電圧ZCL、及びソース線/Nウェル電圧SL/NWを説明する図である。ゲート電圧ZCLは、電圧Xから電圧Xabcdまでステップ増加される。一方、ソース線/Nウェル電圧SL/NWは、電圧Yである。検証が実行されてもよい。その後、ゲート電圧ZCLは、再び電圧Xからステップ増加され始め、電圧Xabcdまで増加する。一方、ソース線/Nウェル電圧SL/NWは、電圧Ygである。電圧gは、電圧a、b、...、fと同じでもよいし、異なっていてもよい。図16を参照する。図16は、別の実施例による傾斜するゲート電圧ZCL、及びソース線/Nウェル電圧SL/NWを説明する図である。ソース線/Nウェル電圧SL/NWは、先ず電圧Yから電圧Ydにステップ増加され、その後、電圧Ydeにステップ増加される。検証は、ソース線/Nウェル電圧の各ステップ増加に続いて実行される。電圧Ydeに達した後、検証が実行され、その後、ゲート電圧ZCLは、電圧XからXaにステップ増加され、続いて、電圧Xabに、それから、電圧Xabcへとステップ増加される。その間ずっと、ソース線/Nウェル電圧は、電圧Ydeである。検証は、ゲート電圧ZCLの各ステップ増加の後、実行されてもよい。図17を参照する。図17は、プログラミング電流を減少させ、信頼性を向上させる不揮発性メモリ装置130の図である。不揮発性メモリ装置130は、メモリセルアレイ1360、メモリセルアレイ1360に結合されたワード線ドライバ1350と制御線ドライバ1351、ワード線ドライバ1350に結合された行アドレスデコーダ1340、行アドレスデコーダ1340に結合されたアドレスバッファ1310、メモリセルアレイ1360に結合されたマルチプレクサ1352、メモリセルアレイ1360、ワード線ドライバ1350、制御線ドライバ1351、マルチプレクサ1352に結合された発電装置1330、マルチプレクサ1352とメモリセルアレイ1360に結合されたセンス増幅器1370、センス増幅器1370に結合された列アドレスデコーダ1341、センス増幅器1370に結合されたデータI/Oバッファ1380、データI/Oバッファ1380に結合されたI/O回路1390、及びアドレスバッファ1310と発電装置1330に結合されたセル動作状態機械1320を含む。メモリセルアレイ1360は、メモリセルアレイ1360のビット線とワード線又は制御線マトリックスの交点に配置されている図1のメモリセル100のようなメモリセルを含む。ワード線ドライバ1350、制御線ドライバ1351、行アドレスデコーダ1340、及び列アドレスデコーダ1341は、プログラミング動作中、プログラミングのために、各制御線に複数の可変パルス又は不変パルスを供給する書き込み回路を形成する。複数の可変パルスは、プログラミング動作中、所定レベルで、ゲート注入電流を維持するため所定の大きさを有している。伝導電流が低い間、所定のレベルはほぼ最大値であってもよい。マルチプレクサ1352、センス増幅器1370、発電装置1330、及びセル動作状態機械1320は、プログラミング動作中に伝導電流の変動を検知し、プログラミング動作中に検知された伝導電流が所定値に達した場合には、プログラミング動作を停止する検証回路を形成する。検証回路は、所定のプログラミング時間が経過したとき、検知された伝導電流が所定値に達していなくても、プログラミング動作を停止してもよい。検証回路は、制御線電圧の絶対値が閾電圧の絶対値以上となったときは、プログラミング動作を停止してもよい。メモリアレイ1360において、各メモリセルは、電荷蓄積層を含むPチャネルメモリセルであってもよい。電荷蓄積層は、酸化膜-窒化膜-酸化膜ONO層であってもよい。複数の可変パルスは、プログラミングのために、更に、各ビット線へ供給されてもよい例えば、SLからBLへのバイアス。所定の大きさの複数の可変パルスパターンは、ステップ傾斜又は独立した傾斜パターンでありうる。図18を参照する。図18は、実施例によるダブルゲートトランジスタ180を説明する図である。メモリセルもまた、フローティングゲート181を含むダブルゲートトランジスタ180であり、パフォーマンスを向上させるために、傾斜するゲート電圧を採用してもよい。以上では、2つのトランジスタ100、110を含むメモリセル10において、制御線電圧ZCL及び/又は選択線電圧SLは傾斜されてよい。ダブルゲートトランジスタ180において、ダブルゲートトランジスタ180のゲートに印加されるワード線電圧WL、及びダブルゲートトランジスタ180のドレインに印加されるビット線電圧BLは、傾斜されてもよい。図18に示したビット線電圧BL及び/又はワード線電圧WLの傾斜は、上述の図1に示した制御線電圧ZCL及びビット線電圧BLと同様に達成される。しかし、図1と図18に示すそれぞれのメモリセルのアーキテクチャは異なるので、ワード線電圧WLの接続は異なり、ダブルゲートトランジスタ180は制御線入力を取り込まない。図18に示すダブルゲートトランジスタ180において、例えば、ワード線電圧WLは、伝導電流が所定値に達した後、傾斜されうる。また、メモリセルが低速コーナーにある場合、ビット線電圧BLも傾斜されうる。留意すべき点は、以上の記載は、P型メモリセルを対象としているが、N型メモリセルも、本発明の教示から逸脱することなく同様の概念を採用してもよいことである。更に、図18のメモリセルは、一例を表したに過ぎない。電荷蓄積層を含む一つのメモリトランジスタもまた、本発明の教示から逸脱することなく同様の概念を採用してもよい。以上より、制御線電圧ZCL及び/又はビット線電圧BLを傾斜させることは、プログラミング時間を効果的に減少させ、その結果、図1に示すメモリセル10のプログラミング効率を高めることが分かる。同様に、ワード線電圧WL及び/又はビット線電圧BLを傾斜させることは、プログラミング時間を効果的に減少させ、その結果、図18に示すダブルゲートトランジスタ180のプログラミング効率を高めることが分かる。上述の実施形態では、傾斜しているZCLは、プログラミング電流を最適化するため及びプログラミング速度を増大させるために用いられる。しかしながら、プログラミング電流が非常に高い場合、高い電流を処理するために回路面積は増大されなければならない。これは回路設計の観点から望ましくない。例えば、高いプログラミング電流はポンプ回路の面積を増大させる。更に、素子のコーナー変動は、より高いプログラム電流の予測を必要とし、回路面積を消費する。最後に、より高いプログラミング電流は、また、メモリセルの不要な損傷を引き起こす。これは、何千ものサイクルの後に粗悪なプログラミング効率をもたらしうる。僅かに低いプログラミング電流を選択することにより、回路設計者は、傾斜するZCLにより提供された速度及び動作時間枠の利点を維持したまま、これらの問題を回避しうる。以下の説明では、電流制限回路が、メモリセルアーキテクチャに導入される。該電流制限回路は、上述の種々の利点を留保したまま、プログラミング電流を制限するよう動作する。電流制限回路は、プログラミング電流を直接クランプしてもよく、又は検知されたプログラミング電流に従い、BLとSLとの間の電圧降下若しくはZCL傾斜電圧に作用することによりプログラム電流を制限するよう動作してもよい。図19を参照する。図19は、プログラム電流制限回路1900に電気的に結合された図1のメモリセルの図である。図19では、プログラム電流制限回路1900は、ビット線BLの電圧レベルを制御することにより、ソース線-ビット線SL-BLバイアスを制御するよう動作する。上述のように、SL-BLバイアスは、プログラム電流制限回路1900をビット線BLの代わりにソース線SLに電気的に接続することにより制御されてもよい。プログラム電流制限回路1900は、ビット線に電気的に接続され、メモリセル10のプログラム電流を制御する。図19に示されるように、傾斜するZCL例えば4.5V-7.5Vは、上述のようにメモリトランジスタ100のゲートに印加される。選択トランジスタ110は、ゲートで低電圧、例えば0.5Vだけ、及び選択線入力で選択線電圧、例えば0.5Vだけバイアスされる。メモリトランジスタ100及び選択トランジスタ110のウェルは、両方ともSLに共通のウェル電圧、例えば5Vに結合される。プログラム電流を制限するために、プログラム電流制限回路1900は、プログラム電流を検知し、帰還バイアス変調を用いてビット線に仮想グランド点を確立する。ビット線の実際の電圧は、上述のようにメモリトランジスタ100のVtがプログラミング中に変化するにつれて変化してもよい。幾つかの実施形態では、プログラム電流制限回路1900は、選択トランジスタ110のソース線に電気的に接続されてもよい。幾つかの実施形態では、プログラム電流制限回路1900のようなプログラム電流制限回路は、メモリセル10の電流端のそれぞれ、つまりビット線及びソース線で、電気的に接続されてもよい。多くの異なるプログラム電流制限回路は、プログラム電流制限回路1900の候補として利用可能である。図20を参照する。図20は、図19のプログラム電流制限回路1900の1つの構成の図である。図20に示されたプログラム電流制限回路1900は単なる一例である。プログラム電流制限回路1900は、第1のトランジスタ2010、第2のトランジスタ2020、第3のトランジスタ2030、第4のトランジスタ2040、第5のトランジスタ2050、及び第6のトランジスタ2060を有する。第1のトランジスタ2010は、ビット線との電気的接続を通じてプログラム電流を受信する。示されるように、第2のトランジスタ2020及び第3のトランジスタ2030のドレイン電極は互いに電気的に接続され、第4のトランジスタ2040及び第5のトランジスタ2050のドレイン電極は互いに電気的に接続される。第6のトランジスタ2060は、ダイオード接続されゲート電極がドレイン電極に直接結合される、ドレイン電極で基準電流源2200からプログラム制限電流値を設定する基準電流を受信する。第1のトランジスタ2010及び第2のトランジスタ2020のゲート電極は互いに電気的に接続され、第3のトランジスタ2030及び第4のトランジスタ2040のゲート電極は互いに電気的に接続され、第5のトランジスタ2050及び第6のトランジスタ2060のゲート電極は互いに電気的に接続される。第4のトランジスタ2040はダイオード接続される。第2のトランジスタ2020のゲートは、演算増幅器2100により制御される。演算増幅器2100は、第1の入力端子で制限電圧Vlimitを受信し、第2のトランジスタ2020のゲート電極へ帰還信号を出力して、制限電圧Vlimitを第2のトランジスタ2020及び第3のトランジスタ2030のドレイン電極に維持し、それによりプログラミング中にBL第1のトランジスタ2010のドレインを安定させる。基準電流源2200は、第1のトランジスタ2010を通じて流れるプログラム電流を効率的に制限する。図21を参照する。図21は、メモリセル10のようなメモリセルをプログラミングする方法のフローチャートである。方法は以下の段階を有する。段階2101:メモリセルにソース電圧を印加する。段階2102:プログラム制限電流を設定し、メモリセルに電気的に接続された電流制限回路に制限電圧を印加する。段階2103:メモリセルに傾斜したゲート電圧を印加し、電流制限回路により決定された制限された電流でメモリセルをプログラミングする。ソース電圧は、ソース線SLでメモリセル10に印加され段階2010、ソース線SLからビット線BLまでの電圧降下を設定する。プログラム電流制限回路は、基準電流源2200で、メモリセル10のプログラム電流をクランプするよう設定される。制限電圧Vlimitは、演算増幅器2100の第1の入力端子に印加される段階2102。メモリトランジスタ100をプログラミングするために、傾斜したゲート電圧傾斜したZCLがメモリトランジスタ100のゲートに印加され、メモリセル10のプログラミング電流は電流制限回路1900によりプログラム制限電流及び制限電圧Vlimitに基づき制限される段階2103。図20に示された電流制限回路1900では、メモリセル10のプログラミング電流は、第6のトランジスタ2060を通じて流れる基準電流源2200により設定された基準電流により制限される。幾つかの実施形態では、電流制限回路1900がビット線の代わりにソース線に電気的に接続されていると仮定すると、段階2101のソース電圧は、ビット線電圧により置き換えられてもよい。従って、傾斜するZCLを用いてメモリセルをプログラミングする間に、プログラム電流を制限することにより、ポンプ回路の面積は増大される必要がなく、プログラム電流予測に対して少ない回路面積しか消費されず、メモリセルに少ない損害しか与えない。一方で良好な動作時間枠を維持している。当業者は、本発明の教示を守りつつ、装置及び方法の多くの変形及び代替がなされ得ることを直ちに理解するだろう。従って、以上の開示は、特許請求の範囲の境界及び範囲によってのみ限定されると見なされるべきである。