46
MachXO2 On-chip Flash memory アクセス ユーザーガイド Sep. 2013 Ver 1.2.7 ドキュメント番号 JUG10_001 1 MachXO2 On-Chip Flash memory 補足説明資料 - TN1204/TN1205/TN1246 補足資料 -

MachXO2 On-Chip Flash memory - テクスター カンパ … On-chip Flash memory アクセス ユーザーガイド Sep. 2013 Ver 1.2.7 ドキュメント番号 JUG10_001

Embed Size (px)

Citation preview

Page 1: MachXO2 On-Chip Flash memory - テクスター カンパ … On-chip Flash memory アクセス ユーザーガイド Sep. 2013 Ver 1.2.7 ドキュメント番号 JUG10_001

MachXO2 On-chip Flash memory アクセス

ユーザーガイド

Sep. 2013 Ver 1.2.7

ドキュメント番号 JUG10_001

1

MachXO2 On-Chip Flash memory

補足説明資料

- TN1204/TN1205/TN1246 補足資料 -

Page 2: MachXO2 On-Chip Flash memory - テクスター カンパ … On-chip Flash memory アクセス ユーザーガイド Sep. 2013 Ver 1.2.7 ドキュメント番号 JUG10_001

MachXO2 On-chip Flash memory アクセス

ユーザーガイド

Sep. 2013 Ver 1.2.7

ドキュメント番号 JUG10_001

2

目次

1 このドキュメントの概要 ····················································· 3

2 On-chip Flash memory アクセスの概要 ································· 4

2.1 On-Chip Flash memory の構成 .............................................................. 4

2.2 On-chip Flash memory へのアクセス経路 ................................................ 4

3 ツール上の設定の注意事項 ············································· 6

3.1 IPexpress での設定 .............................................................................. 6

3.2 Spreadsheet View での設定 ................................................................... 9

4 CFM へのアクセス手順 ·················································· 10

4.1 CFM のプログラム .............................................................................. 10

4.2 CFM データの Read ............................................................................ 14

4.3 コンフィグデータのダウンロード ............................................................ 16

5 UFM へのアクセス手順 ·················································· 18

5.1 UFM のプログラム .............................................................................. 18

5.2 UFM データの Read ............................................................................ 22

6 各種 I/Fからのアクセス波形 ············································ 25

6.1 Wishboneバスからのアクセス波形 ........................................................ 25

6.1.1 Wishbone バスから CFM/UFMへのアクセスルール .................................... 25

6.1.2 各種アクセス波形サンプル ......................................................................... 26

6.2 I2C からのアクセス波形 ...................................................................... 32

6.2.1 I2C から CFM/UFMへのアクセスルール .................................................... 32

6.2.2 I2C からのアクセス波形サンプル ................................................................ 32

6.3 SPI からのアクセス波形 ....................................................................... 34

6.3.1 SPI から CFM/UFMへのアクセスルール .................................................... 34

6.3.2 SPI からのアクセス波形サンプル................................................................. 34

6.3.3 データの Read(CFM) ................................................................................. 35

7 EFB のシミュレーション ··················································· 36

7.1 テストベンチ作成時の注意点 ............................................................... 36

7.2 I2Cマクロの入出力信号...................................................................... 37

7.3 Wishboneバスへの入力データ............................................................. 38

8 Feature Rowについて ···················································· 39

9 その他注意事項 ··························································· 42

10 改訂履歴 ····························································· 46

Page 3: MachXO2 On-Chip Flash memory - テクスター カンパ … On-chip Flash memory アクセス ユーザーガイド Sep. 2013 Ver 1.2.7 ドキュメント番号 JUG10_001

MachXO2 On-chip Flash memory アクセス

ユーザーガイド

Sep. 2013 Ver 1.2.7

ドキュメント番号 JUG10_001

3

1 このドキュメントの概要

このドキュメントでは、MachXO2 のプログラミングとコンフィグレーションについて記載された TN1204、及び内

蔵されている Flash memory へのアクセス方法について記載された TN1205/TN1246 の両ドキュメントについ

て、補足情報を説明します。基本動作やコマンド・オペランド等の詳細については、下記の

TN1204/1205/TN1246に掲載いたしておりますので、必ずご確認下さい。

TN1204 : MachXO2 プログラミングとコンフィグレーション使用ガイド

TN1205 : MachXO2ユーザフラッシュメモリとハードマクロ制御機能の使用方法

TN1246 : (日本語タイトル)

Page 4: MachXO2 On-Chip Flash memory - テクスター カンパ … On-chip Flash memory アクセス ユーザーガイド Sep. 2013 Ver 1.2.7 ドキュメント番号 JUG10_001

MachXO2 On-chip Flash memory アクセス

ユーザーガイド

Sep. 2013 Ver 1.2.7

ドキュメント番号 JUG10_001

4

2 On-chip Flash memory アクセスの概要 2.1 On-Chip Flash memoryの構成

On-chip Flash memoryは、大きく3つの領域に分かれています。

1つ目はコンフィグレーション用のデータを格納する領域(Configuration Flash Memory 以下 CFM)、2つ目は

ユーザが任意のデータを Program/Read するために使用できる領域(User Flash Memory 以下 UFM)、3つ目

は特定用途(I2C アドレスや Trace ID、セキュリティ等)のために使用できる領域です(Feature Row 9章)。各デ

バイスの CFM/UFMページサイズについては、TN1204/1205 を参照下さい。

図 2-1 On-chip Flash メモリの構成

2.2 On-chip Flash memory へのアクセス経路

MachXO2には、Embedded Functional Block(以下 EFB)と呼ばれるハードマクロにて、On-chip Flash memory

を含む複数のハードマクロが搭載されており、Wishbone バスで接続されています(図 2-2)。 したがって

On-chip Flash memoryへのアクセスもWishboneバス経由で行います。

図 2-2 MachXO2 ハードマクロ間の接続

CFMセクター0 (コンフィグレーション用フラッシュメモリ)

UFM(ユーザ用フラッシュメモリ)

フィーチャ行

USERCODE

セクター1

EFB

Page 5: MachXO2 On-Chip Flash memory - テクスター カンパ … On-chip Flash memory アクセス ユーザーガイド Sep. 2013 Ver 1.2.7 ドキュメント番号 JUG10_001

MachXO2 On-chip Flash memory アクセス

ユーザーガイド

Sep. 2013 Ver 1.2.7

ドキュメント番号 JUG10_001

5

Wishboneバスには複数の I/F(ペリフェラル)が接続されていますが、On-Chip Flash memoryにアクセスできる

のは以下の 3つのみです。Secondary I2Cからは、On-Chip Flash memoryにアクセスできません。

・Primary I2C

・Slave-SPI

・Wishbone I/F(ユーザーロジックとWishboneバス間の I/F)

各 I/Fからのアクセス方法については、4章以降で説明します。

Page 6: MachXO2 On-Chip Flash memory - テクスター カンパ … On-chip Flash memory アクセス ユーザーガイド Sep. 2013 Ver 1.2.7 ドキュメント番号 JUG10_001

MachXO2 On-chip Flash memory アクセス

ユーザーガイド

Sep. 2013 Ver 1.2.7

ドキュメント番号 JUG10_001

6

3 ツール上の設定の注意事項 On-chip Flash memoryにアクセスするには、ツール上での設定が必要になります。

ツール上の設定は2種類あり、1つは「Spreadsheet View による SPI/I2C ポートのアクティブ化」、もう1つは

「IPexpressによるデザインへの EFBマクロのインスタンス」です。必要な設定は、アクセス先(Flash memory内の

使用する領域)やアクセス元の種類によって決まります(表 3-1)。なお、EFB を明示的にインスタンスした場合、

インスタンスにより有効化されたポート設定はグレーアウトし、自動的に Enable と表示され変更できません。

表 3-1 On-chip Flash memory アクセスとツールの設定

アクセス先 アクセス元 モード設定

(Spreadsheet View)

EFB インスタンス

(IPexpress) コメント

CFM SPI / I2C 必要 不要 コンフィグイメージの更新

WB 不要 必要 可能ですが推奨しません

UFM SPI / I2C 不要 必要

WB 不要 必要

3.1 IPexpressでの設定

UFM領域にアクセスする場合、またはWishbone I/F から On-chip Flash memory にアクセスする場合は、デ

ザインに EFB モジュールを組み込む必要があります。

EFB はモジュール生成プログラム[IPexpress]を使用して生成します。IPexpress は、Lattice Diamond のツー

ルバーの アイコンをクリックすると起動します。

図 3-1 IPexpressの起動

Page 7: MachXO2 On-Chip Flash memory - テクスター カンパ … On-chip Flash memory アクセス ユーザーガイド Sep. 2013 Ver 1.2.7 ドキュメント番号 JUG10_001

MachXO2 On-chip Flash memory アクセス

ユーザーガイド

Sep. 2013 Ver 1.2.7

ドキュメント番号 JUG10_001

7

IPexpress の左側のパネルから[EFB]を選択すると、右側のパネルへの入力がアクティブになります。[File

Name]欄にファイル(=モジュール)名を入力し、[Module Output]欄で出力する HDL ソースのタイプ(VHDL or

Verilog HDL)を選択します。この2つを入力するとパネル右下の[Customize]ボタンがアクティブになるのでク

リックすると、EFBの設定ウインドウが起動します。

起動した直後は[EFB Enables]タブだけがアクティブになっています。まずこのタブで使用する I/F の選択を

行います。I/F名とチェックボックスが表示されているので、使用する I/Fのチェックボックスにチェックを入れま

す(図 3-2)。

