【デジタル回路設計(Hardwear)】「実務・実践」NOR-ROM(フラッシュメモリ)の使い方

Hardwear

今日はNOR-ROMについてです。デジタル回路ではよく使用されるメモリーかと思います。各社から様々なNOR-ROMが販売されています。

Serial_NOR-ROM

シリアルは、8もしくは16bitのひとかたまりのデータを一本の信号線で順番に1bitずつ送受信する方式です。

Parallel_NOR-ROM

パラレルは、8もしくは16bitのひとかたまりのデータを複数の信号線(バス)でまとめて送受信する方式です。

ROMとCPUとの接続例を示します。

パラレル方式のROMを見ていきましょう。下がMicron”MT28EW256ABA1HJS-0SIT”のロジックダイアグラムです(データシートから引用しています)

block_diagram

まずは端子の機能を確認していきます。

VCC/VCCQ端子

VCC端子はメイン電源、VCCQはCPUへアウトプットする信号の電圧レベルになります。基本的には共通化で、VCC=VCCQ=3.3Vにすると良いでしょう。

下が電源投入時のシーケンス規格になりますが、VCCとVCCQを同一電源で同時に立ち上げる事により、tVCHVCQH≧0も自動的に満足する事ができます(①のタイミング)

reset_sequence

BYTE#端子

BYTE#はデータバスの信号線の本数を決定する端子です。設定は次の通りです。

  1. “LOW”:x8 bus mode(QD端子の信号線8本)
  2. “HIGH”:x16 bus mode(DQ端子の信号線16本)

8⇔16bitを切り替える必要がなければ、BYTE#端子はVCCもしくはGNDに直接接続しておくと良いです。

RST#端子(リセット)

RST#は電源投入時に重要な端子です。もう一度電源投入時のシーケンス規格をみましょう。②のタイミングのVCC/VCCQ電源が立ち上がる時、RST#端子は”LOW”にしておく必要があります。③のtVCS=300nsの期間はVCC/VCCQ電源が立ち上がった後も、RST#端子を”LOW”にしておかなければなりません(ROMが初期化するのに必要な時間です)

ON-sequence

④でRST#端子の電圧を”HIGH”にする事で、CPUとやり取りする準備がようやく整います。

これらのパワーオン時のシーケンスは大変重要であり、ROHMやRICHOなどの各社から遅延付き機能リセットICが販売されています。下はTIのホームページから引用させて頂きました。

TI_TPS3870-Q1

CE#端子(チップ・イネーブル)

CE#はROMのアクティブ↔︎非アクティブを切り替える端子です。“LOW”でアクティブ、”HIGH”で非アクティブになります。アクティブはCPUとやり取りが可能な状態、非アクティブはDQ端子がHigh-Zになるのでデータのやり取りは出来ません。

  • “LOW”: アクティブ
  • “HIGH”: 非アクティブ

CE#をアクティブにする際に1つ気をつけて下さい。RST#端子を”HIGH”に遷移したあとにtRH=50nsの期間を設けてからCE#を”LOW”にしなければいけません(下のシーケンス図の④です)

ON-sequence2

OE#端子(アウトプット・イネーブル)

OE#は指定されたアドレスに格納されているデータを、DQ端子からCPUに出力の命令を出す端子です。“LOW”で出力、”HIGH”で出力をストップします。ROMからCPUに出力する場合はREAD(リード)、CPUからROMに出力する場合はWRITE(ライト)になります。常にREAD/WRITEの主語はCPUです。理解しておいて下さい。

  • READ(リード): ROM → CPU
  • WRITE(ライト): CPU → ROM

ランダムリードとページリード

READの方法には2通りの方法があります。

  1. RANDOM-READ(ランダムリード)
  2. PAGE-READ(ページリード)

prepare

RANDOM-READ(ランダムリード)

RANDOMは辞書で調べると”任意”という意味です。つまりランダムリードとは、ROMの任意のアドレスに格納されている8もしくは16ビットのデータを1回CPUに送信する方法です。

PAGE-READ(ページリード)

ページリードは複数のアドレスに格納されているデータを連続でCPUへ送信する方法です。連続で送信できる最大容量は256ビットです(x8は32bytes、x16は16words)。

データシートから各アクセス時間を引用します。

• Asynchronous random/page read
 – Page access: 20ns
 – Random access: 70ns

複数のアドレスに格納されているデータを読み出す場合は、ページリードが高速で良いでしょう。

RFU端子

“Reserved for future use”の略です。メーカーが将来機能を拡張する為に予約(確保)している端子やピンの事です。ユーザーは使用できません。端子の処理はフローティングしておく事が推奨されています。

回路図がこちらになります

16bit幅の回路図の例が下記になります。(回路図作成中。もう2、3日お待ちください。。。)

最後に

今回はMicronのNOR-ROMを取り上げましたが、基本的には他メーカーでも同様の仕様となっています。今回の内容が理解できれば、他メーカーのNOR-ROMのハード設計も大丈夫だと思います。

最後までお読み頂きありがとうございました。
引き続きよろしくお願い致します。