以下、図面を用いて実施形態が説明される。以下では、信号等の情報が伝達される信号線には、信号名と同じ符号を使用し、電圧線には電圧名と同じ符号を使用し、電源線には電源名と同じ符号を使用する。
図1は、一実施形態における半導体記憶装置の一例を示す。例えば、図1に示す半導体記憶装置100は、抵抗変化型メモリである。半導体記憶装置100は、複数のメモリセル1a、メモリセル1b、スイッチ回路2a、2b、スイッチ制御回路3a、3b、書き込み回路4および読み出し回路5a、5bを有する。また、半導体記憶装置100は、メモリセル1aにそれぞれ接続される複数のビット線BL(BL0、BL1)および複数のソース線SL(SL0、SL1)を有する。
メモリセル1aは、第1のメモリセルの一例であり、例えば、半導体記憶装置100の外部から書き込まれるデータを記憶する。メモリセル1bは、第2のメモリセルの一例であり、例えば、半導体記憶装置100の内部回路の特性を調整するデータを記憶する。スイッチ回路2aは、第1のスイッチ回路の一例であり、スイッチ回路2bは、第2のスイッチ回路の一例である。読み出し回路5aは、第1の読み出し回路の一例であり、読み出し回路5bは、第2の読み出し回路の一例である。ビット線BLは、第1のビット線の一例であり、ソース線SLは、第1のソース線の一例である。
書き込み回路4および読み出し回路5aは、グローバルビット線GBLおよびグローバルソース線GSLを介してスイッチ回路2aに接続される。メモリセル1bは、ビット線RBLおよびソース線RSLを介してスイッチ回路2bに接続される。ビット線RBLは、第2のビット線の一例であり、ソース線RSLは、第2のソース線の一例である。
各メモリセル1aは、書き込み動作により抵抗値が変化する抵抗素子Rを含み、抵抗素子Rの抵抗値に応じてデータを記憶する。メモリセル1bは、書き込み動作により抵抗値が変化する一対の抵抗素子R0、R1を含み、抵抗素子R0、R1の抵抗値に応じてデータを記憶する。例えば、メモリセル1bが記憶するデータは、半導体記憶装置100の電源の起動時に読み出され、半導体記憶装置100内のラッチ回路やレジスタ等に設定され、内部回路の特性の調整等に使用される。抵抗素子Rは、第1の抵抗素子の一例であり、抵抗素子R0、R1は、第2の抵抗素子の一例である。
スイッチ回路2aは、ビット線BL0、BL1をグローバルビット線GBLにそれぞれ接続するスイッチSWと、ソース線SL0、SL1をグローバルソース線GSLにそれぞれ接続するスイッチSWとを有する。スイッチ回路2bは、ビット線BL0、BL1をビット線RBLにそれぞれ接続するスイッチSWと、ソース線SL0、SL1をソース線RSLにそれぞれ接続するスイッチSWとを有する。スイッチ制御回路3aは、スイッチ回路2aの各スイッチSWの動作を制御する。スイッチ制御回路3bは、スイッチ回路2bの各スイッチSWの動作を制御する。
メモリセル1bにデータを書き込む書き込み動作において、スイッチ回路2a、2bは、以下のように動作する。スイッチ回路2aは、書き込み回路4を複数のビット線BL0、BL1と複数のソース線SL0、SL1とに接続する。スイッチ回路2bは、メモリセル1bにデータを書き込む書き込み動作において、メモリセル1bを複数のビット線BL0、BL1と複数のソース線SL0、SL1とに接続する。例えば、メモリセル1bの書き込み動作は、抵抗素子R0、R1毎に実行される。
そして、複数のビット線BL0、BL1、複数のソース線SL0、SL1および複数のスイッチSWを介して、書き込み回路4からメモリセル1bに書き込み電圧が供給される。これにより、書き込み電圧の供給線の抵抗を、単一の供給線を用いる場合に比べて下げることができる。したがって、書き込み電圧が複数のスイッチ回路2a、2bを介してメモリセル1bに供給される場合にも、電圧降下を最小限にして、所望の書き込み電圧を抵抗素子R0(または、R1)に供給することができる。例えば、メモリセル1a用の書き込み回路4をメモリセル1bの書き込み動作に使用する場合、書き込み回路4とメモリセル1bまでの距離は長くなりやすい。書き込み電圧の供給経路が長い場合にも、所望の書き込み電圧を抵抗素子R0(または、R1)に供給することができる。この結果、抵抗素子R0(または、R1)の抵抗値を所望の値に設定することができ、メモリセル1bに所望の論理を書き込むことができる。
メモリセル1bに書き込まれたデータの論理を検証するベリファイ動作において、スイッチ回路2a、2bは、以下のように動作する。スイッチ回路2aは、読み出し回路5aをビット線BLのいずれかとソース線SLのいずれかとに接続する。スイッチ回路2bは、ビット線RBLをビット線BL0、BL1のいずれかに接続し、ソース線RSLをソース線SL0、SL1のいずれかに接続する。
メモリセル1bからデータを読み出す読み出し動作において、スイッチ回路2bは、ビット線BL0、BL1およびソース線SL0、SL1とメモリセル1bとの接続を遮断する。これにより、後述する読み出し回路5bによるメモリセル1bの読み出し動作において、ビット線BLの負荷およびソース線SLの負荷が、読み出し動作に影響することを抑止することができる。
一方、メモリセル1aのいずれかにデータを書き込む書き込み動作において、スイッチ回路2a、2bは、以下のように動作する。スイッチ回路2aは、書き込み回路4をビット線BL0、BL1のいずれかとソース線SL0、SL1のいずれかとに接続する。スイッチ回路2bは、ビット線BL0、BL1およびソース線SL0、SL1とメモリセル1b(すなわち、ビット線RBLとソース線RSL)との接続を遮断する。これにより、メモリセル1aの書き込み動作時に、ビット線BLおよびソース線SLにビット線RBLおよびソース線RSL等の負荷が接続されることを抑止することができ、データの書き込み不足等の書き込みマージンの低下を抑止することができる。
メモリセル1aのいずれかに書き込まれたデータの論理を検証するベリファイ動作において、スイッチ回路2a、2bは、以下のように動作する。スイッチ回路2aは、読み出し回路5aをビット線BLのいずれかとソース線SLのいずれかとに接続する。スイッチ回路2bは、ビット線RBLとビット線BL0、BL1との接続、およびソース線RSLとソース線SL0、SL1との接続を遮断する。これにより、メモリセル1aのベリファイ動作時に、ビット線BLおよびソース線SLにビット線RBLおよびソース線RSL等の負荷が接続されることを抑止することができ、データの判定等に誤りが発生することを抑止することができる。
メモリセル1aのいずれかからデータを読み出す読み出し動作において、スイッチ回路2a、2bは、以下のように動作する。スイッチ回路2aは、読み出し回路5aをビット線BLのいずれかとソース線SLのいずれかに接続する。スイッチ回路2bは、ビット線BL0、BL1およびソース線SL0、SL1とメモリセル1bとの接続を遮断する。これにより、メモリセル1aの読み出し動作時に、ビット線BLおよびソース線SLにビット線RBLおよびソース線RSL等の負荷が接続されることを抑止することができ、誤ったデータが読み出されることを抑止することができる。
この実施形態では、メモリセル1aにデータを書き込む書き込み回路4を利用して、メモリセル1bへのデータの書き込みを実行する。また、メモリセル1aからデータを読み出す読み出し回路5aを利用してメモリセル1bのベリファイ動作を実行する。このため、メモリセル1bの専用の書き込み回路およびベリファイ回路を設ける場合に比べて、半導体記憶装置100の回路規模を削減することができる。
書き込み回路4は、メモリセル1aの書き込み動作において、書き込み対象のメモリセル1aに接続されたビット線BLおよびソース線SLを所定の電圧差に設定し、書き込み対象のメモリセル1aの抵抗素子Rに電流を流し、抵抗値を変化させる。書き込み回路4は、メモリセル1bの書き込み動作において、複数のビット線BLおよび複数のソース線SLを所定の電圧差に設定し、メモリセル1bの抵抗素子R0、R1のうち選択された抵抗素子R0(または、R1)に電流を流し、抵抗値を変化させる。メモリセル1bの書き込み動作では、抵抗素子R0の書き込み動作と抵抗素子R1の書き込み動作により、抵抗素子R0、R1の抵抗値がそれぞれ設定され、メモリセル1bに所定の論理が書き込まれる。
読み出し回路5aは、メモリセル1aの読み出し動作およびベリファイ動作において、スイッチ回路2aおよびビット線BLのいずれかとソース線SLのいずれかとを介して、アクセス対象のメモリセル1aに読み出し電圧を供給する。そして、読み出し回路5aは、アクセス対象のメモリセル1aの抵抗素子Rを流れる電流量に応じて、アクセス対象のメモリセル1aに記憶されたデータを判定する。読み出し回路5aは、メモリセル1bのベリファイ動作において、スイッチ回路2a、2bおよびビット線BLのいずれかとソース線SLのいずれかとを介して、メモリセル1bに読み出し電圧を供給する。そして、読み出し回路5aは、メモリセル1bの抵抗素子R0(または、R0)を流れる電流量に応じて、抵抗素子R0(または、R1)に記憶されたデータの論理を判定する。
例えば、読み出し回路5aは、抵抗素子R、R0、R1をそれぞれ流れる電流に応じて発生する電圧を図示しない参照電圧と比較することで、抵抗素子R、R0、R1に記憶されたデータを判定する。メモリセル1aの読み出し動作において読み出し回路5aが判定したデータは、半導体記憶装置100の外部に読み出しデータとして出力される。メモリセル1a、1bのベリファイ動作において読み出し回路5aが判定したデータは、抵抗素子R、R0、R1が所望の抵抗値に設定されたか否かの判定に使用される。
読み出し回路5bは、例えば、抵抗素子R0、R1に直接接続されている。読み出し回路5bは、メモリセル1bからデータを読み出す読み出し動作において、抵抗素子R0、R1の両端を所定の電圧に設定し、抵抗素子R0、R1にそれぞれ流れる電流量に応じて、メモリセル1bに記憶されたデータを判定する。例えば、抵抗素子R0、R1は、互いに異なる抵抗値に設定され、相補の論理を記憶する。この場合、読み出し回路5bは、抵抗素子R0、R1にそれぞれ流れる電流量の差に応じて、メモリセル1bに記憶されたデータを判定する。
読み出し回路5bに直接接続された抵抗素子R0、R1に流れる電流を読み出し回路5bにより検出することでデータを読み出すことができるため、メモリセル1bに記憶されたデータを最小限の時間で読み出すことができる。また、書き込み動作において、抵抗素子R0(または、R1)の抵抗値を所望の値に設定することができるため、読み出し回路5bによる読み出しマージンを向上することができ、半導体記憶装置100の信頼性を向上することができる。
なお、メモリセル1bは、メモリセル1aと同様に、1つの抵抗素子Rを有してもよい。この場合、読み出し回路5bは、例えば、抵抗素子Rを流れる電流に応じて発生する電圧を参照電圧と比較することで、メモリセル1bに記憶されたデータを判定する。
以上、図1に示す実施形態では、メモリセル1bへのデータの書き込みは、複数のビット線BL0、BL1および複数のソース線SL0、SL1を介して、書き込み回路4からメモリセル1bに書き込み電圧を供給することで実行される。複数のビット線BL0、BL1および複数のソース線SL0、SL1を使用することで、書き込み電圧の供給経路の抵抗を、単一の供給線を用いる場合に比べて下げることができる。
これにより、書き込み電圧が複数のスイッチ回路2a、2bを介して供給され、または、書き込み電圧の供給経路が長い場合にも、供給経路の抵抗の上昇を抑えて、所望の書き込み電圧を抵抗素子R0(または、R1)に供給することができる。メモリセル1a用の書き込み回路4を利用して、抵抗素子R0(または、R1)を所望の抵抗値に設定できるため、書き込みマージンを低下させることなく、メモリセル1bにデータを書き込むことができる。
メモリセル1a用の書き込み回路4を利用してメモリセル1bへのデータの書き込みを実行し、メモリセル1a用の読み出し回路5aを利用してメモリセル1bのベリファイ動作を実行することで、半導体記憶装置100の回路規模を削減することができる。
抵抗素子R0、R1に直接接続された、メモリセル1b専用の読み出し回路5bによりメモリセル1bからデータを読み出すことで、ビット線BL、ソース線SLおよびスイッチ回路2a、2bを経由することなくメモリセル1bからデータを読み出すことができる。これにより、メモリセル1bに記憶されたデータを最小限の時間で読み出すことができる。
さらに、メモリセル1bの読み出し動作時に、スイッチ回路2bのスイッチSWを遮断することで、ビット線BLの負荷およびソース線SLの負荷が、メモリセル1bの読み出し動作に影響することを抑止することができる。メモリセル1aの書き込み動作時に、スイッチ回路2bのスイッチSWを遮断することで、ビット線BLおよびソース線SLにビット線RBLおよびソース線RSLの負荷が接続されることを抑止することができ、データの書き込み不足等の発生を抑止することができる。
メモリセル1aの読み出し動作時に、スイッチ回路2bのスイッチ遮断することで、読み出し動作時に、ビット線RBLおよびソース線RSL等の負荷がビット線BLおよびソース線SLに接続されることを抑止することができる。同様に、メモリセル1aのベリファイ動作時に、スイッチ回路2bのスイッチSWを遮断することで、ベリファイ動作時に、ビット線RBLおよびソース線RSL等の負荷がビット線BLおよびソース線SLに接続されることを抑止することができる。したがって、読み出し動作時およびベリファイ動作時に、データの判定等に誤りが発生することを抑止することができる。
図2は、別の実施形態における半導体記憶装置の一例を示す。図1と同様の要素については、同じ符号を付し、詳細な説明は省略する。
半導体記憶装置100Aは、マトリックス状に配置された複数のメモリセル10を含むメモリセルアレイ20、コラムスイッチ30、ライトドライバ40および読み出し回路50を有する。また、半導体記憶装置100Aは、ROMメモリセル12、ROMリード回路60およびROMコラムスイッチ70を有する。
メモリセル10は、第1のメモリセルの一例であり、ROMメモリセル12は、第2のメモリセルの一例である。コラムスイッチ30は、第1のスイッチ回路の一例であり、ROMコラムスイッチ70は、第2のスイッチ回路の一例である。ライトドライバ40は、書き込み回路の一例である。読み出し回路50は、第1の読み出し回路の一例であり、ROMリード回路60は、第2の読み出し回路の一例である。
各メモリセル10は、書き込み動作により抵抗値が変化する抵抗素子Rと転送トランジスタTとを有し、1ビットのデータを記憶する。すなわち、半導体記憶装置100Aは、抵抗変化型メモリである。例えば、転送トランジスタTは、nチャネルMOS(Metal-Oxide Semiconductor)トランジスタである。抵抗素子Rの一端は、転送トランジスタTの一端(ソースまたはドレイン)に接続され、抵抗素子Rの他端は、ソース線SL(SL0、SL1、SL2、SL3のいずれか)に接続される。転送トランジスタTの他端は、ビット線BL(BL0、BL1、BL2、BL3のいずれか)に接続され、転送トランジスタTのゲートは、ワード線WL(WL0、WL1、WL2、WL3のいずれか)に接続される。
なお、メモリセルアレイ20に設けられるメモリセル10の数は、図2に示す例に限定されず、ビット線BL、ソース線SLの数は、2以上であれば、図2に示す例に限定されない。ワード線WLの数は、図2に示す例に限定されない。また、図2は、例えば、1つのデータ端子I/Oに対応する回路構成の例を示しており、例えば、図3に示すように、64ビットのデータ端子I/O0-I/O63を有する半導体記憶装置100Aは、図2に示す回路構成を64個有する。
図2に示す各種トランジスタにおいて、ゲートに対向するチャネル領域に示した太線は、例えば、ゲート絶縁膜が標準のトランジスタに比べて厚い高耐圧タイプであることを示す。例えば、半導体記憶装置100Aは、電源電圧VCCを電源端子で受け、電源電圧VCCと同じ電源電圧VPPYと、電源電圧より高い電源電圧VPPXと、電源電圧VCCより低い電源電圧VDDとを使用して動作する。ゲート、ソースまたはドレインで電源電圧VPPY、VPPXのいずれかを受けるトランジスタには、高耐圧タイプが使用される。
半導体記憶装置100Aの電源が起動後にメモリセル10がアクセス可能な状態において、例えば、電源電圧VCC、VPPYは2.5Vであり、電源電圧VPPXは3.3Vであり、電源電圧VDDは1.2Vである。なお、電源電圧VCC、VPPY、VPPX、VDDは、電圧値の大小関係がVPPX>VPPY=VCC>VDDであれば、上述と異なる電圧でもよい。電源電圧VPPXは、電源電圧VPPYにnチャネルMOSトランジスタの閾値電圧を加えた電圧より高いことが好ましい。
コラムスイッチ30は、ビット線BLをグローバルビット線GBLに接続するCMOS(Complementary MOS)伝達ゲートと、ソース線SLをグローバルソース線GSLに接続するCMOS伝達ゲートとを含む。CMOS伝達ゲートは、nチャネルMOSトランジスタのソース/ドレインとpチャネルMOSトランジスタのソース/ドレインとをそれぞれ接続した構成を有する。各CMOS伝達ゲートは、コラム選択信号YD(YD0、YD1、YD2、YD3のいずれか)によりオン(導通)またはオフ(遮断)する。コラムスイッチ30の例は、図10に示す。コラム選択信号YDを生成するコラム制御回路の例は、図12および図13に示す。
ライトドライバ40は、書き込み制御信号WR0に応じて、グローバルビット線GBLを接地線VSSに接続するスイッチ40aと、グローバルソース線GSLを電源線VPPYに接続するスイッチ40bとを有する。また、ライトドライバ40は、書き込み制御信号WR1に応じて、グローバルビット線GBLを電源線VPPYに接続するスイッチ40cと、グローバルソース線GSLを接地線VSSに接続するスイッチ40dとを有する。例えば、スイッチ40a、40dは、nチャネルMOSトランジスタであり、スイッチ40b、40cは、CMOS伝達ゲートを有する。図2等では、pチャネルMOSトランジスタは、ゲートに負論理を示す丸印を付けることで、nチャネルMOSトランジスタと区別している。スイッチ40b、40cのCMOS伝達ゲートは、コラムスイッチ30のCMOS伝達ゲートと同じである。
読み出し回路50は、グローバルビット線GBLを接地線に接続するスイッチ50aと、センスアンプ52と、グローバルソース線GSLをセンスアンプ52に接続するスイッチ50bとを有する。スイッチ50a、50bは、nチャネルMOSトランジスタを有し、読み出しイネーブル信号RENにより制御される。
センスアンプ52は、後述する読み出し動作およびベリファイ動作において、選択されたメモリセル10の抵抗素子Rを流れる電流に応じてグローバルソース線GSLに現れる電圧を参照電圧VREFと比較することで、メモリセル10が保持する論理を読み出す。なお、センスアンプ52は、メモリセル12のベリファイ動作にも使用される。読み出し動作は、図9および図21で説明し、ベリファイ動作は、図20で説明する。
ROMメモリセル12は、相補の論理を記憶する2つの抵抗素子R0、R1と2つの転送トランジスタT0、T1とを有する。ROMメモリセル12は、2つのメモリセル10と等価である。転送トランジスタT0のゲートは、ワード線RWL0に接続され、転送トランジスタT1のゲートは、ワード線RWL1に接続される。以下では、ワード線RWL0、RWL1を区別なく説明する場合、単にワード線RWLと称する場合がある。ROMメモリセル12は、ビットイネーブル線RBE0、RBE1を介してROMリード回路60に接続される。ビットイネーブル線RBE0は、抵抗素子R0と転送トランジスタT0との接続ノードに接続され、ビットイネーブル線RBE1は、抵抗素子R1と転送トランジスタT1との接続ノードに接続される。
ROMメモリセル12は、2つの抵抗素子R0、R1により1ビットを記憶する。例えば、ROMメモリセル12は、抵抗素子R0の抵抗値が抵抗素子R1の抵抗値より高い場合、論理1を記憶し、抵抗素子R1の抵抗値が抵抗素子R0の抵抗値より高い場合、論理0を記憶する。例えば、ROMメモリセル12は、4組のビット線BL/ソース線SLに対応して設けられる。以下では、1組のビット線BL/ソース線SLを1コラムとも称する。
なお、ROMメモリセル12は、3以上の抵抗素子を有してもよい。ROMメモリセル12が奇数個の抵抗素子を有する場合、ROMメモリセル12から読み出されるデータの論理は、例えば、多数決により判定されてもよい。また、ROMメモリセル12が4個の抵抗素子を有する場合、2個の抵抗素子R毎に相補の論理を記憶してもよい。ROMメモリセル12に複数の抵抗素子を配置し、ROMメモリセル12に記憶される情報量を増やすことで、ROMメモリセル10に記憶されるデータに比べてデータの信頼性を向上することができる。
例えば、半導体記憶装置100Aが32個のデータ端子I/Oを有し、データ端子I/O毎に32コラムが設けられる場合、メモリセルアレイ20は、1024コラムを有する。この場合、図2の回路構成では、最大で256個のROMメモリセル12をメモリセルアレイ20に隣接して設けることが可能である。
例えば、ROMメモリセル12は、半導体記憶装置100Aに設けられる電源回路80(図3)が生成する内部電圧を調整するためのトリミング情報を記憶してもよい。また、半導体記憶装置100Aは、不良のメモリセル10を救済するための冗長メモリセルを有し、不良のメモリセル10の代わりに冗長メモリセルを動作させる切り替え回路(救済回路)を有してもよい。この場合、ROMメモリセル12は、不良のメモリセル10のアドレス(不良アドレス)を記憶してもよい。さらに、ROMメモリセル12は、各種制御信号のタイミング(遅延量)を調整するためのトリミング情報を記憶してもよく、半導体記憶装置100Aの識別コードや製造情報等を記憶してもよい。
図5で説明するように、ROMメモリセル12は、半導体記憶装置100Aの電源の起動時に読み出しアクセスされ、ROMメモリセル12に予め記憶されたデータは、ROMリード回路60により読み出される。ROMリード回路60は、電源の起動時に動作し、ROMメモリセル12の2つの抵抗素子R0、R1にそれぞれ流れる電流に応じて、ROMメモリセル12が保持するデータの論理を判定し、判定した論理をデータ出力信号SAOUTとして出力する。ROMリード回路60の例は、図8に示し、ROMリード回路60の動作の例は、図9に示す。
ROMコラムスイッチ70は、各ビット線BLと、ROMメモリセル12に接続されたビット線RBLとを接続する4つのスイッチ70a、70b、70c、70dを有する。また、ROMコラムスイッチ70は、各ソース線SLと、ROMメモリセル12に接続されたソース線RSLとを接続する4つのスイッチ70e、70f、70g、70hを有する。例えば、各スイッチ70a-70hは、nチャネルMOSトランジスタである。スイッチ70a、70b、70c、70e、70f、70gは、コラム選択信号RYDWに基づいて動作し、スイッチ70d、70hは、コラム選択信号RYDVWに基づいて動作する。
例えば、ROMメモリセル12の書き込み動作時に、コラム選択信号RYDVW、RYDWの両方がハイレベルに設定され、ROMメモリセル12のベリファイ動作時に、コラム選択信号RYDVWがハイレベルに設定される。これにより、図19で説明するように、ROMメモリセル12の書き込み動作時には、8つのスイッチ70a-70hがオンし、図20で説明するように、ROMメモリセル12のベリファイ動作時には、スイッチ70d、70hがオンする。
なお、ROMメモリセル12、ROMリード回路60およびROMコラムスイッチ70に付加している「ROM」は、ROMメモリセル12が、半導体記憶装置100Aの出荷後にROM(Read Only Memory)として機能することを示す。例えば、後述するように、半導体記憶装置100Aの試験工程において、ROMメモリセル12にデータが書き込まれる。試験工程において、ROMメモリセル12にデータを書き込む書き込み動作は、ライトドライバ40を使用して実行され、ROMメモリセル12に書き込んだデータを確認するベリファイ動作は、読み出し回路50を使用して実行される。
図3は、図2の半導体記憶装置100Aの回路の配置の一例を示す。すなわち、図3は、半導体記憶装置100Aのチップレイアウトの一例を示す。図3では、例えば、ROMリード回路60、ROMメモリセル12、メモリセルアレイ20、コラムスイッチ30、読み出し回路50およびライトドライバ40をそれぞれ含む2つの回路群が、電源回路80とデータ入出力回路90との間に配置される。例えば、半導体記憶装置100Aは、下位の32ビットのデータ端子I/O0-I/O31に対応する回路群と、上位の32ビットのデータ端子I/O32-I/O63に対応する回路群とを有する。
2つの回路群のメモリセルアレイ20の間には、ワード線WLを選択するためのローデコーダ22等の各種制御回路が配置される。例えば、ローデコーダ22と電源回路80との間の領域には、ワード線RWLを選択するためのローデコーダと、ROMリード回路60を動作せるための制御信号の生成回路等が配置されてもよい。また、ローデコーダ22とデータ入出力回路90との間の領域には、コラムスイッチ30を選択するためのコラムデコーダ、コラムデコーダを制御する制御回路、読み出し回路50を制御する制御回路、ライトドライバ40を制御する制御回路が配置されてもよい。
電源回路80に接続される信号線RDTは、ROMメモリセル12から読み出されるデータRDTの転送経路を示す。例えば、データRDTは、電源電圧VPPX、VDDを調整するトリミング情報として電源回路80に転送されてもよい。また、半導体記憶装置100Aが、不良のメモリセル10を救済するための冗長メモリセルを有する場合、データRDTは、不良のメモリセル10を示す不良アドレスを示してもよい。なお、不良アドレスは、不良のメモリセル10が接続されたワード線WLまたはビット線BLを示してもよい。そして、不良アドレスを示すデータRDTは、不良のメモリセル10の代わりに冗長メモリセルを動作させる図示しない切り替え回路(救済回路)に転送されてもよい。一方、データ入出力回路90に接続される信号線DTは、メモリセル10に読み書きされるデータ信号DTの転送経路を示す。
半導体記憶装置100Aは、通常のメモリセル10の書き込み動作に使用するライトドライバ40を利用してROMメモリセル12にデータを書き込むことができる。また、半導体記憶装置100Aは、通常のメモリセル10の読み出し動作に使用する読み出し回路50を利用してROMメモリセル12のベリファイ動作を実行することができる。このため、ROMメモリセル12用のライトドライバおよびベリファイ用センスアンプを設ける場合に比べて、半導体記憶装置100Aのチップサイズを削減することができる。また、ROMメモリセル12の書き込み動作およびベリファイ動作の制御を簡易にすることができる。
メモリセルアレイ20、ROMコラムスイッチ70およびROMメモリセル12の周囲の太い破線枠は、ダミーメモリセルが配置されるダミー領域DMYを示している。ダミーメモリセルは、メモリセルアレイ20の周囲の領域に比べてトランジスタT等が密に配置されるメモリセル10が露光工程において受けるハレーションの影響等を低減するために配置される。露光工程で発生するハレーションは、素子のパターンを変形させ、素子の電気的特性を劣化させる場合がある。
図4は、図3の電源回路80の一例を示す。電源回路80は、低電圧検出回路82、降圧回路84、ROMリード制御回路86および昇圧回路88を有する。低電圧検出回路82は、電源検出回路の一例であり、ROMリード制御回路86は、読み出し制御回路の一例であり、昇圧回路88は、内部電圧生成回路の一例である。
低電圧検出回路82は、半導体記憶装置100Aの外部から供給される電源電圧VCC(外部電源電圧)が所定の電圧以下の場合、ロウレベルの開始信号STTを出力し、電源電圧VCCが所定の電圧を超えた場合、ハイレベルの開始信号STTを出力する。開始信号STTは、降圧回路84およびROMリード制御回路86に供給される。降圧回路84は、開始信号STTがハイレベルの期間に電源電圧VCCを降圧して電源電圧VDDを生成する。
ROMリード制御回路86は、電源電圧VDDに基づいて動作し、開始信号STTがロウレベルからハイレベルに変化したことに基づいて、所定の期間ロウレベルに維持され、その後ハイレベルに変化するラッチ信号LATVSSを生成する。また、ROMリード制御回路86は、プリチャージ信号PREB、出力制御信号SAOUTBおよびセンスアンプイネーブル信号SAENを生成する。さらに、ROMリード制御回路86は、ラッチ信号LATVSSをハイレベルに設定したことに基づいて、許可信号VPENを生成し、昇圧回路88に出力する。
昇圧回路88は、ROMリード制御回路86から出力される許可信号VPENに基づいて動作を開始し、電源電圧VCC、VDDを用いて電源電圧VPPXを生成する。電源電圧VPPXは、内部電圧の一例である。なお、電源回路80は、センスアンプ52で使用する参照電圧VREFを生成してもよい。
電源回路80は、電源端子で受けた電源電圧VCCを電源電圧VPPYとして、コラムスイッチ30、ライトドライバ40およびセンスアンプ52等に出力する。電源電圧VPPX、VCC、VPPY、VDDの関係は、VPPX>VCC=VPPY>VDDである。例えば、電源電圧VPPXは、ワード線WL、RWL、コラム選択信号RYDW、RYDVWのハイレベル電圧に使用される。電源電圧VPPYは、コラム選択信号YD、書き込み制御信号WR0、WR1、読み出しイネーブル信号REN等のハイレベル電圧に使用される。
なお、半導体記憶装置100Aが電源端子で電源電圧VDDを受ける場合、電源回路80は、電源電圧VDDを昇圧して電源電圧VPPY、VPPXを生成してもよく、この場合、低電圧検出回路82は、電源電圧VDDに基づいて動作する。また、半導体記憶装置100Aが電源端子で電源電圧VPPXを受ける場合、電源回路80は、電源電圧VPPXを降圧して電源電圧VPPY、VDDを生成してもよく、この場合、低電圧検出回路82は、電源電圧VPPXに基づいて動作する。さらに、半導体記憶装置100Aが複数の電源端子で電源電圧VCC、VDD、VPPXをそれぞれ受ける場合、電源回路80は、降圧回路84および昇圧回路88を持たなくてもよい。
図5は、図4の電源回路80の動作の一例を示す。図5は、半導体記憶装置100Aの電源の立ち上げ時の動作の例を示している。まず、半導体記憶装置100Aに電源電圧VCCが供給されると(PON)、電源電圧VCCに追従して電源電圧VDD、VPPY、VPPXと、ラッチ信号LATVSSの電圧とが上昇する(図5(a)、(b))。
例えば、電源電圧VCCが0.8Vを超えた場合、低電圧検出回路82は、開始信号STTをロウレベルからハイレベルに変更する(図5(c))。なお、0.8Vは、ROMリード制御回路86が動作可能な最低電圧よりも所定値だけ高い電圧である。この後、開始信号STTの電圧は、電源電圧VCCに追従して上昇をする(図5(d))。
降圧回路84は、電源電圧VCCが0.8Vを超えた場合に動作を開始し、電源電圧VDDを生成する(図5(e))。例えば、降圧回路84は、電源電圧VCCを抵抗分割することで電源電圧VDDを生成する。
ROMリード制御回路86は、開始信号STTがハイレベルに変化したことに基づいて、ラッチ信号LATVSSを所定期間ロウレベルに設定し、その後ハイレベルに設定する(図5(f))。ラッチ信号LATVSSのロウレベル期間は、ROMメモリセル12からのデータの読み出し期間である。ROMメモリセル12からのデータの読み出し期間は、電源電圧VCC、VPPY、VDD、VPPXが規定の電圧に到達する前に設定される。
これにより、電源電圧VCC、VPPY、VDD、VPPXが規定の電圧に到達し、半導体記憶装置100Aを搭載するユーザシステム等によりメモリセル10のアクセスが開始される前に、トリミング情報や不良アドレス等を所定の回路に設定することができる。この結果、半導体記憶装置100Aを誤動作させることなく、メモリセルMCに対してデータを読み書きすることができる。
なお、ROMリード制御回路86は、ラッチ信号LATVSSをロウレベルに設定したことに基づいて、プリチャージ信号PREB、出力制御信号SAOUTB、センスアンプイネーブル信号SAENを生成する。プリチャージ信号PREB、出力制御信号SAOUTB、センスアンプイネーブル信号SAENの例は、図9で説明する。また、ROMリード制御回路86は、ラッチ信号LATVSSをハイレベルに設定したことに基づいて、許可信号VPENを生成する。なお、例えば、ROMリード制御回路86は、ラッチ信号LATVSSのロウレベル期間を生成するための遅延回路を有してもよい。
昇圧回路88は、ラッチ信号LATVSSがハイレベルに変化した後にROMリード制御回路86から出力される許可信号VPENに基づいて動作を開始し、電源電圧VPPXを生成する(図5(g))。
ROMメモリセル12からのデータの読み出しが完了し、ラッチ信号LATVSSがハイレベルになった後に昇圧回路88を動作させることで、電源電圧VDDが1.2Vより低い期間での昇圧回路88の動作による電源変動を抑えることができる。これにより、例えば、昇圧回路88の動作により電源変動が発生する場合にも、電源が変動する前にROMメモリセル12からデータを読み出すことができ、ROMメモリセル12からのデータの読み出しマージンが低下することを抑止できる。
さらに、ROMメモリセル12からのデータの読み出しを制御するROMリード制御回路86により許可信号VPENを生成することで、読み出しの完了に同期して許可信号VPENを生成することができる。これにより、ROMメモリセル12からのデータの読み出し中に昇圧回路88が動作を開始することを抑止することができる。
図6は、図2のROMコラムスイッチ70のレイアウトの一例を示す。スイッチ70a-70hおよびROMメモリセル12は、メモリセルアレイ20の配置されるメモリセル10のレイアウトの繰り返しパターンを利用して形成される。すなわち、スイッチ70a-70hおよびROMメモリセル12は、メモリセル10と同じレイアウトパターンを使用して、メモリセルアレイ20に隣接した領域に配置される。通常、メモリセルアレイ20の素子は、メモリセルアレイ20の周囲に設けられる制御回路等の周辺回路の素子に比べて密に配置される。このため、スイッチ70a-70hおよびROMメモリセル12をメモリセル10と同じレイアウトパターンを使用して設けることで、レイアウト面積の増加を最小限にすることができる。
なお、図6等に示すROMメモリセル12の抵抗素子R0、R1および図2等に示すメモリセル10の抵抗素子Rは、転送トランジスタT0、T1、Tの形成領域の上方に形成される。各図では、説明を分かりやすくするために、抵抗素子R0、R1、Rを記載しているが、ROMメモリセル12およびメモリセル10のトランジスタ領域のレイアウトは、図6に示すROMコラムスイッチ70のトランジスタのレイアウトと同様である。
図6に示す網掛けの領域は、ダミーメモリセルが形成されるダミー領域DMYを模式的に示している。図6に示すように、ROMコラムスイッチ70およびROMメモリセル12は、メモリセル10のレイアウトの繰り返しパターンを利用して形成される。このため、ダミー領域DMYを、メモリセルアレイ20、ROMコラムスイッチ70およびROMメモリセル12の形成領域の周囲を覆って形成することができる。この結果、ROMコラムスイッチ70とメモリセルアレイ20とを互いに離れて配置し、ダミー領域DMYを別々に設ける場合に比べて、ダミーメモリセルのレイアウト面積を削減することができ、半導体記憶装置100Aのチップサイズを削減することができる。
図7は、図6のROMコラムスイッチ70を制御する制御回路の一例を示す。ROMコラムスイッチ70を制御する制御回路72は、コラム選択信号RYDWを出力するレベルシフタ74、コラム選択信号RYDVWを出力するレベルシフタ76およびレベルシフタ74、76の入力に接続される論理回路78を有する。
論理回路78は、ROMメモリセル12の抵抗素子R0、R1のいずれかにデータを書き込む書き込み動作時と、抵抗素子R0、R1のデータの書き込みレベルを検証するベリファイ動作時とに、ハイレベルのROMアクセス信号RACCを受ける。そして、論理回路78は、書き込み動作時にハイレベルに設定される書き込み信号WRに応答して、書き込み信号WRと同じ論理レベルの制御信号pRYDW、pRYDVWをレベルシフタ74、76にそれぞれ出力する。また、論理回路78は、ベリファイ動作時にハイレベルに設定されるベリファイ信号VRFYに応答して、ベリファイ信号VRFYと同じ論理レベルの制御信号pRYDVWをレベルシフタ76に出力する。
ROMアクセス信号RACC、書き込み信号WRおよびベリファイ信号VRFYは、図3に示したROMコラムスイッチ70に隣接する領域に設けられるROMアクセス制御回路により生成される。ROMアクセス制御回路は、図5に示したROMメモリセル12の書き込み動作期間およびベリファイ動作期間に動作する。
レベルシフタ74は、制御信号pRYDWのハイレベルを電源電圧VDDから電源電圧VPPXに変換し、コラム選択信号RYDWとして出力する。レベルシフタ76は、制御信号pRYDVWのハイレベルを電源電圧VDDから電源電圧VPPXに変換し、コラム選択信号RYDVWとして出力する。
なお、論理回路78の論理にしたがって、ROMメモリセル12の書き込み動作時には、コラム選択信号RYDW、RYDVWがハイレベルに設定される。ROMメモリセル12のベリファイ動作時には、コラム選択信号RYDVWがハイレベルに設定され、コラム選択信号RYDWがロウレベルに設定される。これにより、図19で説明するように、ROMメモリセル12の書き込み動作では、全てのコラムスイッチ70a-70hがオンし、図20で説明するように、ROMメモリセル12のベリファイ動作では、コラムスイッチ70d、70hがオンし、コラムスイッチ70a-70c、70e-70gがオフする。
図8は、図2のROMリード回路60の一例を示す。ROMリード回路60は、ラッチ部61、電源スイッチ62、接地スイッチ63、プリチャージ部64、65および出力部66、67を有する。ROMメモリセル12の抵抗素子R0、R1は、ラッチ部61と接地スイッチ63との間に配置される。ROMリード回路60は、電源電圧VDD(例えば、1.2V)を受けて動作する。
ラッチ部61は、一方の出力が他方の入力に接続された一対のCMOSインバータ610、611を有する。CMOSインバータ610、611は、反転回路の一例である。CMOSインバータ610の出力は、記憶ノードXCを介してプリチャージ部64に接続される。CMOSインバータ611の出力は、記憶ノードXTを介してプリチャージ部65に接続される。
CMOSインバータ610のnチャネルMOSトランジスタ610aのソースは、ROMメモリセル12の抵抗素子R0およびソース線RSLを介して接地スイッチ63に接続される。CMOSインバータ611のnチャネルMOSトランジスタ611aのソースは、ROMメモリセル12の抵抗素子R1およびソース線RSLを介して接地スイッチ63に接続される。このように、抵抗素子R0、R1は、ROMリード回路60内に配置される。ROMリード回路60は、抵抗素子R0、R1を含んでいるとも言える。
なお、電源電圧VDDを受けて動作するラッチ部61、電源スイッチ62、プリチャージ部64、65および出力部66、67は、書き込み動作時に電源電圧VPPYに設定されるビットイネーブル線RBE0、RBE1等と電気的に分離される。ラッチ部61のnチャネルMOSトランジスタ610a、611aは、ROMリード回路60を電源電圧VDDYの供給線から分離させる分離トランジスタとして機能するため、新たに分離スイッチ等を設けなくてよい。
例えば、接地スイッチ63は、nチャネルMOSトランジスタ63aを有し、ゲートで受けるセンスアンプイネーブル信号SAENに基づいて動作し、抵抗素子R0、R1を接地線VSSに接続し、あるいは、抵抗素子R0、R1と接地線VSSとの接続を遮断する。
CMOSインバータ610のpチャネルMOSトランジスタ610bのソースおよびCMOSインバータ611のpチャネルMOSトランジスタ611bのソースは、電源スイッチ62に接続される。例えば、電源スイッチ62は、pチャネルMOSトランジスタを有し、ゲートで受けるラッチ信号LATVSSに基づいて動作し、電源線VDDをラッチ部61に接続し、あるいは、電源線VDDとラッチ部61との接続を遮断する。電源線VDDは、第1の電源線の一例である。
プリチャージ部64は、電源線VDDと接地線VSSとの間に直列に接続されたpチャネルMOSトランジスタ64aおよびnチャネルMOSトランジスタ64bを有する。pチャネルMOSトランジスタ64aのゲートは、プリチャージ信号PREBを受け、nチャネルMOSトランジスタ64bのゲートは、ラッチ信号LATVSSを受ける。
プリチャージ部65は、電源線VDDと接地線VSSとの間に直列に接続されたpチャネルMOSトランジスタ65aおよびnチャネルMOSトランジスタ65bを有する。pチャネルMOSトランジスタ65aのゲートは、プリチャージ信号PREBを受け、nチャネルMOSトランジスタ65bのゲートは、ラッチ信号LATVSSを受ける。
出力部66は、ノアゲート66aを有し、出力部67は、ノアゲート67aを有する。ノアゲート66aは、出力制御信号SAOUTBと記憶ノードXCの電圧とを受ける。ノアゲート66aは、ROMメモリセル12の読み出し動作で使用されないため、以降の説明は省略する。ノアゲート67aは、出力制御信号SAOUTBと記憶ノードXTの電圧とを受け、データ出力信号SAOUTを出力する。
図8のnチャネルMOSトランジスタ610a、611aに付した矢印の大きさは、ROMメモリセル12からデータを読み出すときにROMリード回路60に流れる電流量の大きさを示している。この例では、例えば、ROMメモリセル12は、論理1(抵抗素子R1の抵抗値が抵抗素子R0の抵抗値よりも低い状態)を記憶しており、抵抗素子R1に流れる電流量は、抵抗素子R0を流れる電流量より多い。
なお、ROMメモリセル12からデータを読み出す読み出し動作において、ROMリード回路60は、ROMメモリセル12に接続されたワード線RWL0、RWL1を使用せず、ワード線RWL0、WRL1は非選択レベル(ロウレベル)に設定される。このため、図5で説明したように、電源の起動時に、ワード線RWL0、RWL1の選択レベル(ハイレベル)である電源電圧VPPXが生成される前に、ROMメモリセル12からデータを読み出すことができる。また、ワード線RWL0、RWL1のハイレベル電圧である電源電圧VPPXが所定の電圧(例えば、3.3V)に到達するまでに掛かる時間は、他の電源電圧VDD、VPPYが所定の電圧(例えば、1.2Vと2.5V)に到達するまでに掛かる時間より長い。したがって、ワード線RWL0、RWL1を駆動せずにデータを読み出すことで、ワード線RWL0、RWL1を駆動してデータを読み出す場合に比べて、読み出し時間を短縮することができる。
図9は、図8のROMリード回路60の動作の一例を示す。なお、図8で説明したように、抵抗素子R1の抵抗値は、抵抗素子R0の抵抗値よりも低いものとする。
まず、電源電圧VCCが0.8Vの到達したことに基づいて、ラッチ信号LATVSSがロウレベルに設定され、プリチャージ信号PREBがロウレベルに設定される(図9(a)、(b))。
なお、プリチャージ信号PREBがロウレベルに変化する前、ビットイネーブル線RBE0、RBE1およびソース線RSLは、ロウレベルのハイインピーダンス状態に(Hi-Z)に設定されている。また、電源電圧VCCが0.8Vに到達する前、ラッチ信号LATVSSおよびプリチャージ信号PREBは、ハイレベルに設定されている。電源電圧VDDの上昇によりラッチ信号LATVSSの電圧がnチャネルMOSトランジスタ64b、65bの閾値電圧より高くなった場合、nチャネルMOSトランジスタ64b、65bはオンし、ノードXC、XTは、ロウレベルに設定される。
ラッチ信号LATVSSおよびプリチャージ信号PREBがロウレベルに変化すると、ロウレベルのプリチャージ信号PREBによりpチャネルMOSトランジスタ64b、65bがオンし、記憶ノードXC、XTは電源電圧VDDに設定される(図9(c))。この時点で、電源電圧VDDは、nチャネルMOSトランジスタ610a、611aの閾値電圧より高いため、記憶ノードXC、XTのハイレベルによりnチャネルMOSトランジスタ610a、611aがオンする。これにより、ビットイネーブル線RBE0、RBE1の電圧が上昇する(図9(d))。
ビットイネーブル線RBE0、RBE1の電圧の上昇により、ROMメモリセル12の抵抗素子R0、R1に電流が流れ、ソース線RSLの電圧が上昇する(図9(e))。ビットイネーブル線RBE0、RBE1およびソース線RSLの電圧は、電源電圧VDDに対して、nチャネルMOSトランジスタ610a、611aの閾値電圧だけ低い電圧に設定される。
次に、プリチャージ信号PREBおよびセンスアンプイネーブル信号SAENがハイレベルに設定される(図9(f)、(g))。ハイレベルのプリチャージ信号PREBにより、プリチャージ部64、65のpチャネルMOSトランジスタ64a、65aがオフし、記憶ノードXC、XTは、ハイレベルのハイインピーダンス状態に設定される(図9(h))。また、ハイレベルのセンスアンプイネーブル信号SAENにより、接地スイッチ63がオンする。
これにより、nチャネルMOSトランジスタ63a、抵抗素子R0およびnチャネルMOSトランジスタ610aを介して記憶ノードXCから接地線VSSに電流が流れる。同様に、nチャネルMOSトランジスタ63a、抵抗素子R1およびnチャネルMOSトランジスタ611aを介して記憶ノードXTから接地線VSSに電流が流れる。そして、ソース線RSLの電圧が低下する(図9(i))。
抵抗値が低い抵抗素子R1を流れる電流は、抵抗値が高い抵抗素子R0を流れる電流より多いため、ビットイネーブル線RBE1の電圧は、ビットイネーブル線RBE0の電圧よりも早く低下する(図9(j))。また、記憶ノードXC、XTの電圧は、ビットイネーブル線RBE0、RBE1の電圧の低下とともに低下する(図9(k))。
ここで、ビットイネーブル線RBE0、RBE1の電圧の変化と同様に、抵抗値が相対的に低い抵抗素子R1に対応する記憶ノードXTの電圧は、記憶ノードXCの電圧よりも早く低下する。そして、記憶ノードXTの電圧と電源電圧VDDとの差(電圧XT-VDD)の絶対値が、pチャネルMOSトランジスタ610bの閾値電圧の絶対値を超えた場合、pチャネルMOSトランジスタ610bがオンする。
pチャネルMOSトランジスタ610bのオンにより、記憶ノードXCは電源電圧VDDに向けて上昇する。記憶ノードXCの電圧の上昇によりnチャネルMOSトランジスタ611aがオンし、記憶ノードXTの電圧は接地電圧VSSに向けて下降する(図9(l))。記憶ノードXC、XTの電圧が電源電圧VDDと接地電圧VSSになった後、出力制御信号SAOUTBがロウレベルに設定される(図9(m))。これにより、ノアゲート67aは、ノードXTの論理レベルを反転したハイレベルのデータ出力信号SAOUTを出力する(図9(n))。すなわち、ROMリード回路60は、ROMメモリセル12に記憶されている論理1を読み出す。
例えば、ROMメモリセル12からのデータの読み出しは、半導体記憶装置100Aの電源の起動時に、外部から受ける電源電圧VCCが所定の電圧(例えば、2.5V)に到達する前に実行される。そして、ROMメモリセル12から読み出されたデータであるデータ出力信号SAOUTは、半導体記憶装置100Aで生成される電源電圧VPPX、VDDを調整するトリミング情報等、内部回路の動作状態の設定に使用される。
データ出力信号SAOUTが出力された後、ラッチ信号LATVSSおよび出力制御信号SAOUTBがハイレベルに設定され、センスアンプイネーブル信号SAENがロウレベルに設定される(図9(o)、(p)、(q))。ハイレベルの出力制御信号SAOUTBによりデータ出力信号SAOUTがロウレベルに変化し、ROMリード回路60によるROMメモリセル12からのデータの読み出し動作が完了する(図9(r))。ハイレベルのラッチ信号LATVSSにより、pチャネルMOSトランジスタ62aはオフし、ロウレベルのセンスアンプイネーブル信号SAENにより、nチャネルMOSトランジスタ63aはオフする。これにより、ラッチ部61と抵抗素子R0、R1による電源線VDDから接地線VSSの電流経路が遮断される。
図8に示したように、ROMメモリセル12の抵抗素子R0、R1は、ROMリード回路60のラッチ部61と接地スイッチ63との間に直接接続される。そして、ROMリード回路60は、抵抗素子R0、R1に流れる電流の差に応じてROMメモリセル12に記憶されたデータの論理を判定する。これにより、ROMメモリセル12に接続されたワード線RWL0、RWL1およびコラム選択信号RYDVWを駆動せずに、ROMメモリセル12からデータを読み出すことができる。換言すれば、ワード線RWLを非選択レベルに設定した状態で、ビット線RBLおよびソース線RSLを使用することなく、ROMメモリセル12からデータを読み出すことができる。したがって、ワード線RWLをハイレベルに駆動し、抵抗素子R0、R1を介してビット線RBLとソース線RSL間に電流を流す場合に比べて、ROMメモリセル12からデータを高速に読み出すことができる。
抵抗素子R0、R1にそれぞれ記憶された相補の論理に対応する電流差に基づいて記憶ノードXC、XTに発生する電圧をラッチ部61で差動増幅するため、1つの抵抗素子Rに記憶された論理を読み出す場合に比べて、読み出しマージンを向上することができる。
また、センスアンプ52を動作させなくてよいため、コラム選択信号YD0および読み出しイネーブル信号RENを駆動しなくてよい。このため、電源電圧VPPX、VPPYを使用することなく、電源電圧VDDのみでROMメモリセル12からデータを読み出すことができる。この結果、例えば、半導体記憶装置100Aの電源の起動時に、電源電圧VPPX、VPPYが規定の電圧に到達していない場合にも、ROMメモリセル12からデータを読み出すことができる。
図10は、図2のコラムスイッチ30の一例を示す。図10は、図2に破線枠で示したコラムスイッチ30のうち、コラム選択信号YD0により制御されるコラムスイッチ30を示す。図2に他の破線枠で示したコラムスイッチ30は、コラム選択信号YD、ビット線BLおよびソース線SLの番号が異なることを除き、図10と同じである。
コラムスイッチ30は、CMOS伝達ゲート30a、30bおよびCMOSインバータ30cを有する。CMOSインバータ30cの入力側に示す太線は、CMOSインバータ30cに含まれるトランジスタが高耐圧タイプであることを示す。CMOSインバータ30cは、コラム選択信号YD0の論理を反転し、反転した信号をCMOS伝達ゲート30a、30bのpチャネルMOSトランジスタのゲートに供給する。コラム選択信号YD0は、CMOS伝達ゲート30a、30bのnチャネルMOSトランジスタのゲートに供給される。
コラムスイッチ30は、コラム選択信号YD0がハイレベル(VPPY)のときにオンし、ビット線BL0をグローバルビット線GBLに接続し、ソース線RSLをグローバルソース線GSLに接続する。コラムスイッチ30は、コラム選択信号YD0がロウレベル(VSS)のときにオフし、ビット線BL0とグローバルビット線GBLとの接続を解除し、ソース線RSLとグローバルソース線GSLとの接続を解除する。
なお、図2に示したライトドライバ40のスイッチ40b、40cの各々は、例えば、CMOS伝達ゲート30aおよびCMOSインバータ30cと同じ構成を含む。そして、スイッチ40a(または40b)は、ハイレベルの書き込み制御信号WR0(またはWR1)を受けている期間にオンし、ロウレベルの書き込み制御信号WR0(またはWR1)を受けている期間にオフする。
図11は、1個のROMメモリセル12がメモリセルアレイ20に対応して設けられる例を示す。図2と同じ要素については、同じ符号を付し、詳細な説明は省略する。図11は、1つのデータ端子I/Oに対応して設けられる回路を示している。このため、例えば、メモリセルアレイ20が32個のデータ端子I/Oに対応する場合、32個のROMメモリセル12が、メモリセルアレイ20に対応して設けられる。
ROMメモリセル12は、書き込み動作時に、ROMコラムスイッチ70を介して4組のビット線BL/ソース線SLに接続され、ベリファイ動作時に、ROMコラムスイッチ70を介して1組のビット線BL/ソース線SLに接続される。図11は、抵抗素子R0に論理1を書き込む例を示しており、太線で示す信号線および回路が書き込み動作のために使用される。
図11に示す例では、ROMメモリセル12は、ビット線BL0-BL3およびソース線SL0-SL3に接続されるが、他の4組のビット線BL/ソース線SLに接続されてもよい。この場合、ROMメモリセル12の書き込み動作時およびベリファイ動作時に駆動されるコラム選択信号YDが変更される。
ROMメモリセル12の書き込み動作およびベリファイ動作は、抵抗素子R0、R1毎に実行される。抵抗素子R0の書き込み動作およびベリファイ動作を実行する場合、ワード線RWL0がハイレベルに設定され、抵抗素子R1の書き込み動作およびベリファイ動作を実行する場合、ワード線RWL1がハイレベルに設定される。
例えば、書き込み制御信号WR1がハイレベルに設定され、グローバルビット線GBLが電源電圧VPPYに設定され、グローバルソース線GSLが接地電圧VSSに設定される場合、ビット線RBLからソース線RSLに向けて抵抗素子R0内に電流が流れる。これにより、抵抗素子R0は低抵抗状態に設定され、抵抗素子R0は論理1の記憶状態になる。なお、書き込み動作の例は、図19で説明し、ベリファイ動作の例は、図20で説明する。
メモリセルアレイ20に対応して、複数のデータ端子I/Oに対応する複数のROMメモリセル12が設けられる場合、複数のROMメモリセル12は、共通のワード線RWL0、RWL1に接続される。そして、書き込み動作において、複数のデータ端子I/Oに対応するROMメモリセル12の抵抗素子R0または抵抗素子R1に、複数のデータ端子I/Oで受けるデータが並列に書き込まれる。この場合、複数のROMメモリセル12に接続される複数のROMコラムスイッチ70の各スイッチ70a-70hがオンする。なお、書き込み動作では、データ端子I/Oの数にかかわりなく、4個のコラム選択信号YDがハイレベルに設定され、ハイレベルに設定されたコラム選択信号YDに接続されたコラムスイッチ30(8個のCMOS伝達ゲート)がオンする。
図12および図13は、図11のメモリセルアレイ20のコラムスイッチ30を制御するコラム制御回路32の一例を示す。コラム制御回路32は、プリデコーダ33、34(図12)と、デコーダ35およびレベルシフタ36(図13)とを有する。
まず、メモリセルアレイ20内のメモリセル10の書き込み動作、ベリファイ動作および読み出し動作(以下、通常動作とも称する)が実行される場合のコラム制御回路32の動作を説明する。通常動作では、書き込み信号WR、ベリファイ信号VRFYおよびROMアクセス信号RACCは、ロウレベルに設定される。
通常動作では、プリデコーダ33は、2ビットのアドレス信号A1、A0をデコードしてプリデコード信号A##Z(A00Z、A01Z、A10Z、A11Z)のいずれかをハイレベル(VDD)に設定する。プリデコード信号A##Zの数字は、アドレス信号A1、A0のビット値を示す。例えば、アドレス信号A1、A0=”01”の場合、プリデコード信号A01Zがハイレベルに設定され、アドレス信号A1、A0=”10”の場合、プリデコード信号A10Zがハイレベルに設定される。
通常動作では、プリデコーダ34は、3ビットのアドレス信号A4、A3、A2をデコードしてプリデコード信号A###Zのいずれかをハイレベル(VDD)に設定する。ここで、プリデコード信号A###Zは、A000Z、A001Z、A010Z、A011Z、A100Z、A101Z、A110Z、A111Zのいずれかであり、「###」は、アドレス信号A4、A3、A2のビット値を示す。例えば、アドレス信号A4、A3、A2=”001”の場合、プリデコード信号A001Zがハイレベルに設定され、アドレス信号A4、A3、A2=”110”の場合、プリデコード信号A110Zがハイレベルに設定される。
図13において、通常動作では、デコーダ35は、プリデコード信号A##Z、A###Zに応じて、32本のプリコラム選択信号pYD(pYD0-pYD31)のいずれかをハイレベル(VDD)に設定する。各プリコラム選択信号pYDを受けるレベルシフタ36は、プリコラム選択信号pYDのハイレベルを電源電圧VDDから電源電圧VPPYに変換し、ハイレベルのコラム選択信号YD(YD0-YD31のいずれか)として出力する。そして、ハイレベルのコラム選択信号YDに接続されたコラムスイッチ30がオンする。通常動作では、ワード線WLのいずれかがハイレベルに設定され、オンされたコラムスイッチ30とハイレベルに設定されたワード線WLとに対応するメモリセル10にデータに対して、書き込み動作、ベリファイ動作または読み出し動作が実行される。
図12に戻って、ROMメモリセル12の書き込み動作が実行される場合のコラム制御回路32の動作を説明する。ROMメモリセル12の書き込み動作では、書き込み信号WRがハイレベル(VDD)に設定され、ベリファイ信号VRFYがロウレベルに設定され、ROMアクセス信号RACCがハイレベル(VDD)に設定される。
ハイレベルの書き込み信号WRとハイレベルのROMアクセス信号RACCとにより、プリデコーダ33のNANDゲート群33aの各NANDゲートの出力は、全てハイレベルに固定される。これにより、プリデコーダ33は、4つのプリデコード信号A00Z、A01Z、A10Z、A11Zを、全てハイレベルに固定する。
また、ハイレベルの書き込み信号WRとハイレベルのROMアクセス信号RACCとにより、プリデコーダ34のNANDゲート群34aの各NANDゲートの出力は、ハイレベルに固定され、プリデコード信号A000Zのみがハイレベルに固定される。図13のデコーダ35は、ハイレベルのプリデコード信号A00Z、A01Z、A10Z、A11Z、A000Zに基づいて、プリコラム選択信号pYD0、pYD1、pYD2、pYD3をハイレベルに設定する。したがって、ROMメモリセル12の書き込み動作では、コラム選択信号YD0、YD1、YD2、YD3が同時にハイレベルに設定される。ROMメモリセル12の書き込み動作が実行される場合の信号の流れは、図19で説明する。
図12に戻って、ROMメモリセル12のベリファイ動作が実行される場合のコラム制御回路32の動作を説明する。ROMメモリセル12のベリファイ動作では、書き込み信号WRがロウレベルに設定され、ベリファイ信号VRFYがハイレベル(VDD)に設定され、ROMアクセス信号RACCがハイレベル(VDD)に設定される。
ハイレベルのベリファイ信号VRFYとハイレベルのROMアクセス信号RACCとにより、プリデコーダ33のNANDゲート群33bの各NANDゲートの出力は、全てハイレベルに固定され、プリデコード信号A00Zのみがハイレベルに固定される。
ベリファイ動作時のプリデコーダ34の動作は、書き込み動作時と同じであり、プリデコーダ34は、プリデコード信号A000Zのみをハイレベルに固定する。図13のデコーダ35は、ハイレベルのプリデコード信号A00Z、A000Zに基づいて、プリコラム選択信号pYD0のみをハイレベルに設定し、コラム選択信号YD0のみがハイレベルに設定される。ROMメモリセル12のベリファイ動作が実行される場合の信号の流れは、図20で説明する。
以上、図12および図13に示すコラム制御回路32により、図11で説明したように、ROMメモリセル12の書き込み動作およびベリファイ動作を実行することができる。
図14は、2個のROMメモリセル12がメモリセルアレイ20に対応して設けられる例を示す。図11と同じ要素については、同じ符号を付し、詳細な説明は省略する。図14は、1つのデータ端子I/Oに対応して設けられる回路を示している。このため、例えば、メモリセルアレイ20が32個のデータ端子I/Oに対応する場合、64個のROMメモリセル12が、メモリセルアレイ20に対応して設けられる。なお、ROMリード回路60およびROMコラムスイッチ70は、ROMメモリセル12毎に設けられる。
データ端子I/O毎に2個のROMメモリセル12がメモリセルアレイ20に対応して設けられる場合、図11に示すROMメモリセル12に加えて、4組のビット線BL/ソース線SLに接続されるROMコラムスイッチ70およびROMメモリセル12が配置される。図14では、図11に示すROMメモリセル12をROMメモリセル12Aで示し、ROMメモリセル12Aと異なるROMメモリセル12をROMメモリセル12Cで示す。
ROMメモリセル12Cは、ROMコラムスイッチ70を介してビット線BL16-BL19およびソース線SL16-SL19に接続される。なお、ROMメモリセル12A、12Cは、ROMコラムスイッチ70を介して、他の4組のビット線BL/ソース線SLにそれぞれ接続されてもよい。
図14は、ROMメモリセル12Cの抵抗素子R0にデータを書き込む例を示しており、太線で示す信号線および回路が書き込み動作のために使用される。ROMメモリセル12Cにデータを書き込む場合、コラム選択信号YD16-YD19がハイレベルに設定されて、ビット線BL16-BL19がグローバルビット線GBLに接続され、ソース線SL16-SL19がグローバルソース線GSLに接続される。
また、書き込み動作では、ROMメモリセル12A、12Cに共通のコラム選択信号RYDW、RYDVWがハイレベルに設定される。これにより、ROMメモリセル12Cに接続されたビット線RBLとソース線RSLとは、ROMコラムスイッチ70を介してビット線BL16-BL19とソース線SL16-SL19とに接続される。そして、ワード線RWL0により選択された抵抗素子R0に電流が流れ、ROMメモリセル12Aの抵抗素子R0にデータが書き込まれる。
コラム選択信号YD0-YD3は、ロウレベルに維持されるため、共通のコラム選択信号RYDW、RYDVWがハイレベルに設定された場合にも、ビット線BL0-BL3およびソース線SL0-SL3に電流は流れない。このため、ROMメモリセル12Cの書き込み動作の実行時に、ROMメモリセル12Aの抵抗素子R0へのデータの書き込みは実行されない。このように、ROMメモリセル12の書き込み動作は、ROMメモリセル12の抵抗素子R0、R1毎に順次実行される。なお、ROMメモリセル12A、12Cは、ROMコラムスイッチ70を介して他の4組のビット線BL/ソース線SLにそれぞれ接続されてもよい。
なお、図14に示すように、メモリセルアレイ20に対応して、複数のデータ端子I/Oに対応する複数のROMメモリセル12が設けられる場合、複数のROMメモリセル12は、共通のワード線RWL0、RWL1に接続される。そして、書き込み動作において、複数のデータ端子I/Oで受けたデータが、データ端子I/Oのそれぞれに対応するROMメモリセル12の抵抗素子R0または抵抗素子R1に並列に書き込まれる。この場合、複数のROMメモリセル12に接続される複数のROMコラムスイッチ70の各スイッチ70a-70hがオンする。なお、書き込み動作では、データ端子I/Oの数にかかわりなく、4つのコラム選択信号YDのみがハイレベルに設定され、ハイレベルに設定されたコラム選択信号YDに接続されたコラムスイッチ30(8個のCMOS伝達ゲート)がオンする。
図15は、図14のメモリセルアレイ20のコラムスイッチ30を制御するコラム制御回路の一例を示す。図12と同じ要素については、同じ符号を付し、詳細な説明は省略する。
プリデコーダ33の回路および動作は、図12と同じであり、図示しないデコーダ35の回路および動作は、図13と同じである。メモリセルアレイ20のメモリセル10にアクセスする通常動作において、図15のプリデコーダ34の動作は、図12の説明と同じである。図15のプリデコーダ34は、アドレス信号A4を受ける図12のNANDゲートの代わりにインバータIVを有する。このため、アドレス信号A4の論理は、ROMメモリセル12の書き込み動作およびベリファイ動作において、マスクされない。
したがって、図15のプリデコーダ34は、ROMメモリセル12の書き込み動作およびベリファイ動作において、アドレス信号A4が論理0のときに、プリデコード信号A000Zをハイレベルに設定する。図15のプリデコーダ34は、アドレス信号A4が論理1のときに、プリデコード信号A100Zをハイレベルに設定する。
図13に示したデコーダ35は、ROMメモリセル12の書き込み動作において、ハイレベルのプリデコード信号A00Z、A01Z、A10Z、A11Z、A000Zを受けたとき、コラム選択信号YD0、YD1、YD2、YD3をハイレベルに設定する。デコーダ35は、ROMメモリセル12の書き込み動作において、ハイレベルのプリデコード信号A00Z、A01Z、A10Z、A11Z、A100Zを受けたとき、図示しないコラム選択信号YD16、YD17、YD18、YD19をハイレベルに設定する。
デコーダ35は、ROMメモリセル12のベリファイ動作において、ハイレベルのプリデコード信号A00Z、A000Zを受けたとき、コラム選択信号YD0をハイレベルに設定する。デコーダ35は、ROMメモリセル12のベリファイ動作において、ハイレベルのプリデコード信号A00Z、A100Zを受けたとき、図示しないコラム選択信号YD16をハイレベルに設定する。これにより、図14に示したように、ROMメモリセル12Cの書き込み動作と、ROMメモリセル12Aまたは12Cベリファイ動作とをそれぞれ実行することができる。
図16および図17は、8個のROMメモリセル12がメモリセルアレイ20に対応して設けられる例を示す。図11および図14と同じ要素については、同じ符号を付し、詳細な説明は省略する。図16および図17では、ROMコラムスイッチ70を介して、8個ある4組のビット線BL/ソース線SLがそれぞれデータ端子I/O毎に8個あるROMメモリセル12のいずれかに接続される。
図16および図17は、図14と同様に、図16のビット線BL16-BL19に対応するROMメモリセル12Cの抵抗素子R0にデータを書き込む例を示しており、太線で示す信号線および回路が書き込み動作のために使用される。図16および図17に示す書き込み動作の状態は、図14の状態と同様である。
図18は、図16および図17のメモリセルアレイ20のコラムスイッチ30を制御するコラム制御回路の一例を示す。図12および図15と同じ要素については、同じ符号を付し、詳細な説明は省略する。
プリデコーダ33の回路および動作は、図12と同じであり、図示しないデコーダ35の回路および動作は、図13と同じである。メモリセルアレイ20のメモリセル10にアクセスする通常動作において、図18のプリデコーダ34の動作は、図12の説明と同じである。図18のプリデコーダ34は、アドレス信号A4、A3、A2を受ける図12のNANDゲートの代わりにインバータIVを有する。このため、アドレス信号A4、A3、A2の論理は、ROMメモリセル12の書き込み動作およびベリファイ動作において、マスクされない。
プリデコーダ33は、ROMメモリセル12の書き込み動作において、プリデコード信号A00Z、A01Z、A10Z、A11Zをハイレベルに設定する。プリデコーダ33は、ROMメモリセル12のベリファイ動作において、プリデコード信号A00Zのみをハイレベルに設定する。
図18のプリデコーダ34は、アドレス信号A4、A3、A2の論理に応じてプリデコード信号A###Z(A000Z-A111Zのいずれか)をハイレベルに設定する。プリデコーダ34の動作は、通常動作、ROMメモリセル12の書き込み動作およびROMメモリセル12のベリファイ動作において同じである。
図13に示したデコーダ35は、ROMメモリセル12の書き込み動作において、ハイレベルのプリデコード信号A###Zに応じて、連続する4つのコラム選択信号YD(例えば、YD0-YD3、YD4-YD7等)をハイレベルに設定する。デコーダ35は、ROMメモリセル12のベリファイ動作において、ハイレベルのプリデコード信号A###Zに応じて、コラム選択信号YD0、YD4、YD8、YD12、YD16、YD20、YD24、YD28のいずれかをハイレベルに設定する。
これにより、8個のROMメモリセル12の各々において、ワード線RWL0(またはRWL1)により選択された抵抗素子R0(またはR1)に書き込み動作およびベリファイ動作を実行することができる。
なお、4個のROMメモリセル12がメモリセルアレイ20に対応して設けられる場合、コラム制御回路32は、図15のアドレス信号A3を受ける図12のNANDゲートの代わりにインバータIVを有する。これにより、各ROMメモリセル12の書き込み動作およびベリファイ動作を実行することができる。
図19は、図2の半導体記憶装置100AのROMメモリセル12の書き込み動作の一例を示す。図11と同様に、太線で示す信号線および回路がROMメモリセル12の書き込み動作のために使用される。図11で説明したように、書き込み動作においてROMメモリセル12は、ROMコラムスイッチ70を介して4組のビット線BL0-BL3/ソース線SL0-SL3に接続される。
図19は、ROMメモリセル12の抵抗素子R0に論理1を書き込む例を示す。この場合、抵抗素子R0をビット線RBLに接続するために、ワード線RWL0がハイレベルに設定される。また、書き込み動作では、コラム選択信号RYDW、RYDVWが、ハイレベルに設定され、ROMコラムスイッチ70の全てのスイッチ70a-70hがオンされる。スイッチ70a-70hのオンにより、ビット線RBLがビット線BL0-BL3に接続され、ソース線RSLがソース線SL0-SL3に接続される。
また、書き込み動作では、コラム選択信号YD0-YD3がハイレベルに設定され、コラム選択信号YD0-YD3を受けるコラムスイッチ30がオンする。コラムスイッチ30のオンにより、ビット線BL0-BL3がグローバルビット線GBLに接続され、ソース線SL0-SL3がグローバルソース線GSLに接続される。さらに、書き込み制御信号WR1がハイレベルに設定され、ライトドライバ40のスイッチ40c、40dがオンし、グローバルビット線GBLは、電源線VPPYに接続され、グローバルソース線GSLは、接地線VSSに接続される。すなわち、グローバルビット線GBLとグローバルソース線GSLとにハイレベルとロウレベルとの書き込み電圧が設定される。
電源線VPPYは、グローバルソース線GSL、ソース線SL0-SL3、RSL、抵抗素子R0、ビット線RBL、BL0-BL3およびグローバルビット線GBLを介して接地線VSSに接続される。そして、抵抗素子R0の一端から他端に書き込み電流が流れることで、抵抗素子R0は低抵抗状態に設定され、抵抗素子R0は論理1の記憶状態になる。
この際、並列に接続された4本のビット線BL0-BL3を介して抵抗素子R0に電流が供給され、並列に接続された4本のソース線SL0-SL3を介して、抵抗素子R0に流れる電流が接地線VSSに引き込まれる。このため、データの書き込みに使用するビット線BLとソース線SLの配線抵抗を下げることができる。例えば、ビット線BLおよびソース線SLをそれぞれ4並列にすることで、並列化しない場合に比べて、ビット線抵抗およびソース線抵抗を4分の1程度まで下げることができる。
また、電流は、並列に接続された4つのスイッチ70a、70b、70c、70dおよび並列に接続された4つのスイッチ70e、70f、70g、70hを介して、電源線VPPYから接地線VSSに流れる。これにより、ROMコラムスイッチ70のオン抵抗を下げることができる。例えば、ROMコラムスイッチ70を4並列にすることで、並列化しない場合に比べて、オン抵抗を4分の1程度まで下げることができる。
この結果、抵抗素子R0に電流を流す経路の電圧降下を抑制することができ、メモリセルアレイ20を挟んでライトドライバ40と反対側に配置されるROMメモリセル12の抵抗素子R0を所望の電流を流して、データを書き込むことができる。換言すれば、通常のメモリセル10の書き込み動作に使用するライトドライバ40を利用してROMメモリセル12にデータを書き込むことができる。また、抵抗素子R0に電流を流す経路の抵抗を下げて、書き込み電流を増やすことができるため、抵抗素子R0を所望の抵抗値に設定するまでの書き込み動作の回数を削減することができる。
これに対して、ライトドライバ40と、1組のビット線BL/ソース線SLを使用してROMメモリセル12の書き込み動作を実行する場合、コラムスイッチ30、70の抵抗や配線抵抗により、電圧降下が発生し、抵抗素子R0への書き込み電流が不足するおそれがある。書き込み電流が不足するにより、書き込み動作とベリファイ動作の回数が増加する場合、書き込み処理時間が長くなってしまう。
なお、抵抗素子R0に論理0を書き込む書き込み動作は、ライトドライバ40のスイッチ40a、40bを、スイッチ40c、40dの代わりにオンさせることを除き、図19に示す状態と同じである。すなわち、論理0の書き込み動作では、グローバルビット線GBLとグローバルソース線GSLとにロウレベルとハイレベルとの書き込み電圧が設定される。この場合、抵抗素子R0の他端から一端に書き込み電流が流れることで、抵抗素子R0は高抵抗状態に設定され、抵抗素子R1は論理0の記憶状態になる。また、抵抗素子R1にデータを書き込む書き込み動作は、ワード線RWL0の代わりにワード線RWL1をハイレベルに設定することを除き、図19に示す状態と同じである。
また、メモリセルアレイ20のメモリセル10にデータを書き込む場合、書き込み対象のメモリセル10に接続された1組のビット線BL/ソース線SLに接続されたコラムスイッチ30がオンされる。したがって、図12および図13で説明したように、ROMメモリセル12の書き込み動作と、メモリセル10の書き込み動作とでは、コラム選択信号YD(YD0-YD31)を生成するコラム制御回路32の動作が異なる。
図20は、図2の半導体記憶装置100AのROMメモリセル12のベリファイ動作の一例を示す。ベリファイ動作は、図19に示した書き込み動作の後、ROMメモリセル12にデータが正常に書き込まれているか否かを判定する動作であり、書き込み動作と同様に、抵抗素子R0、R1毎に実行される。図11および図19と同様に、太線で示す信号線および回路が、ROMメモリセル12のベリファイ動作のために使用される。
図20は、ROMメモリセル12の抵抗素子R0に書き込んだデータの論理を確認する例を示す。この場合、書き込み動作と同様に、抵抗素子R0をビット線RBLに接続するために、ワード線RWL0がハイレベルに設定される。また、ベリファイ動作では、コラム選択信号RYDVWが、ハイレベルに設定され、コラム選択信号RYDWは、ロウレベルに設定される。これにより、ROMコラムスイッチ70のスイッチ70d、70hがオンされ、スイッチ70a-70c、70e-70gはオフされる。スイッチ70d、70hのオンにより、ビット線RBLがビット線BL0に接続され、ソース線RSLがソース線SL0に接続される。
また、ベリファイ動作では、コラム選択信号YD0がハイレベルに設定され、他のコラム選択信号YDはロウレベルに設定される。これにより、コラム選択信号YD0を受けるコラムスイッチ30のみがオンする。コラムスイッチ30のオンにより、ビット線BL0がグローバルビット線GBLに接続され、ソース線SL0がグローバルソース線GSLに接続される。さらに、読み出しイネーブル信号RENがハイレベルに設定されて読み出し回路50のスイッチ50a、50bがオンし、グローバルビット線GBLは、接地線VSSに接続され、グローバルソース線GSLは、センスアンプ52に接続される。
センスアンプ52は、ベリファイ動作時に、グローバルソース線GSLに電源電圧VDD(例えば、1.2V)を出力する。これにより、電源電圧VDDを出力するセンスアンプ52の端子は、グローバルソース線GSL、ソース線SL0、RSL、抵抗素子R0、ビット線RBL、BL0およびグローバルビット線GBLを介して接地線VSSに接続される。そして、抵抗素子R0の他端から一端に読み出し電流が流れることで、センスアンプ52の端子の電圧が低下する。
抵抗素子R0が低抵抗状態に設定されている場合、抵抗素子R0を流れる電流は相対的に大きいため、センスアンプ52の端子の電圧の低下量は大きくなる。一方、抵抗素子R0が高抵抗状態に設定されている場合、抵抗素子R0を流れる電流は相対的に小さいため、センスアンプ52の端子の電圧の低下量は小さくなる。そして、センスアンプ52は、グローバルソース線GSLに接続された端子の端子電圧が参照電圧以下の場合、論理1(低抵抗状態)を判定し、端子電圧が参照電圧より高い場合、論理0(高抵抗状態)を判定する。メモリセル10の読み出し動作およびベリファイ動作は、メモリセル12のベリファイ動作でのセンスアンプ52の動作と同様である。
なお、ROMメモリセル12のベリファイ動作では、メモリセルアレイ20に接続されるワード線WLはロウレベルに設定され、メモリセル10の転送トランジスタTはオフする。しかし、転送トランジスタTに接続されたビット線BLには、非選択状態の転送トランジスタTで発生するオフリーク電流が流れる。図20に示す例では、メモリセルアレイ20に4本のワード線WLが接続されるが、実際のメモリセルアレイ20には、多数のワード線WL(例えば、1024本)が接続されるため、各ビット線BLに流れるオフリーク電流の影響は無視できない場合がある。
この実施形態のベリファイ動作では、1本のビット線BLのみを使用することで、例えば、4本のビット線BLを使用する場合に比べて、オフリーク電流の影響を低減することができ、より正確なベリファイ動作を実行することができる。また、ベリファイ動作時にビット線BL0等に流れる読み出し電流は、書き込み動作時に流れる書き込み電流に比べて小さく、ビット線BL0およびソース線SL0の配線抵抗や、コラムスイッチ30、70の抵抗がベリファイ動作に与える影響は小さい。このため、1本のビット線BL0と1本のソース線SL0を使用することで、抵抗素子R0に記憶された論理を判定することができる。したがって、メモリセルアレイ20を挟んでセンスアンプ52と反対側に配置されるROMメモリセル12の抵抗素子R0のベリファイ動作を実行することができる。換言すれば、メモリセル10の読み出し動作およびベリファイ動作に使用するセンスアンプ52を利用して、ROMメモリセル12のベリファイ動作を実行することができる。
なお、抵抗素子R1のベリファイ動作は、ワード線RWL0の代わりにワード線RWL1をハイレベルに設定して、抵抗素子R1に読み出し電流を流すことを除き、図20に示す状態と同じである。ベリファイ動作で書き込み不足が判定された場合、図19に示した書き込み動作が再度実行される。これにより、各抵抗素子R0、R1の抵抗値を、所望の値に設定することができる。
ROMメモリセル12のベリファイ動作において、データの論理を抵抗素子R0、R1毎に判定することで、ROMメモリセル12の全体でベリファイ動作を実行する場合に比べて、ROMメモリセル12に書き込まれるデータの精度を向上することができる。すなわち、各抵抗素子R0、R1に設定する抵抗値の精度を向上することができる。
なお、メモリセルアレイ20のメモリセル10の書き込み動作、読み出し動作およびベリファイ動作では、コラム選択信号RYDW、RYDVWがロウレベルに設定され、アクセス対象のメモリセル10に接続されたワード線WLがハイレベルに設定される。また、アクセス対象のメモリセル10に接続されたビット線BLおよびソース線SLを選択するためのコラム選択信号YDがハイレベルに設定され、対応するコラムスイッチ30がオンされる。
メモリセル10にデータを書き込む場合、書き込み対象のメモリセル10に接続された1組のビット線BL/ソース線SLに接続されたコラムスイッチ30がオンされる。そして、ライトドライバ40がアクセス対象のメモリセル10の抵抗素子Rに書き込み電流を流すことで、書き込み電流を流す方向に応じて、抵抗素子Rに論理0または論理1が書き込まれる。
メモリセル10の書き込み動作、読み出し動作、ベリファイ動作時にコラム選択信号RYDW、RYDVWをロウレベルに設定し、ROMコラムスイッチ70をオフすることで、ビット線RBLおよびソース線RSLの負荷がメモリセルアレイ20から切り離される。これにより、ビット線RBLおよびソース線RSLの負荷が、メモリセル10のアクセスに影響することを抑止することができる。
ROMメモリセル12には、半導体記憶装置100Aの動作状態を決める重要な情報(内部電圧や内部タイミングを調整するトリミング情報、または不良アドレス等)が記憶される。このため、半導体記憶装置100Aが搭載されるユーザシステムによるROMメモリセル12のアクセスは許可されない。例えば、ROMメモリセル12の書き込み動作とROMメモリセル12のベリファイ動作とは、半導体記憶装置100Aの出荷前に実行される。
例えば、ROMメモリセル12の書き込み動作とROMメモリセル12のベリファイ動作とは、半導体記憶装置100Aの製造工程の1つである試験工程で実行される。試験工程では、半導体記憶装置100Aに所望の値の電源電圧VCC(VPPY)を供給することができる。これにより、ユーザシステム上で半導体記憶装置100Aを動作させる場合に比べて、安定した電源電圧VPPYを半導体記憶装置100Aに供給することができる。したがって、通常のメモリセル10の書き込み動作に使用するライトドライバ40およびセンスアンプ52を利用する場合にも、動作マージンを低下させることなく、ROMメモリセル12の書き込み動作およびベリファイ動作を実行することができる。
図21は、図2の半導体記憶装置100AのROMメモリセル12の読み出し動作の一例を示す。ROMメモリセル12の読み出し動作は、図8および図9で説明したように、ROMリード回路60により実行される。図11、図19および図20と同様に、太線で示す信号線および回路がROMメモリセル12の読み出し動作のために使用される。
センスアンプ52、ビット線BL、RBL、ソース線SLは使用されず、コラムスイッチ30、70はオフ状態に維持される。また、ワード線RWL0、RWL1はロウレベルに維持され、ROMメモリセル12の転送トランジスタT0、T1は、オフ状態に維持される。
図9で説明したように、ROMリード回路60によるROMメモリセル12の読み出し動作は、電源電圧VPPX、VPPYは使用されず、電源電圧VDDのみを使用して実行される。このため、半導体記憶装置100Aの電源の起動時等、電源電圧VPPX、VPPYが規定の電圧に到達していない場合にも、ROMメモリセル12からデータを読み出すことができる。また、相補の論理を記憶する抵抗素子R0、R1からデータを読み出すため、1つの抵抗素子Rに記憶された論理を読み出す場合に比べて、読み出しマージンを向上することができる。ROMメモリセル12の読み出し動作において、ROMコラムスイッチ70がオフされるため、ビット線BLの負荷およびソース線SLの負荷が、読み出し動作に影響することを抑止することができる。
図22は、他の半導体記憶装置の回路の配置の一例を示す。図3と同様の構成については、同じ符号を付し、詳細な説明は省略する。図22に示す半導体記憶装置200Aは、図2に示した半導体記憶装置100Aと同様のメモリセルアレイ20、コラムスイッチ30、ライトドライバ40、読み出し回路50、電源回路80およびデータ入出力回路90を有する。また、半導体記憶装置200Aは、ROMメモリセル12、ROMリード回路60、ROMベリファイ回路202およびROMライトドライバ204を有する。ROMメモリセル12、ROMリード回路60、ROMベリファイ回路202およびROMライトドライバ204は、ROMメモリセル12のアクセス専用の回路ブロックである。
ROMベリファイ回路202は、センスアンプ52の代わりに、ROMメモリセル12のベリファイ動作を実行するためのベリファイセンスアンプを有する。ROMライトドライバ204は、ROMメモリセル12の書き込み動作時に、ライトドライバ40の代わりに、電源電圧VPPYおよび接地電圧VSSをROMメモリセル12に供給する。
データ入出力回路90から電源回路80に出力されるデータ信号DTは、例えば、ROMメモリセル12に書き込むデータおよび電源回路80が生成する内部電圧を調整するためのトリミング情報である。ROMメモリセル12への書き込みデータは、電源回路80を経由して書き込みデータWDTとしてROMライトドライバ204に転送され、ROMメモリセル12に書き込まれる。
図22では、ROMメモリセル12は、メモリセルアレイ20が形成される領域とは異なる専用の回路ブロックに形成される。このため、図22に太い破線枠で示すダミーメモリセルが形成されるダミー領域DMYは、2つの回路群のそれぞれにおいて、2個所ずつ設けられる。ROMメモリセル12のアクセス専用の回路ブロックと、ROMメモリセル12用のダミー領域DMYとが設けられる半導体記憶装置200Aは、図3に示した半導体記憶装置100Aに比べてチップサイズが大きくなる。
以上、図2から図21に示す実施形態においても、図1に示した実施形態と同様の効果を得ることができる。例えば、ROMメモリセル12へのデータの書き込みを、複数のビット線BLおよび複数のソース線SLを使用して実行することで、書き込み電圧の供給経路の抵抗を、単一の供給経路を使用する場合に比べて下げることができる。メモリセル10用のライトドライバ40をROMメモリセル12の書き込み動作に使用することにより、ライトドライバ40からROMメモリセル12までの距離が長くなる場合にも、所望の書き込み電圧を抵抗素子R0、R1に供給することができる。この結果、書き込みマージンを低下させることなく、ROMメモリセル12にデータを書き込むことができる。
メモリセル10用のライトドライバ40と読み出し回路50とを使用して、ROMメモリセル12の書き込み動作とベリファイ動作をそれぞれ実行することで、半導体記憶装置100Aの回路規模を削減することができる。また、ROMメモリセル12の書き込み動作およびベリファイ動作の制御を簡易にすることができる。
ROMメモリセル12の読み出し動作時に、ROMコラムスイッチ70をオフすることで、ビット線BLの負荷およびソース線SLの負荷が、ROMメモリセル12の読み出し動作に影響することを抑止することができる。メモリセル10の書き込み動作時に、ROMコラムスイッチ70をオフすることで、ビット線BLおよびソース線SLにビット線RBLおよびソース線RSLの負荷が接続されることを抑止することができ、書き込み不足等の発生を抑止することができる。
メモリセル10の読み出し動作時およびベリファイ動作時にROMコラムスイッチ70をオフすることで、読み出し動作時およびベリファイ動作時に、ビット線BLおよびソース線SLにビット線RBLおよびソース線RSL等の負荷が接続されることを抑止できる。したがって、読み出し動作時およびベリファイ動作時に、データの判定等に誤りが発生することを抑止することができる。
さらに、図2から図21に示す実施形態では、図8に示したROMリード回路60は、ROMメモリセル12の抵抗素子R0、R1は、ラッチ部61のCMOSインバータ610、611と接地線VSSとの間に直接接続される。そして、ROMリード回路60は、抵抗素子R0、R1に流れる電流の差に応じてROMメモリセル12に記憶されたデータの論理を判定する。これにより、ROMメモリセル12に接続されたワード線RWL0、RWL1およびコラム選択信号RYDVWを駆動せずに、ROMメモリセル12からデータを読み出すことができる。換言すれば、ビット線RBLおよびソース線RSLを使用することなく、ROMメモリセル12からデータを読み出すことができる。したがって、ビット線RBLを使用する場合に比べて、ROMメモリセル12からデータを高速に読み出すことができる。
抵抗素子R0、R1にそれぞれ記憶された相補の論理に対応する電流差に基づいて記憶ノードXC、XTに発生する電圧をラッチ部61で差動増幅するため、1つの抵抗素子Rに記憶された論理を読み出す場合に比べて、読み出しマージンを向上することができる。
また、ROMメモリセル12の読み出し動作において、センスアンプ52を動作させなくてよいため、コラム選択信号YD0および読み出しイネーブル信号RENを駆動しなくてよい。このため、電源電圧VPPX、VPPYを使用することなく、電源電圧VDDのみでROMメモリセル12からデータを読み出すことができる。この結果、例えば、半導体記憶装置100Aの電源の起動時に、電源電圧VPPX、VPPYが規定の電圧に到達していない場合にも、ROMメモリセル12からデータを読み出すことができる。
ROMメモリセル12からデータを読み出す読み出し動作において、ROMリード回路60は、ROMメモリセル12に接続されたワード線RWL0、RWL1を使用しない。このため、図5で説明したように、電源の起動時に、ワード線RWL0、RWL1のハイレベル電圧(選択電圧)である電源電圧VPPXが生成される前に、ROMメモリセル12からデータを読み出すことができる。また、ハイレベルが電源電圧VPPXであるワード線RWLを駆動せずにデータを読み出すことができるため、ワード線RWLを駆動する場合に比べて、読み出し時間を短縮することができる。
ROMメモリセル12のベリファイ動作に1本のビット線BLを使用するため、例えば、4本のビット線BLを使用する場合に比べて、オフリーク電流の影響を低減することができ、より正確なベリファイ動作を実行することができる。また、ベリファイ動作時にビット線BL0等に流れる読み出し電流は、書き込み動作時に流れる書き込み電流に比べて小さいため、ビット線BL0およびソース線SL0の配線抵抗や、コラムスイッチ30、70の抵抗がベリファイ動作に与える影響は小さい。
以上のように、ベリファイ動作では、1本のビット線BL0と1本のソース線SL0を使用することで、抵抗素子R0に記憶された論理を判定することができる。したがって、メモリセルアレイ20を挟んでセンスアンプ52と反対側に配置されるROMメモリセル12の抵抗素子R0のベリファイ動作を実行することができる。換言すれば、メモリセル10の読み出し動作およびベリファイ動作に使用するセンスアンプ52を利用して、ROMメモリセル12のベリファイ動作を実行することができる。
ROMメモリセル12からのデータの読み出し期間は、電源電圧VCC、VPPY、VDD、VPPXが規定の電圧に到達する前に設定される。これにより、電源の起動後に半導体記憶装置100Aを搭載するユーザシステム等によりメモリセル10のアクセスが開始される前に、トリミング情報や不良アドレス等を所定の回路に正しく設定することができる。この結果、半導体記憶装置100Aを誤動作させることなく、メモリセル10に対してデータを読み書きすることができる。
ラッチ信号LATVSSがハイレベルになった後に昇圧回路88を動作させることで、電源電圧VDDが1.2Vより低い期間での電源変動を抑えることができる。これにより、例えば、昇圧回路88の動作の開始に伴い電源変動が発生する場合にも、電源変動が発生する前にROMメモリセル12からのデータの読み出すことができ、ROMメモリセル12からのデータの読み出しマージンが低下することを抑止できる。さらに、ROMメモリセル12からのデータの読み出しを制御するROMリード制御回路86が許可信号VPENを生成することで、読み出しの完了前に昇圧回路88が動作を開始することを抑止することができる。
ROMコラムスイッチ70およびROMメモリセル12を、メモリセル10のレイアウトの繰り返しパターンを利用して形成することで、ROMコラムスイッチ70およびROMメモリセル12を設けることによる面積の増加を最小限にすることができる。また、ダミー領域DMYを、メモリセルアレイ20、ROMコラムスイッチ70およびROMメモリセル12の形成領域の周囲を覆って形成することができる。このため、ROMコラムスイッチ70とメモリセルアレイ20とを互いに離れて配置し、ダミー領域DMYを別々に設ける場合に比べて、ダミーメモリセルのレイアウト面積を削減することができ、半導体記憶装置100Aのチップサイズを削減することができる。
図23は、別の実施形態における半導体記憶装置の回路の配置の一例を示す。図1から図21と同様の要素については、同じ符号を付し、詳細な説明は省略する。図23に示す半導体記憶装置100Bは、チップイメージを示している。
半導体記憶装置100Bは、電源回路80とデータ入出力回路90との間に配置される太い枠で示す2つのメモリコアブロックMCBを有する。各メモリコアブロックMCBは、2つのメモリセルアレイ20と2つのコラムスイッチ30の領域とを有する。センスアンプ52およびライトドライバ40は、2つのメモリセルアレイ20に共有される。ROMメモリセル12の書き込み動作は、ライトドライバ40を利用して実行され、ROMメモリセル12のベリファイ動作は、センスアンプ52を利用して実行される。
また、ROMメモリセル12、ROMコラムスイッチ70およびROMリード回路60は、一方のメモリコアブロックMCBに隣接して設けられる。他方のメモリコアブロックMCBの電源回路80側の空き領域には、他の電源回路や安定化キャパシタ等を配置する領域が割り当てられる。太い破線枠は、ダミーメモリセルが形成されるダミー領域DMYを有する。半導体記憶装置100Bは、8個のダミー領域DMYを示す。
図23に示す半導体記憶装置100Bでは、ROMメモリセル12、ROMコラムスイッチ70およびROMリード回路60が、メモリコアブロックMCBの外側に配置される。これにより、2つのメモリコアブロックMCBの間に太い矢印で示したように、センスアンプ52から両側のメモリセルアレイ20の端までの距離の差を、ライトドライバ40の幅(図の横方向の幅)に抑えることができる。したがって、メモリセル10(図2)のアクセス特性を2つのメモリセルアレイ20でほぼ同じにすることができる。以上、図23においても、図1から図21に示す実施形態と同様の効果を得ることができる。
図24は、他の半導体記憶装置の回路の配置の一例を示す。図3、図22および図23と同様の要素については、同じ符号を付し、詳細な説明は省略する。図24に示す半導体記憶装置200Bは、チップイメージを示している。
半導体記憶装置200Bは、図23に示した半導体記憶装置100Bと同様に、電源回路80とデータ入出力回路90との間に配置された2つのメモリコアブロックMCBを有する。ROMメモリセル12は、図24の一方のメモリコアブロックMCB内に配置され、他の電源回路や安定化キャパシタ等は、他方のメモリコアブロックMCB内に配置される。
ROMメモリセル12およびROMリード回路60は、メモリコアブロックMCB内において、コラムスイッチ30を介してメモリセルアレイ20と反対側に配置される。ROMメモリセル12の書き込み動作は、ライトドライバ40を利用して実行され、ROMメモリセル12のベリファイ動作は、センスアンプ52を利用して実行される。
図24では、メモリセルアレイ20とROMメモリセル12とが連続してレイアウトされないため、ROMメモリセル12の周囲には、太い破線枠で示すように、ROMメモリセル12専用のダミー領域DMYが配置される。この結果、半導体記憶装置200Bには、図23に示した半導体記憶装置100Bより多い10個のダミー領域DMYが形成される。
図24に示す半導体記憶装置200Bでは、ROMメモリセル12およびROMリード回路60が、メモリコアブロックMCB内に配置される。これにより、太い矢印で示すように、センスアンプ52からメモリセルアレイ20の端までの距離は、ROMメモリセル12側のメモリセルアレイ20の方が長くなる。
この場合、メモリセル10(図2)のアクセス特性は、2つのメモリセルアレイ20で異なるおそれがある。例えば、読み出しサイクル時間および書き込みサイクル時間の仕様は、アクセス時間が最も遅いROMメモリセル12に合わせて設定される。このため、半導体記憶装置200Bのアクセス性能は、図23に示した半導体記憶装置100Bのアクセス性能より低くなるおそれがある。
以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲がその精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずである。したがって、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。