UFMにアクセスする場合は、必ず[User Flash Memory]にチェックを入れてください。

-----------------------------------------------------------------------------------------

・1つ以上の I/Fにチェックが入っていると、モジュールにその I/F と Wishbone I/Fが追加されます。

・I2C から On-chip Flash memoryにアクセスする場合、かならず[Primary]を選択してください。

[Secondary]からは On-chip Flash memoryにはアクセスできません。

-----------------------------------------------------------------------------------------

図 3-2 ハードマクロ選択タブ

Page 8: MachXO2 On-Chip Flash memory - テクスター カンパ … On-chip Flash memory アクセス ユーザーガイド Sep. 2013 Ver 1.2.7 ドキュメント番号 JUG10_001

MachXO2 On-chip Flash memory アクセス

ユーザーガイド

Sep. 2013 Ver 1.2.7

ドキュメント番号 JUG10_001

8

[User Flash Memory]にチェックが入っていると、[UFM]タブがアクティブになります。このタブでは使用する

ページ数と UFMの初期値を設定できます。

-----------------------------------------------------------------------------------------

・デバイスが変わると使用できるページ数や最小ページアドレスも変わります。必ず Lattice Diamond で使用

するデバイスを選択した状態で設定を行ってください。また、使用するデバイスを変える場合は、必ず EFB

を再生成してください。

-----------------------------------------------------------------------------------------

図 3-3 UFMの設定

ページ数は[Enter Number of Pages]欄に入力します。デフォルトは1ページです。使用するページ数を入力すると、

[Initialization Data Starts at Page]欄にアクセス可能な先頭ページ番号が表示されます。UFMへはページ番号を指

定してアクセスするので、この先頭ページ番号は記録しておいてください。

ページ数の次は UFMの初期値を設定します。デフォルトでは[User Flash memory is Initialized With all 0s]

にチェックが入っており、初期値は全て 0 になります。0 以外の初期値を設定したい場合は、Upload User

Flash Memory Initialization Data File]にチェックを入れ、その下の欄で初期値を記述したファイルを指定しま

す。

Page 9: MachXO2 On-Chip Flash memory - テクスター カンパ … On-chip Flash memory アクセス ユーザーガイド Sep. 2013 Ver 1.2.7 ドキュメント番号 JUG10_001

MachXO2 On-chip Flash memory アクセス

ユーザーガイド

Sep. 2013 Ver 1.2.7

ドキュメント番号 JUG10_001

9

3.2 Spreadsheet View での設定

使用するのが CFMのみで、かつアクセス元が I2Cか SPIの場合(Wishbone I/F を使用しない場合)は、デザ

インに EFB を組み込むのではなくツール上で I2C または SPIをイネーブルにする設定を行います。

設定は Spreadsheet View で行います。Spreadsheet View は Lattice Diamondのツールバーから アイコ

ンをクリックすると起動します。Spreadsheet View は複数のタブから構成されています。ポートのイネーブル設

定は[Global Preference]タブにあります。 [SLAVE_SPI_PORT]が SPIポートのイネーブル設定、[I2C_PORT]が

I2C ポートのイネーブル設定です。CFM へのアクセスに使用するポートを[ENABLE]に設定してください(図

3-4)。

図 3-4 Spreadsheet Viewの設定

Page 10: MachXO2 On-Chip Flash memory - テクスター カンパ … On-chip Flash memory アクセス ユーザーガイド Sep. 2013 Ver 1.2.7 ドキュメント番号 JUG10_001

MachXO2 On-chip Flash memory アクセス

ユーザーガイド

Sep. 2013 Ver 1.2.7

ドキュメント番号 JUG10_001

10

4 CFMへのアクセス手順 4.1 CFMのプログラム

CFMにコンフィグデータをプログラムするには、図 4-1の手順で行います。

図 4-1 CFMデータプログラム手順

各種 I/F と CFM間のアクセス有効化

CFM へのアクセスを開始する際に必ず行います。アクセスには、ロジック部分の動作を強制的に停止させ

てアクセスを行うダイレクトモードと、ロジックは動作させたままアクセスを行うトランスペアレントモードの 2 つ

があり、それぞれのモード用に有効化コマンドが用意されています。

表 4-1 I/Fの有効化コマンド

コマンド名 コマンド

(1byte)

オペランド

(3byte)

Write Data

Read Data 備考

isc_enable 0xC6 0x08, 0x00, 0x00 -- -- ダイレクトモード

lsc_enable_x 0x74 0x08, 0x00, 0x00 -- -- トランスペアレントモード

Page 11: MachXO2 On-Chip Flash memory - テクスター カンパ … On-chip Flash memory アクセス ユーザーガイド Sep. 2013 Ver 1.2.7 ドキュメント番号 JUG10_001

MachXO2 On-chip Flash memory アクセス

ユーザーガイド

Sep. 2013 Ver 1.2.7

ドキュメント番号 JUG10_001

11

データの消去

On-Chip flash memory のデータを消去します。Flash memoryはその構造上、「データの上書き」が出来な

いためプログラム前には必ずデータの消去を行う必要があります。

表 4-2 Erase Flash コマンド

コマンド名 コマンド

(1byte)

オペランド

(3byte)

Write Data

Read Data 備考

erase_flash 0x0E 下記参照 -- -- 消去対象をオペランドで選択

※ オペランド : 0000 ucfs 0000 00000 0000 0000 (バイナリ表記 3byte)

u : UFMセクタを消去対象 (0 : 消去しない、 1 : 消去する)

c : CFMセクタを消去対象 (0 : 消去しない、 1 : 消去する)

f : Featureセクタを消去対象 (0 : 消去しない、 1 : 消去する)

s : SRAMセクタを消去対象 (0 : 消去しない、 1 : 消去する) 注)

消去対象はオペランド 1byte目の下位 4bitで指定します。下記に例を示します。デバイスをすべて消去する場

合、下記例 1を使用してください。

例 1. command 0x0E + operand 0x0E, 0x00, 0x00 UFM/CFM/Feature Rowすべてを消去

例 2. command 0x0E + operand 0x0C, 0x00, 0x00 UFM と CFG の両 セ ク タ消去

例 3. command 0x0E + operand 0x04, 0x00, 0x00 CFG セ ク タのみ消去

例 4. command 0x0E + operand 0x08, 0x00, 0x00 UFM セ ク タのみ消去

例 5. command 0x0E + operand 0x01, 0x00, 0x00 SRAM セ ク タのみ消去

注) 通常 SRAMを選択して意図的に消去する必要はございません。SRAMとその他の領域は、同時にイレース指定

して消去できません。また SRAM をイレース対象とする為には、表 4-1 の isc_enable コマンドでダイレクトモード(0xC6)

を使用し、付随するオペランドには 0x08, 0x00, 0x00 ではなく、0x00, 0x00, 0x00 を指定する必要があります。

Page 12: MachXO2 On-Chip Flash memory - テクスター カンパ … On-chip Flash memory アクセス ユーザーガイド Sep. 2013 Ver 1.2.7 ドキュメント番号 JUG10_001

MachXO2 On-chip Flash memory アクセス

ユーザーガイド

Sep. 2013 Ver 1.2.7

ドキュメント番号 JUG10_001

12

消去完了の確認

消去コマンド入力からデータ消去の完了までは時間がかかります。プログラムは消去完了後にしか行えな

いので、プログラムコマンド入力前に消去の完了を確認する必要があります。データの消去を確認するため

には、On-chip Flash memory内の[busyフラグ]を readして値をチェックします。[busyフラグ]=0が消去完了

を表し、[busyフラグ]=1は、まだ消去中であることを表します。

[busyフラグ]を readするコマンドは2つあります。1つは[busyフラグ]のみを readする[check_busy]コマンド、

もう1つは[busyフラグ]と一緒に内部の各種ステータスのフラグを readする[read_status]コマンドです。

表 4-3 busyフラグ確認コマンド

コマンド名 コマンド

(1byte)

オペランド

(3byte)

Write Data

Read Data 備考

check_busy 0xF0 0x00, 0x00, 0x00 -- 8bit MSB が busy フラグ

read_status 0x3C 0x00, 0x00, 0x00 -- 32bit 上位データから出力される。

Read data[31:0]のビット[12]

が busy フラグ。

なお、データの消去は最大でも5秒で完了するため、消去コマンド入力から5秒後以降であれば、確認コマ

ンドをスキップして次のコマンドを実行しても構いません。

アドレスの初期化

プログラム前にページアドレスの初期化を行います。

表 4-4 アドレスの初期化コマンド

コマンド名 コマンド

(1byte)

オペランド

(3byte)

Write Data

Read Data 備考

init_address 0x46 0x00, 0x00, 0x00 -- -- ---

データのプログラム

1 ページ(16byte)分のデータのプログラムを行います。ページアドレスはプログラム実行時に自動的にインク

リメントされます。

表 4-5 ページプログラム & アドレスインクリメントコマンド

コマンド名 コマンド

(1byte)

オペランド

(3byte)

Write Data

Read Data 備考

prog_incr_nv 0x70 0x00, 0x00, 0x00 16byte -- ページアドレスは自動的に

インクリメントされる

1回のコマンド実行で1ページプログラムします。全てのデータをプログラムするには、必要なページ数分コ

マンドを繰り返す必要があります。

Page 13: MachXO2 On-Chip Flash memory - テクスター カンパ … On-chip Flash memory アクセス ユーザーガイド Sep. 2013 Ver 1.2.7 ドキュメント番号 JUG10_001

MachXO2 On-chip Flash memory アクセス

ユーザーガイド

Sep. 2013 Ver 1.2.7

ドキュメント番号 JUG10_001

13

プログラム完了の確認

データの消去と同じく、プログラムもコマンド入力から完了まで時間がかかります。このためデータの消去の

場合と同様に、次のページプログラム実行前に[busy フラグ]をチェックして処理状況を確認する必要があり

ます。使用するコマンドも消去の確認と同じです(表 4-3)。

プログラム完了フラグの設定

全てのデータのプログラムが完了したら、デバイスにそれを認識させるためのフラグを設定します。

表 4-6 コンフィグデータプログラム完フラグ設定コマンド

コマンド名 コマンド

(1byte)

オペランド

(3byte)

Write Data

Read Data 備考

prog_done 0x5E 0x00, 0x00, 0x00 -- --

各 I/F と CFM間のアクセス無効化

プログラムが完了したら、各 I/FからのCFMへのアクセスを無効化します。有効化の場合と異なりコマンドは

1つ(モードに依存しない)です。

表 4-7 アクセス無効化コマンド

コマンド名 コマンド

(1byte)

オペランド

(3byte)

Write Data

Read Data 備考

isc_disable 0x26 0x00, 0x00 -- --

バイパス

各 I/F と CFM間のアクセス無効化後、続けて下記バイパスコマンドも必要です。

表 4-8 バイパスコマンド

コマンド名 コマンド

(1byte)

オペランド

(3byte)

Write Data

Read Data 備考

bypass 0xFF 0xFF, 0xFF, 0xFF -- --

プログラム完了後に引き続きデータの read等を行う場合は、アクセス無効化とバイパスはスキップ可能。

Page 14: MachXO2 On-Chip Flash memory - テクスター カンパ … On-chip Flash memory アクセス ユーザーガイド Sep. 2013 Ver 1.2.7 ドキュメント番号 JUG10_001

MachXO2 On-chip Flash memory アクセス

ユーザーガイド

Sep. 2013 Ver 1.2.7

ドキュメント番号 JUG10_001

14

4.2 CFMデータの Read

CFMのデータを Read するには、図 4-2の手順で行います。

図 4-2 CFMデータ Read手順

各種 I/F と CFM間のアクセス有効化

CFM へのアクセスを開始する際に必ず行います。アクセスには、ロジック部分の動作を強制的に停止させ

てアクセスを行うダイレクトモードと、ロジックは動作させたままアクセスを行うトランスペアレントモードの2つ

があり、それぞれのモード用に有効化コマンドが用意されています。

表 4-9 I/Fの有効化コマンド

コマンド名 コマンド

(1byte)

オペランド

(3byte)

Write Data

Read Data 備考

isc_enable 0xC6 0x08, 0x00, 0x00 -- -- ダイレクトモード

lsc_enable_x 0x74 0x08, 0x00, 0x00 -- -- トランスペアレントモード

アドレスの初期化

Read コマンド実行前にページアドレスの初期化を行います。

表 4-10 アドレスの初期化コマンド

コマンド名 コマンド

(1byte)

オペランド

(3byte)

Write Data

Read Data 備考

init_address 0x46 0x00, 0x00, 0x00 -- -- ---

Page 15: MachXO2 On-Chip Flash memory - テクスター カンパ … On-chip Flash memory アクセス ユーザーガイド Sep. 2013 Ver 1.2.7 ドキュメント番号 JUG10_001

MachXO2 On-chip Flash memory アクセス

ユーザーガイド

Sep. 2013 Ver 1.2.7

ドキュメント番号 JUG10_001

15

データの Read

Read はページ単位で行いますが、複数ページをまとめて Read することが出来ます。リードデータの指定は

オペランドによる詳細設定が必要です。

表 4-11 Read & アドレスインクリメントコマンド

コマンド名 コマンド

(1byte)

オペランド

(3byte)

Write Data

Read Data 備考

read_incr_nv 0x73 下記詳細

--- 下記詳細 ダミーデータ設定とリード

ページ数の関係に注意

※ オペランド : 0001 0000 00pp pppp pppp pppp (バイナリ表記 3byte) WISHBONE/SPI時

: 0000 0000 00pp pppp pppp pppp (バイナリ表記 3byte) WISHBONE/SPI/I2C 時

pp…pp : リードするページ数を指定。1ページの場合、読み出すページ数(つまり1)。1以上

の場合、読み出すページ数+1

I2C ではオペランドの 1バイト目に注意。WISHBONE側の最大読み出し速度は 36MHzです。

各 I/F と CFM間のアクセス無効化

データの Read が完了したら、各 I/F からの CFM へのアクセスを無効化します。有効化の場合と異なりコマ

ンドは1つ(モードに依存しない)です。

表 4-12 アクセス無効化コマンド

コマンド名 コマンド

(1byte)

オペランド

(3byte)

Write Data

Read Data 備考

isc_disable 0x26 0x00, 0x00 -- --

バイパス

各 I/F と CFM間のアクセス無効化後、続けて下記バイパスコマンドも必要です。

表 4-13 バイパスコマンド

コマンド名 コマンド

(1byte)

オペランド

(3byte)

Write Data

Read Data 備考

bypass 0xFF 0xFF, 0xFF, 0xFF -- --

Page 16: MachXO2 On-Chip Flash memory - テクスター カンパ … On-chip Flash memory アクセス ユーザーガイド Sep. 2013 Ver 1.2.7 ドキュメント番号 JUG10_001

MachXO2 On-chip Flash memory アクセス

ユーザーガイド

Sep. 2013 Ver 1.2.7

ドキュメント番号 JUG10_001

16

4.3 コンフィグデータのダウンロード

CFM に書き込んだデータの SRAM 領域へのダウンロード(コンフィグレーション)は、表 4-15(後述)の refresh

コマンドを使用し図 4-3の手順で行います。図 4-3の手順の代わりに、XO2デバイスの電源をOFF-ONする

ことでも、CFMに書き込んだデータを SRAM領域へダウンロードすることが可能です。

図 4-3 データダウンロード手順

Page 17: MachXO2 On-Chip Flash memory - テクスター カンパ … On-chip Flash memory アクセス ユーザーガイド Sep. 2013 Ver 1.2.7 ドキュメント番号 JUG10_001

MachXO2 On-chip Flash memory アクセス

ユーザーガイド

Sep. 2013 Ver 1.2.7

ドキュメント番号 JUG10_001

17

各種 I/F と CFM間のアクセス有効化

CFM へのアクセスを開始する際に必ず行います。アクセスには、ロジック部分の動作を強制的に停止させ

てアクセスを行うダイレクトモードと、ロジックは動作させたままアクセスを行うトランスペアレントモードの 2 つ

があり、それぞれのモード用に有効化コマンドが用意されています。

表 4-14 I/Fの有効化コマンド

コマンド名 コマンド

(1byte)

オペランド

(3byte)

Write Data

Read Data 備考

isc_enable 0xC6 0x08, 0x00, 0x00 -- -- ダイレクトモード

lsc_enable_x 0x74 0x08, 0x00, 0x00 -- -- トランスペアレントモード

ダウンロード

CFMからコンフィグ SRAMにデータをダウンロードします。

表 4-15 アドレスの初期化コマンド

コマンド名 コマンド

(1byte)

オペランド

(3byte)

Write Data

Read Data 備考

refresh 0x79 0x00, 0x00 -- -- ---

各 I/F と CFM間のアクセス無効化

データの Readが完了したら、各 I/F からの CFMへのアクセスを無効化します。有効化の場合と異なりコマ

ンドは1つ(モードに依存しない)です。

表 4-16 アクセス無効化コマンド

コマンド名 コマンド

(1byte)

オペランド

(3byte)

Write Data

Read Data 備考

isc_disable 0x26 0x00, 0x00 -- --

バイパス

各 I/F と CFM間のアクセス無効化後、続けて下記バイパスコマンドも必要です。

表 4-17 バイパスコマンド

コマンド名 コマンド

(1byte)

オペランド

(3byte)

Write Data

Read Data 備考

bypass 0xFF 0xFF, 0xFF, 0xFF -- --

Page 18: MachXO2 On-Chip Flash memory - テクスター カンパ … On-chip Flash memory アクセス ユーザーガイド Sep. 2013 Ver 1.2.7 ドキュメント番号 JUG10_001

MachXO2 On-chip Flash memory アクセス

ユーザーガイド

Sep. 2013 Ver 1.2.7

ドキュメント番号 JUG10_001

18

5 UFM へのアクセス手順 5.1 UFMのプログラム

UFMにデータをプログラムするには、図 5-1の手順で行います。

図 5-1 UFMデータプログラムの手順

各種 I/F と UFM間のアクセス有効化

UFM へのアクセスを開始する際に必ず行います。アクセスには、ロジック部分の動作を強制的に停止させ

てアクセスを行うダイレクトモードと、ロジックは動作させたままアクセスを行うトランスペアレントモードの2つ

があり、それぞれのモード用に有効化コマンドが用意されています。

表 5-1 I/Fの有効化コマンド

コマンド名 コマンド

(1byte)

オペランド

(3byte)

Write Data

Read Data 備考

isc_enable 0xC6 0x08, 0x00, 0x00 -- -- ダイレクトモード

lsc_enable_x 0x74 0x08, 0x00, 0x00 -- -- トランスペアレントモード

Page 19: MachXO2 On-Chip Flash memory - テクスター カンパ … On-chip Flash memory アクセス ユーザーガイド Sep. 2013 Ver 1.2.7 ドキュメント番号 JUG10_001

MachXO2 On-chip Flash memory アクセス

ユーザーガイド

Sep. 2013 Ver 1.2.7

ドキュメント番号 JUG10_001

19

データの消去

On-Chip flash memoryの UFM領域のデータ全てを消去します。Flash memory はその構造上、「データの

上書き」が出来ないため、プログラム前には必ずデータの消去を行う必要があります。UFM を消去する場

合、UFM消去専用のコマンド(0xCB)を使用する方法と、Erase Flash コマンド(0x0E)を使用しオペランドで

UFMを選択(0x08, 0x00, 0x00)する方法があります。

-------------------------------------------------------------------------------------------

・ページ単位の消去はできません、UFM の全てのページのデータが消去されます。特定のページのみ消去

したい場合や、特定のページデータのみ書き換えたい場合、UFMにプログラムされている必要なデータを、

内蔵 SRAM メモリ(Embedded Block RAM)等に一時退避し、UFM 全消去後書き戻す工夫が必要です。

-----------------------------------------------------------------------------------------------

表 5-2 Erase UFM コマンド

コマンド名 コマンド

(1byte)

オペランド

(3byte)

Write Data

Read Data 備考

Erase UFM 0xCB 0x00, 0x00, 0x00 -- -- UFM 領域の全データ消去

表 5-3 Erase Flash コマンド

コマンド名 コマンド

(1byte)

オペランド

(3byte)

Write Data

Read Data 備考

erase_flash 0x0E 下記参照 -- -- 消去対象をオペランドで選択

※ オペランド : 0000 ucfs 0000 00000 0000 0000 (バイナリ表記 3byte)

u : UFMセクタを消去対象 (0 : 消去しない、 1 : 消去する)

c : CFMセクタを消去対象 (0 : 消去しない、 1 : 消去する)

f : Featureセクタを消去対象 (0 : 消去しない、 1 : 消去する)

s : SRAMセクタを消去対象 (0 : 消去しない、 1 : 消去する) 注)

消去対象はオペランド 1byte 目の下位 4bit で指定します。下記に例を示します。UFM のみを消去する場合、

下記例 4を使用してください。

例 1. command 0x0E + operand 0x0E, 0x00, 0x00 UFM/CFM/Feature Rowすべてを消去

例 2. command 0x0E + operand 0x0C, 0x00, 0x00 UFM と CFG の両 セ ク タ消去

例 3. command 0x0E + operand 0x04, 0x00, 0x00 CFG セ ク タのみ消去

例 4. command 0x0E + operand 0x08, 0x00, 0x00 UFM セ ク タのみ消去

例 5. command 0x0E + operand 0x01, 0x00, 0x00 SRAM セ ク タのみ消去

注) 通常 SRAMを選択して意図的に消去する必要はございません。SRAMとその他の領域は、同時にイレース指定

して消去できません。また SRAM をイレース対象とする為には、表 5-1 の isc_enable コマンドでダイレクトモード(0xC6)

を使用し、付随するオペランドには 0x08, 0x00, 0x00 ではなく、0x00, 0x00, 0x00 を指定する必要があります。

Page 20: MachXO2 On-Chip Flash memory - テクスター カンパ … On-chip Flash memory アクセス ユーザーガイド Sep. 2013 Ver 1.2.7 ドキュメント番号 JUG10_001

MachXO2 On-chip Flash memory アクセス

ユーザーガイド

Sep. 2013 Ver 1.2.7

ドキュメント番号 JUG10_001

20

消去完了の確認

消去コマンド入力からデータ消去の完了までは時間がかかります。プログラムは消去完了後にしか行えな

いので、プログラムコマンド入力前に消去の完了を確認する必要があります。データの消去を確認するため

には、On-chip Flash memory内の[busyフラグ]を readして値をチェックします。[busyフラグ]=0が消去完了

を表し、[busyフラグ]=1は、まだ消去中であることを表します。

[busyフラグ]を readするコマンドは2つあります。1つは[busyフラグ]のみを readする[check_busy]コマンド、

もう1つは[busyフラグ]と一緒に内部の各種ステータスのフラグを readする[read_status]コマンドです。

表 5-4 busyフラグ確認コマンド

コマンド名 コマンド

(1byte)

オペランド

(3byte)

Write Data

Read Data 備考

check_busy 0xF0 0x00, 0x00, 0x00 -- 8bit MSB が busy フラグ

read_status 0x3C 0x00, 0x00, 0x00 -- 32bit 上位データから出力される。

Read data[31:0]のビット[12]

が busy フラグ。

なお、データの消去は最大でも5秒で完了するため、消去コマンド入力から5秒後以降であれば、確認コマ

ンドをスキップして次のコマンドを実行しても構いません。

Program 開始アドレスの指定

プログラム前にページアドレスの指定を行います。

表 5-5 アドレスの初期化コマンド

コマンド名 コマンド

(1byte)

オペランド

(3byte)

Write Data

Read Data 備考

direct_address 0xB4 0x00, 0x00, 0x00 0x40, +

address

3byte(内

14bit 使用)

-- ページアドレスを指定

データのプログラム

1 ページ(16byte)分のデータのプログラムを行います。ページアドレスはプログラム実行時に自動的にインク

リメントされます。

表 5-6 ページプログラム & アドレスインクリメントコマンド

コマンド名 コマンド

(1byte)

オペランド

(3byte)

Write Data

Read Data 備考

prog_incr_nv 0xC9 0x00, 0x00, 0x00 16byte -- ページアドレスは自動的に

インクリメントされる

1回のコマンド実行で1ページプログラムします。全てのデータをプログラムするには、必要なページ数分コ

マンドを繰り返す必要があります。

Page 21: MachXO2 On-Chip Flash memory - テクスター カンパ … On-chip Flash memory アクセス ユーザーガイド Sep. 2013 Ver 1.2.7 ドキュメント番号 JUG10_001

MachXO2 On-chip Flash memory アクセス

ユーザーガイド

Sep. 2013 Ver 1.2.7

ドキュメント番号 JUG10_001

21

プログラム完了の確認

データの消去と同じく、プログラムもコマンド入力から完了まで時間がかかります。このためデータの消去の

場合と同様に、次のページプログラム実行前に[busy フラグ]をチェックして処理状況を確認する必要があり

ます。使用するコマンドも消去の確認と同じです(表 4-3)。

プログラム完了フラグの設定

全てのデータのプログラムが完了したら、デバイスにそれを認識させるためのフラグを設定します。

表 5-7 コンフィグデータプログラム完フラグ設定コマンド

コマンド名 コマンド

(1byte)

オペランド

(3byte)

Write Data

Read Data 備考

prog_done 0x5E 0x00, 0x00, 0x00 -- --

各 I/F と UFM間のアクセス無効化

プログラムが完了したら、各 I/F からの UFM へのアクセスを無効化します。有効化の場合と異なりコマンド

は1つ(モードに依存しない)です。

表 5-8 アクセス無効化コマンド

コマンド名 コマンド

(1byte)

オペランド

(3byte)

Write Data

Read Data 備考

isc_disable 0x26 0x00, 0x00 -- --

バイパス

各 I/F と UFM間のアクセス無効化後、続けて下記バイパスコマンドも必要です。

表 5-9 バイパスコマンド

コマンド名 コマンド

(1byte)

オペランド

(3byte)

Write Data

Read Data 備考

bypass 0xFF 0xFF, 0xFF, 0xFF -- --

プログラム完了後に引き続きデータの read 等を行う場合は、アクセス無効化とバイパスはスキップ可能。

Page 22: MachXO2 On-Chip Flash memory - テクスター カンパ … On-chip Flash memory アクセス ユーザーガイド Sep. 2013 Ver 1.2.7 ドキュメント番号 JUG10_001

MachXO2 On-chip Flash memory アクセス

ユーザーガイド

Sep. 2013 Ver 1.2.7

ドキュメント番号 JUG10_001

22

5.2 UFMデータの Read

CFMのデータを Read するには、図 5-2の手順で行います。

図 5-2 UFMデータ Read手順

Page 23: MachXO2 On-Chip Flash memory - テクスター カンパ … On-chip Flash memory アクセス ユーザーガイド Sep. 2013 Ver 1.2.7 ドキュメント番号 JUG10_001

MachXO2 On-chip Flash memory アクセス

ユーザーガイド

Sep. 2013 Ver 1.2.7

ドキュメント番号 JUG10_001

23

各種 I/F と UFM間のアクセス有効化

UFM へのアクセスを開始する際に必ず行います。アクセスには、ロジック部分の動作を強制的に停止させ

てアクセスを行うダイレクトモードと、ロジックは動作させたままアクセスを行うトランスペアレントモードの2つ

があり、それぞれのモード用に有効化コマンドが用意されています。

表 5-10 I/Fの有効化コマンド

コマンド名 コマンド

(1byte)

オペランド

(3byte)

Write Data

Read Data 備考

isc_enable 0xC6 0x08, 0x00, 0x00 -- -- ダイレクトモード

lsc_enable_x 0x74 0x08, 0x00, 0x00 -- -- トランスペアレントモード

リード開始アドレスの指定

Read コマンド実行前にページアドレスの指定を行います。

表 5-11 アドレスの初期化コマンド

コマンド名 コマンド

(1byte)

オペランド

(3byte)

Write Data

Read Data 備考

direct_address 0xB4 0x00, 0x00, 0x00 0x40, +

address

3byte(内

14bit 使用)

-- ページアドレスを指定

Page 24: MachXO2 On-Chip Flash memory - テクスター カンパ … On-chip Flash memory アクセス ユーザーガイド Sep. 2013 Ver 1.2.7 ドキュメント番号 JUG10_001

MachXO2 On-chip Flash memory アクセス

ユーザーガイド

Sep. 2013 Ver 1.2.7

ドキュメント番号 JUG10_001

24

データの Read

Read はページ単位で行いますが、複数ページをまとめて Read することが出来ます。リードデータの指定は

オペランドによる詳細設定が必要です。

表 5-12 Read & アドレスインクリメントコマンド

コマンド名 コマンド

(1byte)

オペランド

(3byte)

Write Data

Read Data 備考

read_incr_nv 0xCA 下記詳細

--- 下記詳細 ダミーデータ設定とリード

ページ数の関係に注意

※ オペランド : 0001 0000 00pp pppp pppp pppp (バイナリ表記 3byte) WISHBONE/SPI時

: 0000 0000 00pp pppp pppp pppp (バイナリ表記 3byte) WISHBONE/SPI/I2C 時

pp…pp : リードするページ数を指定。1ページの場合、読み出すページ数(つまり1)。1以上

の場合、読み出すページ数+1

I2C ではオペランドの 1バイト目に注意。WISHBONE側の最大読み出し速度は 36MHzです。

各 I/F と UFM間のアクセス無効化

データの Read が完了したら、各 I/F からの UFMへのアクセスを無効化します。有効化の場合と異なりコマ

ンドは1つ(モードに依存しない)です。

表 5-13 アクセス無効化コマンド

コマンド名 コマンド

(1byte)

オペランド

(3byte)

Write Data

Read Data 備考

isc_disable 0x26 0x00, 0x00 -- --

バイパス

各 I/F と UFM間のアクセス無効化後、続けて下記バイパスコマンドも必要です。

表 5-14 バイパスコマンド

コマンド名 コマンド

(1byte)

オペランド

(3byte)

Write Data

Read Data 備考

bypass 0xFF 0xFF, 0xFF, 0xFF -- --

Page 25: MachXO2 On-Chip Flash memory - テクスター カンパ … On-chip Flash memory アクセス ユーザーガイド Sep. 2013 Ver 1.2.7 ドキュメント番号 JUG10_001

MachXO2 On-chip Flash memory アクセス

ユーザーガイド

Sep. 2013 Ver 1.2.7

ドキュメント番号 JUG10_001

25

6 各種 I/F からのアクセス波形 6.1 Wishbone バスからのアクセス波形

6.1.1 Wishbone バスから CFM/UFMへのアクセスルール

Wishboneから UFM/CFMへのアクセスを行う場合、まずアドレス 0x70に値 0x80を write して、wishboneバス

から flash メモリコントローラへのアクセスを Enable にします(フレーム・オープン)。その後、アドレス 0x71 に

UFM/CFMへのコマンドを順次 writeします。最後にアドレス 0x70に値 0x00を writeして、wishboneバスから

flash メモリコントローラへのアクセスを disableにします(フレーム・クローズ)。

これらのコマンドは、SPIのCSアサート/ディアサート、I2Cのスタートコンディション/ストップコンディションに相

当します。

図 6-1 Wishbone バスから UFMへのアクセスルール

-------------------------------------------------------------------------------------------

・アドレス 0x70へのデータ 0x80の writeは I2Cの[START]コンディションまたは SPIの CSアサートに相当。

・アドレス 0x70へのデータ 0x00の writeは I2Cの[STOP] コンディションまたは SPIの CSアサートに相当。

-------------------------------------------------------------------------------------------

Page 26: MachXO2 On-Chip Flash memory - テクスター カンパ … On-chip Flash memory アクセス ユーザーガイド Sep. 2013 Ver 1.2.7 ドキュメント番号 JUG10_001

MachXO2 On-chip Flash memory アクセス

ユーザーガイド

Sep. 2013 Ver 1.2.7

ドキュメント番号 JUG10_001

26

6.1.2 各種アクセス波形サンプル

CFM/UFM との I/F の有効化

図 6-2 UFM との I/F有効化

CFM の Erase

図 6-3 CFMの Erase

UFMの Erase

図 6-4 UFMの Erase

wb_clk_i

wb_cyc_i

wb_stb_i

wb_we_i

wb_adr_i[7:0]

wb_dat_i[7:0]

wb_dat_o

wb_ack_o

N/A N/A

N/A

N/A

70 71 71N/A N/A N/A

OO N/A

71 70 N/A

OO80 O8 OON/A N/A N/A N/A

71

74

wb_clk_i

wb_cyc_i

wb_stb_i

wb_we_i

wb_adr_i[7:0]

wb_dat_i[7:0]

wb_dat_o

wb_ack_o

N/A

70 N/A

80 0E OC OO OO OO N/A

71 7170 71 71N/A

N/A

N/A

N/A

N/A

N/A

N/A

N/A

N/A

N/A

wb_clk_i

wb_cyc_i

wb_stb_i

wb_we_i

wb_adr_i[7:0]

wb_dat_i[7:0]

wb_dat_o

wb_ack_o

N/A

N/A OO N/A OO N/A OO N/A OO N/A

71 N/A 71 N/A 71 N/A 71 N/A 70 N/A

CB

70 N/A

80 N/A

Page 27: MachXO2 On-Chip Flash memory - テクスター カンパ … On-chip Flash memory アクセス ユーザーガイド Sep. 2013 Ver 1.2.7 ドキュメント番号 JUG10_001

MachXO2 On-chip Flash memory アクセス

ユーザーガイド

Sep. 2013 Ver 1.2.7

ドキュメント番号 JUG10_001

27

Erase/プログラム完了の確認

※ MSBが busyフラグ

図 6-5 check_busy コマンドによる確認

ページアドレスの初期化(CFMアクセス時)

図 6-6 ページアドレスの初期化

ページアドレス指定(UFMアクセス時)

※ ページアドレス(3byte)

図 6-7ページアドレス指定

wb_clk_i

wb_cyc_i

wb_stb_i

wb_we_i

wb_adr_i[7:0]

wb_dat_i[7:0]

wb_dat_o

wb_ack_o

N/A

N/A N/A

N/A N/A

N/A

70 71 71 71

80 F0 OO OOOO N/A

N/A

N/A

71 70 N/AN/A N/A

N/A

73

OO

wb_clk_i

wb_cyc_i

wb_stb_i

wb_we_i

wb_adr_i[7:0]

wb_dat_i[7:0]

wb_dat_o

wb_ack_o

N/A OO N/A

N/A

80 N/A 46 N/A OO N/A OO N/A OO

70 N/A 71 N/A 71 N/A 71 N/A 71 N/A 70 N/A

wb_clk_i

wb_cyc_i

wb_stb_i

wb_we_i

wb_adr_i[7:0]

wb_dat_i[7:0]

wb_dat_o

wb_ack_o

71 N/A 71 71 N/A

04 N/A ※ N/A ※ N/A ※ N/A

71 N/A 71 N/A

N/A

70 N/A

80 N/A B4 N/A OO N/A OO N/A OO N/A OO N/A

71 N/AN/A 71 N/A 71 N/A70 N/A

Page 28: MachXO2 On-Chip Flash memory - テクスター カンパ … On-chip Flash memory アクセス ユーザーガイド Sep. 2013 Ver 1.2.7 ドキュメント番号 JUG10_001

MachXO2 On-chip Flash memory アクセス

ユーザーガイド

Sep. 2013 Ver 1.2.7

ドキュメント番号 JUG10_001

28

ページプログラム+ アドレスインクリメント(CFM)

※ 16byteデータ

図 6-8 CFMのプログラム

ページプログラム + アドレスインクリメント(UFM)

※ 16byteデータ

図 6-9 UFMのプログラム

wb_clk_i

wb_cyc_i

wb_stb_i

wb_we_i

wb_adr_i[7:0]

wb_dat_i[7:0]

wb_dat_o

wb_ack_o

N/A

N/A OO N/AN/A ※ N/A ※ N/A ※

70 N/A

80 N/A 7O N/A OO

N/A 71 N/A 71

N/A OO N/A OO N/A ※

70 N/A 71 N/A 71 N/A 71 N/A 71 N/A 71 N/AN/A 71

wb_clk_i

wb_cyc_i

wb_stb_i

wb_we_i

wb_adr_i[7:0]

wb_dat_i[7:0]

wb_dat_o

wb_ack_o

N/A OO N/A

N/A

N/A ※ N/A ※ N/A ※ N/A ※80 N/A C9 N/A OO N/A OO N/A OO

71 N/A 71 N/A 71 N/A 70 N/A70 N/A 71 N/A 71 N/A 71 N/A 71 N/A 71 N/A

Page 29: MachXO2 On-Chip Flash memory - テクスター カンパ … On-chip Flash memory アクセス ユーザーガイド Sep. 2013 Ver 1.2.7 ドキュメント番号 JUG10_001

MachXO2 On-chip Flash memory アクセス

ユーザーガイド

Sep. 2013 Ver 1.2.7

ドキュメント番号 JUG10_001

29

プログラム完了フラグの設定

図 6-10 プログラム完了フラグの設定

CFM/UFM との I/F の無効化

図 6-11 CFM/UFM との I/Fの無効化

wb_clk_i

wb_cyc_i

wb_stb_i

wb_we_i

wb_adr_i[7:0]

wb_dat_i[7:0]

wb_dat_o

wb_ack_o

N/A OO N/A

N/A

80 N/A 5E N/A OO N/A OO N/A OO

70 N/A 71 N/A 71 N/A 71 N/A 71 N/A 70 N/A

wb_clk_i

wb_cyc_i

wb_stb_i

wb_we_i

wb_adr_i[7:0]

wb_dat_i[7:0]

wb_dat_o

wb_ack_o

N/A OO N/A OO N/A26 N/A OO

70 N/A 71 N/A 71 N/A 71

80 N/A

N/A 71 N/A 70 N/A

OO N/A

N/A

Page 30: MachXO2 On-Chip Flash memory - テクスター カンパ … On-chip Flash memory アクセス ユーザーガイド Sep. 2013 Ver 1.2.7 ドキュメント番号 JUG10_001

MachXO2 On-chip Flash memory アクセス

ユーザーガイド

Sep. 2013 Ver 1.2.7

ドキュメント番号 JUG10_001

30

データの Read(CFM)

図 6-12 CFMのデータ Read

wb_c

lk_i

wb_c

yc_i

wb_stb

_i

wb_w

e_i

wb_ad

r_i[7:0

]

wb_d

at_i[7:0

]

wb_d

at_o

wb_ac

k_o

N/A

N/A

OO

N/A

※2

※2

※3

※3

※3

※2

73

N/A

73

73

N/A

73

N/A

73

N/A

70

N/A

※1

※2

N/A

※1

※1

N/A

80

N/A

73

N/A

1O

N/A

MM

N/A

NN

N/A

N/A

73

N/A

73

N/A

73

73

N/A

73

N/A

N/A

71

N/A

71

N/A

70

N/A

71

N/A

71

Du

mm

yデータ

16

byte

のR

ead

※1 ダミーデータ

16byte

※2 指定した先頭ページのデータ

※3 先頭ページ

+

MM

NN

1 ペ

ージのデータ

Page 31: MachXO2 On-Chip Flash memory - テクスター カンパ … On-chip Flash memory アクセス ユーザーガイド Sep. 2013 Ver 1.2.7 ドキュメント番号 JUG10_001

MachXO2 On-chip Flash memory アクセス

ユーザーガイド

Sep. 2013 Ver 1.2.7

ドキュメント番号 JUG10_001

31

データの Read(UFM)

図 6-13 UFMからのデータ Read

wb_c

lk_i

wb_c

yc_i

wb_stb

_i

wb_w

e_i

wb_ad

r_i[7:0

]

wb_d

at_i[7:0

]

wb_d

at_o

wb_ac

k_o

N/A

70

※3

N/A

OO

N/A

N/A

※3

N/A

73

N/A

73

※2

※2

※3

N/A

73

N/A

73

73

※1

※2

※2

MM

N/A

NN

N/A

N/A

N/A

※1

※1

73

N/A

73

N/A

80

N/A

CA

N/A

1O

N/A

N/A

73

N/A

73

N/A

N/A

71

N/A

71

N/A

73

70

N/A

71

N/A

71

Du

mm

yデータ

16

byte

のR

ead

※1 ダミーデータ

16byte

※2 指定した先頭ページのデータ

※3 先頭ページ

+

MM

NN

1 ペ

ージのデータ

Page 32: MachXO2 On-Chip Flash memory - テクスター カンパ … On-chip Flash memory アクセス ユーザーガイド Sep. 2013 Ver 1.2.7 ドキュメント番号 JUG10_001

MachXO2 On-chip Flash memory アクセス

ユーザーガイド

Sep. 2013 Ver 1.2.7

ドキュメント番号 JUG10_001

32

6.2 I2C からのアクセス波形

6.2.1 I2C から CFM/UFMへのアクセスルール

外部の I2C マスタから XO2 の CFM/UFM にアクセスする際、Read データがないアクセスでは1度のアクセス

でコマンドや入力データを連続して入力します。しかし、Read データがあるアクセス(read_status, check_busy,

read_incr_nv )では、I2C としてのアクセスは2回必要になります。1度目のアクセスで、データを Read するため

のコマンド等を write し、2回目のアクセスで該当するデータを read します(図 6-16、図 6-17 参照)。なお、こ

のアクセス間の区切りには[Repeated START condition]を使用します。

6.2.2 I2C からのアクセス波形サンプル

CFM/UFM との I/F の有効化

図 6-14 I/Fの有効化

ページアドレス指定(UFMアクセス時)

図 6-15 ページアドレス指定

Erase/プログラム完了確認

図 6-16 check_busy コマンドによる確認

SDA

SCL

ACK

A

A

Slave Address A A A A

0xC6(Comand) 0x08 (Operand)START Condition

STOPCondition

0x00 (Operand) 0x00 (Operand)

SCK

SDA A

Slave Address A A※

A A ASlave Address A

0xF0(Comand) 0x00 (Operand) 0x00 (Operand) 0x00 (Operand)START Condition

STOPConditionRepeated START Condition

※busy flag

0000_0000 00aa_aaaa aaaa_aaaa

Page 33: MachXO2 On-Chip Flash memory - テクスター カンパ … On-chip Flash memory アクセス ユーザーガイド Sep. 2013 Ver 1.2.7 ドキュメント番号 JUG10_001

MachXO2 On-chip Flash memory アクセス

ユーザーガイド

Sep. 2013 Ver 1.2.7

ドキュメント番号 JUG10_001

33

データの Read(CFM)

図 6-17 CFMからのデータ Read

SC

K

SD

A

AC

K

Slave

Addre

ssA

A

AA

CFM

read

last data

A

A

Dum

my 0

AD

um

my 1

Dum

my1

4A

Dum

my 1

5A

CFM

rea d

ata0A

AA

MM

AN

NSlave

Addre

ssA

0x7

3(C

om

and

)0

x10

(Op

eran

d)

0xM

M (O

pe

rand

)0

xNN

(Op

eran

d)

STAR

T C

on

ditio

n

STOP

Co

nd

ition

Re

pe

ated

STAR

T C

on

ditio

n

Page 34: MachXO2 On-Chip Flash memory - テクスター カンパ … On-chip Flash memory アクセス ユーザーガイド Sep. 2013 Ver 1.2.7 ドキュメント番号 JUG10_001

MachXO2 On-chip Flash memory アクセス

ユーザーガイド

Sep. 2013 Ver 1.2.7

ドキュメント番号 JUG10_001

34

6.3 SPIからのアクセス波形

6.3.1 SPIから CFM/UFMへのアクセスルール

MachXO2 は SPI のチップセレクト信号を2つ持っています。1つは SPI を介して内部の Wishbone バスにアク

セスする際に使用するチップセレクト、もう1つはCFM/UFMへアクセスする際に使用するチップセレクトです。

CFM/UFMへのアクセスに使用するチップセレクトは[pinout list]の[Dual Function]欄に[SN]と記載されている

ピンに割り当てられます。かならずこのチップセレクトを使用してください。

6.3.2 SPIからのアクセス波形サンプル

CFM/UFM との I/F の有効化

図 6-18 CFM/UFM との I/Fの有効化

Erase/プログラム完了確認

※ Busy flag

図 6-19 check_busy コマンドによる確認

CCLK

SI

SN

0xC6(Comand) 0x08 (Operand)0x00 (Operand)0x00 (Operand)

CCLK

SI

SN

SO Hi-Z ※

N/A

0xF0(Comand) 0x00 (Operand) 0x00 (Operand) 0x00 (Operand)

Page 35: MachXO2 On-Chip Flash memory - テクスター カンパ … On-chip Flash memory アクセス ユーザーガイド Sep. 2013 Ver 1.2.7 ドキュメント番号 JUG10_001

MachXO2 On-chip Flash memory アクセス

ユーザーガイド

Sep. 2013 Ver 1.2.7

ドキュメント番号 JUG10_001

35

6.3.3 データの Read(CFM)

図 6-20 CFMからのデータの Read

CC

LK

SI

SN

SO

N/A

N/A

N/A

Dum

my 0

Hi-

Z

CFM

read

lastデータ

CFM

readデータ

0C

FM

readデータ

1

NN

Dum

my 1

Dum

my 2

Dum

my1

4D

um

my 1

5

MM

N/A

0x7

3(C

om

and

)0

x10

(Op

eran

d)

0xM

M (O

pe

rand

)0

xNN

(Op

eran

d)

Page 36: MachXO2 On-Chip Flash memory - テクスター カンパ … On-chip Flash memory アクセス ユーザーガイド Sep. 2013 Ver 1.2.7 ドキュメント番号 JUG10_001

MachXO2 On-chip Flash memory アクセス

ユーザーガイド

Sep. 2013 Ver 1.2.7

ドキュメント番号 JUG10_001

36

7 EFBのシミュレーション 7.1 テストベンチ作成時の注意点

EFB のシミュレーションには、最上位階層のテストベンチに以下の2つのモジュールのインスタンスが必要で

す。また、これらのモジュールのインスタンス名は以下のものでないと、エラーになります。

表 7-1 GSR/PURのインスタンス名

モジュール名 インスタンス名 備考

GSR GSR_INST Global Set/Reset 出力モジュール

PUR PUR_INST Power Up Set/Reset 出力モジュール

エラメッセージの例

# ELAB2: Fatal Error: ELAB2_0036 Unresolved hierarchical reference to "GSR_INST.GSRNET" from

module "testbench.u1_efb_i2c_ms.EFBInst_0" (module not found).

# ELAB2: Last instance before error: /u1_efb_i2c_ms/EFBInst_0

# KERNEL: Error: E8005 : Kernel process initialization failed.

# Error: Fatal error occurred during simulation initialization.

記述例

library ieee, std;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

use ieee.std_logic_arith;

use ieee.std_logic_textio.all;

use std.textio.all;

library ovi_machxo2;

use ovi_machxo2.all;

entity testbench is

end testbench;

architecture BL of testbench is

component GSR

port(

GSR : in std_logic

);

end component;

component PUR

port(

PUR : in std_logic

);

end component;

Page 37: MachXO2 On-Chip Flash memory - テクスター カンパ … On-chip Flash memory アクセス ユーザーガイド Sep. 2013 Ver 1.2.7 ドキュメント番号 JUG10_001

MachXO2 On-chip Flash memory アクセス

ユーザーガイド

Sep. 2013 Ver 1.2.7

ドキュメント番号 JUG10_001

37

Begin

GSR_INST : GSR

port map(

GSR => wb_xrst_i

);

PUR_INST : PUR

port map(

PUR => c_vcc

);

end BL;

7.2 I2C マクロの入出力信号

I2C マクロからの出力は、I2C の仕様どおり’0’または’Z’です。I2C マクロから’1’や’H’は出力されません。

従って外部で’H’レベルへのプルアップ処理が必要になります。

図 7-1 I2C マクロ入出力ポートの接続と記述例

Page 38: MachXO2 On-Chip Flash memory - テクスター カンパ … On-chip Flash memory アクセス ユーザーガイド Sep. 2013 Ver 1.2.7 ドキュメント番号 JUG10_001

MachXO2 On-chip Flash memory アクセス

ユーザーガイド

Sep. 2013 Ver 1.2.7

ドキュメント番号 JUG10_001

38

7.3 Wishbone バスへの入力データ

Wishboneバスから EFBにアクセスする場合、クロックに対してデータの遅延が小さい場合は wb_ack_o信号が

テクニカルノート TN1205のタイムチャートとは違うタイミングでアサートされます(図 7-2、図 7-3)。

ただし、Read/Write アクセス自体は正しく行われます。

図 7-2 WISHBONEバスのアクセス波形(TN1205)

図 7-3 WISHBONEバスのシミュレーション波形(入力データ遅延なし)

シミュレーション時の wb_ack_o のタイミングを TN1205 と同じにするためには WISHBONE バスへの入力信号

に、クロックに対して 20ps以上の遅延をつけてください。

図 7-4 WISHBONEバスのシミュレーション波形(入力データ遅延あり)

Page 39: MachXO2 On-Chip Flash memory - テクスター カンパ … On-chip Flash memory アクセス ユーザーガイド Sep. 2013 Ver 1.2.7 ドキュメント番号 JUG10_001

MachXO2 On-chip Flash memory アクセス

ユーザーガイド

Sep. 2013 Ver 1.2.7

ドキュメント番号 JUG10_001

39

8 Feature Rowについて

Feature Row は 64bit と 16bit の 2部構成となっており、各種設定を保存します。未書き込み状態のデバイ

スでは All-0となっております(5bit部に関してはアクセス不可)。ispVM の Feature Row Editor で jedec

フィアルを読み込むことで、設定済内容を確認できます。DIAMOND Programmer では実デバイスと接続後に、

DIAMOND Programmer の Operation “Security Read Feature Row”コマンドにて同内容を確認できます。

図 8-1 Feature Row Editor による表示例

64bit 部 : Custom ID Code[0-31], TraceID[32-39], I2C Slave Address[40-47],

Dual Boot Golden Address [48-63]

16bit 部: Secure password[0], DEC ONLY[1], Password Enable FLASH[2], Password Enable ALL[3],

上記 4bitは必ずデフォルトの 0でご利用下さい( 注

my_ASSP Enable[4], PROGRAMN Preference Disable[5], INIT Preference Enable[6],

DONE Preference Enable[7], JTAG Preference Disable[8], S-SPI Preference Disable[9],

I2C Preference Disable[10], M-SPI Preference Disable [11], BOOT Sector1[12],

BOOT Sector2[13], Reserve[14-15]

5bit部 : セキュリティ設定部、コマンドによるアクセス不可(jedec では 21 行目に記載)。

CONFIG_SECURE 設定[0], ONE_TIME_PROGRAM 設定[1-4]

注) XO2デバイスはこの 4bit 部の機能は使用できません。この部分が 0以外に設定されると、書き込みが完

了している回路の動作は継続しますが、以降 ispVM によるアクセスで下記エラーとなり、デバイスの書き換

えができなくなります。

"A Flash Protect key is required. Please select a different operation

in the Advanced Security Programming Mode."

Execution time: **:** milliseconds

Page 40: MachXO2 On-Chip Flash memory - テクスター カンパ … On-chip Flash memory アクセス ユーザーガイド Sep. 2013 Ver 1.2.7 ドキュメント番号 JUG10_001

MachXO2 On-chip Flash memory アクセス

ユーザーガイド

Sep. 2013 Ver 1.2.7

ドキュメント番号 JUG10_001

40

◆ Feature Rowの Program / Erase コマンド

Feature Rowへのアクセスは ispVMによるプログラミング、及び ispVMで生成された SVFを使用する場合、自動

的に行われます。それ以外の手法でアクセスする場合、対象エリア毎に下記2コマンドを使用します。Feature

Row 部分ではデバイスの重要な情報がございます。誤って間違ったセッティングを行うと、最悪の場合デバイス

にアクセスできなくなりますので、設定内容を十分お確かめください。

・ プログラムコマンド

LSC_PROG_FEATURE (0xE4) + オペランド 0x00, 0x00, 0x00 : 前半 64bitに対して使用

例) 0xE4, 0x00, 0x00, 0x00, + 0x0000000000000000

データは、jedec ファイルの下から 5行目にある、Eの後ろの 64bitです。

通常オール 0になっています。

例) NOTE FEATURE_ROW*

E0000000000000000000000000000000000000000000000000000000000000000

※ jedeceでの並び順は LSB-MSBが逆になっております。

LSC_PROG_FEABITS (0xF8) + オペランド 0x00, 0x00, 0x00: 後半 16bitに対して使用

例) 0xF8, 0x00, 0x00, 0x00, + 0x****

データは、jedec ファイルの下から 4行目にある下記の様な 16bitです。

値は JTAG、I2C、SPIの使用状況で変わります。

例) 0000010010100000*

※ jedece での並び順は LSB-MSBが逆になっております。

上記例では、0xF8, 0x00, 0x00, 0x00, + 0x0520 となります。

・ リードコマンド

ISC_READ_FEATURE (0xE7) + オペランド 0x00, 0x00, 0x00 : 前半 64bitについて

リードデータは 64bitです

ISC_READ_FEABITS (0xFB) + オペランド 0x00, 0x00, 0x00 : 後半 16bitについて

リードデータは 16bitです

Page 41: MachXO2 On-Chip Flash memory - テクスター カンパ … On-chip Flash memory アクセス ユーザーガイド Sep. 2013 Ver 1.2.7 ドキュメント番号 JUG10_001

MachXO2 On-chip Flash memory アクセス

ユーザーガイド

Sep. 2013 Ver 1.2.7

ドキュメント番号 JUG10_001

41

◆ My_ASSP 機能にて、デバイス ID を書き換えた場合の復旧策

My_ASSP機能を使用してデバイス IDを書き換えると、ispVMや SVFデバッガを使用したプログラミングフローで

下記エラーとなり、デバイスにアクセスできなくなります。この場合下記フローにてアクセス可能です。

Step1. ispVMのプログラミングフローを実行すると、ispVMは下記エラーを表示して、今書き込もうとしているデバ

イスのデバイス IDがどんな値に設定されているか表示します(下記は 0x00000200に設定済デバイスの例)。

Device1 LCMXO2-1200ZE:

The ID has been changed to 0x00000200.

Please click on the Save button to save the new Device's ID.

Step2. IspVMのジェネレート SVF メニューより、Jedecからデバッグツールで使用する SVF を生成します。

Step3. 生成した SVFをテキストエディタで開き、下記に示す IDCODEチェックステップの値を Step2で確認でき

たデバイス IDに書き換え、保存します。

---------------------------------------------

! Check the IDCODE

ISPEN LOW;

! Shift in IDCODE_PUB(0xE0) opcode

SDR 32 TDI (00000007);

SDR 32 TDI (00000000)

TDO (C204D480) <= この部分の値

MASK (FFFFFFFF);

ISPEN HIGH;

--------------------------------------------

Step4. Step3にて編集した SVF を、SVFデバッガツールを使用してデバイスにプログラミングします。

Page 42: MachXO2 On-Chip Flash memory - テクスター カンパ … On-chip Flash memory アクセス ユーザーガイド Sep. 2013 Ver 1.2.7 ドキュメント番号 JUG10_001

MachXO2 On-chip Flash memory アクセス

ユーザーガイド

Sep. 2013 Ver 1.2.7

ドキュメント番号 JUG10_001

42

9 その他注意事項

◆ UFM/CFMへ透過モード(0x74)でアクセスする場合の注意点

透過モード(0x74)を使用して CFM/UFMへのインターフェイスをイネーブルすると、ディセーブル(0x26)+バイパス

(0xFF)を使用してインターフェイスをディセーブルにするまでの間、次のようなデバイスの一部機能が一時的にディ

セーブルになります。

・パワーコントローラ

・GSR(グローバル・セット・リセット)

・ハードマクロ・ユーザ SPI ポート

それを踏まえた上で使用下さい。GSR については、デザインにて専用の GSR リソースを使用せず汎用配線リソースを

使用する方法もございます。デザインで意図的に GSR を使用していない場合でも、DIAMOND のデフォルト設定で

GSRを自動的に使用します。デザインでGSRを使用しない為には、Strategy設定のMap Design 画面にて、Infer GSR

の Value を False に変更します。

図 9-1 GSR を使用しない設定

Page 43: MachXO2 On-Chip Flash memory - テクスター カンパ … On-chip Flash memory アクセス ユーザーガイド Sep. 2013 Ver 1.2.7 ドキュメント番号 JUG10_001

MachXO2 On-chip Flash memory アクセス

ユーザーガイド

Sep. 2013 Ver 1.2.7

ドキュメント番号 JUG10_001

43

◆ Wishbone / I2C / SPI の複数 IF から EFB リソースにアクセスする場合

アクセス有効化コマンド(isc_enable/isc_enable_x)と、アクセス無効化コマンド(isc_disable + bypass)は、いずれの IFから

発行しても効果は同じです。発行元の IF のみが有効化されるのではなく、すべての IF が有効化されます。同様に、

アクセス無効化コマンドもいずれの IF から発行してもその効果は同じです。

例えば、Wishbone と I2C を使用するデザインの場合、I2C からアクセス有効化コマンドを発行すると、コマンド有効後

は、Wishboneからも I2CからもCFM/UFM リソースにアクセスすることができます。最後にWishboneからアクセス無効

化コマンドを発行して終了させることもできます。

これら 3種の IFには優先順位があります。優先順位は高い方から、SPI、I2C、Wishbone となります。例えば、I2Cアク

セス中、Wishbone からのコマンドは受け付けません。逆に、I2C アクセス中に SPI からのアクセスが開始されると、I2C

アクセスは中断され、SPIアクセスが開始されます。XO2のEFBでは、これらの IF間の調停機能は実装していません。

調停が必要な場合、お客様回路にて実装していただく必要があります。

◆ プログラミング時の注意事項

XO2の内部 CFMに回路データを書きこむことをプログラミングと呼びます。プログラミングは JTAG/SPI/I2Cから可能

です。ブランクデバイス及び消去済デバイスでは、3 つのポートが全て有効化されており、お客様の回路データが書き

込まれたデバイスでは、指定のポートのみが有効化されます(デフォルト設定の場合 JTAG のみ有効)。

これら 3種の IFには優先順位があります。優先順位は高い方から、JTAG、SPI、I2Cとなります。例えば、JTAGアクセ

ス中、SPI からのコマンドは受け付けません。逆に、I2C アクセス中に SPI からのアクセスが開始されると、I2C アクセス

は中断され、SPI アクセスが開始されます。

ブランクデバイスや消去済デバイスをボード上でプログラミングする際は、特に注意が必要です。例えば、I2C ポート

からプログラミングする場合、有効化されている SPI ポートの SN(スレーブチップセレクト)に L レベル信号(アクティブ

状態)が与えられると、SPI ポートが優先権を得ます。その結果、CFM/UFMポートに対する I2C アドレスに対して、

ACKが返らず I2C ポートは応答しません。

◆ コンフィグレーション時の注意事項

XO2 の内部 CFM から SDM(Self Download Mode)により起動する事、及び内部 SRAMに JTAG/SPI/I2C から回路

データを直接書き込む事をコンフィグレーションと呼びます。これら 4種の IFには優先順位があります。優先順位は高

い方から、JTAG、SPI、I2C、SDM となります。例えば、SPI ポート有効化されている場合、SDMでコンフィグレーション

中に、SPIポートの SN(スレーブチップセレクト)に Lレベル信号(アクティブ状態)が与えられると、SPIポートが優先権

を得ます。その結果、SDMによるコンフィグレーションは中断されコンフィグレーションが完了しません。

Page 44: MachXO2 On-Chip Flash memory - テクスター カンパ … On-chip Flash memory アクセス ユーザーガイド Sep. 2013 Ver 1.2.7 ドキュメント番号 JUG10_001

MachXO2 On-chip Flash memory アクセス

ユーザーガイド

Sep. 2013 Ver 1.2.7

ドキュメント番号 JUG10_001

44

◆ I2C アドレスの使い分け

プライマリ I2Cアドレスは、設計時に IPexpressにて、上位 5bit/8bitをお客様指定します。DIAOND1.4までは下位2bit

は IPexpress ツール画面上グレーアウトしており、01 と固定値で表示されています。ただし、下位 2bit は 2 種の値を

持っており、"00"のアドレスと、"01"のアドレスで以下アクセス先を切り分けております。DIAMOND2.0 からは 3 種類の

組み合わせが全て IPexpress ツール画面上に表示されます。デバイスのプログラミングは CFM へアクセスします。

上位 5bit/8bit ユーザ指定 + 00 : UFM/CFM/デバイス ID 等へのスレーブアドレス

上位 5bit/8bit ユーザ指定 + 01 : ユーザモードにおけるプライマリ I2C ポートへのスレーブアドレス

下位 01/00いずれでも、正しいアドレスなので、ACKは返ります。例えば、ユーザ指定の上位 5bitを 10000と指定し、

UFMへアクセスする際、正しいアドレスは 100_0000 となります。この場合誤って 100_0001 を用いた場合でも ACK は

返りますのでご注意下さい。

なお、ブランクデバイスではアドレス 7bit がすべて固定されており、100_0000 となります。その為、複数のブランクデバ

イスを同一の I2C バス上に接続して、マスタ I2C コントローラから UFM/CFMにアクセスすることはできません。あらか

じめ I2C アドレスを個別の値にプログラミングしたデバイスであれば、そのような使用方法は可能です。

◆ I2C マスタ時のグリッジ

EFB I2C マスタのシミュレーション及び実機動作にて、スタートコンディションの後の最初の SDA の”L”区間に、約

7.2ns程度のハザードが一回発生します。これは、XO2デバイスの I2C-IF部の構造に起因するもので、回避できませ

ん。実際のボードでは、I2C のクロックエッジはレートも遅く、バスのプルアップ等の負荷も与えられる為、このハザード

は減衰し悪影響を与えることは無いと考えられます。

図 9-2 I2C マスタ時のグリッジ

◆ コマンド完了までの時間

コマンドの中には、完了までに時間がかかるものがあります。

基本は busy をチェックしていただくか、下記時間ウエイトする等ご考慮下さい。

Flash 1 ページ毎に : 200usec

isc_enable に対して : 5usec

program_done に対して : 200usec

Page 45: MachXO2 On-Chip Flash memory - テクスター カンパ … On-chip Flash memory アクセス ユーザーガイド Sep. 2013 Ver 1.2.7 ドキュメント番号 JUG10_001

MachXO2 On-chip Flash memory アクセス

ユーザーガイド

Sep. 2013 Ver 1.2.7

ドキュメント番号 JUG10_001

45

◆ Wishbone バス未使用時のポート処理

EFBマクロをインスタンスするがWishboneバスは使用しない場合、未使用のWishboneバスは下記処理をいたします。

I2C や SPI の各ポートを使用する場合、I2C や SPI のポートは必要に応じて使用します。

wb_clk_i => '0', -- 固定値入力

wb_rst_i => '0', -- 固定値入力

wb_cyc_i => '0', -- 固定値入力

wb_stb_i => '0', -- 固定値入力

wb_we_i => '0', -- 固定値入力

wb_adr_i => "00000000", -- 固定値入力

wb_dat_i => "00000000", -- 固定値入力

wb_dat_o => open, -- 未使用(未接続)

wb_ack_o => open, -- 未使用(未接続)

i2c1_scl => -- 必要に応じて使用

i2c1_sda => -- 必要に応じて使用

i2c1_irqo => -- 必要に応じて使用

spi_miso => -- 必要に応じて使用

spi_mosi => -- 必要に応じて使用

spi_clk => -- 必要に応じて使用

spi_scsn => -- 必要に応じて使用

wbc_ufm_irq => -- 必要に応じて使用

なを、wb_clk_i 及び wb_rst_i は、WB IF 側のアクセス回路にのみ影響するクロック及びリセット信号です。

これらの信号がアサートされていても、ディアサートされていても、I2C IF や SPI IF 側の動作には影響ご

ざいません。

Page 46: MachXO2 On-Chip Flash memory - テクスター カンパ … On-chip Flash memory アクセス ユーザーガイド Sep. 2013 Ver 1.2.7 ドキュメント番号 JUG10_001

MachXO2 On-chip Flash memory アクセス

ユーザーガイド

Sep. 2013 Ver 1.2.7

ドキュメント番号 JUG10_001

46

10 改訂履歴

表 10-1 改訂履歴

バージョン リリース 改訂内容

Ver1.0 Jun. 2011 ・初版リリース

Ver1.1 Aug. 2011 ・4 章および 5 章の CFM/UFM インターフェイス有効化コマンドの説明を

修正。これに伴い、表 4-9、表 4-14、表 5-1、表 5-10 も修正。

Ver1.2.2 Feb. 2012 ・TN1204 v1.3/TN1205 v2.9の内容を反映。5章 追記(リードコマンド詳

細、消去コマンド詳細、バイパスコマンド)。8章 「Feature Rowについ

て」、9章 「その他注意事項」追記。

Ver1.2.3 Sep. 2012 9章 Wishbone バス未使用時の処理を追記。refresh/isc_disable コマンド

のオペランドを TN1246での 2byteに統一。TN1246について記載。

Ver1.2.4 Oct. 2012 9章 その他注意事項についてアップデート。

Ver1.2.5 Dec. 2012 4章 表 4-11, 5章 表 5-12 オペランドの内訳をTN1246の内容で更新。

5章 表 5-5, 5-11 オペランドの内訳を TN1246の内容で更新。

6章 図 6-15波形誤記修正。

Ver1.2.6 Aug. 2013 9 章 プログラミング時の注意事項、コンフィグレーション時の注意事項を

追記

Ver1.2.7 Sep. 2013 8章 図 8-1更新