18.12.2012 Views

MachXO2 - Lattice Semiconductor

MachXO2 - Lattice Semiconductor

MachXO2 - Lattice Semiconductor

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

2012 年 9 月 テ ク ニ カル ノ ー ト TN1204<br />

はじめに<br />

<strong>MachXO2</strong> は SRAM ベースのプ ロ グ ラ マブル ・ ロ ジ ッ ク デバ イ スですが、 内部フ ラ ッ シ ュ メ モ リ が内蔵 さ れ<br />

てい る ため、 <strong>MachXO2</strong> は不揮発性デバイ ス と 同様な動作が可能です。 <strong>MachXO2</strong> は、 FPGA のプ ロ グ ラ ミ ン<br />

グ及びコ ン フ ィ グ レーシ ョ ンのための豊富な機能セ ッ ト を提供し ます。 数多 く のオプシ ョ ンがあ り 、 実際の<br />

ニーズに適したプログラ ミ ング ・ ソ リ ューシ ョ ンの構築が可能です。 本テクニカルノー ト では、 ニーズに合<br />

わせてプ ロ グ ラ ミ ン グ及びコ ン フ ィ グ レーシ ョ ン ・ ソ リ ューシ ョ ン を組み合わせられる よ う 、 それぞれのオ<br />

プシ ョ ンについて詳述し ます。<br />

<strong>MachXO2</strong> の機能<br />

<strong>MachXO2</strong> デバ イ スの主要なプ ロ グ ラ ミ ン グ及びコ ン フ ィ グ レーシ ョ ン機能には、 次の も のがあ り ます。<br />

• 内部フ ラ ッ シ ュ メ モ リ か ら の イ ン ス タ ン ト オン ・ コ ン フ ィ グ レーシ ョ ン ~ ミ リ 秒単位で起動<br />

• セキュアなシングルチップ ・ ソ リ ューシ ョ ン<br />

• 複数のプログラ ミ ング及びコンフィグレーシ ョ ン ・ インターフェイス<br />

– 1149.1 JTAG<br />

– セルフダウンロード<br />

– ス レーブ SPI (以下 "SSPI")<br />

– マ ス タ SPI (以下 "MSPI")<br />

– デュアルブート<br />

– I 2 C<br />

– WISHBONE バス<br />

• ユーザフ ラ ッ シ ュ メ モ リ (UFM) に よ る不揮発性データ ス ト レージ。 用途例は以下<br />

– コンフィグレーシ ョ ン ・ フラ ッシュ メモリ (CFM) のオーバフロー<br />

– EBR 初期化データ<br />

– アプ リ ケーシ ョ ン固有のデータ<br />

• 不揮発性 メ モ リ の透過的 (transparent) プ ロ グ ラ ミ ン グ<br />

• 外付け SPI メモリによるオプショ ンのデュアルブート<br />

• デザイン保護のためのオプシ ョ ンのセキュ リティビッ ト<br />

用語の定義<br />

本書では、 共通機能の説明で次の用語を使用し ます。<br />

<strong>MachXO2</strong>プログラミングとコンフィグ<br />

レーション使用ガイド<br />

• プログラ ミング ~ 内蔵ま たは外付け不揮発性 メ モ リ の内容変更に使用 さ れる プ ロ セスです。<br />

• コンフィグレーション ~ <strong>MachXO2</strong> の SRAM メ モ リ セルの状態を変更する こ と です。<br />

• コンフィグレーション ・モード ~ <strong>MachXO2</strong> が不揮発性 メ モ リ か ら コ ン フ ィ グ レーシ ョ ン ・ データ を取得<br />

する方法を定義します。<br />

• コンフィグレーション ・データ ~ 不揮発性 メ モ リ か ら読み出 さ れ、 FPGA の コ ン フ ィ グ レーシ ョ ン<br />

SRAM に ロー ド さ れるデータ です。 ビ ッ ト ス ト リ ーム、 ま たはデバイ ス ・ ビ ッ ト ス ト リ ーム と も呼ばれま<br />

す。<br />

• JEDEC ~ JEDEC フ ァ イルには、 <strong>MachXO2</strong> の UFM、 UFM、 フ ィ ーチャ行、 及びフ ィ ーチャ ビ ッ ト にプ ロ<br />

© 2012 <strong>Lattice</strong> <strong>Semiconductor</strong> Corp. All <strong>Lattice</strong> trademarks, registered trademarks, patents, and disclaimers are as listed at www.latticesemi.com/legal. All other brand or product<br />

names are trademarks or registered trademarks of their respective holders. The specifications and information herein are subject to change without notice. (日本語版は日本語に<br />

よ る理解のため一助 と し て提供し ています。 その作成にあたっては可能な限 り 正確を期し てお り ますが、 原文英語版 と の不一致や不適切な訳文があ る場合を含み、<br />

註記がない限 り 英語版が正 (有効) です。 特に電気的特性 ・ 仕様値係わる事項については最新版の英語版を必ず参照する よ う にお願い致し ます。)<br />

www.latticesemi.com 14-1 tn1204_02.2


<strong>MachXO2</strong> プログラミングとコンフィグレーション<br />

使用ガイド<br />

グ ラ ム される コ ンフ ィ グレーシ ョ ン ・ データが格納されます。 フ ォーマ ッ ト については、 このテ ク ニカル<br />

ノ ー ト で後述し ます。<br />

• BIT ~ BIT フ ァ イルは、 外付け SPI フ ラ ッ シ ュ メ モ リ に格納される、 <strong>MachXO2</strong> の コ ン フ ィ グ レーシ ョ ン ・<br />

データ です。 バイナ リ フ ァ イルになってお り 、 こ のま ま SPI フ ラ ッ シ ュ にプ ロ グ ラ ム さ れます。<br />

• ポー ト ~ プ ロ グ ラ ミ ン グ及び一部のコ ン フ ィ グ レーシ ョ ン動作に使用 さ れる物理接続の こ と です。<br />

<strong>MachXO2</strong>のポートには、JTAG、SPI、I 2C、 WISHBONE な どの物理接続があ り ます。<br />

• ユーザモード ~設計さ れた論理機能で <strong>MachXO2</strong> は動作する こ と 。 コ ン フ ィ グ レーシ ョ ンが完了する と<br />

<strong>MachXO2</strong> はユーザモー ド にな り ます。<br />

• オフライン (Offline) モード ~不揮発性 メ モ リ のプ ロ グ ラ ミ ング と コ ン フ ィ グ レーシ ョ ン SRAM の コ ン<br />

フ ィ グ レーシ ョ ンの両方に該当する用語です。 オフ ラ イ ンモー ド ・ プ ロ グ ラ ミ ン グ / コ ン フ ィ グ レーシ ョ<br />

ン を使用する と 、 不揮発性ま たはコ ン フ ィ グ レーシ ョ ン SRAM の内容は更新 さ れますが、 <strong>MachXO2</strong> はオ<br />

フ ラ イ ンモー ド のプ ロ グ ラ ミ ン グ / コ ン フ ィ グ レーシ ョ ンが完了する まで、 ユーザモー ド で論理動作を実<br />

行しません。<br />

• 透過 (Transparent) モー ド ~ <strong>MachXO2</strong> をユーザモー ド に し た ま ま、 CFM 及び UFM を更新する ために使<br />

用されます。<br />

• 数値フ ォーマ ッ ト ~ 基数の表現には、 次の表記法を使用し ます。<br />

– 0x : 先頭に '0x' が付 く 数値は 16 進数<br />

– b : 末尾に 'b' が付 く 数値は 2 進数<br />

– その他の全ての数値は 10 進数<br />

コンフィグレーションの詳細<br />

<strong>MachXO2</strong> デバ イ スにはコ ン フ ィ グ レーシ ョ ン用に 2 種類の メ モ リ (SRAM 及びフ ラ ッ シ ュ) が内蔵 さ れてい<br />

ます。 SRAM には、 <strong>MachXO2</strong> の動作を定義する " ヒ ューズ " と な る、 ア ク テ ィ ブ ・ コ ン フ ィ グ レーシ ョ ンが<br />

格納されます。 多 く の場合、 ア ク テ ィ ブ ・ コ ン フ ィ グ レーシ ョ ンは不揮発性 メ モ リ か ら取得 さ れます。 不揮<br />

発性 メ モ リ にはコ ン フ ィ グ レーシ ョ ン ・ データ が格納され、 それが <strong>MachXO2</strong> の SRAM に ロー ド さ れます。<br />

<strong>MachXO2</strong> には SRAM に ロー ド さ れる コ ン フ ィ グ レーシ ョ ン ・ データ を格納する、 フ ラ ッ シ ュ メ モ リ が内蔵 さ<br />

れています。<br />

コンフィグレーションのプロセスとフロー<br />

<strong>MachXO2</strong> は初期化、 コ ン フ ィ グ レーシ ョ ン、 ウ ェ イ ク ア ッ プ と いった一連のス テー ト を経て、 動作可能にな<br />

ります。<br />

14-2 tn1204_02.2


図 14-1. コ ン フ ィ グ レーシ ョ ン ・ フ ロー<br />

<strong>MachXO2</strong> プログラミングとコンフィグレーション<br />

使用ガイド<br />

Power Up<br />

VCC > 1.06V or<br />

VCC > 2.1V (HC devices)<br />

VCCIO > 1.06V<br />

INITN and DONE<br />

Driven Low<br />

Initialization<br />

INITN Released<br />

Device refresh:<br />

• PROGRAMN falling edge<br />

• IEEE 1532 REFRESH command<br />

Device refresh<br />

Device refresh<br />

Device refresh<br />

Configuration<br />

Write SRAM Memory<br />

Wake Up<br />

DONE Released<br />

User Mode<br />

Power not stable<br />

PROGRAMN or<br />

INITN=Low<br />

PROGRAMN de-asserted and t INITL expired<br />

INITN=Low<br />

<strong>MachXO2</strong> の sysCONFIG ポー ト は、 プ ロ グ ラ ミ ン グ と コ ン フ ィ グ レーシ ョ ン用に業界標準の通信プ ロ ト コル<br />

を提供し ます。 表 14-1 に示す各プ ロ ト コルは、 <strong>MachXO2</strong> デバ イ スの内部フ ラ ッ シ ュ メ モ リ にア ク セ スする<br />

手段、 ま たはコ ン フ ィ グ レーシ ョ ン SRAM に ロー ド する ための手段を提供し ます。 各 sysCONFIG ポー ト の<br />

機能については、 「 メ モ リ 空間のア ク セス」 の項で説明し ます。<br />

フ ラ ッ シ ュ メ モ リ にア ク セ ス可能な sysCONFIG ポー ト を表 14-1 に示し ますが、 こ れには優先順位があ り ま<br />

す。 MSPI コ ン フ ィ グ レーシ ョ ン ・ ポー ト にはフ ラ ッ シ ュ メ モ リ 空間を変更する機能がないため、 sysCONFIG<br />

ポー ト の優先順位ス キームには含まれません。優先順位の低い sysCONFIG ポー ト を使用し た コ ン フ ィ グ レー<br />

シ ョ ン ・ ロ ジ ッ ク の動作は、 優先順位の高い sysCONFIG ポー ト に よ って割 り 込まれる こ と があ る ため、 こ<br />

の優先順位ス キーム を理解する こ と は重要です。 優先順位が低い sysCONFIG ポー ト が、 優先順位の高い<br />

sysCONFIG ポー ト か ら割 り 込まれた場合の、 コ ン フ ィ グ レーシ ョ ン ・ ロ ジ ッ ク の動作は (デバイ ス と し て)<br />

定義さ れていません。 sysCONFIG ポー ト を使用し た コ ン フ ィ グ レーシ ョ ン ・ ロ ジ ッ ク への同時ア ク セ ス を許<br />

容しないでください。<br />

電源起動シーケ ン ス<br />

<strong>MachXO2</strong> が動作する には、 デバ イ スに電源を供給する必要があ り ます。 シ ス テムに供給 さ れる電圧が上昇す<br />

る と 短時間の間、 <strong>MachXO2</strong> は未定義のス テー ト にな り ます。<br />

ERROR<br />

All configuration data received<br />

14-3 tn1204_02.2


<strong>MachXO2</strong> プログラミングとコンフィグレーション<br />

使用ガイド<br />

電源が さ ら に上昇する と 、 <strong>MachXO2</strong> 内部の POR (Power On Reset) 回路がア ク テ ィ ブにな り 、 外部 I/O ピ ン<br />

をハイ インピーダンス状態にし、 また V CC 及び V CCIO0 入力電位を監視し ます。 POR 回路は、 次の条件にな<br />

るまで待ちます。<br />

• VCC > 1.06V (= ZE デバイ ス。 HC デバ イ スでは 2.1V)<br />

• VCCIO0 > 1.06V<br />

こ れら の条件が満た さ れる と 、 POR 回路は内部 リ セ ッ ト ス ト ローブを解放し、 デバ イ スが初期化プ ロ セ ス を<br />

開始で き る よ う に し ます。 即ち <strong>MachXO2</strong> は INITN を ア ク テ ィ ブ Low に、 そ し て DONE を Low に ド ラ イ ブ し<br />

ます。 その後、 図 14-1 に示すよ う にデバイ スは初期化ス テー ト に移行し ます。<br />

図 14-2. POR (パワーオン リ セ ッ ト ) タ イ ミ ングか ら の コ ン フ ィ グ レーシ ョ ンの開始<br />

V CC /V CCIO<br />

INITN<br />

DONE<br />

初期化<br />

<strong>MachXO2</strong> は POR 回路が INITN 及び DONE ス テータ ス ピ ン を Low に ド ラ イ ブする と 、すぐ に メ モ リ 初期化ス<br />

テー ト に移行し、 <strong>MachXO2</strong> 内部の コ ン フ ィ グ レーシ ョ ン SRAM を全て ク リ ア し ます。<br />

次の全ての条件が満た される まで、 <strong>MachXO2</strong> は初期化ステー ト のま ま と な り ます。<br />

• tINITL 期間が経過し た<br />

• PROGRAMNピンがHighにネゲートされた<br />

• INITN ピンが High (外部マスタから Low にド ライブされない)<br />

専用 INITN ピ ンは、 初期化中に 2 つの機能を提供し ます。 1 つは、 <strong>MachXO2</strong> が現在コ ン フ ィ グ レーシ ョ ン<br />

SRAM を ク リ ア中であ る こ と を示し ます。 も う 1 つは、 入力 と し て機能し、 Low の場合は初期化ス テー ト か<br />

ら コ ン フ ィ グ レーシ ョ ン ・ ス テー ト への移行を防止し ます。<br />

t INITL 期間中、 <strong>MachXO2</strong> はコ ン フ ィ グ レーシ ョ ン SRAM を ク リ ア し ます。 <strong>MachXO2</strong> がデバ イ スチェーンに含<br />

まれてい る場合、 各デバイ スが持つ t INITL 初期化時間はそれぞれ異な り ます。 最も遅い t INITL パラ メータを<br />

持つデバイ スに よ って、 チェーン内の他のデバイ スはコ ン フ ィ グ レーシ ョ ンの開始を待た さ れます。 複数デ<br />

バイスのチェーンで INITN の解放が早すぎる と、 チェーン内の一部のデバイスがコンフ ィグレーシ ョ ンにと<br />

き ど き失敗する こ と があ り ます。<br />

初期化信号 INITN はア ク テ ィ ブ Low、 オープン ド レ イ ンで、 初期化完了時に High にな る よ う に外付け抵抗で<br />

プルア ッ プする必要があ り ます。 複数の FPGA のコ ンフ ィ グレーシ ョ ンを同期するには、 1 つまたは複数の<br />

INITN ピ ン を ワ イ アー ド AND 接続する必要があ り ます。 1 つま たは複数の FPGA、 あ る いは外部デバ イ スが<br />

INITN を Low に保った場合、 <strong>MachXO2</strong> は初期化ス テー ト のま ま と な り ます。<br />

コンフィグレーション<br />

INITN ピ ンの立ち上が り エ ッ ジで、 <strong>MachXO2</strong> はコ ン フ ィ グ レーシ ョ ン ・ ス テー ト に移行し、 開発ツールで作<br />

成されたビッ ト ス ト リームを受け付けます。<br />

<strong>MachXO2</strong> は、 不揮発性 メ モ リ か ら の コ ン フ ィ グ レーシ ョ ン ・ データ のフ ェ ッ チを開始し ます。 <strong>MachXO2</strong> の<br />

コ ンフ ィ グレーシ ョ ンに使用される メ モ リ は、 内部フ ラ ッ シュか外付け SPI フ ラ ッ シュのどちらかです。 有<br />

効なコ ンフ ィ グレーシ ョ ン ・ データが格納された メ モ リ がない場合、 <strong>MachXO2</strong> はコ ンフ ィ グレーシ ョ ン ・ ス<br />

t INITL<br />

14-4 tn1204_02.2


<strong>MachXO2</strong> プログラミングとコンフィグレーション<br />

使用ガイド<br />

テー ト のま ま と な り ます。 <strong>MachXO2</strong> 内部ま たは接続された不揮発性 メ モ リ をプ ロ グ ラ ムする か、 JTAG ポー<br />

ト を使用し て <strong>MachXO2</strong> を コ ン フ ィ グ レーシ ョ ンする必要があ り ます。<br />

<strong>MachXO2</strong> が コ ン フ ィ グ レーシ ョ ン ・ データ を受信中に、 INITN 制御ピ ンはその最後の機能を果た し、 コ ン<br />

フ ィ グ レーシ ョ ン ・ データ内にエ ラーが存在する こ と を示すために使用 さ れます。 INITN がプルア ッ プに よ<br />

り High のま まであれば、 コ ン フ ィ グ レーシ ョ ンは問題な く 続行さ れています。 Low に ド ラ イ ブ さ れた場合は<br />

何らかのエラーが発生しており、 <strong>MachXO2</strong> が動作しなくなり ます。<br />

ウェイクアップ<br />

ウ ェ イ ク ア ッ プ と は、 コ ン フ ィ グ レーシ ョ ン ・ モー ド か ら ユーザモー ド に移行する こ と です。 <strong>MachXO2</strong> の固<br />

定された4段階のウェイクアップ・シーケンスは、デバイスがコンフィグレーション・データを全て受信す<br />

る と 開始さ れます。 全てのコ ン フ ィ グ レーシ ョ ン ・ データ を受信する と 、 内部 DONE ス テータ ス ビ ッ ト を ア<br />

サー ト し、 ウ ェ イ ク ア ッ プ ・ ス テー ト マシンが 4 本の信号の順序制御を行います。 こ の 4 つの制御ス ト ロー<br />

ブには、 次のものがあ り ます。<br />

• 外部 DONE ピン<br />

• 内部グ ローバル ・ ラ イ ト デ ィ セーブル (Global Write DISable: GWDISn)<br />

• 内部グ ローバル出力イ ネーブル (Global Output Enable: GOE)<br />

• 内部グ ローバル ・ セ ッ ト / リ セ ッ ト (Gobal Set / Reset: GSR)<br />

ウ ェ イ ク ア ッ プ ・ プ ロ セ スの最初のス テ ッ プでは、 <strong>MachXO2</strong> が GOE を解放し ます。 GOE がアサー ト さ れる<br />

と 、 <strong>MachXO2</strong> の I/O がハイ イ ン ピーダン ス ・ ス テー ト を終了し、 プ ロ グ ラ ム さ れた出力機能を果たすよ う に<br />

な り ます。 <strong>MachXO2</strong> の入力は常にア ク テ ィ ブになっています。 GSR がアサー ト さ れてい る と 、 入力信号が<br />

<strong>MachXO2</strong>のフリ ップフロップに対してアクションを実行できません。<br />

ウ ェ イ ク ア ッ プ ・ プ ロ セ スの第 2 ス テ ッ プでは、 GSR 及び GWDISn の制御が解放 さ れます。<br />

GSR は内部ス ト ローブで、アサー ト さ れる と GSR イネーブル属性を持つ全ての I/O フ リ ッ プフ ロ ッ プ、 フ ァ<br />

ブリック・フリップフロップ、分散RAM出力フリップフロップ、及びブロックRAM出力フリップフロップ<br />

が、 そのハー ド ウ ェ ア記述言語の定義に従ってセ ッ ト / ク リ ア さ れます。<br />

GWDISn は、 <strong>MachXO2</strong> 内部の全ての RAM ロ ジ ッ ク の ラ イ ト イ ネーブル ・ ス ト ローブをオーバーラ イ ド (無<br />

効に) する制御です。 上述の よ う に入力は常にア ク テ ィ ブになっています。 GWDISn を アサー ト し た ま まで<br />

あれば、 イ ン ス タ ン ス さ れた RAM リ ソースの偶発的な書き換えを防止で き ます。<br />

ウ ェ イ ク ア ッ プ ・ プ ロ セスの最後のス テ ッ プは、 外部 DONE ピ ンのアサー ト です。 外部 DONE ピ ンは イ ネー<br />

ブル さ れた と き に限 り 、双方向オープン ド レ イ ン I/O にな り ます。外部デバイ スが外部 DONE ピ ン を Low に<br />

保持する と 、 <strong>MachXO2</strong> の ウ ェ イ ク ア ッ プ ・ プ ロ セ スが続行 さ れな く な り ます。 外部 DONE が イ ネーブル さ<br />

れ、 High になった場合のみ、 ウ ェ イ ク ア ッ プの最終ス テ ッ プが完了し ます。 外部 DONE ピ ンが イ ネーブル さ<br />

れていない場合は、 ウ ェ イ ク ア ップが中断な く完了し ます。<br />

ウ ェ イ ク ア ッ プの最終ス テ ッ プが完了する と 、 <strong>MachXO2</strong> はユーザモー ド にな り ます。<br />

ユーザモード<br />

<strong>MachXO2</strong> はウ ェ イ ク ア ッ プ ・ シーケ ン スが完了する と 直ちにユーザモー ド にな り 、 ユーザ論理の動作を開始<br />

し ます。 次のいずれかの イベン ト が発生する まで、 <strong>MachXO2</strong> は こ のス テー ト のま ま と な り ます。<br />

• PROGRAMN 入力ピンが Low にド ライブされる<br />

• いずれかの コ ン フ ィ グ レーシ ョ ン ・ ポー ト か ら REFRESH コ マン ド を受信する<br />

• 電源が再投入さ れる (一旦電源オフ後に再度オンする)<br />

14-5 tn1204_02.2


<strong>MachXO2</strong> プログラミングとコンフィグレーション<br />

使用ガイド<br />

コ ン フ ィ グ レーシ ョ ン ・ メ モ リ の ク リ ア と 再初期化<br />

<strong>MachXO2</strong> のユーザモー ド 機能動作は、 意図的に ク リ ア さ れる か電源がオフ さ れる まで継続 さ れます。<br />

<strong>MachXO2</strong> の内部コ ン フ ィ グ レーシ ョ ン SRAM を ク リ アする方法はい く つかあ り ます。 1 つは、 電源をオフ し<br />

てか ら再び投入する こ と 、 も う 1 つの方法は、 PROGRAMN ピ ン を ト グルする こ と です。 ま た Refresh コ マン<br />

ド で メ モ リ を再初期化する方法も あ り ます。 Refresh コ マン ド は、 ア ク テ ィ ブな任意の コ ン フ ィ グ レーシ ョ<br />

ン ・ ポー ト を使用し て与え ら れます。<br />

• PROGRAMn 入力をド ライブする<br />

• <strong>MachXO2</strong> の電源を再投入する<br />

• コ ン フ ィ グ レーシ ョ ン ・ ポー ト を使用し て Refresh コ マン ド を送信する<br />

こ れら の方法のいずれかを実行する と 、 <strong>MachXO2</strong> は INITN 及び DONE を Low に ド ラ イ ブ し、 初期化ス テー<br />

トに入ります。<br />

メモリ空間のアクセス<br />

<strong>MachXO2</strong> のフ ラ ッ シ ュ と SRAM と い う 2 つの内部 メ モ リ は、 読み出し と 書き込みが可能です。 <strong>MachXO2</strong> の<br />

各ポートは、各メモリ空間への異なるアクセスレベルを持っています。表 14-1に<strong>MachXO2</strong>のポートと、そ<br />

れがア ク セ ス可能な メ モ リ 空間の ク ロ ス リ フ ァ レ ン ス を示し ます。<br />

表 14-1 に示す と お り 、 JTAG ポー ト は両方の内部 メ モ リ 空間の読み出し と 書き込みが可能です。 こ れ以外に<br />

コ ン フ ィ グ レーシ ョ ン SRAM を読み出す こ と がで き る ポー ト はあ り ません。JTAG ポー ト は、オフ ラ イ ンモー<br />

ド と 透過モード のどち ら で も 2 つの メ モ リ 空間にア ク セスでき ます。 それ以外のポー ト は、 実行でき る機能<br />

が制限されています。<br />

表 14-1. 各種ポー ト の メ モ リ 空間ア ク セス<br />

オンチップフラ ッシュ メモリ SRAM<br />

ポー ト<br />

Read Write Read Write<br />

JTAG Yes Yes Yes Yes<br />

SPI ポー ト Yes Yes No Refresh2 I 2 Cポート Yes Yes No Refresh 2<br />

内部 WISHBONE Yes1 Yes1 No No<br />

1. 透過 (Transparent) モー ド の場合のみ<br />

2. 「コ ン フ ィ グ レーシ ョ ン ・ メ モ リ の ク リ ア と 再初期化」 項を参照し て く だ さ い<br />

ビッ トスト リームとフラッシュメモリのサイズ<br />

<strong>MachXO2</strong>はSRAMベースのFPGAです。コンフィグレーションSRAMには、全てのコンフィグレーション・<br />

データ を格納可能な不揮発性 メ モ リ か ら ロー ド する必要があ り ます。 コ ン フ ィ グ レーシ ョ ン ・ データ のサ イ<br />

ズは一定し ていません。 <strong>MachXO2</strong> で使用可能な ロ ジ ッ ク の量 と 、 コ ン フ ィ グ レーシ ョ ン時に初期化さ れる<br />

EBR (Embedded Block RAM、 組み込みブ ロ ッ ク RAM) コ ンポーネン ト 数に依存し ます。 最大量のス ト レージ<br />

が必要にな る のは、 最大規模のデバ イ ス を使用し、 各 EBR がそれぞれ固有のデータ値で初期化さ れ、 圧縮を<br />

オンにしないで生成された <strong>MachXO2</strong>デザインです。 <strong>MachXO2</strong> の内部フ ラ ッ シ ュ メ モ リ に コ ン フ ィ グ レーシ ョ ン ・ データ を格納する際は、 特別な注意が必要で<br />

す。 <strong>MachXO2</strong> のフ ラ ッ シ ュ メ モ リ は 3 セ ク タ で構成 さ れています。 最初のセ ク タは圧縮コ ン フ ィ グ レーシ ョ<br />

ン ・ データ の保持専用に使用さ れ、 コ ン フ ィ グ レーシ ョ ン ・ フ ラ ッ シ ュ メ モ リ (以下 CFM) と 呼ばれます。<br />

2 番目のセ ク タはユーザフ ラ ッ シ ュ メ モ リ (以下 UFM) と 呼ばれ、 3 種類の機能を提供し ます。 コ ン フ ィ グ<br />

レーシ ョ ン ・ データ イ メ ージが大き い場合に、 CFM を補 う ス ト レージ と な り 、 或いは EBR の内容を格納で<br />

き、 ま た汎用フ ラ ッ シ ュ メ モ リ と し て使用で き ます。 3 番目のセ ク タはフ ィ ーチ ャ行です。<br />

14-6 tn1204_02.2


図 14-3. <strong>MachXO2</strong> デバ イ スのフ ラ ッ シ ュ メ モ リ 空間<br />

Row Size = M<br />

Row Size = N<br />

<strong>MachXO2</strong> プログラミングとコンフィグレーション<br />

使用ガイド<br />

殆どのデザインでは、 CFM はコンフィグレーション SRAM にロードされる、 圧縮したコンフィグレーショ<br />

ン ・ データ の格納に十分な大き さ があ り ます。 し か しデザ イ ン内の ロ ジ ッ ク サ イ ズ と 初期化さ れる EBR 数が<br />

増加する と 、 コ ン フ ィ グ レーシ ョ ン ・ データ のサ イ ズ も増加し、 コ ン フ ィ グ レーシ ョ ン ・ データ が UFM セ<br />

ク タ にオーバフ ローする こ と があ り ます。 ま た、 可能性は低い も のの、 内部フ ラ ッ シ ュ メ モ リ 全体に収ま ら<br />

ないほど コ ン フ ィ グ レーシ ョ ン ・ データ が大き く な る こ と も あ り ます。 大き く な り すぎて、 CFM と UFM メ<br />

モ リ 空間を組み合わせて も収ま ら な く な った場合は、デザ イ ン を変更し てサ イ ズを小 さ く する か、外付け SPI<br />

フ ラ ッ シ ュ メ モ リ を使用する必要があ り ます。 コ ン フ ィ グ レーシ ョ ン ・ データ を生成する ソ フ ト ウ ェ アの入<br />

力を指定する こ と で、 UFM へのオーバフ ローを防止で き ます。<br />

CFM と UFM メ モ リ を合わせたサ イ ズ よ り も、 コ ン フ ィ グ レーシ ョ ン ・ データ が大き く なった場合は、 デバ<br />

イスのビッ トスト リームを外付けSPI フラッシュに格納する方法があります。 表 14-3に、 SPI フラッシュを<br />

選択する ための、 最大非圧縮ビ ッ ト ス ト リ ーム ・ サ イ ズを示し ます。<br />

表 14-2. 最大コ ン フ ィ グ レーシ ョ ン ・ ビ ッ ト 数<br />

128 Bits<br />

Configuration Flash<br />

EBR な しの非圧縮ビ ッ ト EBR あ り の非圧縮ビ ッ ト 最大内部フ ラ ッ シ ュ<br />

デバイス ストリーム・サイズ ストリーム・サイズ<br />

サイズ 単位<br />

LCMXO2-256 0.09 N/A 0.071 Mb<br />

LCMXO2-640 0.19 0.20 0.17 Mb<br />

LCMXO2-640U 0.33 Mb<br />

LCMXO2-1200 0.35 0.41 0.33 Mb<br />

LCMXO2-1200U 0.47 Mb<br />

LCMXO2-2000 0.51 0.58 0.47 Mb<br />

LCMXO2-2000U 0.80 Mb<br />

LCMXO2-4000 0.93 1.02 0.80 Mb<br />

LCMXO2-7000 1.47 1.70 1.38 Mb<br />

フィーチャ行<br />

<strong>MachXO2</strong> に内蔵 さ れる フ ィ ーチ ャ行は、 FPGA リ ソ ースの制御に使用 さ れます。 例えば、 フ ィ ーチ ャ行は<br />

<strong>MachXO2</strong> の コ ン フ ィ グ レーシ ョ ン SRAM を ロー ド する方法を定義する ために使用されます。 他の FPGA で<br />

は、 こ の動作制御に外部 I/O ピ ンが使用 さ れます。 フ ィ ーチ ャ行はコ ン フ ィ グ レーシ ョ ン機能の選択や、 デ<br />

バイ スの I/O 数を増やし てハー ド ウ ェ アに変更を加え る必要性を排除する な どの柔軟性を与え ます。<br />

フ ィ ーチャ行で制御される リ ソ ースは、 <strong>MachXO2</strong> の コ ン フ ィ グ レーシ ョ ン ・ ス テー ト に基づいてア ク テ ィ ブ<br />

にな り ます。 どのフ ィ ーチャ行 リ ソ ース をア ク テ ィ ブにする かは、 次の 3 つのス テー ト を使用し て決定 さ れ<br />

ます。<br />

UFM<br />

Feature Row<br />

Usercode<br />

14-7 tn1204_02.2


• ユーザモード ・ フィーチャ行<br />

• フラ ッシュモード ・ フィーチャ行<br />

• デフォルトモード ・ フィーチャ行<br />

<strong>MachXO2</strong> プログラミングとコンフィグレーション<br />

使用ガイド<br />

<strong>MachXO2</strong> がユーザモード の場合は、 ユーザモード ・ フ ィ ーチャ行ステー ト がア ク テ ィ ブにな り ます。 本ス<br />

テートでは、 フ ィーチャ行フラ ッシュ メモリに格納されている設定をオーバーライ ド して異なるものにでき<br />

ます。<br />

• フ ィ ーチャ行フ ラ ッ シ ュ メ モ リ は透過モー ド を使用し て消去可能<br />

• コ ン フ ィ グ レーシ ョ ン SRAM は JTAG ポー ト を使用し て、 CFM / UFM と は異な る コ ン フ ィ グ レーシ ョ<br />

ン ・ データ で構成可能<br />

<strong>MachXO2</strong> の コ ン フ ィ グ レーシ ョ ン SRAM が消去される かブ ラ ン ク の場合は、 フ ラ ッ シ ュ モー ド ・ フ ィ ーチ ャ<br />

行ステー ト がア ク テ ィ ブにな り ます。 フ ラ ッ シ ュ ・ フ ィ ーチャ行にプロ グ ラ ム される値によ って、 <strong>MachXO2</strong><br />

のどの リ ソースをア クテ ィ ブにするかが決ま り ます。 SRAM を消去し、 フ ラ ッ シュモード ・ フ ィーチャ行ス<br />

テー ト にする こ と は危険が伴います。 ユーザモード ・ フ ィ ーチャ行ステー ト でア ク テ ィ ブになっていた コ ン<br />

フィグレーション・ポートが、 フラッシュモード ・フィーチャ行ステートになるとアクセスできなくなるこ<br />

とがあります。<br />

<strong>MachXO2</strong> のコンフィグレーショ ン SRAM を消去し、CFM、UFM、及びフィーチャ行を消去すると、<strong>MachXO2</strong><br />

がデフォルトモード ・フィーチャ行ステートになります。 このステートは、 フィーチャ行ステートが既知の<br />

フラッシュモード ・フィーチャ行ステート とは異なります。 デフォルトモード ・フィーチャ行ステートを、<br />

表 14-3 に示し ます。<br />

表 14-3 には、 フ ィ ーチャ行で制御さ れる機能の全 リ ス ト 、 及びそのデフ ォル ト 値を示し ます。<br />

表 14-3. <strong>MachXO2</strong> のフ ィ ーチ ャ行要素<br />

フ ィ ーチ ャ デフ ォル ト ・ ステー ト (プ ログラム済み)<br />

PROGRAMN Persistence Enabled<br />

INITn Persistence Disabled<br />

DONE Persistence Disabled<br />

Custom IDCODE 0x00000000<br />

TraceID 00<br />

Security1 OFF<br />

JTAG Port Persistence Enabled<br />

SSPI Port Persistence Disabled2 I 2 C Port Persistence Disabled 2<br />

MSPI Port Persistence Disabled<br />

I2 C Slave Address 3<br />

0x00<br />

UFM OTP OFF<br />

SRAM OTP OFF<br />

Config Flash OTP OFF<br />

my_ASSP Enable 0<br />

Boot Select 00b<br />

1. CONFIG_SECURE 制約を使用し て イ ネーブル / デ ィ セーブルし ます<br />

2. デフォルトモード ・フィーチャ行ステートでイネーブルになります<br />

3. ア ド レ スは IPexpress で指定し ます<br />

14-8 tn1204_02.2


<strong>MachXO2</strong> プログラミングとコンフィグレーション<br />

使用ガイド<br />

フ ィ ーチャ行は、 フ ラ ッ シ ュ メ モ リ ・ ア レ イ内の単独のセ ク タ であ り 、 CFM 及び UFM と は別に消去で き ま<br />

す。 フ ィ ーチャ行を変更する のは開発時、 及びフ ィ ール ド でのア ッ プグ レー ド 時 (やむをえない場合) のみ<br />

と する こ と を強 く 推奨し ます。 こ れは、 フ ィ ーチャ行は使用可能にする コ ン フ ィ グ レーシ ョ ン ・ ポー ト の制<br />

御を行うためです。 アクティブなコンフィグレーション・ポートが使用できなくなり、 その後のアップデー<br />

ト を行えな く な る可能性があ り ます。<br />

フィーチャ行に変更を加えると、<strong>MachXO2</strong> をコンフィグレーションできなくなることがあります。<br />

PROGRAMN、 INITN、 DONE の各制御及びス テータ ス ピ ンは、 フ ィ ーチャ行を使用し て イ ネーブル及びデ ィ<br />

セーブル制御されます。 PROGRAMN 入力ピ ンは、 汎用 I/O と し ての使用が回復 さ れる か も しれません。 デ<br />

フ ォル ト モー ド ・ フ ィ ーチャ行ス テー ト にな る と 、 PROGRAMN 入力は汎用 I/O ではな く 、 PROGRAMN と し<br />

て機能し ますので、 汎用 I/O と し て Low に ド ラ イ ブ さ れてい る と 、 <strong>MachXO2</strong> がコ ン フ ィ グ レーシ ョ ン ・ プ<br />

ロセスを完了できなくなります。<br />

デフ ォル ト モー ド ・ フ ィ ーチ ャ行ス テー ト にな る のは、 2 つの場合があ り ます。 1 つは、 Diamond Programmer<br />

を使用し た明示的な フ ィ ーチャ行の消去です。 も う 1 つは、 それ程多 く はあ り ませんが、 オフ ラ イ ン ・ プ ロ<br />

グ ラ ミ ング動作が実行さ れた場合です。 オフ ラ イ ンのフ ラ ッ シ ュ消去 / プ ロ グ ラ ム / ベ リ フ ァ イ ・ シーケ ン<br />

スの中で最初に行われる ア ク シ ョ ンの 1 つは、 フ ィ ーチャ行の消去です。 デフ ォル ト モー ド ・ フ ィ ーチ ャ行<br />

ス テー ト にな る こ と を防止する ために、 常に透過的な フ ラ ッ シ ュ の消去 / プ ロ グ ラ ム / 及びベ リ フ ァ イ ・ プ<br />

ロ セ ス を使用し て く だ さ い。<br />

フ ィ ーチャ行の設定は、 Diamond の Spreadsheet View (スプレ ッ ド シー ト ・ ビ ュー) を使用する こ と で変更で<br />

き ます。 Spreadsheet View では、 <strong>MachXO2</strong> のコ ン フ ィ グ レーシ ョ ン設定を編集し、 その設定は LPF (<strong>Lattice</strong><br />

Preference File)に書き出 さ れます。こ の設定はマ ッ ピ ン グや配置配線の各処理ス テ ッ プで参照され、<strong>MachXO2</strong><br />

の コ ン フ ィ グ レーシ ョ ン ・ データ に反映されます。<br />

コンフィグレーション ・モード<br />

<strong>MachXO2</strong> のコ ン フ ィ グ レーシ ョ ン SRAM メ モ リ に有効な コ ン フ ィ グ レーシ ョ ン・データ を ロー ド し ない と 動<br />

作しません。 <strong>MachXO2</strong> でコンフ ィグレーシ ョ ン ・データを SRAM にロードする方法は、 4 つあ り ます。 以下<br />

に示すこれらの方法には、 それぞれ利点があ り ます。<br />

モー ド ピ ン数 最大周波数<br />

1149.1 JTAG 4 (5) 25 MHz<br />

SDM (セルフ ダウン ロー ド = 内部) 0 N/A<br />

外部ダウン ロー ド 4 50 MHz<br />

デュ アルブー ト ・ ダウン ロー ド 0/4 N/A / 50 MHz<br />

殆どの <strong>MachXO2</strong> デザインのコンフ ィ グレーシ ョ ン ・ モードは、 セルフダウンロード ・ モード (Self-Download<br />

Mode、 以下 "SDM") です。 こ の方法では、 内部 ク ロ ッ ク が外付け メ モ リ の速度よ り も高速 と な る ため、 コ ン<br />

フ ィ グ レーシ ョ ン速度に関し て利点があ り ます。 ま た製品コ ス ト を増加 させる不揮発 メ モ リ が不要です。<br />

JTAG ポー ト を使用し て、 外部プ ロ グ ラ マか ら SRAM に ロー ド する必要も あ り ません。<br />

外部ダ ウ ン ロ ー ド (External Download) モー ド の利点は、 UFM の全て を使用で き る こ と です。 コ ン フ ィ グ<br />

レーシ ョ ン ・ イ メ ージが UFM にオーバフ ローする こ と や、使用可能な内部フ ラ ッ シ ュ メ モ リ がオーバフ ロー<br />

する心配があ り ません。<br />

デュ アルブー ト ・ モー ド (Dual-boot Mode) の利点は、 <strong>MachXO2</strong> の コ ン フ ィ グ レーシ ョ ンの信頼性を上げ ら<br />

れる こ と です。 <strong>MachXO2</strong> は、 最初に内部フ ラ ッ シ ュ メ モ リ ・ イ メ ージを ロー ド し、 それに失敗し た場合で<br />

も、 フェイルセーフ ・ コンフィグレーシ ョ ン ・データイ メージを <strong>MachXO2</strong> の SRAM にダウンロードできる<br />

ため、 動作し続け る こ と がで き ます。 <strong>MachXO2</strong> の コ ン フ ィ グ レーシ ョ ン失敗の最大の原因は内部 メ モ リ の再<br />

プロ グ ラ ム失敗 (一般的には、 電源が失われた こ と によ る) です。<br />

JTAG ポー ト の利点は、 <strong>MachXO2</strong> シ ス テムのプ ロ グ ラ ミ ン グ、 コ ン フ ィ グ レーシ ョ ン、 及びテ ス ト 用の多様<br />

な機能を提供する こ と です。<br />

14-9 tn1204_02.2


sysCONFIG ポー ト<br />

表 14-4. <strong>MachXO2</strong> プ ロ グ ラ ミ ング及びコ ン フ ィ グ レーシ ョ ン ・ ポー ト<br />

<strong>MachXO2</strong> プログラミングとコンフィグレーション<br />

使用ガイド<br />

インターフェイス ポート 記 述<br />

JTAG JTAG (IEEE 1149.1 および IEEE 1532 互換 ) 4 線または 5 線式 JTAG イ ン タ ーフ ェ イ ス<br />

SSPI SSPI (Slave Serial Peripheral Interface)<br />

sysCONFIG MSPI MSPI (Master Serial Peripheral Interface)<br />

I2 C I 2 C (Inter-integrated Circuit) イ ン タ ーフ ェ イ ス<br />

内部 WISHBONE 内部 WISHBONE バス イ ン タ ーフ ェ イ ス<br />

sysCONFIG ピ ン<br />

<strong>MachXO2</strong> にあ る sysCONFIG I/O ピ ンは、デバ イ スのプ ロ グ ラ ム及びコ ン フ ィ グ レーシ ョ ンに使用で き ます。<br />

sysCONFIG ピ ンはグループにま と め ら れてポー ト (JTAG、 SSPI、 I 2 C、 MSPI) を構成し、 内蔵 さ れた リ ソー<br />

スのプ ロ グ ラ ミ ン グ、 コ ン フ ィ グ レーシ ョ ン、及びア ク セ スのための <strong>MachXO2</strong> と の通信に使用 さ れます。 コ<br />

ン フ ィ グ レーシ ョ ンポー ト ・ グループ内の sysCONFIG ピ ンは、 ア ク テ ィ ブに し てプ ロ グ ラ ミ ングに使用で<br />

き ますが、 再コ ン フ ィ グ レーシ ョ ン し て汎用 I/O と し て機能する こ と も で き ます。<br />

コ ン フ ィ グ レーシ ョ ン ・ ポー ト ピ ン を汎用 I/O と し て回復する には、 次のガ イ ド ラ イ ンに従 う 必要があ り ま<br />

す。<br />

• 未使用ポー ト をデ ィ セーブルする必要があ り ます。 そのためには、 Diamond の Spreadsheet View にあ る<br />

Global Preferences (グ ローバル制約) タ ブを使用し ます。 各コ ン フ ィ グ レーシ ョ ン ・ ポー ト は、<br />

sysCONFIG オプシ ョ ン ツ リ ーに リ ス ト さ れます。<br />

• 外部ロ ジ ッ ク が、 デバイ ス ・ プ ロ グ ラ ミ ン グに影響を与えない よ う にする必要があ り ます。 <strong>MachXO2</strong> が<br />

デフォル ト モード ・ フ ィーチャ行ステート のと きに、 回復された sysCONFIGピンがドラ イブされないよ<br />

うにします。例えば、<strong>MachXO2</strong>がデフォルトモード ・フィーチャ行ステートになったら、PROGRAMNを<br />

Low に ド ラ イ ブ し ます。 PROGRAMN をデ ィ セーブルし た状態でフ ィ ーチャ行の再プ ロ グ ラ ムに失敗する<br />

と、<strong>MachXO2</strong>をコンフィグレーションすることも、 ユーザモードにすることもできなくなります。<br />

• JTAGENB を使用し て、 JTAG ポー ト を選択的に イ ネーブル及びデ ィ セーブルする際は注意が必要です。<br />

JTAG I/O に接続された外部ロ ジ ッ ク が、 JTAG プロ グ ラ ミ ングポー ト と競合し てはいけません。<br />

表 14-5 に共有 sysCONFIG ピ ンのデフ ォル ト ・ ステー ト を示し ます。 こ の表に示し た と お り 、 デフ ォル ト<br />

モー ド ・ フ ィ ーチャ行デバイ スは JTAG、 SPI ス レーブ、 及び I 2 Cポートがイネーブルされます。ユーザモー<br />

ド にな る と 、 <strong>MachXO2</strong>、 SSPI のデフ ォル ト ・ ス テー ト 、 及び I 2 C sysCONFIG ピ ンは汎用 I/O にな り ます。 そ<br />

の結果、 デフ ォル ト の sysCONFIG ポー ト 設定を使用する と 、 SSPI ま たは I 2 C を使用し て <strong>MachXO2</strong> をプ ロ グ<br />

ラムできなくなります。SSPI または I 2 C sysCONFIG ピ ン を ユーザモー ド の ま ま にす る には、 Diamond の<br />

Spreadsheet View エデ ィ タ を使用し て、 それ ら のピ ン を必ずイ ネーブルする必要があ り ます。<br />

特記のない限 り 、 sysCONFIG ピ ンには V CCIO0 電圧が印加 さ れます。 バン ク 0 に接続 さ れた他の ロ ジ ッ ク を<br />

用意する場合は、 こ の こ と に十分注意し て く だ さ い。<br />

各 sysCONFIG ピ ンの機能について詳し く 説明し ます。<br />

14-10 tn1204_02.2


表 14-5. sysCONFIG ピ ンのデフ ォル ト ・ ス テー ト<br />

関連する<br />

sysCONFIG ポー ト<br />

セルフダウ ン ロード ・ ポー ト ピン<br />

デフォルトモード ・ フ ィーチャ行<br />

のデフ ォル ト のピ ン機能<br />

(コンフ ィグレーシ ョ ン ・ モード)<br />

<strong>MachXO2</strong> プログラミングとコンフィグレーション<br />

使用ガイド<br />

ピ ンの方向<br />

(コンフ ィグレーシ ョ ン ・<br />

モード)<br />

PROGRAMN: <strong>MachXO2</strong> の コ ン フ ィ グ レーシ ョ ンに使用さ れる制御入力ピ ン。 イ ネーブル さ れる と、<br />

PROGRAMN ピ ンは High から Low の遷移にセンシテ ィ ブで、内部的に弱 く プルア ッ プ されます。PROGRAMN<br />

が Low に ド ラ イ ブ さ れる と 、 <strong>MachXO2</strong> はユーザモー ド を終了し、 前述の よ う に初期化ス テ ッ プのデバ イ ス ・<br />

コンフィグレーション・シーケンスを開始します。PROGRAMNピンをLowに保持すると、<strong>MachXO2</strong>は初期<br />

化ス テ ッ プを終了で き な く な り ます。 PROGRAMN には、 ド ラ イ ブ さ れた こ と を <strong>MachXO2</strong> が認識する ための<br />

ド ラ イ ブ期間の最小パルス幅があ り 、<strong>MachXO2</strong> フ ァ ミ リ データ シー ト の AC タ イ ミ ン グ項に記載 さ れていま<br />

す。<br />

PROGRAMN ピンがイ ネーブルされている場合は、 次の特殊ケースに注意し て く ださい。<br />

ユーザモー ド フ ィ ー<br />

チ ャ行のデフ ォル ト<br />

機能<br />

ピン名<br />

PROGRAMN1 SDM PROGRAMN 弱いプルア ッ プのある入力 ユーザ定義 I/O<br />

INITN SDM I/O 弱いプルア ッ プのある I/O ユーザ定義 I/O<br />

DONE SDM I/O 弱いプルア ッ プのある I/O ユーザ定義 I/O<br />

MCLK/CCLK SSPI/MSPI SSPI 弱いプルア ッ プのある入力 ユーザ定義 I/O<br />

SN SSPI/MSPI SSPI 弱いプルア ッ プのある入力 ユーザ定義 I/O<br />

SI/SISPI SSPI/MSPI SSPI 入力 ユーザ定義 I/O<br />

SO/SPISO SSPI/MSPI SSPI 出力 ユーザ定義 I/O<br />

CSSPIN MSPI I/O 弱いプルア ッ プのある I/O ユーザ定義 I/O<br />

SCL I2 C I 2 C 双方向 ユーザ定義 I/O<br />

SDA I2 C I 2 C 双方向 ユーザ定義 I/O<br />

1. ユーザモー ド の PROGRAMN のデフ ォル ト は、 ispLEVER ® 8.1 SP1 及び <strong>Lattice</strong> Diamond ® 1.1 では PROGRAMN<br />

• デバ イ スが JTAG か ら プ ロ グ ラ ム中の場合は、 JTAG モー ド ・ プ ロ グ ラ ミ ング ・ シーケン スが完了する ま<br />

で PROGRAMN は無視 さ れます。<br />

• デバイスのコンフィグレーシ ョ ン中に PROGRAMN ピンを ト グルする と、 プロセスが中断されて、 コン<br />

フ ィ グ レーシ ョ ン ・ サ イ ク ルが再始動されます。<br />

• デフォルトモード ・ フィーチャ行ステートのデバイスで PROGRAMN をド ライブする と、 SSPI 及びI 2 C<br />

ポー ト がデ ィ セーブル さ れます。 SSPI ま たは I 2Cのプログラミング動作は、PROGRAMNのネゲート後に 開始し て く だ さ い。<br />

• PROGRAMN は汎用 I/O と し て確保 さ れてい る場合で も電源起動時はア ク テ ィ ブです。 V CC がその (min)<br />

に達し てか ら INITN が立ち上が る までの期間よ り 早 く PROGRAMN に接続された入力信号が High か ら<br />

Low に遷移させてはな り ません。 さ も ない と 、 しばしば <strong>MachXO2</strong> が コ ン フ ィ グ レーシ ョ ンに失敗する こ<br />

と と な り 、 リ セ ッ ト 状態のま まにな り ます。 図 14-4 を参照し て下さ い。<br />

14-11 tn1204_02.2


図 14-4. PROGRAMN が常時監視される周期<br />

図 14-5. PROGRAMN か ら の コ ン フ ィ グ レーシ ョ ン ・ タ イ ミ ング<br />

PROGRAMN<br />

PROGRAMN<br />

INITN<br />

DONE<br />

VCC VCC min.<br />

INITN<br />

t DPPINIT<br />

t DPPDONE<br />

<strong>MachXO2</strong> プログラミングとコンフィグレーション<br />

使用ガイド<br />

PROGRAMN transitions observed<br />

INITN: INITN ピンは双方向のオープン ド レ イ ン制御ピンで、 次の機能があ り ます。<br />

t PRGMJ<br />

• 電源投入後、 PROGRAMN の ド ラ イ ブ後、 ま たは REFRESH コ マン ド 実行後に Low にな り 、 コ ン フ ィ グ<br />

レーションSRAMの消去中であることを示します。Lowのドライブ時間は、tINTIL パラ メータで規定され<br />

ます。<br />

• tINTIL 期間の経過後、 INITN ピ ンがネゲー ト さ れて (High) コ ン フ ィ グ レーシ ョ ンの準備がで き た こ と を<br />

示し ます。 <strong>MachXO2</strong> は、 内部フ ラ ッ シ ュ メ モ リ または外付け SPI フ ラ ッ シ ュか ら、 コ ン フ ィ グ レーシ ョ<br />

ン ・ データ の ロー ド を開始し ます。<br />

• INITN を tINTIL 期間の経過前に外部デバ イ スか ら Low に ド ラ イ ブする こ と に よ り 、 コ ン フ ィ グ レーシ ョ ン<br />

を開始する こ と を防止で き ます。 複数のプ ロ グ ラ マブルデバイ スがチェーン接続されてい る場合は、 こ れ<br />

が役立ちます。 tINTIL 時間が最も長いプロ グ ラ マブルデバイ スは、 そのデバイ スの準備ができ る まで、<br />

チェーン内の他の全てのデバイ スにデータ取得開始を待たせる こ と がで き ます。<br />

• INITN が持つ最後の機能は、 コ ン フ ィ グ レーシ ョ ン ・ データ の読み出し中にエ ラーを通知する こ と です。<br />

tINTIL が経過し、 INITN ピンが一度 High になった後に INITN が Low にな る こ と は、 コ ンフ ィ グレーシ ョ ン<br />

中に <strong>MachXO2</strong> がエ ラーを検出し た こ と を示し ます。<br />

INITN は次の条件でア ク テ ィ ブにな り 、 初期化ス テー ト がア ク テ ィ ブであ る こ と を示し ます。<br />

• 電源の供給が開始された<br />

• PROGRAMN の立ち下がりエッジが発生した<br />

• スレーブ ・ コンフィグレーシ ョ ン ・ ポート (JTAG、 SSPI、 I2C、 ま たは WISHBONE) を使用し て、 IEEE<br />

1532 REFRESH コ マン ド が送信さ れた<br />

エ ラー条件に よ って INITN ピ ンが ド ラ イ ブ さ れた場合は、 コ ン フ ィ グ レーシ ョ ン ・ ビ ッ ト ス ト リ ーム を修正<br />

し、 <strong>MachXO2</strong> を強制的に初期化ス テー ト にする と 、 エ ラーを解消で き ます。<br />

t INITL<br />

14-12 tn1204_02.2


図 14-6. コ ン フ ィ グ レーシ ョ ン ・ エ ラーの通知<br />

PROGRAMN<br />

INITN<br />

DONE<br />

t INITL<br />

<strong>MachXO2</strong> プログラミングとコンフィグレーション<br />

使用ガイド<br />

Configuration<br />

Error<br />

Configuration<br />

Started<br />

デフ ォル ト モー ド ・ フ ィ ーチ ャ行ス テー ト にあ る場合、<strong>MachXO2</strong> デバイ スの INITN の状態はデバ イ ス外部か<br />

ら認識でき ません。 このモード の INITN ピンは、 デフ ォル ト で High にプルア ッ プされます。 図 14-6 に示す<br />

INITN の動作が <strong>MachXO2</strong> の外部か ら認識される のは、 INITN ピ ンが イ ネーブル さ れた場合だけです。<br />

INITN は汎用 I/O と し て回復で き ます。 デフ ォル ト では、 INITN ピ ンはデ ィ セーブル さ れます。 イ ネーブル<br />

する には、 Diamond の Spreadsheet View を使用し ます。<br />

ビ ッ ト ス ト リ ームの読み出し時にエ ラーが検出された場合は、 INITN が Low にな り 、 内部 DONE ビ ッ ト は<br />

セ ッ ト さ れず、 DONE ピ ンが Low のま ま と なって、 デバイ スはウ ェ イ ク ア ッ プ し ません。 次の場合、 デバ イ<br />

スはコンフ ィグレーシ ョ ンに失敗します。<br />

• ビ ッ ト ス ト リ ーム CRC エ ラーが検出 さ れた<br />

• 無効な コ マン ド (エ ラー) が検出された<br />

• オンチップフラ ッシュからのロード時にタイムアウ トエラーが発生した<br />

• オンチップ ・ コンフィグレーシ ョ ン SRAM またはオンチップ ・ フラ ッシュ メモリの末尾に達したと きに、<br />

プ ロ グ ラ ム完了 (Program Done) コ マン ド を検出し なかった<br />

DONE: 弱 く プルア ッ プされた双方向オープン ド レ イ ンで、 <strong>MachXO2</strong> がユーザモード であ る こ と を通知し ま<br />

す。 DONE がユーザモー ド への移行を最初に示すこ と がで き る のは、 内部 DONE ビ ッ ト がアサー ト さ れた後<br />

だけです。 内部 DONE ビ ッ ト は、 <strong>MachXO2</strong> のウ ェ イ クアップ ・ ステー ト の開始を示し ます。<br />

DONE ピ ン出力は SDM_PORT コ ン フ ィ グ レーシ ョ ン ・ パ ラ メ ータ で制御 さ れ、 Diamond の Spreadsheet View<br />

(スプレ ッ ド シー ト ・ ビ ュー) で変更で き ます。 デフ ォル ト では、 <strong>MachXO2</strong> がデフ ォル ト モー ド ・ フ ィ ーチ ャ<br />

行ス テー ト の場合に、 DONE ピ ンは汎用 I/O にな り ます。 デフ ォル ト モー ド では、 内部 DONE ビ ッ ト のア<br />

サート後、<strong>MachXO2</strong>が自動的にウェイクアップ・シーケンスを順に実行します。<strong>MachXO2</strong>がウェイクアッ<br />

プを停止し、 DONE ピ ンが High に ド ラ イ ブ さ れる まで待つ こ と はあ り ません。<br />

外部デバイ スが DONE ピ ン を Low に ド ラ イ ブ し続け る と 、その期間はユーザモー ド に移行し ない状態に保持<br />

できます。 そのためには、 SDM_PORT で DONE I/O をイネーブルし、 <strong>MachXO2</strong> のフィーチャ行をプログラ<br />

ムする必要があります。DONEをLowにドライブしたままにする一般的な理由は、複数のFPGAを全てコン<br />

フ ィ グレーシ ョ ンでき る よ う にする こ と です。各 FPGA が DONE ステー ト に達する と ユーザ動作を開始でき<br />

ます。 (チェーンに し て DONE ピ ン を ワ イ ヤー ド オア接続し た場合、) 最後の FPGA が コ ン フ ィ グ レーシ ョ ン<br />

さ れる と 、 全ての FPGA が一斉に動作を開始し ます。<br />

<strong>MachXO2</strong> が初期化モー ド にな る と 、 INITN ピ ン と 連動し て DONE ピ ンが Low に ド ラ イ ブ さ れます。 既に説<br />

明したとおり、電源が投入されるか、PROGRAMN がドライブされるか、アクティブなコンフィグレーショ<br />

ン ・ ポー ト か ら IEEE 1532 Refresh コ マン ド を受信する と こ のス テー ト にな り ます。<br />

DONE ピ ン をサンプ リ ン グする こ と で、 外部デバ イ スが <strong>MachXO2</strong> の コ ン フ ィ グ レーシ ョ ン終了を知る方法<br />

と し て利用で き ます。 ただ し、 IEEE 1532 JTAG を使用し て SRAM を コ ン フ ィ グ レーシ ョ ンする と 、 DONE ピ<br />

ンがバウ ンダ リ ス キ ャ ン ・ セルに よ って ド ラ イ ブ さ れる ため、 IEEE 1532 JTAG に よ る コ ン フ ィ グ レーシ ョ ン<br />

中は DONE ピ ンのス テー ト が意味を持たな く な り ます(コ ン フ ィ グ レーシ ョ ンが完了する と 、DONE はフ ィ ー<br />

チャ行の SDM_PORT 設定で定義さ れた動作 と な り ます)。 <strong>MachXO2</strong> がデフ ォル ト モー ド ・ フ ィ ーチ ャ行ス<br />

14-13 tn1204_02.2


<strong>MachXO2</strong> プログラミングとコンフィグレーション<br />

使用ガイド<br />

テー ト の場合も、 DONE ピ ンは High にプルア ッ プ さ れます。 こ の動作に よ って、 DONE ピ ン をモニ タ し てい<br />

る他の ロ ジ ッ ク に、 コ ン フ ィ グ レーシ ョ ンの完了を認識 させる こ と がで き ます。<br />

MSPI 及び SSPI コ ン フ ィ グ レーシ ョ ン ・ ポー ト ピ ン<br />

表 14-6. MSPI コ ン フ ィ グ レーシ ョ ン ・ ポー ト ピ ン<br />

ピン名 機能 方向 記 述<br />

MCLK/CCLK MCLK<br />

弱いプルア ッ プのあ<br />

る出力<br />

CSSPIN CSSPIN 出力<br />

SI/SISPI SISPI 出力<br />

SO/SPISO SPISO 入力<br />

SN SN/IO 入力<br />

表 14-7. SSPI コ ン フ ィ グ レーシ ョ ン ・ ポー ト ピ ン<br />

<strong>MachXO2</strong> のコ ン フ ィ グレーシ ョ ン ・ ロジ ッ クから スレーブ SPI フ<br />

ラ ッ シ ュ メ モ リ への、 デー タの送信 / 受信のタ イ ミ ングに使用さ<br />

れるマス タ ク ロ ッ ク。 外部及びデュ アルブー ト ・ コ ン フ ィ グレー<br />

ション・モードでは、MCLKに1Kのプルアップ抵抗を推奨<br />

コ ン フ ィ グレーシ ョ ン ・ デー タが格納された外付け SPI フ ラ ッ<br />

シュメモリのイネーブルに使用されるチップセレク ト<br />

<strong>MachXO2</strong> コ ン フ ィ グレーシ ョ ン ・ ロジ ッ クから スレーブ SPI フ<br />

ラ ッ シ ュ メ モ リ に出力デー タ を伝達する<br />

スレーブ SPI フ ラ ッ シ ュ メ モ リ から <strong>MachXO2</strong> コ ン フ ィ グレーシ ョ<br />

ン・ロジックに出力データを伝達する<br />

.<strong>MachXO2</strong> コ ン フ ィ グレーシ ョ ン ・ ロジ ッ クの SSPI チ ッ プセレ ク<br />

ト 入力。 MSPI ポー ト がア ク テ ィ ブの場合は常に、 外部で High にプ<br />

ルア ッ プする<br />

ピン名 機能 方向 記 述<br />

MCLK/CCLK CCLK<br />

弱いプルア ッ プのある<br />

入力<br />

SI/SISPI SI 入力<br />

SO/SPISO SO 入力<br />

SN SN<br />

弱いプルア ッ プのある<br />

入力<br />

外部 SPI マス タ デバイ スから <strong>MachXO2</strong> コ ン フ ィ グレーシ ョ ン ・ ロ<br />

ジ ッ クへのデー タの送信 / 受信のタ イ ミ ングに使用される ク ロ ッ ク<br />

外部 SPI マス タから <strong>MachXO2</strong> コ ン フ ィ グレーシ ョ ン ・ ロジ ッ ク に出<br />

力データ を伝達する<br />

<strong>MachXO2</strong>コンフィグレーシ ョ ン ・ ロジッ クから外部 SPIマスタに出 力データ を伝達する<br />

<strong>MachXO2</strong> コ ン フ ィ グレーシ ョ ン ・ ロジ ッ クの SSPI チ ッ プセレ ク ト 入<br />

力。 SN はア ク テ ィ ブ Low 入力<br />

MCLK/CCLK: MCLK/CCLK がア ク テ ィ ブな場合は、 <strong>MachXO2</strong> の コ ン フ ィ グ レーシ ョ ン ・ データ をシーケ ン<br />

シ ャルに ロー ド する ための ク ロ ッ ク と し て使用されます。 こ のピ ンの機能は次の と お り です。<br />

デフ ォル ト モー ド ・ フ ィ ーチャ行ス テー ト の <strong>MachXO2</strong> では、 MCLK/CCLK ピ ンはデフ ォル ト ・ ス テー ト で<br />

コ ン フ ィ グ レーシ ョ ン ・ ク ロ ッ ク (CCLK) と し て機能し ます。 こ のス テー ト では、 外部 SSPI マ ス タ コ ン ト<br />

ローラ が <strong>MachXO2</strong> をプ ロ グ ラ ムで き ます。 最大 CCLK 周波数及びセ ッ ト ア ッ プ / ホール ド ・ パ ラ メ ータは、<br />

<strong>MachXO2</strong> フ ァ ミ リ データ シー ト の AC タ イ ミ ン グ項に記載されています。 SSPI ポー ト を使用し て、 ユーザ<br />

モー ド にな った <strong>MachXO2</strong> をプ ロ グ ラ ムする場合は、 SSPI ポー ト を イ ネーブルする よ う フ ィ ーチ ャ行を構成<br />

する必要があ り ます。<br />

<strong>MachXO2</strong> がデュ アルブー ト ま たは外部ブー ト モー ド に設定 さ れてい る場合、 MCLK/CCLK ピ ンはマ ス タ ク<br />

ロ ッ ク (MCLK) と し て機能し ます。 こ れら のモー ド を使用する際は、 1K の外付けプルア ッ プ抵抗を推奨し<br />

ます。 MCLK が出力 と な り 、 <strong>MachXO2</strong> の MSPI コ ン フ ィ グ レーシ ョ ン ・ ポー ト に接続さ れた SPI フ ラ ッ シ ュ<br />

の基準 ク ロ ッ ク を提供し ます。 全ての コ ン フ ィ グ レーシ ョ ン ・ データ を受信する まで、 MCLK はア ク テ ィ ブ<br />

にドライブされます。<strong>MachXO2</strong>がユーザモードになると、MCLK出力はト ライステートになり、汎用I/O と<br />

し て使用で き る よ う にな り ます。 し か し コ ン フ ィ グ レーシ ョ ン後の多 く の使い方 と し ては、MCLK は外部 SPI<br />

フ ラ ッ シ ュ メ モ リ に よ る メ モ リ ・ ト ラ ンザ ク シ ョ ン実行用の基準 ク ロ ッ ク と し て確保 さ れます。<br />

<strong>MachXO2</strong> は内部オシ レータ か ら MCLK を発生し ます。 通常、 MCLK の初期周波数は 2.08MHz です。 こ の<br />

MCLK 周波数は、 MCCLK_FREQ パ ラ メ ータ を使用し て変更で き ます。 MCCLK_FREQ の選択には、 Diamond<br />

の Spreadsheet View を使用し ます。 対応し てい る MCLK 周波数の全 リ ス ト は、 表 14-8 を参照し て く だ さ い。<br />

14-14 tn1204_02.2


表 14-8. <strong>MachXO2</strong> MCLK の有効な周波数<br />

<strong>MachXO2</strong> プログラミングとコンフィグレーション<br />

使用ガイド<br />

2.08 9.17 33.25<br />

2.46 10.23 38.00<br />

3.17 13.30 44.33<br />

4.29 14.78 53.20<br />

5.54 20.46 66.50<br />

7.00 26.60 88.67<br />

8.31 29.56 133.00<br />

デバイ ス ・ コ ン フ ィ グ レーシ ョ ンの初期化ス テ ッ プの中で、 MCCLK_FREQ を使用し て指定さ れた周波数値<br />

が <strong>MachXO2</strong> に ロー ド さ れます。 <strong>MachXO2</strong> が新し い MCLK_FREQ 値を受け取る と 、 MCLK 出力は選択された<br />

周波数での ド ラ イ ブを開始し ます。 MCCLK_FREQ を選択する と きは、 SPI フ ラ ッ シ ュ メ モ リ ま たは PCB の<br />

周波数仕様を超過し ない よ う 注意し、 ま た <strong>MachXO2</strong> フ ァ ミ リ データ シー ト で <strong>MachXO2</strong> の AC 仕様を確認し<br />

てください。<br />

SN: SSPIポートのチップセレクト入力ピンです。外部SPIバスマスタは、<strong>MachXO2</strong>のプログラミング及びコ<br />

ン フ ィ グ レーシ ョ ン ・ ロ ジ ッ ク を使用し て動作を実行する ため、 SN ピ ン を ア ク テ ィ ブ Low に ド ラ イ ブ し ま<br />

す。 SN ピ ン を使用で き る のは、 <strong>MachXO2</strong> がデフ ォル ト モー ド ・ フ ィ ーチ ャ行ス テー ト の場合、 及び SSPI<br />

ポー ト が ENABLE に設定されたステー ト のユーザモード の場合です。 SSPI ポー ト が DISABLE に設定されて<br />

い る場合、 SN ピ ンは汎用 I/O にな り ます。<br />

<strong>MachXO2</strong> が正し く 動作する には、 SN ピ ン を正し いス テー ト に保つ こ と が重要です。<br />

• MSPI を使用し て コ ン フ ィ グ レーシ ョ ンする場合は、 SN をネゲー ト (High に固定) する必要があ り ます。<br />

• <strong>MachXO2</strong> がユーザモー ド で内部 WISHBONE バス を使用し て SPI メ モ リ ・ ト ラ ンザ ク シ ョ ン を初期化する<br />

場合は、 SN をネゲー ト する必要があ り ます。<br />

• I 2Cを使用して<strong>MachXO2</strong>内のコンフィグレーション・ロジックにアクセスする場合は、SNをネゲートす る必要があ り ます。<br />

• SNがドライブされた場合は、CSSPINをネゲートし、共有SPIピンをハイインピーダンス状態にする必要<br />

があ り ます。<br />

– MSPI ポー ト と SSPI ポー ト は、 SI/SISPI、 SO/SPISO、 MCLK/CCLK と い う 3 本のピ ン を共有し ます。<br />

<strong>MachXO2</strong> では、 両方のポー ト を使用でき ますが、 両方に同時にア ク セスする こ と はでき ません。 SSPI<br />

及び MSPI ポー ト の両方を イ ネーブルし た場合は、 こ れら のポー ト を時分割で使用する必要があ り ま<br />

す。<br />

SN ピ ン を外部か ら High にプルア ッ プする こ と で、 内部の弱いプルア ッ プを強化する こ と を推奨し ます。<br />

CSSPIN: MSPI コ ン フ ィ グ レーシ ョ ン ・ モー ド で外付け SPI フ ラ ッ シ ュ を イ ネーブルする ため使用 さ れる、 ア<br />

ク テ ィ ブ Low のチ ッ プセレ ク ト 入力ピ ンです。 外部ま たはデュ アルブー ト ・ モー ド で コ ン フ ィ グ レーシ ョ ン<br />

する よ う <strong>MachXO2</strong> がプ ロ グ ラ ム さ れる と 、接続された SPI フ ラ ッ シ ュ に対し て CSSPIN ピ ンが ド ラ イ ブ さ れ<br />

ます。 <strong>MachXO2</strong> は、 全てのコンフィグレーショ ン ・データバイ トがロード されるまで CSSPIN をアサート し<br />

続け、 その後 CSSPIN はハ イ イ ン ピーダン ス状態にな り ます。<br />

<strong>MachXO2</strong> がデフ ォル ト モー ド ・ フ ィ ーチャ行ス テー ト の場合、CSSPIN ピ ンは弱 く プルダ ウ ン さ れた汎用 I/O<br />

と な り ます。外部及びデュ アルブー ト ・ コ ン フ ィ グ レーシ ョ ン ・ モー ド で使用する場合は、外付けのプルア ッ<br />

プ抵抗が必要です。 CSSPIN の電位は、 SPI フ ラ ッ シ ュ メ モ リ VCC の立ち上が り ・ 下が り に連動する必要が<br />

あ り ます。 <strong>MachXO2</strong> がユーザモー ド にな る と 、 汎用 I/O の ま まにな り ます。 内部 SPI マ ス タ ロ ジ ッ ク が<br />

CSSPIN を使用でき る よ う 予約するには、 MSPI ポー ト を イ ネーブルする必要があ り ます。<br />

14-15 tn1204_02.2


<strong>MachXO2</strong> プログラミングとコンフィグレーション<br />

使用ガイド<br />

SPIフラッシュメモリによっては、チップセレクト入力がフラッシュメモリのVCC と連動して立ち上がり ・<br />

下が り する必要があ り ます。 デフ ォル ト で、 CSSPIN ピ ンには内部に弱いプルダ ウ ン抵抗が付いていますの<br />

で、 4.7 ~ 10KΩ のプルア ッ プ抵抗を付加する こ と を推奨し ます。<br />

SI/SISPI: デュ アル機能の双方向ピ ンで、 その方向はマ ス タ ま たはス レーブのど ち ら のモー ド がア ク テ ィ ブか<br />

で決ま り ます。 SI/SISPI は、 SSPI モー ド 使用時は入力データ ピ ンにな り 、 MSPI モー ド 使用時は出力データ ピ<br />

ンにな り ます。MSPI モードでは、全てのコンフ ィ グレーシ ョ ン・データバイ ト がロード されるまで <strong>MachXO2</strong><br />

が SI/SISPI を ド ラ イ ブ し、 その後 SI/SISPI はハ イ イ ン ピーダン ス ・ ス テー ト にな り ます。<br />

こ のピ ン を SI/SISPI と し て確保し、 SPI イ ン ターフ ェ イ スへのア ク セ ス を許可する には、 sysCONFIG 制約の<br />

SLAVE_SPI_PORT ま たは MASTER_SPI_PORT の少な く と も 1 つを ENABLE に設定する必要があ り ます。<br />

SO/SPISO: デュ アル機能の双方向ピ ンで、 その方向は、 マ ス タ ま たはス レーブのど ち ら のモー ド がア ク テ ィ<br />

ブかで決ま り ます。 MSPI モー ド 使用時は入力データ ピ ンにな り 、 SSPI モー ド 使用時は出力データ ピ ンにな<br />

ります。<br />

こ のピ ン を SO/SPISO と し て確保し、 SPI イ ン ターフ ェ イ スへのア ク セ ス を許可する には、 sysCONFIG 制約<br />

の SLAVE_SPI_PORT ま たは MASTER_SPI_PORT の少な く と も 1 つを ENABLE に設定する必要があ り ます。<br />

I 2 C コ ン フ ィ グ レーシ ョ ン ・ ポー ト ピ ン<br />

SCL: <strong>MachXO2</strong> には I 2 Cコンフィグレーション・ポートがあります。SCLはI 2 Cシリアルクロック・ピンで、<br />

I 2 Cバス・ ト ラ ンザ ク シ ョ ンの開始 と タ イ ミ ン グに使用 さ れます。双方向のオープン ド レ イ ン信号で、<strong>MachXO2</strong><br />

のI 2 C コ ン ト ローラ がバス ト ラ ンザ ク シ ョ ン ・ マ ス タ の場合は出力、 外部 I 2 C マ ス タ が <strong>MachXO2</strong> 内部 リ ソー<br />

スにア ク セ スする場合は入力にな り ます。 SCL が動作する ためには、 外付けプルア ッ プ抵抗が必要です。<br />

SCLピンを使用できるのは、<strong>MachXO2</strong>がデフォルトモード ・フィーチャ行ステートの場合です。I 2 Cポート<br />

がユーザモー ド で も使用で き る よ う にする には、 I2C_PORT を イ ネーブルする必要があ り ます。 I 2 Cポートを<br />

ENABLE に設定し なかった場合、 SCL ピ ンは汎用 I/O にな り ます。<br />

SDA: I 2 C シ リ アルデータ入出力ピ ンです。 双方向のオープン ド レ イ ンで、 動作する ためには外付けプルア ッ<br />

プ抵抗が必要です。 こ のピ ンの方向は、 I 2 C バス上のデータ ト ラ ンザ ク シ ョ ン中に動的に変化し ます。 状態<br />

は、 その時点のバスマス タ がどれか と 、 そのマ ス タ が実行中の動作で決ま り ます。<br />

SDAピンを使用できるのは、<strong>MachXO2</strong>がデフォルトモード ・フィーチャ行ステートの場合です。I 2 Cポート<br />

がユーザモー ド で も使用で き る よ う にする には、 I2C_PORT を イ ネーブルする必要があ り ます。 I 2 Cポートを<br />

ENABLE に設定し なかった場合、 SDA ピ ンは汎用 I/O にな り ます。<br />

JTAG コ ン フ ィ グ レーシ ョ ン ・ ポー ト ピ ン<br />

JTAG ピ ンは標準 IEEE 1149.1 TAP (Test Access Port) を提供し ます。 JTAG ポー ト は <strong>MachXO2</strong> で唯一の、 コ<br />

ン フ ィ グ レーシ ョ ン、 プ ロ グ ラ ミ ン グ、 及び複数デバイ ス ・ コ ン フ ィ グ レーシ ョ ンの各機能の実行が可能な<br />

コンフィグレーション・ポートです。JTAGポートによるプログラミングとコンフィグレーションでは、IEEE<br />

1532 準拠の コ マン ド が使用されます。 IEEE 1532 機能に加えて、 <strong>MachXO2</strong> には必須の IEEE 1149.1 TAP コ マ<br />

ン ド が全て用意され、 プ リ ン ト 基板アセンブ リ の検証が可能です。<br />

JTAG ポー ト は、 <strong>MachXO2</strong> がデフ ォル ト モード ・ フ ィ ーチャ行ステー ト の場合に、 デフ ォル ト でイネーブル<br />

にな り ます。 他の全ての コ ン フ ィ グ レーシ ョ ン ・ ポー ト ピ ン と 同様、 JTAG ピ ン も汎用 I/O にする こ と がで<br />

きます。 他のポート とは異なり、 JTAG ポートのデフォルト ・ ステート (ENABLE ステート) はユーザモー<br />

ド で も ア ク テ ィ ブな ま まにな り ます。 JTAG_PORT 制約を DISABLE ス テー ト に設定する と 、 JTAG ピ ン を汎<br />

用 I/O と し て回復で き ます。 JTAG ポー ト は、 専用プ ロ グ ラ ム ピ ンのま まにする こ と を推奨し ます。<br />

JTAG ポー ト を DISABLE ス テー ト に設定する と 、 JTAGENB 入力が イ ネーブル さ れ、 JTAG ピ ン を多重化で き<br />

ます。JTAGENB を High に ド ラ イ ブする と 、JTAG ピ ンは IEEE 1149.1 の特性を持ち ます。JTAGENB をネゲー<br />

ト (Low に ド ラ イ ブ) する と 、 JTAG ポー ト ピ ンが汎用 I/O にな り ます。 JTAG ポー ト ピ ンの多重化を利用す<br />

14-16 tn1204_02.2


<strong>MachXO2</strong> プログラミングとコンフィグレーション<br />

使用ガイド<br />

る場合は、 JTAG ポー ト 回路の設計には注意が必要です。 JTAG ポー ト に接続 さ れた ロ ジ ッ ク と の競合を防止<br />

してください。<br />

デバイ スが IEEE 1149.1 制御でプ ロ グ ラ ム さ れてい る場合は、 プ ロ グ ラ ミ ン グの進行状況の判定に、 DONE<br />

な どの sysCONFIG プ ロ グ ラ ミ ング ピ ン を使用で き ません。 こ れはバウ ンダ リ ス キ ャ ン ・ セルの状態に よ る<br />

ピ ンの ド ラ イブが、 通常の内部ロ ジ ッ ク ではな く IEEE JTAG 標準に従って行われるためです。<br />

表 14-9. JTAG ポー ト ピ ン<br />

ピ ンの機能 (コ ン フ ィ グレー ピ ンの方向 (コ ン フ ィ グレー デフォルト機能<br />

ピン名<br />

ション・モード)<br />

ション・モード)<br />

(ユーザモー ド )<br />

TDI TDI 弱いプルア ッ プのある入力 TDI<br />

TDO TDO 弱いプルア ッ プのある出力 TDO<br />

TCK TCK 入力 TCK<br />

TMS TMS 弱いプルア ッ プのある入力 TMS<br />

JTAGENB I/O 弱いプルダウンのある I/O I/O<br />

TDO (Test Data Output) : シ リ アルテ ス ト 命令及びデータ をシフ ト ア ウ ト する ために使用 さ れます。 TDO が<br />

内部回路か ら ド ラ イ ブ さ れていない場合、 こ のピ ンはハイ イ ン ピーダン スにな り ます。 ハ イ イ ン ピーダン ス<br />

でなくなるのは、JTAG ステートマシンがシフ ト IR またはシフ ト DR ステートの場合だけです。 このピンは、<br />

JTAG コ ネ ク タ の TDO、 ま たは JTAG チェーンの下流デバ イ スの TDI に配線する必要があ り ます。 TDO ピ ン<br />

にはプルア ップ抵抗が内蔵されお り 、 VCCIO バン ク 0 (V CCIO0 ) にプルアップされています。<br />

TDI (Test Data Input) : シ リ アルテ ス ト 命令及びデータ をシフ ト イ ンする ために使用 さ れ、 JTAG コ ネ ク タ の<br />

TDI、 ま たは JTAG チェーンの上流デバイ スの TDO に配線する必要があ り ます。 TDI ピ ンにはプルア ッ プ抵<br />

抗が内蔵されてお り 、 V CCIO0 にプルア ップされています。<br />

TMS (Test Mode Select) : 1149.1 準拠ス テー ト マシンのス テー ト 遷移を制御する入力ピ ンで、 TCK の立ち上<br />

が り エ ッ ジでサンプ リ ング さ れます。JTAG ス テー ト マシンは、現在の TAP ス テー ト と サンプル時の TMS 入<br />

力レベルに よ って、そのス テー ト を維持する か、ま たは新し い TAP ス テー ト に遷移し ます。JTAG 仕様に従っ<br />

て、 TMS にはプルア ップ抵抗が内蔵されてお り、 V CCIO0 にプルア ップされています。<br />

TCK (Test Clock) : 他の JTAG ポー ト ピ ンの タ イ ミ ン グに使用 さ れる ク ロ ッ ク です。 データは TCK の立ち上<br />

がりエッジで命令レジスタまたはデータレジスタにシフトインされ、TCKの立ち下がりエッジでシフトアウ<br />

ト さ れます。 TAP は静的デザ イ ン と なっていて、 TCK は High ま たは Low ス テー ト で停止する こ と がで き ま<br />

す。 TCK の最高入力周波数は、 <strong>MachXO2</strong> フ ァ ミ リ データ シー ト の DC 及びス イ ッ チン グ特性の項に記載 さ<br />

れています。 TCK ピ ンはプルア ッ プ さ れていません。 <strong>MachXO2</strong> の電源投入時に TAP コ ン ト ローラ の予期し<br />

ない ク ロ ッ ク 動作を防止する ため、 4.7KΩ の外付けプルダ ウ ン抵抗を推奨し ます。<br />

JTAGENB: JTAG ENABLE ピ ンは IEEE 1149.1 準拠ピ ン と も呼ばれ、 JTAG ポー ト の多重化に使用可能な入力<br />

ピンです。JTAGENB ピンはユーザモード でのみア ク テ ィ ブにな り ます。JTAG ポー ト が ENABLE ステー ト の<br />

と き に、 JTAGENB ピ ンはユーザ I/O にな り ます。 図 14-7 に、 <strong>MachXO2</strong> デバイ スの JTAG ポー ト のデフ ォル<br />

ト動作を示します。<br />

図 14-7. JTAG_PORT = ENABLE 時の JTAG ポー ト のデフ ォル ト<br />

TCK<br />

TMS<br />

TDI<br />

TDO<br />

TCK/IO<br />

TMS/IO<br />

TDI/IO<br />

TDO/IO<br />

<strong>MachXO2</strong><br />

14-17 tn1204_02.2


<strong>MachXO2</strong> プログラミングとコンフィグレーション<br />

使用ガイド<br />

JTAG ポー ト は汎用 I/O にで き ます。それには、JTAG_PORT の制約を Diamond の Spreadsheet View で DISABLE<br />

に設定し ます。 JTAG ポー ト が DISABLE ス テー ト の場合、 JTAGENB ピ ンは専用入力にな り ます。 JTAGENB<br />

を Low にする と JTAG ポー ト がデ ィ セーブル さ れ、 4 本の JTAG ピ ンが汎用 I/O にな り ます。 JTAGENB 入力<br />

を High にする と 、 JTAG ポー ト が イ ネーブル さ れます。 図 14-8 に、 JTAGENB で制御さ れた JTAG ポー ト の<br />

動作を示し ます。<br />

図 14-8. JTAG_PORT = DISABLE 時の JTAG ポー ト の動作<br />

GND<br />

JTAGENB = ‘0’<br />

I/O<br />

I/O<br />

I/O<br />

I/O<br />

IO/JTAGENB<br />

TCK/IO<br />

TMS/IO<br />

TDI/IO<br />

TDO/IO<br />

JTAGENB 機能を使用する際は、 JTAG I/O ピ ンに接続された ロ ジ ッ ク が、 JTAG プ ロ グ ラ ミ ングシ ス テム と 競<br />

合し ないよ う する こ と が非常に重要です。 外部ロ ジ ッ クは、 外部プロ グ ラ ミ ングシステムで実行される全て<br />

の JTAG ト ラ ンザ ク シ ョ ン を無視する必要があ り ます。<br />

ラ テ ィ スのパラ レルポー ト または USB ダウ ン ロード ケーブルには、 ispEN と い う 出力があ り ます。 この ispEN<br />

信号を JTAGENB 入力に接続する と 、 JTAG ポー ト を使用する かど う かを制御で き ます。 JTAGENB 入力を制御<br />

する別の メ カニズム と し ては、 必要に応じ て取 り 付け と 取 り 外し が可能なジ ャ ンパを使用する方法があ り ま<br />

す。<br />

コンフィグレーション ・モード<br />

<strong>MachXO2</strong> <strong>MachXO2</strong><br />

VCCIO<br />

JTAGENB = ‘1’<br />

IO/JTAGENB<br />

TCK/IO<br />

TMS/IO<br />

TDI/IO<br />

TDO/IO<br />

<strong>MachXO2</strong> には、不揮発性 メ モ リ か ら コ ン フ ィ グ レーシ ョ ン SRAM に ロー ド する複数のオプシ ョ ンが用意 さ れ<br />

ています。前の項では、<strong>MachXO2</strong> コンフィグレーション・ロジックとの通信に必要な物理インターフェイス<br />

について説明し ま し た。 この項では、 様々なコ ンフ ィ グレーシ ョ ン ・ モード それぞれの機能を中心に説明し<br />

ます。Diamond の Spreadsheet View(スプレ ッ ド シー ト ・ ビ ュー) で必要な、重要な設定について も説明し ます。<br />

SDM モー ド<br />

SDM は <strong>MachXO2</strong> の主要な コ ン フ ィ グ レーシ ョ ン ・ モー ド で、 その利点 と し ては次の も のがあ り ます。<br />

• 速度 : デバ イ ス規模に も よ り ますが、 <strong>MachXO2</strong> が数 ミ リ 秒で実行可能な ス テー ト にな り ます。<br />

• セキュ リ ティ : SRAM への ロー ド 中、 コ ン フ ィ グ レーシ ョ ン ・ データ がデバイ ス外部に露出する こ と があ<br />

り ませんので、 内部 メ モ リ が読み取ら れる こ と を防止で き ます。<br />

• 低コス ト : <strong>MachXO2</strong> のプ ロ グ ラ ミ ン グ専用の不揮発 メ モ リ を購入する必要があ り ません。<br />

• ボード面積の削減 : 外付け不揮発 メ モ リ が不要 と な る ため、 ボー ド を小型化で き ます。<br />

• 信頼性の向上 : シ ス テムア ッ プデー ト 時に内部フ ラ ッ シ ュ メ モ リ に問題があ る場合、 <strong>MachXO2</strong> を外付け<br />

フ ラ ッ シ ュ メ モ リ か ら起動で き ます。<br />

SDM を使用し てい る場合、 <strong>MachXO2</strong> はコ ン フ ィ グ レーシ ョ ン ・ データ を内部フ ラ ッ シ ュ メ モ リ か ら取得し<br />

ます。 SDM が ト リ ガ さ れる のは、 電源投入時、 REFRESH コ マン ド の受信時、 ま たは PROGRAMN ピ ンの ド<br />

ライブ時です。図 14-5に示したように、内部フラッシュメモリには3つのセクタがあります。ほとんどの<br />

場合、 最初のセ ク タ には <strong>MachXO2</strong> デバイ スの コ ン フ ィ グ レーシ ョ ン ・ データ を格納で き る だけの十分な容<br />

量があ り ます。 コ ン フ ィ グ レーシ ョ ン ・ データ サ イ ズは、 圧縮の程度、 及びデザ イ ン内で初期化する EBR コ<br />

ンポーネン ト 数に依存し て変動し ます。 コ ン フ ィ グ レーシ ョ ン ・ データ のサ イ ズが増加する と 、 CFM セ ク タ<br />

TCK<br />

TM<br />

TDIS<br />

TDO<br />

14-18 tn1204_02.2


<strong>MachXO2</strong> プログラミングとコンフィグレーション<br />

使用ガイド<br />

がオーバフ ローする可能性があ り ます。 コ ン フ ィ グ レーシ ョ ン ・ データ が UFM セ ク タ にオーバフ ローで き<br />

るようにすると、 このオーバフローに対処できます。 まれなケースとして、 コンフィグレーション・データ<br />

が CFM と UFM を合わせたサイズからオーバフローする こ とがあ り この場合、 SDM が使用できません。<br />

CFM/UFM オーバフ ローの発生時は、 MSPI コ ン フ ィ グ レーシ ョ ン ・ モー ド を使用する必要があ り ます。<br />

通常の状況では、 コ ン フ ィ グ レーシ ョ ン ・ データ が CFM セ ク タ に完全に収ま り ます。 初期化 EBR がそれほ<br />

ど多数ないデザ イ ンは、 ほぼ必ず こ の条件に適合し ますので、 UFM は内部フ ラ ッ シ ュ メ モ リ ・ ア レ イ と し て<br />

ユーザ用途に使用で き ます。 CONFIGURATION オプシ ョ ンは CFG に設定する こ と を推奨し ます。 こ の よ う<br />

に設定する と 、 コ ン フ ィ グ レーシ ョ ン ・ データ が UFM にオーバフ ローする こ と が防止され、 UFM に格納 さ<br />

れたデータ がデバイ スの更新時に上書き さ れる こ と がな く な り ます。<br />

第 2 のフ ラ ッ シ ュ セ ク タ であ る UFM には、 3 種類の使用モデルがあ り ます。<br />

• CFM からのコンフィグレーシ ョ ン ・データのオーバフロー<br />

• EBR の初期化 と ユーザ定義のス ト レージ<br />

• ユーザ定義のス ト レージ<br />

デフォル ト で Diamond は、初期化 EBR データをコンフ ィ グレーシ ョ ン ・データ イ メージ内に作成し ます。 そ<br />

の結果、 コ ン フ ィ グ レーシ ョ ン ・ データ が UFM セ ク タ にオーバフ ローする こ と があ り ます。 デフ ォル ト ・ ス<br />

テー ト を変更する には、Diamond の Spreadsheet ツールを使用し て sysCONFIG の CONFIGURATION エン トリ<br />

を修正する必要があ り ます。 CONFIGURATION エン ト リ のデフ ォル ト ・ ス テー ト は "CFG" に設定 さ れてい<br />

ます。<br />

コ ン フ ィ グ レーシ ョ ン ・ データは論理的に分割し、 EBR の初期化データ を UFM に配置する こ と がで き ます。<br />

CONFIGURATION オプシ ョ ン を CFG_EBRUFM に設定する と 、 Diamond ソ フ ト ウ ェ アが コ ン フ ィ グ レーシ ョ<br />

ン ・ データは CFM に配置し、 EBR 初期化データ を UFM に配置する よ う にな り ます。 こ の場合、 EBR 初期化<br />

データ が UFM の先頭ページに格納 さ れます。 IPexpress を使用する と 、 メ モ リ 初期化フ ァ イ ルを UFM に対応<br />

付け る こ と がで き ます。 なお、 現行の Diamond 開発ツールには、 UFM に格納された EBR 初期化データ を、<br />

<strong>MachXO2</strong> フ ァ ブ リ ッ ク 内の対応する EBR にマ ッ ピ ン グする手段は用意 さ れていません。<br />

初期化 EBR データ の自動割 り 当てだけでな く 、ユーザ固有の目的にデータ ブ ロ ッ ク を追加する こ と も で き ま<br />

す。 こ のデータは、 EBR 初期化データ と の競合を防止する ため、 UFM の末尾の メ モ リ 位置に格納さ れます。<br />

ユーザ定義ス ト レージモー ド の動作では、UFM セ ク タ を汎用フ ラ ッ シ ュ メ モ リ の よ う に動作 させる こ と がで<br />

き ます。 IPexpress を使用し てデータ を初期化する こ と も、 消去可能セ ク タ が 1 つの個別フ ラ ッ シ ュ メ モ リ ・<br />

デバイ スであ る かの よ う に、 こ のセ ク タ を使用する こ と も で き ます。<br />

こ の 3 つのいずれの場合も、 UFM セ ク タ全体を消去し なければな り ません。 コ ン フ ィ グ レーシ ョ ン ・ デー<br />

タ、 EBR 初期化データ、 及びイ ンプ リ メ ンテーシ ョ ン固有のデータ の回復を必ず行 う 必要があ り ます。 すな<br />

わち、 UFM 内の全てのデータ を読み出し、 変更する部分 と マージ し、 UFM を消去し、 新し いデータ を UFM<br />

に書き戻す必要があ り ます。<br />

マスタ SPIコンフィグレーシ ョ ン ・ モード (MSPI)<br />

マ ス タ SPI (MSPI) コ ン フ ィ グ レーシ ョ ン ・ モー ド は、 <strong>MachXO2</strong> で使用可能な唯一の、 も う 一つの自己制御<br />

コ ン フ ィ グ レーシ ョ ン ・ モー ド です。 <strong>MachXO2</strong> で MSPI が イ ネーブルにな る と 、 外付け SPI フ ラ ッ シ ュ か ら<br />

自動的に コ ン フ ィ グ レーシ ョ ン・データ を取得で き る よ う にな り ます。<strong>MachXO2</strong> がデフ ォル ト モー ド ・フ ィ ー<br />

チャ行ス テー ト にな ってい る と 、 MSPI コ ン フ ィ グ レーシ ョ ン ・ ポー ト を使用で き ません。 MSPI モー ド で コ<br />

ンフィグレーショ ンを行う ときは、 必ずフィーチャ行で MSPIポート をイネーブルしてください。 プログラ<br />

ミ ン グエ ラー時に <strong>MachXO2</strong> を回復で き る よ う に第二の コ ン フ ィ グ レーシ ョ ン ・ ポー ト を用意し、 <strong>MachXO2</strong><br />

がデフ ォル ト フ ィ ーチャ行ステー ト の と きにア ク テ ィ ブにする こ と を推奨し ます。<br />

14-19 tn1204_02.2


表 14-10. MSPI ポー ト ピ ン<br />

ピン名 I 2 C機能<br />

<strong>MachXO2</strong> プログラミングとコンフィグレーション<br />

使用ガイド<br />

MCLK<br />

<strong>MachXO2</strong> のコンフ ィグレーシ ョ ン ・ ロジッ ク及び MSPIコン ト ローラからのクロッ ク出<br />

力。 MCLK は、 スレーブ SPI デバイ スの SCLK 入力に接続する<br />

SISPI <strong>MachXO2</strong> から SSPI SI 入力へのシ リ アルデー タ出力<br />

SPISO SSPI SO から <strong>MachXO2</strong> のコ ン フ ィ グレーシ ョ ン ・ ロジ ッ クへのシ リ アルデー タ入力<br />

CSSPIN<br />

表 14-2 に <strong>MachXO2</strong> のコ ン フ ィ グ レーシ ョ ン ・ データ に必要な メ モ リ 量を、 デバイ ス規模ご と に示し ます。<br />

リ ー ド オペコー ド 0x03 を受け付け可能な SPI フ ラ ッ シ ュ を選択し て く だ さ い。 <strong>MachXO2</strong> で使用可能な リ ー<br />

ドオペコードは0x03だけです。<br />

図 14-9. MSPI コ ン フ ィ グ レーシ ョ ン ・ モー ド<br />

<strong>MachXO2</strong> のコ ン フ ィ グレーシ ョ ン ・ ロジ ッ クから、 <strong>MachXO2</strong> のコ ン フ ィ グレーシ ョ<br />

ン ・ デー タが格納されたスレーブ SPI フ ラ ッ シ ュへのチ ッ プセレ ク ト 出力<br />

SPI<br />

PROM<br />

4<br />

4<br />

JTAG<br />

SPI<br />

Controller<br />

WISHBONE<br />

Flash<br />

Memory<br />

Configuration<br />

Logic<br />

<strong>MachXO2</strong><br />

Logic<br />

電源投入時、 REFRESH コ マン ド の受信時、 ま たは PROGRAMN ピ ンが ト グル さ れる と 、 <strong>MachXO2</strong> は SPI フ<br />

ラ ッ シ ュ か ら の コ ン フ ィ グ レーシ ョ ン ・ データ の取得を開始し ます。 MCLK/CCLK I/O は MCLK (Master<br />

Clock、 マ ス タ ク ロ ッ ク) 機能 と な り 、 SPI フ ラ ッ シ ュ の SCLK 入力に公称 2.08MHz ク ロ ッ ク の ド ラ イ ブを開<br />

始し ます。 CSSPIN は Low に ド ラ イ ブ さ れ、 SI/SISPI 出力か ら SPI フ ラ ッ シ ュ に コ マン ド が送信 さ れて、 デー<br />

タ が SO/SPISO 入力ピ ンで SPI フ ラ ッ シ ュ か ら読み出 さ れます。 全ての コ ン フ ィ グ レーシ ョ ン ・ データ が SPI<br />

フ ラ ッ シ ュ か ら取得さ れる と 、 CSSPIN ピ ンがネゲー ト さ れ、 MSPI 出力ピ ンが ト ラ イ ス テー ト にな り ます。<br />

コ ン フ ィ グ レーシ ョ ン ・ データ のダ ウ ン ロー ド は MCLK が必ず公称周波数 2.08MHz か ら開始 さ れます。<br />

MCCLK_FREQ パ ラ メ ータ (Spreadsheet View を使用し てア ク セ ス) を使用する こ と で、 コ ン フ ィ グ レーシ ョ<br />

ン周波数を高速にできます。 SPI フラ ッシュ内のコンフ ィグレーシ ョ ン ・ データにはある程度のパディ ング<br />

ビ ッ ト があ り 、 MCLK の基本周波数を変更するデータ が読み込まれた後、 <strong>MachXO2</strong> は新し い MCLK 周波数<br />

を使用し て残 り の コ ン フ ィ グ レーシ ョ ン ・ データバイ ト を読み込みます。<br />

<strong>MachXO2</strong> がユーザモー ド にな る と 、 MSPI コ ン フ ィ グ レーシ ョ ン ・ ポー ト は ト ラ イ ス テー ト にな り ます。 そ<br />

の結果、 データ を SPI 経由で転送で き る よ う にな り ます。 SPI バスに よ るデータ転送に使用可能な方法は、 主<br />

に 2 つあ り ます。 1 つは、 <strong>MachXO2</strong> の EFB (Embedded Function Block、 組み込み機能ブ ロ ッ ク) を イ ネーブ<br />

ルする方法です。 IPexpress を使用し て EFB を イ ン ス タ ン ス化し、 ア ク テ ィ ブにする機能を選択し ます。 EFB<br />

で使用可能な機能の 1 つは SPI マス タ コ ン ト ローラ です。 EFB 内部の SPI マ ス タ コ ン ト ローラは、 MSPI コ ン<br />

フ ィ グ レーシ ョ ン ・ ポー ト ピ ンに直接接続さ れ、 SPI バス ・ ト ラ ンザ ク シ ョ ン を初期化する ための一連のス<br />

テータ ス、 制御、 及びデータ レ ジ ス タ があ り ます。 レ ジ ス タは、 内部 WISHBONE データバス を使用し てア<br />

ク セ ス し ます。 <strong>MachXO2</strong> のフ ァ ブ リ ッ ク に組み込まれる ロ ジ ッ ク は、 WISHBONE ブ リ ッ ジを経由する EFB<br />

とのトランザクションを実行し、それによりSPIバス・ トランザクションを生成します。<br />

14-20 tn1204_02.2


<strong>MachXO2</strong> プログラミングとコンフィグレーション<br />

使用ガイド<br />

MSPI コ ン フ ィ グ レーシ ョ ン ・ ポー ト の ト ラ ンザ ク シ ョ ン を実行する も う 1 つの方法は、 JTAG ポー ト か ら制<br />

御する方法です。<strong>MachXO2</strong> には JTAG か ら MSPI へのパス スルー回路が内蔵 さ れてい る ため、 ス レーブの SPI<br />

フ ラ ッ シ ュ メ モ リ を消去 / プ ロ グ ラ ム / リ ー ド で き ます。 接続された SPI フ ラ ッ シ ュ をプ ロ グ ラ ミ ングする<br />

主要な方法は、 Diamond の Programmer を使用し て PC か ら コ ン フ ィ グ レーシ ョ ン ・ データ を転送する方法で<br />

す。 こ の方法は、 ボー ド の開発及びデバ ッ グ時に役立ち ます。 注: JTAGから MSPIへのパススルー・プログ<br />

ラ ミ ン グモー ド に対応する ためには、 MCLK に 1kΩ の外付けプルア ッ プ抵抗が必要です。<br />

JTAG ポー ト を使用し て SPI フ ラ ッ シ ュ をプ ロ グ ラ ムする も う 1 つの方法は、 <strong>Lattice</strong> ispVME ソ リ ューシ ョ ン<br />

を使用する方法です。 ispVME は組み込みマ イ ク ロ プ ロ セ ッ サ用に書かれた C プ ロ グ ラ ムです。 マ イ ク ロ プ<br />

ロ セ ッ サは Diamond Deployment ツールで作成 さ れたデータ フ ァ イルを読み取 り 、 ispVME プ ロ グ ラ ム を実行<br />

し ます。 フ ァーム ウ ェ アが、 ポー ト I/O を使用し て <strong>MachXO2</strong> の JTAG ポー ト を ド ラ イ ブする こ と で、 デー<br />

タ が MSPI ポー ト に渡 さ れます。 マ イ ク ロ プ ロ セ ッ サを使用し た、 外付け SPI フ ラ ッ シ ュ の更新の詳細につ<br />

いては、 ispVME ツールス イー ト を参照し て く だ さ い。<br />

<strong>MachXO2</strong> の外付け SPI フ ラ ッ シ ュ のプ ロ グ ラ ミ ン グに JTAG ポー ト を使用する こ と の利点は、 <strong>MachXO2</strong> が<br />

デフォルトモード・フィーチャ行ステートになっていても構わないことです。JTAGは、フラッシュモード・<br />

フ ィ ーチャ行またはユーザモー ド ・ フ ィ ーチャ行ステー ト でデバイ ス をプロ グ ラ ムでき ます。そのためには、<br />

MSPI ポー ト ピ ン を イ ネーブルする必要があ り ます。パス スルーは、JTAG TAP シ ス テムに不可欠な部分です。<br />

こ の方法が成功する ためには、 JTAG ポー ト が使用で き る必要があ る こ と は明白です。<br />

MSPI コ ン フ ィ グ レーシ ョ ン ・ モー ド を使用し て動作する よ う <strong>MachXO2</strong> を設定する には、 以下を行 う 必要が<br />

あります。<br />

• コ ン フ ィ グ レーシ ョ ン ・ データ全体を外部 SPI フ ラ ッ シ ュ に格納する<br />

• SPI フ ラ ッ シ ュ内のデータ の開始位置のオフセ ッ ト が 0x000000 になってい る こ と<br />

• 表 14-11 に示す設計制約を設定する<br />

• Diamond の Process (処理) 枠で JEDEC フ ァ イル作成を イ ネーブルする<br />

• Export Files (フ ァ イ ルのエ ク ス ポー ト ) 処理を実行し、 デザ イ ン を作成する<br />

表 14-11. MSPI コ ン フ ィ グ レーシ ョ ンの ソ フ ト ウ ェ ア設定<br />

制約 設定<br />

MASTER_SPI_PORT ENABLE<br />

CONFIGURATION EXTERNAL<br />

GENERATE_BITSTREAM ENABLE<br />

Export Files 処理では、 JEDEC フ ァ イル と BIT フ ァ イ ルの両方が生成 さ れます。 両方のフ ァ イルを使用する<br />

こ と が重要です。 フ ィ ーチャ行に書き込むには、 JEDEC フ ァ イルを <strong>MachXO2</strong> にプロ グ ラ ムする必要があ り<br />

ます。JEDECファイルでは、MSPIコンフィグレーション・ポートがイネーブルされます。<br />

外部 SPI フ ラ ッ シ ュ には BIT フ ァ イルをプ ロ グ ラ ムする必要があ り ます。 データ を SPI フ ラ ッ シ ュ に格納す<br />

る方法は、 次の よ う に幾つかあ り ます。<br />

• JTAG ダ ウ ン ロー ド ケーブルを使用し て、 Diamond の Programmer で SPI フ ラ ッ シ ュデータ を送出する<br />

• マ イ ク ロ プ ロ セ ッ サで ispVME を実行する<br />

• ATE (自動テ ス ト 装置) で JTAG を使用し て SPI フ ラ ッ シ ュ をプ ロ グ ラ ムする<br />

• プ ロ グ ラ ム済み SPI フ ラ ッ シ ュ メ モ リ PCB に実装する<br />

<strong>MachXO2</strong> のフ ィ ーチャ行がプ ロ グ ラ ム さ れ、 SPI フ ラ ッ シ ュ に コ ン フ ィ グ レーシ ョ ン ・ データ が格納 さ れる<br />

と 、 コ ン フ ィ グ レーシ ョ ン をテ ス ト で き る よ う にな り ます。 PROGRAMN の ド ラ イ ブ、 REFRESH コ マン ド の<br />

14-21 tn1204_02.2


<strong>MachXO2</strong> プログラミングとコンフィグレーション<br />

使用ガイド<br />

送信、 ま たはボー ド の電源再投入を行 う と 、 <strong>MachXO2</strong> が外付け SPI フ ラ ッ シ ュ か ら コ ン フ ィ グ レーシ ョ ン さ<br />

れます。<br />

デュアルブート ・ コンフ ィ グレーシ ョ ン ・ モード<br />

デュアルブート ・ コンフィグレーション ・モードは、 SDM と MSPIコンフィグレーション ・モードを組み合<br />

わせた も のです。 デュ アルブー ト ・ モー ド に設定された <strong>MachXO2</strong> は、 最初に SDM を使用し て内部フ ラ ッ<br />

シ ュ メ モ リ か ら コ ン フ ィ グ レーシ ョ ン し よ う と し ます。 SDM コ ン フ ィ グ レーシ ョ ンに失敗する と 、 <strong>MachXO2</strong><br />

は MSPI モー ド を使用し て自分自身を コ ン フ ィ グ レーシ ョ ン し よ う と し ます。 こ の ロー ド 順序は逆にで き ま<br />

せん。<br />

内部データはプ ラ イ マ リ ・ コ ン フ ィ グ レーシ ョ ン ・ データ (プ ラ イ マ リ イ メ ージ) で、 外部データはゴール<br />

デン ・ コンフ ィ グレーシ ョ ン ・ データ (ゴールデンイ メージ) です。 プラ イマ リ イ メージでは、 次のいずれ<br />

かの障害が発生する こ と があ り ます。<br />

• ビッ ト ス ト リームの CRC エラーが検出された<br />

• 内部フ ラ ッ シ ュからのロード 時にタ イ ムア ウ ト エラーが発生し た<br />

CRC エ ラーは、 内部フ ラ ッ シ ュ メ モ リ に誤ったデータ が書き込まれる こ と が原因で発生し ます。 データは行<br />

単位でフ ラ ッ シ ュ メ モ リ か ら読み取ら れます。 各行が コ ン フ ィ グ レーシ ョ ン ・ エンジンに取 り 込まれる たび<br />

に、 データ の CRC 整合性がチェ ッ ク さ れます。 CRC が正し い場合に限 り 、 データ が コ ン フ ィ グ レーシ ョ ン<br />

SRAM に格納 さ れます。 CRC に何ら かの誤 り があ る と 、 デバイ スはコ ン フ ィ グ レーシ ョ ン SRAM を消去し、<br />

外部 SPI フラ ッシュからコンフ ィグレーシ ョ ン ・ データを取得し直します。<br />

CRC エラーになる と、 内部 DONE ビ ッ ト がアクテ ィブになる こ とはあ り ません。 <strong>MachXO2</strong> は、 パワーオン<br />

リ セ ッ ト 信号の解放後に発生し たマ ス タ ク ロ ッ ク のパルス数を カ ウ ン ト し ます。 内部 DONE ビ ッ ト がア ク<br />

テ ィ ブにな ら ないま ま カ ウ ン ト が終了する と 、 <strong>MachXO2</strong> はコ ン フ ィ グ レーシ ョ ン ・ データ を外部 SPI フ ラ ッ<br />

シ ュ か ら取得し よ う と し ます。<br />

デュ アルブー ト ・ コ ン フ ィ グ レーシ ョ ン ・ モー ド には上記 2 つの イ メ ージ フ ァ イルが必要です。 1 つはほ と<br />

んど更新さ れる こ と がないゴールデン (フ ェ イルセーフ) イ メ ージで、 外部 SPI メ モ リ に格納 さ れます。。 も<br />

う 1 つは定期的に更新 さ れる プ ラ イ マ リ (ワーキング) イ メ ージで、 CFM に格納されます。 1 つの Diamond<br />

プロジェ ク ト を使用して、 ゴールデン / プラ イマ リ の両コンフ ィ グレーシ ョ ン ・ データフ ァ イルを作成でき<br />

ま す。単一 Diamond プ ロ ジ ェ ク ト 内に、例 え ば working と い う 名前の イ ンプ リ メ ンテーシ ョ ン(Implementation、<br />

注 : Diamond 固有の呼称) と 、 も う 一つ failsafe という名前のインプリ メンテーションを定義・構成し、 それ<br />

ぞれデータ フ ィ ルを生成し ます。 Diamond イ ンプ リ メ ンテーシ ョ ンの使用の詳細については、 Diamond のオ<br />

ン ラ イ ンヘルプをお読み く だ さ い。<br />

デュ アルブー ト ・ デザ イ ン を作成する には、 次の設計制約を使用し ます。<br />

制約 デュ アルブー ト 設定<br />

CONFIGURATION CFG | CFG_EBRUFM | CFGUFM<br />

MASTER_SPI_PORT ENABLE<br />

GENERATE_BITSTREAM ENABLE<br />

COMPRESS_CONFIG ON | OFF<br />

Diamond では、 内部フ ラ ッ シ ュ メ モ リ に格納される プ ラ イ マ リ イ メ ージ用の JEDEC フ ァ イルが作成 さ れま<br />

す。 外部 SPI フ ラ ッ シ ュ に格納される ゴールデン イ メ ージ用には、 BIT フ ァ イルが作成 さ れます。 ゴールデ<br />

ン イ メ ージは、 外部 SPI フ ラ ッ シ ュ の開始ア ド レ ス 0x010000 に配置する必要があ り ます。 これは、 コ ン フ ィ<br />

グ レーシ ョ ン ・ データ をオフセ ッ ト 0x000000 で格納する必要があ る、 シングルイ メ ージの MSPI コ ン フ ィ グ<br />

レーシ ョ ン ・ モード と異なっています。<br />

14-22 tn1204_02.2


<strong>MachXO2</strong> プログラミングとコンフィグレーション<br />

使用ガイド<br />

ユーザ MSPI コ ン ト ローラ を使用する場合に、 <strong>MachXO2</strong> がデュ アルブー ト ・ モー ド を使用し ないよ う にする<br />

には、MASTER_SPI_PORT 設計制約を EFB_USER に設定し ます。 こ の よ う にする と 、MSPI コ ン フ ィ グ レーシ ョ<br />

ン ・ ポー ト ピ ンが予約され、 デュ アルブー ト が防止されます。<br />

図 14-10. MSPI モー ド<br />

ス レーブ SPI モー ド (SSPI)<br />

<strong>MachXO2</strong> には SSPIコンフィグレーション ・ ポートがあり、 コンフィグレーション ・ ロジックが提供する機<br />

能にア ク セ ス で き ます。 CFM、 UFM、 及びフ ィ ーチ ャ 行の再プ ロ グ ラ ミ ン グ、 コ ン フ ィ グ レーシ ョ ン ・ ロ<br />

ジ ッ ク ブ ロ ッ ク 内のス テータ ス / 制御レ ジ ス タ のア ク セ スが可能です。 オフ ラ イ ン動作 と 透過的動作のど ち<br />

ら を使用し て も フ ラ ッ シ ュ メ モ リ にア ク セ スで き ます。 コ ン フ ィ グ レーシ ョ ン SRAM には直接ア ク セ スで き<br />

ません。 REFRESH コ マン ド を送出し て、 新し いフ ラ ッ シ ュ イ メ ージを SRAM に ロー ド する必要があ り ます。<br />

表 14-12. SSPI ポー ト ピ ン<br />

SPI<br />

PROM<br />

4<br />

4<br />

JTAG<br />

SPI<br />

Controller<br />

WISHBONE<br />

Flash<br />

Memory<br />

Configuration<br />

Logic<br />

<strong>MachXO2</strong><br />

Logic<br />

ピン名 記 述<br />

CCLK SPI マス タ コ ン ト ローラから ド ラ イ ブ される コ ン フ ィ グレーシ ョ ン ・ ク ロ ッ ク入力<br />

SI コマン ド及びデータ用のコ ンフ ィ グレーシ ョ ン ・ ロジ ッ クへのシ リ アルデータ入力<br />

SO コンフ ィグレーショ ン ・ ロジックからのシリアルデータ出力<br />

SN コンフ ィ グレーシ ョ ン ・ ロジッ クをイネーブルするチップセレク ト<br />

SSPI モー ド では、 MCLK/CCLK ピ ンは CCLK (コ ン フ ィ グ レーシ ョ ン ・ ク ロ ッ ク ) にな り ます。 SI ピ ンか ら<br />

の入力データは、 CCLK の立ち上が り エ ッ ジで <strong>MachXO2</strong> デバ イ スに読み込まれます。 SO ピ ンの出力データ<br />

は、 CCLK の立ち下が り エ ッ ジで有効にな り ます。 SN はチ ッ プセレ ク ト 信号 と し て機能し ます。 SN が High<br />

にな る と 、 SSPI イ ン ターフ ェ イ スが選択解除され、 SO/SPISO ピ ンが ト ラ イ ス テー ト にな り ます。 SN が Low<br />

に ド ラ イ ブ さ れる と 、 <strong>MachXO2</strong> への コ マン ド の書き込み と 、 データ の読み出し が可能にな り ます。 <strong>MachXO2</strong><br />

のSSPIポートは、コンフィグレーション・ロジックへのモード0バス・トランザクションのみを受け付けます。<br />

14-23 tn1204_02.2


図 14-11. SSPI コ ン フ ィ グ レーシ ョ ン ・ モー ド<br />

µC<br />

4<br />

<strong>MachXO2</strong> プログラミングとコンフィグレーション<br />

使用ガイド<br />

SPI<br />

Controller<br />

WISHBONE<br />

Flash<br />

Memory<br />

Configuration<br />

Logic<br />

<strong>MachXO2</strong><br />

Logic<br />

SSPI ポー ト がア ク テ ィ ブにな る のは、 <strong>MachXO2</strong> がデフ ォル ト モー ド ・ フ ィ ーチ ャ行ス テー ト の場合です。<br />

SLAVE_SPI_PORT に対する Diamond のデフ ォル ト 設計制約は、 こ のポー ト をデ ィ セーブルする よ う になって<br />

います。 Spreadsheet View (スプレ ッ ド シー ト ・ ビ ュー) を使用し て、 デザ イ ンの SLAVE_SPI_PORT 制約を<br />

ENABLE に設定し、 ユーザモー ド で SSPI ポー ト がア ク テ ィ ブな ま まにな る よ う に し て く だ さ い。SSPI ポー ト<br />

が誤ってデ ィ セーブルされた場合に備えて、 第二のプロ グ ラ ミ ングポー ト をア ク テ ィ ブ ・ ステー ト に保つこ<br />

と を推奨し ます。<br />

SSPI ポー ト は、 CFM、 UFM、 及びフ ィ ーチ ャ行の消去 / プ ロ グ ラ ム / ベ リ フ ァ イ に使用 さ れます。 コ ン フ ィ<br />

グ レーシ ョ ン SRAM に直接ア ク セ スする機能はあ り ません。 フ ィ ーチャ行が誤って消去 さ れる こ と を防止す<br />

る ため、 SSPI ポー ト ではフ ラ ッ シ ュ メ モ リ の透過モー ド に よ る更新を推奨し ます。 SSPI ポー ト で REFRESH<br />

コ マン ド を発行し、新たにプ ロ グ ラ ム さ れた イ メ ージをア ク テ ィ ブにする こ と がで き ます。REFRESH 動作は<br />

SN がネゲートされるまで開始されないため、REFRESH コマンドは、<strong>MachXO2</strong> が外部またはデュアルブー<br />

ト ・ コ ン フ ィ グ レーシ ョ ン ・ モー ド の と き に安全に使用で き ます。<br />

SSPI ポー ト を使用し た <strong>MachXO2</strong> のプ ロ グ ラ ミ ン グは複雑です。 <strong>MachXO2</strong> のプ ロ グ ラ ミ ン グの複雑 さ を軽減<br />

する ため、 ラ テ ィ スでは SSPIEmbedded と 呼ばれる C プ ロ グ ラ ム を ご用意し ています。 <strong>MachXO2</strong> のフ ラ ッ<br />

シ ュ メ モ リ を再プ ロ グ ラ ムする と きは、 SSPIEmbedded を使用する こ と を推奨し ます。<br />

フ ラ ッ シ ュ メ モ リ の再プ ロ グ ラ ミ ン グ以外に、 SSPI ポー ト は <strong>MachXO2</strong> のい く つかのス テータ ス及び制御レ<br />

ジ ス タへのア ク セ スに使用で き ます。そのレ ジ ス タ で使用可能な コ マン ド の リ ス ト と 説明は、"TN1205, Using<br />

User Flash Memory and Hardened Control Functions in <strong>MachXO2</strong> Devices (<strong>MachXO2</strong> デバ イ ス の UFM と ハー ド<br />

マ ク ロ化制御機能の使用法) " にあ り ます。 ス テータ ス ・ レ ジ ス タへのア ク セスはそれほど複雑ではな く 、<br />

SSPIEmbedded プ ロ グ ラ ム を使用する必要はあ り ません。<br />

I 2 Cコンフィグレーション・モード<br />

<strong>MachXO2</strong> には、 コ ン フ ィ グ レーシ ョ ン ・ ロ ジ ッ ク のア ク セスに使用する I2Cコンフィグレーション・ポート があ り ます。 I 2Cマスタは、10ビットまたは7ビット・アドレッシングモードを使用して、コンフィグレー シ ョ ン ・ ロ ジ ッ ク と 通信で き ます。 I 2 C SCL 入力は、 最高 400KHz の ク ロ ッ ク 周波数に対応で き ます。 CFM、<br />

UFM、 及びフ ィ ーチ ャ行の再プ ロ グ ラ ミ ン グ、 コ ン フ ィ グ レーシ ョ ン ・ ロ ジ ッ ク ブ ロ ッ ク 内のス テータ ス /<br />

制御レ ジ ス タ のア ク セ スが可能です。 フ ラ ッ シ ュ メ モ リ の再プ ロ グ ラ ミ ン グは、 オフ ラ イ ン動作 と 透過的動<br />

作のど ち ら で も実行で き ます。 コ ン フ ィ グ レーシ ョ ン SRAM を直接更新する こ と はで き ません。 コ ン フ ィ グ<br />

レーシ ョ ン SRAM を更新する には、 フ ラ ッ シ ュ メ モ リ の再プ ロ グ ラ ミ ン グ後に、 REFRESH コ マン ド を送信<br />

する必要があ り ます。<br />

14-24 tn1204_02.2


表 14-13. I 2 Cポートピン<br />

ピン名 記 述<br />

SCL I 2 Cバスクロック<br />

SDA I2 Cバス・データライン<br />

<strong>MachXO2</strong> プログラミングとコンフィグレーション<br />

使用ガイド<br />

I 2 Cコンフィグレーション・ポートを使用できるのは、<strong>MachXO2</strong>がデフォルトモード・フィーチャ行ステー<br />

トの場合です。Diamondデザインソフトウェアでは、I2C_PORTがデフォルト・ステートとしてDISABLEス<br />

テー ト に設定されます。 ユーザモー ド で I 2 Cインターフェイスをアクティブなままにするには、I2C_PORTを<br />

ENABLE ス テー ト に設定する必要があ り ます。 誤って I 2 C ポー ト がデ ィ セーブルされた場合に回復でき る よ<br />

う 、 第 2 の コ ン フ ィ グ レーシ ョ ン ・ ポー ト を使用で き る よ う に し てお く こ と を推奨し ます。<br />

図 14-12. I 2 Cコンフィグレーション・ロジック<br />

I 2 C<br />

Master<br />

<strong>MachXO2</strong> デバ イ スには、 プ ラ イ マ リ と セカ ンダ リ の 2 つのハー ド マ ク ロ I 2 Cコントローラがあります。プラ<br />

イマリ I 2 C コ ン ト ローラ は、 <strong>MachXO2</strong> コ ン フ ィ グ レーシ ョ ン ・ ロ ジ ッ クへの イ ン ターフ ェ イ ス と 、 Wishbone<br />

レ ジ ス タへのア ク セ ス を提供し ます。 Wishbone レ ジ ス タへのア ク セスはユーザモー ド I 2 C と 呼ばれます。 コ<br />

ンフィグレーショ ン・ ロジックへのアクセスを許可されているのは、プライマリ I 2 Cコントローラだけです。<br />

セカンダ リ I 2 Cコントローラは、常にユーザモードI 2 Cコントローラになります。<br />

<strong>MachXO2</strong> がデフ ォル ト モー ド ・ フ ィ ーチャ行ス テー ト の場合 I 2 Cポートはイネーブルされ、プライマリ I 2 C<br />

コ ン ト ローラ と 通信で き ます。 I 2 Cポートがイネーブルされているときは、いつでもコンフィグレーション・<br />

ロ ジ ッ ク にア ク セ スで き ます。 コ ン フ ィ グ レーシ ョ ン ・ ロ ジ ッ ク にア ク セ スする ために、 EFB を イ ン ス タ ン<br />

ス化する必要はあ り ません。<br />

プライマリ I 2 Cコントローラは、次の場合にコンフィグレーション・ロジックへのアクセスができます。<br />

• <strong>MachXO2</strong> がデフォルトモード ・ フィーチャ行ステートになっている<br />

• EFB が イ ン ス タ ン ス さ れず、 I2C ポー ト ピ ンが ENABLE になってい る<br />

• EFB が イ ン ス タ ン ス さ れ、 I 2 C ポー ト ピ ンが ENABLE になってい る<br />

2<br />

I 2 C<br />

Interface<br />

Flash<br />

Memory<br />

Configuration<br />

Logic<br />

<strong>MachXO2</strong><br />

Logic<br />

EFB I 2 C のベース ア ド レ スが変更 さ れてい る場合を除いて、外部 I 2 C マ ス タはア ド レ ス 1000000(7 ビ ッ ト モー<br />

ド ) ま たは 1111000000 (10 ビ ッ ト モー ド ) を使用し て コ ン フ ィ グ レーシ ョ ン ・ ロ ジ ッ ク にア ク セス し ます。<br />

プライマリ及びセカンダリ I 2 C コ ン ト ローラ が応答する ア ド レ ス を変更する には、 Spreadsheet View ではな<br />

く 、 IPexpress を使用し ます。 ア ド レ ス を変更する には、 EFB を イ ン ス タ ン ス化する必要があ り ます。 こ のア<br />

ドレスは、 プライマリとセカンダリ I 2 C コ ン ト ローラ で共有されます。<br />

表 14-14 に、 <strong>MachXO2</strong> の両 I 2 C リ ソースへのアクセスに使用されるアド レスデコード を示します。<br />

14-25 tn1204_02.2


表 14-14. I 2 Cポートのスレーブアドレス<br />

スレーブアドレス I 2 C機能<br />

<strong>MachXO2</strong> プログラミングとコンフィグレーション<br />

使用ガイド<br />

yyyxxxxx00<br />

プライマリ I 2Cコントローラのコンフィグレーション・ロジックのアドレス。常に7ビットまたは 10 ビ ッ ト ア ド レスで応答<br />

yyyxxxxx01 ユーザモー ド ・ プラ イマ リ I2Cコントローラのアドレス yyyxxxxx10 ユーザモー ド ・ セカンダ リ I2 Cコントローラのアドレス<br />

yyyxxxxx11<br />

プライマリ I 2 Cコンフィグレーション・ロジックのリセット。常に7ビットまたは10ビットアドレ<br />

スで応答<br />

ユーザモード ・ プラ イマ リ 及びユーザモード ・ セカンダ リ I 2 C コ ン ト ロ ー ラ の動作については、 "TN1205,<br />

Using User Flash Memory and Hardened Control Functions in <strong>MachXO2</strong> Devices (<strong>MachXO2</strong> デバ イ ス の UFM と<br />

ハー ド マ ク ロ化制御機能の使用法) " に説明があ り ます。 I 2 C ス レーブデバイ ス と の通信については、 本書で<br />

説明し ません。<br />

<strong>MachXO2</strong> の以下に示す第 4 の I 2 Cリソースはオフセット3にあります。インスタンスによっては、コンフィ<br />

グレーショ ン ・ ロジックへの I 2 C メモリ ・ ト ランザクショ ンが中断されたり、 放棄されたりするこ とがあり<br />

ます。 コ ンフ ィ グレーシ ョ ン ・ ロジ ッ クが受け付け可能なコマン ド の中には、 コ ンフ ィ グレーシ ョ ン ・ ロジ ッ<br />

ク がデータ で応答する も のがあ り ます。 I 2 C メ モ リ ・ ト ラ ンザ ク シ ョ ンが中断ま たは放棄 さ れた場合で も、 コ<br />

ン フ ィ グ レーシ ョ ン ・ ロ ジ ッ ク はキ ュー内のデータ を返すこ と がで き ます。 新し く 受信し た I 2 Cコマンドは、<br />

パデ ィ ン グバイ ト と 見な さ れた り 、誤って解釈 さ れた り する こ と があ り ます。 こ のス テー ト を解消する には、<br />

任意の値をオフセ ッ ト 3 に書き込みます。 こ れで、 コ ン フ ィ グ レーシ ョ ン ・ ロ ジ ッ ク の コ マン ド ・ イ ン タ プ<br />

リ タ が リ セ ッ ト さ れ、キ ュー内の全てのデータ がフ ラ ッ シ ュ さ れて、その後の コ ン フ ィ グ レーシ ョ ン ・ ロ ジ ッ<br />

クへの I 2 C メ モ リ ・ ト ラ ンザ ク シ ョ ンが正常に動作する よ う にな り ます。<br />

WISHBONE コ ン フ ィ グ レーシ ョ ン ・ モー ド<br />

内部 WISHBONE バスか ら CFM、 UFM、 およびフ ィ ーチ ャ行にア ク セ スで き ます。 WISHBONE バス を使用す<br />

る には、 デザ イ ンに EFB (組み込み機能ブ ロ ッ ク ) を組み込む必要があ り ます。 EFB と イ ン ターフ ェ イ スす<br />

るロジックを設計してから、WISHBONEバス・トランザクションを実行して、コンフィグレーション・ロ ジ ッ ク に接続された リ ソ ースにア ク セ ス し ます。<br />

図 14-13. WISHBONE コ ン フ ィ グ レーシ ョ ン ・ モー ド<br />

WISHBONE<br />

Interface<br />

Flash<br />

Memory<br />

Configuration<br />

Logic<br />

<strong>MachXO2</strong><br />

Logic<br />

WISHBONE イ ン ターフ ェ イ スにア ク セ スする には、 <strong>MachXO2</strong> がユーザモー ド になってい る必要があ り ます。<br />

コ ン フ ィ グ レーシ ョ ン ・ ロ ジ ッ ク に よ って利用可能 と なった リ ソースのア ク セ ス と 更新は、 透過モー ド で行<br />

う必要があります。オフラインモードでコンフィグレーション・ロジックにアクセスしよう とすると、<br />

<strong>MachXO2</strong> がユーザモー ド でな く な る ため、 デ ッ ド ロ ッ ク が発生し ます。<br />

WISHBONE イ ン ターフ ェ イ ス を使用し た、 消去、 プ ロ グ ラ ム、 ベ リ フ ァ イ の各機能の実行方法については、<br />

付録 C に説明があ り ます。<strong>MachXO2</strong> の WISHBONE イ ン ターフ ェ イ スの詳細については、"TN1205, Using User<br />

14-26 tn1204_02.2


<strong>MachXO2</strong> プログラミングとコンフィグレーション<br />

使用ガイド<br />

Flash Memory and Hardened Control Functions in <strong>MachXO2</strong> Devices (<strong>MachXO2</strong> デバ イ ス の UFM と ハー ド マ ク<br />

ロ化制御機能の使用法) " を参照し て く だ さ い。<br />

JTAG モー ド<br />

JTAG ポー ト は、 <strong>MachXO2</strong> で使用可能な最 も柔軟な コ ン フ ィ グ レーシ ョ ン及びプ ロ グ ラ ミ ン グポー ト です。<br />

JTAG では、 以下が可能です。<br />

• オフラインのフラ ッシュ メモリ ・ プログラ ミ ング<br />

• 透過的フ ラ ッ シ ュ メ モ リ ・ プ ロ グ ラ ミ ン グ<br />

• オフラインのコンフィグレーシ ョ ン SRAM のコンフィグレーショ ン<br />

• <strong>MachXO2</strong> コンフィグレーシ ョ ン ・ ロジッ クへのフルアクセス<br />

• デバイスのチェーン接続<br />

• IEEE 1149.1 テ ス ト 機能<br />

• IEEE 1532 準拠のプ ロ グ ラ ミ ング<br />

JTAG ポー ト を使用で き る のは、 <strong>MachXO2</strong> がデフ ォル ト モー ド ・ フ ィ ーチャ行ス テー ト の場合です。 Diamond<br />

1.4 では、 デフォルトでこのポートがイネーブルされます。 <strong>MachXO2</strong> の JTAG ポート ピンは、 IEEE 1149.1<br />

TAP 機能の実行専用ではあ り ません。 JTAG ポー ト は、 汎用 I/O と し ての使用が回復される こ と があ り ます。<br />

汎用 I/O と し て使用する ための JTAG ピ ンの回復の詳細については、 「sysCONFIG ピ ン」 項 を参照し て く だ<br />

さい。<br />

<strong>MachXO2</strong> の JTAG ポー ト はその柔軟 さ か ら、 価値あ る機能 と なっています。 シ ス テム及びデバ イ スのデバ ッ<br />

グに、 最も機能を発揮し ます。 全ての <strong>MachXO2</strong> デザ イ ンにおいて、 JTAG ポー ト はア ク セ ス可能な よ う に保<br />

つこ と を推奨し ます。 JTAG ポー ト を ア ク テ ィ ブに し てお く こ と の利点 と し ては、 次の点があ り ます。<br />

• マルチチェーン ・ アーキテ クチャ : JTAG ポー ト は、 <strong>MachXO2</strong> を他のプ ロ グ ラ マブルロ ジ ッ ク ・ チェーン<br />

と 結合可能な、 唯一の コ ン フ ィ グ レーシ ョ ン及びプ ロ グ ラ ミ ン グポー ト です。<br />

• Reveal に よ るデバ ッ グ : <strong>Lattice</strong> Reveal デバ ッ グ ツールは、 組み込み可能な ロ ジ ッ ク アナ ラ イ ザ ・ ツール<br />

です。 外部ロ ジ ッ ク アナ ラ イ ザでボー ド レベルの ロ ジ ッ ク を解析する場合 と 同様の方法で、 <strong>MachXO2</strong> 内<br />

部のロ ジ ッ ク を解析でき ます。 Reveal には、 <strong>MachXO2</strong> の JTAG ポー ト からのみア ク セスでき ます。<br />

• SRAM リ ー ド バ ッ ク : JTAG ポー ト は、 <strong>MachXO2</strong> の コ ン フ ィ グ レーシ ョ ン SRAM に直接ア ク セ ス可能な唯<br />

一の sysCONFIG ポー ト です。 SRAM ベースの FPGA の故障解析を行 う ために、 直接ア ク セスが必要にな<br />

る こ と が しばしばあ り ます。 コ ン フ ィ グ レーシ ョ ン SRAM を読み出す と 、 故障解析のための主要コ ンポー<br />

ネン ト を呼び出すこ と がで き ます。 JTAG ポー ト が イ ネーブル さ れていない と 、 こ の種の故障解析がで き<br />

ません。<br />

• バウンダ リ スキャン ・ テス ト機能 : IEEE 1149.1 JTAG を使用し て行われる ボー ド レベルの接続テ ス ト は、<br />

アセンブル済みのプ リ ン ト 基板の品質を保証する ための重要な機能です。 バウ ンダ リ ス キ ャ ン ・ テ ス ト を<br />

行 う ためには、 <strong>MachXO2</strong> の JTAG ポー ト を確保する こ と が不可欠です。 ラ テ ィ スのウ ェ ブサ イ ト には、<br />

<strong>MachXO2</strong> 用のバウ ンダ リ ス キ ャ ン記述言語フ ァ イ ルが用意さ れています。<br />

TransFR 動作<br />

<strong>MachXO2</strong> には他の <strong>Lattice</strong> FPGA と 同様に、 TransFR TM 機能が あ り ま す。 TransFR については、 "TN1087<br />

Minimizing System Interruption During Configuration Using TransFR Technology (TransFR 技術を使用 し た コ ン<br />

フ ィ グ レーシ ョ ン時のシ ス テム中断の最小化) " に説明があ り ます。 <strong>MachXO2</strong> での動作は、 以前の世代の<br />

<strong>Lattice</strong> FPGA と は異なっています。 以前の動作は、 JTAG ポー ト のみに依存し ていま し た。 JTAG ポー ト は、<br />

BSCAN セルを使用し て I/O の現在のス テー ト を捕捉し、 ま たは I/O を強制的に既知のス テー ト に し ます。<br />

14-27 tn1204_02.2


<strong>MachXO2</strong> プログラミングとコンフィグレーション<br />

使用ガイド<br />

<strong>MachXO2</strong> では他の 2 つのポー ト で も TransFR プ ロ グ ラ ミ ン グがで き ます。I 2 C 及び SSPI コ ン フ ィ グ レーシ ョ<br />

ン・ポートではプログラミングを実行できますが、JTAG BSCANセルにはアクセスできません。I 2 C及びSSPI<br />

プ ロ グ ラ ミ ン グポー ト か ら TransFR を使用で き る よ う にする ため、 新し い TransFR プ ロ セ スが作成 さ れま し<br />

た。<br />

<strong>MachXO2</strong> はコ ン フ ィ グ レーシ ョ ン SRAM ビ ッ ト を使用し て TransFR 機能を イ ネーブルし ます。TransFR が正<br />

し く 動作する には、 SRAM 内のア ク テ ィ ブな コ ン フ ィ グ レーシ ョ ンで、 TRANFR_ENABLE が ENABLE に設定<br />

されている必要があり ます。 <strong>MachXO2</strong> にプログラムされる新しいコンフィグレーショ ン ・データでも、<br />

ENABLE_TRANSFR が ENABLE に設定 さ れてい る必要があ り ます。 こ の両方の条件が満た さ れていて Refresh<br />

コマンドが発行されると、 <strong>MachXO2</strong> は I/O の特性と電圧レベルを維持します。 INITN の立ち下がりで出力<br />

バッファの状態をラッチして保持し、 そしてウェイクアップ ・ プロセスで GOE ス ト ローブがアサート され<br />

る まで維持し ます。 ウ ェ イ ク ア ッ プ ・ プ ロ セスで内部 DONE ビ ッ ト がアサー ト さ れる と 直ちに入力データ が<br />

有効にな り ます。<br />

コ ン フ ィ グ レーシ ョ ンが失敗する と 、 ウ ェ イ ク ア ッ プ ・ プ ロ セ スで GOE ネゲー ト する こ と を見合わせます。<br />

結果 と し て、 出力は既知の状態のま まで <strong>MachXO2</strong> がデュ アルブー ト のゴールデン イ メ ージの ロー ド を実行<br />

できるよ うにします。 これまでのファ ミ リのよ う なバウンダ リ スキャン法よ り も優れている振る舞いと言え<br />

ます。<br />

ソフトウェアで選択できるオプション<br />

<strong>MachXO2</strong> コ ン フ ィ グ レーシ ョ ン ・ ロ ジ ッ ク の動作は、 Diamond デザイ ン ソ フ ト ウ ェ アで選択し たオプシ ョ ン<br />

に よ って管理されます。 他の FPGA では、 コ ン フ ィ グ レーシ ョ ン ・ モー ド の選択用に専用 I/O が用意 さ れて<br />

います。<strong>MachXO2</strong> では、不揮発性フ ィ ーチャ行を使用し て コ ン フ ィ グ レーシ ョ ン方法が選択 さ れます。フ ィ ー<br />

チ ャ 行のデ フ ォ ル ト ・ ス テ ー ト は、 ほぼ全 て のデザ イ ン ご と に変更す る 必要が あ り ま す。 Diamond の<br />

Spreadsheet View (スプレ ッ ド シー ト ・ ビ ュー) を使用する と 、 <strong>MachXO2</strong> のフ ィ ーチャ行の動作を変更で き、<br />

コ ン フ ィ グ レーシ ョ ン ・ ロ ジ ッ ク の動作が変化し ます。<br />

コ ン フ ィ グ レーシ ョ ン ・ ロ ジ ッ ク の制約には、 Spreadsheet View を使用し ます。 Global Preferences (グローバ<br />

ル制約) タ ブを ク リ ッ ク し、 sysCONFIG ツ リ ーを確認し て く だ さ い。 sysCONFIG セ ク シ ョ ン を図 14-14 に<br />

示します。sysCONFIGの制約は、次の3つのカテゴリに分類されています。<br />

• コンフィグレーシ ョ ン ・ モード及びポートに関するもの<br />

• ビ ッ ト ス ト リ ーム生成に関する も の<br />

• セキ ュ リ テ ィ に関する も の<br />

14-28 tn1204_02.2


<strong>MachXO2</strong> プログラミングとコンフィグレーション<br />

使用ガイド<br />

図 14-14. Diamond Spreadsheet View の Global Preferences タ ブにあ る sysCONFIG 制約<br />

コンフィグレーション・モード及びポートオプション<br />

コンフィグレーション・モード及びポートオプションでは、<strong>MachXO2</strong>デバイスがユーザモードになった後も<br />

引き続き動作する コ ン フ ィ グ レーシ ョ ン ・ ポー ト を、 どれにする かを決定で き ます。 使用可能な ス テータ ス<br />

ピ ン、 及びコ ン フ ィ グ レーシ ョ ン ・ データ を外部 SPI フ ラ ッ シ ュ か ら読み取る速度も制御で き ます。 こ こ で<br />

行った選択はフ ィ ーチャ行に保存され、 フ ィ ーチャ行が消去される まで有効なま まにな り ます。 唯一の例外<br />

と し て、 MCCLK_FREQ パ ラ メ ータはコ ン フ ィ グ レーシ ョ ン ・ データ に格納さ れます。<br />

コ ン フ ィ グ レーシ ョ ン及びポー ト オプシ ョ ンは、 任意の組み合わせで使用で き ます。<br />

表 14-15. コ ン フ ィ グ レーシ ョ ン ・ モー ド / ポー ト オプシ ョ ン<br />

オプシ ョ ン名 デフ ォル ト 設定 全設定値<br />

JTAG_PORT ENABLE DISABLE, ENABLE<br />

SLAVE_SPI_PORT DISABLE DISABLE, ENABLE<br />

MASTER_SPI_PORT DISABLE DISABLE, ENABLE, EFB_USR<br />

I2C_PORT DISABLE DISABLE, ENABLE<br />

SDM_PORT1, 2 DISABLE DISABLE, PROGRAMN, PROGRAMN_DONE, PROGRAMN_DONE_INITN<br />

MCCLK_FREQ 2.08 (p.14-15 参照)<br />

ENABLE_TRANSFR DISABLE DISABLE, ENABLE<br />

1. ispLEVER 8.1 SP1 及び Diamond 1.1 では、 SDM_PORT のデフ ォル ト が PROGRAMN で し た<br />

2. 32 QFN パ ッ ケージには INITN ピ ンがあ り ません。 そのため、 オプシ ョ ン SDM_PORT = PROGRAMN_DONE_INITN を使用で<br />

きません<br />

JTAG ポー ト<br />

JTAG_PORT 制約では、 <strong>MachXO2</strong> デバイ スがユーザモード時の JTAG コ ンフ ィ グレーシ ョ ン ・ ポー ト ピンの<br />

動作を決定で き ます。 JTAG_PORT は、 次の 2 つのス テー ト に設定で き ます。<br />

14-29 tn1204_02.2


<strong>MachXO2</strong> プログラミングとコンフィグレーション<br />

使用ガイド<br />

• ENABLE ~ JTAG I/O が専用 と な り 、 IEEE 1149.1 JTAG イ ン ターフ ェ イ ス を提供し ます<br />

• DISABLE ~ JTAGENB ピ ン を使用し て JTAG I/O ピ ンが動的に制御されます<br />

JTAGENB ピ ン を使用で き る のは、JTAG_PORT が DISABLE ス テー ト の場合だけです。JTAGENB が High に さ<br />

れる と 、 4 本の JTAG I/O が IEEE 1149.1 JTAG ポー ト と し て機能する よ う にな り ます。 JTAGENB が Low に<br />

さ れる と 、 4 本の I/O を汎用 I/O と し て使用で き る よ う にな り ます。<br />

再プロ グ ラ ミ ングによ って <strong>MachXO2</strong> でプラ イマ リ ・ コ ンフ ィ グレーシ ョ ン ・ ポー ト がデ ィ セーブルされて<br />

も、 JTAG ポー ト にア ク セ スで き る よ う なデザ イ ンにする こ と を推奨し ます。<br />

SSPI ポー ト<br />

SLAVE_SPI_PORT では、 <strong>MachXO2</strong> デバ イ スがユーザモー ド になった後も、 SSPI コ ン フ ィ グ レーシ ョ ン ・ ポー<br />

ト を確保で き ます。 SLAVE_SPI_PORT 制約は、 次の 2 つに設定で き ます。<br />

• ENABLE ~ <strong>MachXO2</strong> デバ イ スがユーザモー ド 時に SPI ポー ト I/O が確保され、 外部 SPI マス タ が コ ン<br />

フ ィ グ レーシ ョ ン ・ ロ ジ ッ ク と 通信で き る よ う にな り ます。 こ の設計制約では、 ポー ト ピ ンに I/O を重複<br />

して割り当てることも防止されます<br />

• DISABLE ~ SPI ポー ト ピ ンが コ ン フ ィ グ レーシ ョ ン ・ ロ ジ ッ ク か ら切断されます。 自動的にポー ト ピ ン<br />

が汎用I/Oになることはありません。SPIポートピンを汎用I/Oにするには、SLAVE_SPI_PORT と<br />

MASTER_SPI_PORT の両方を DISABLE ス テー ト にする必要があ り ます<br />

SLAVE_SPI_PORT は、 MASTER_SPI_PORT と同時にイネーブルでき ますが、 内部 SPI マス タ コ ン ト ローラが、<br />

外部 SPI マス タ と 同時に SPI ト ラ ンザ ク シ ョ ン を実行し ない こ と を確実にする必要があ り ます。2 つの SPI マ<br />

ス タ の同時動作を必ず防止し て く だ さ い。<br />

MSPI ポー ト<br />

MASTER_SPI_PORT では、 <strong>MachXO2</strong> デバ イ スがユーザモー ド になった後 も、 SPI コ ン フ ィ グ レーシ ョ ン ・ ポー<br />

ト を確保で き ます。 MASTER_SPI_PORT 制約は、 次の 3 つに設定で き ます。<br />

• ENABLE ~ <strong>MachXO2</strong> がユーザモー ド 時に SPI ポー ト I/O が確保されます。 こ の設計制約では、 外部ま た<br />

はデュ アルブー ト ・ コ ン フ ィ グ レーシ ョ ンモー ド がア ク テ ィ ブにな り ます。 こ の設計制約を<br />

CONFIGURATION = EXTERNAL と 組み合わせて使用する と 、 外部ブー ト モー ド が イ ネーブルにな り 、 ま<br />

た CFG、 CFG_EBRUFM、 CFGUFM と 組み合わせる と 、 デュ アルブー ト ・ モー ド が イ ネーブルにな り ま<br />

す。 ユーザモードになると、 EFB内の SPIコント ローラが SPIポートにアクセスし、 SPIバス ・ ト ランザ<br />

ク シ ョ ン を実行で き ます。 こ の設計制約では、 ポー ト ピ ンに I/O を重複し て割 り 当て る こ と も防止 さ れま<br />

す<br />

• EFB_USER ~ <strong>MachXO2</strong> がユーザモー ド 時に SPI ポー ト I/O が確保されます。 ユーザモー ド にな る と 、<br />

EFB 内の SPI コ ン ト ローラ が SPI ポー ト にア ク セ ス し、 SPI バス ・ ト ラ ンザ ク シ ョ ン を実行で き ます。 こ<br />

の設計制約では、 ポー ト ピ ンに I/O を重複し て割 り 当て る こ と も防止 さ れます<br />

• DISABLE ~ SPI ポー ト ピ ンがコ ン フ ィ グ レーシ ョ ン ・ ロ ジ ッ ク か ら切断されます。 自動的にポー ト ピ ン<br />

が汎用I/Oになることはありません。SPIポートピンを汎用I/Oにするには、SLAVE_SPI_PORT と<br />

MASTER_SPI_PORT の両方を DISABLE ス テー ト にする必要があ り ます<br />

MASTER_SPI_PORT は SLAVE_SPI_PORT と 同時に イ ネーブルで き ます。 し か し内部 SPI マ ス タ コ ン ト ローラ<br />

が、 外部 SPI マ ス タ と 同時に SPI ト ラ ンザ ク シ ョ ン を実行し ない こ と を確実にする必要があ り ます。 2 つの<br />

SPI マ ス タ の同時動作を必ず防止し て く だ さ い。<br />

I 2 Cポート<br />

I2C_PORT では <strong>MachXO2</strong> デバ イ スがユーザモー ド になった後も、 I 2 Cコンフィグレーション・ポートを確保<br />

できます。I2C_PORT制約は、次の2つに設定できます。<br />

14-30 tn1204_02.2


<strong>MachXO2</strong> プログラミングとコンフィグレーション<br />

使用ガイド<br />

• ENABLE ~ <strong>MachXO2</strong> がユーザモー ド 時に I2CポートI/Oが確保され、外部I2Cマスタがコンフィグレー シ ョ ン ・ ロ ジ ッ ク と 通信で き る よ う にな り ます。 こ の設計制約では、 ポー ト ピ ンに I/O を重複し て割 り 当<br />

てることも防止されます<br />

• DISABLE ~ I 2Cポートピンがコンフィグレーション・ ロジックから切断されます。 このポートピンは汎用<br />

I/O にな り ます<br />

EFB 内のプ ラ イ マ リ 及びセカ ンダ リ I 2 C コ ン ト ローラ を使用する には、 I2C_PORT を ENABLE にする必要が<br />

あります。<br />

SDM ポー ト<br />

SDM_PORT では <strong>MachXO2</strong> デバイ スがユーザモー ド になってか ら、 プ ロ グ ラ ミ ン グ ・ ス テータ ス ピ ン を選択<br />

で き ます。 SDM_PORT 制約は、 次の 4 つに設定で き ます。<br />

• DISABLE ~ PROGRAMN、 DONE、 及び INITN ス テータ ス ピ ンが汎用 I/O にな り ます<br />

• PROGRAM ~ <strong>MachXO2</strong> デバイ スがユーザモー ド 時に PROGRAMN ピ ンが確保 さ れます。 こ のピ ン を ア ク<br />

ティブLowにすると、<strong>MachXO2</strong>が再コンフィグレーションされます。DONE及びINITNピンは汎用I/O<br />

にな り ます<br />

• PROGRAM_DONE ~ <strong>MachXO2</strong> デバイ スがユーザモー ド になって も PROGRAMN 及び DONE ピ ンが確保さ<br />

れます。 INITN は汎用 I/O にな り ます<br />

• PROGRAM_DONE_INITN ~ユーザモー ド 時に PROGRAM、 DONE、 及び INITN が確保 さ れます<br />

MSPI ま たはデュ アルブー ト ・ コ ン フ ィ グ レーシ ョ ン ・ モー ド を使用する場合は、 SDM_PORT を PROGRAMN<br />

に設定する こ と を推奨し ます。 別の コ ン フ ィ グ レーシ ョ ン ・ ポー ト を使用し て REFRESH コ マン ド を送出可<br />

能な場合を除いて、 PROGRAMN ピ ンは、 <strong>MachXO2</strong> デバ イ ス を " ウ ォーム " 再コ ン フ ィ グ レーシ ョ ンする唯<br />

一の手段です。<br />

MCCLK の周波数<br />

MCLK_FREQ 制約では、 EXTERNAL ま たはデュ アルブー ト ・ コ ン フ ィ グ レーシ ョ ン ・ モー ド 使用時に、 外部<br />

SPI フ ラ ッ シ ュ か ら のデータ取得に使用 さ れる MCLK 周波数を変更で き ます。 <strong>MachXO2</strong> では、 外部 SPI フ<br />

ラ ッ シ ュ か ら のデータ取得開始時に、公称2.08MHz(+/- 5.5%)の ク ロ ッ ク 周波数が使用されます。MCLK_FREQ<br />

の値は、 受信する コ ン フ ィ グ レーシ ョ ン ・ データ に格納されていて、 フ ィ ーチャ行には格納されていません。<br />

<strong>MachXO2</strong> デバ イ スは、 連続し たパデ ィ ン グ ビ ッ ト 、 データ開始ワー ド (0xBDB3)、 及びコ ン ト ロールレ ジ ス<br />

タ値を読み出し ます。 制御レ ジ ス タ には新し い MCLK_FREQ 値が格納 さ れます。 <strong>MachXO2</strong> は MCLK_FREQ<br />

値を受信する と すぐに、 新し い ク ロ ッ ク周波数に切 り 替わ り ます。 MCLK_FREQ で使用可能な周波数範囲は、<br />

2.08MHz か ら最高 133 MHz までです (表 14-8 を参照)。 実際の SPI フ ラ ッ シ ュ ま たはプ リ ン ト 基板の最高 ク<br />

ロックレートを超えないよう注意してください。<br />

仕様を外れる ク ロ ッ ク 周波数を指定し た場合に備えて、 バ ッ ク ア ッ プ ・ コ ン フ ィ グ レーシ ョ ン ・ ポー ト を用<br />

意し てお く こ と を推奨し ます。<br />

ENABLE_TRANSFR<br />

<strong>MachXO2</strong> で使用 さ れる TransFR 機能では、コ ン フ ィ グ レーシ ョ ン SRAM に ロー ド さ れた コ ン フ ィ グ レーシ ョ<br />

ン ・ データ、 及び内部フ ラ ッ シ ュ メ モ リ に ロー ド さ れた将来の コ ン フ ィ グ レーシ ョ ン ・ データ フ ァ イルで、<br />

ENABLE_TRANSFR が ENABLE ス テー ト に設定 さ れてい る必要があ り ます。<strong>MachXO2</strong> での TransFR の使用の<br />

詳細については、"TransFR の動作 " 項、及び "TN1087 Minimizing System Interruption During Configuration Using<br />

TransFR Technology (TransFR 技術を使用し た コ ン フ ィ グ レーシ ョ ン時のシ ス テム中断の最小化) " を参照し<br />

てください。<br />

14-31 tn1204_02.2


<strong>MachXO2</strong> プログラミングとコンフィグレーション<br />

使用ガイド<br />

ビ ッ ト ス ト リ ーム生成オプシ ョ ン<br />

Bitstream Generation (ビ ッ ト ス ト リ ーム生成) オプシ ョ ンでは、 Diamond 開発ツールで <strong>MachXO2</strong> デバ イ ス用<br />

の コ ン フ ィ グ レ ー シ ョ ン ・ デ ー タ を 作 成 す る 方 法 を 決 定 で き ま す。 CONFIGURATION、 USERCODE、<br />

CUSTOM_IDCODE、 及び SHAREDEBRINIT の各設定はフ ィ ーチ ャ行に保存 さ れ、 フ ィ ーチ ャ行が消去 さ れる<br />

まで有効な ま まにな り ます。 その他のオプシ ョ ンでは、 Diamond で生成 さ れる JEDEC 及び BIT フ ァ イルを制<br />

御で き ます。 表 14-16 はそれら を ま と めた も のです。<br />

表 14-16. ビ ッ ト ス ト リ ーム生成オプシ ョ ン<br />

オプシ ョ ン名 デフ ォル ト 設定 全設定値<br />

GENERATE_BITSTREAM DISABLE DISABLE, ENABLE<br />

COMPRESS_CONFIG ON OFF, ON<br />

CONFIGURATION1 CFG CFG, CFG_EBRUFM, CFGUFM, EXTERNAL<br />

USERCODE_FORMAT BINARY HEX, BINARY, ASCII<br />

USERCODE 32-bit arbitrary<br />

CUSTOM_IDCODE_FORMAT BINARY HEX, BINARY<br />

CUSTOM_IDCODE 32-bit arbitrary<br />

SHAREDEBRINIT DISABLE DISABLE, ENABLE<br />

MUX_CONFIGURATION_PORTS DISABLE DISABLE, ENABLE<br />

1. ispLEVER 8.1 SP1 及び Diamond 1.1 では、 CFG_EBRUFM がデフ ォル ト<br />

GENERATE BITSTREAM<br />

GENERATE_BITSTREAM 制約は、JEDEC フ ァ イルに加えて BIT フ ァ イルを作成する こ と を Diamond に通知し<br />

ます。 GENERATE_BITSTREAM のデフ ォル ト 設定であ る DISABLE では、 Diamond が BIT フ ァ イルを作成し ま<br />

せん。 GENERATE_BITSTREAM が ENABLE の場合、 Diamond は JEDEC フ ァ イ ル と BIT フ ァ イルの両方を作<br />

成します。 BIT ファイルは、 外部 SPI フラ ッシュに直接プログラム可能なバイナリデータファイルです。<br />

ビ ッ ト ス ト リ ーム生成は COMPRESS_CONFIG 制約の影響を受け ます。詳細については、COMPRESS_CONFIG<br />

の項を参照し て く ださい。<br />

COMPRESS_CONFIG<br />

COMPRESS_CONFIG 制約は JEDEC 及び BIT フ ァ イルの生成方法を変更し ます。 COMPRESS_CONFIG のデ<br />

フ ォル ト 設定は ON です。COMPRESS_CONFIG 及び GENERATE_BITSTREAM 制約には、表 14-17 に示す 3 つ<br />

の有効な組み合わせがあ り ます。<br />

表 14-17. GENERATE_BITSTREAM/COMPRESS_CONFIG の有効な組み合わせ<br />

COMPRESS_CONFIG GENERATE_BITSTREAM JEDEC 生成<br />

ON OFF Valid1 Yes<br />

ON ON Valid Yes<br />

OFF OFF Invalid N/A<br />

OFF ON Valid No<br />

1. COMPRESS_CONFIG 及び GENERATE_BITSTREAM のデフ ォル ト 設定<br />

JEDEC フ ァ イ ルは生成時に必ず圧縮されます。 外部ま たはデュ アルブー ト ・ コ ン フ ィ グ レーシ ョ ン ・ モー ド<br />

使用時は、 COMPRESS_CONFIG=ON 及び GENERATE_BITSTREAM=ON の使用を推奨し ます。 外部 SPI フ ラ ッ<br />

シ ュ か ら コ ン フ ィ グ レーシ ョ ン ・ データ を読み込む と 、 コ ン フ ィ グ レーシ ョ ン時間を多少短縮で き、 Diamond<br />

ツールでは内部フ ラ ッ シ ュ メ モ リ にプ ロ グ ラ ム可能な JEDEC フ ァ イルが作成されます。<br />

14-32 tn1204_02.2


CONFIGURATION<br />

<strong>MachXO2</strong> プログラミングとコンフィグレーション<br />

使用ガイド<br />

CONFIGURATION 制約では CFM 及び UFM セ ク タ を制御で き ます。 CONFIGURATION 制約には、 次の 4 つ<br />

の設定が可能です。<br />

• CFG ~コ ン フ ィ グ レーシ ョ ン ・ データ作成時のデフ ォル ト モー ド です。 コ ン フ ィ グ レーシ ョ ン ・ ビ ッ ト<br />

ス ト リ ームは CFM に格納 さ れ、 UFM セ ク タへのオーバフ ローは許可さ れません。 コ ン フ ィ グ レーシ ョ<br />

ン ・ データ には EBR 初期化データ が含まれます。 UFM セ ク タは、 ユーザモー ド で汎用フ ラ ッ シ ュ メ モ リ<br />

として使用できます。<br />

• CFG_EBRUFM ~ こ の設計制約で作成 さ れる コ ン フ ィ グ レーシ ョ ン ・ データは、 CFM に格納 さ れます。<br />

EBR 初期化データは、 UFM セ ク タ の最下位ページア ド レ スに格納 さ れます。 UFM セ ク タはユーザモー ド<br />

で使用で き ます。 正し い動作を保証する ため UFM に変更を加えた場合は、 EBR 初期化データ を回復する<br />

必要があ り ます。<br />

• CFGUFM ~ こ の設計制約で作成 さ れる コ ン フ ィ グ レーシ ョ ン ・ データは、 CFM に格納 さ れます。 こ の<br />

モー ド は、 UFM へのオーバフ ローが許可される と い う 点が CFG と 異なっています。 デザ イ ンに EBR 初<br />

期化データ が追加される と 、 コ ン フ ィ グ レーシ ョ ン ・ データ のサ イ ズが増加し ます。 こ のモー ド では、<br />

ユーザモー ド での UFM へのア ク セ スが防止さ れます。<br />

• EXTERNAL ~ こ の設計制約で生成される コ ン フ ィ グ レーシ ョ ン ・ データは、 外部 メ モ リ に格納されます。<br />

UFM セ ク タは、 ユーザモー ド で汎用フ ラ ッ シ ュ メ モ リ と し て使用で き ます。<br />

Diamond ソ フ ト ウ ェ アの リ リ ース 1.4では、CONFIGURATION制約のデフ ォル ト がCFG ス テー ト です。Diamond<br />

デザ イ ン ソ フ ト ウ ェ アで JEDEC フ ァ イルが生成さ れる のは、 デザ イ ン全体が CFMCFM に収ま る場合だけで<br />

す。 <strong>MachXO2</strong> デバ イ スがユーザモー ド にな る と 、 UFM を使用で き る こ と が保証さ れます。<br />

コ ン フ ィ グ レーシ ョ ン ・ データ が CFM に収ま ら ない場合は、 CFG_EBRUFM 制約を使用し てみて く だ さ い。<br />

デザ イ ンに多数の初期化する EBR があ り 、 し か も UFM ページにア ク セ ス し てデータ を格納する場合は、 こ<br />

の設計制約が有用です。 初期化する EBR の数次第では、 UFM にデータ格納用の十分な容量が残っています。<br />

CFM にコ ン フ ィ グ レーシ ョ ン ・ データ を格納で き る だけのサ イ ズがな く 、 独自データ の格納に UFM を使用<br />

する必要がない場合は、 CFGUFM オプシ ョ ン を使用し て く だ さ い。 まれなケース と し て、 CFM と UFM の合<br />

計よ り も、 コ ン フ ィ グ レーシ ョ ン ・ データ のサ イ ズが大き く な る こ と があ り ます。<br />

MSPI コ ン フ ィ グ レーシ ョ ン ・ モー ド で使用する コ ン フ ィ グ レーシ ョ ン ・ データ の作成には、 EXTERNAL 制<br />

約を使用し て く だ さ い。 CFM と UFM で使用可能な容量の合計よ り も、 コ ン フ ィ グ レーシ ョ ン ・ データ が大<br />

き い場合は、 EXTERNAL モー ド に切 り 替え る必要があ り ます。 EXTERNAL モー ド では、 CFM ま たは UFM リ<br />

ソ ースがま った く 使用されません。 ユーザモー ド で UFM を使用で き ます。 EXTERNAL を選択する場合は、<br />

GENERATE_BITSTREAM オプシ ョ ン を ENABLE ス テー ト にする必要があ り ます。<br />

<strong>MachXO2</strong>-256 デバ イ スには UFM が内蔵 さ れていません。こ のデバ イ スで使用可能な コ ン フ ィ グ レーシ ョ ン・<br />

オプシ ョ ンは、 CFG モード と EXTERNAL モード だけです。<br />

USERCODE<br />

<strong>MachXO2</strong> コ ン フ ィ グ レーシ ョ ン ・ フ ラ ッ シ ュ セ ク ターにはユーザ定義の値を格納する ための 32 ビ ッ ト レ ジ<br />

ス タ が内蔵されています。 こ のレ ジ ス タ に格納されるデフ ォル ト 値は 0x00000000 です。 USERCODE 制約を<br />

使用する と 、こ のレ ジ ス タ に任意の値を割 り 当て る こ と がで き ます。推奨する用途 と し ては、コ ン フ ィ グ レー<br />

シ ョ ン ・ データ のバージ ョ ン番号、 製造元 ID コー ド 、 組み立ての日付、 JEDEC フ ァ イルのチェ ッ ク サムな<br />

どがあ り ます。<br />

USERCODE フ ィ ール ド の形式は、 USERCODE_FORMAT 制約を使用し て制御されます。 データ入力は、 2 進、<br />

16 進、 ASCII のいずれの形式で も可能です。<br />

14-33 tn1204_02.2


USERCODE_FORMAT<br />

<strong>MachXO2</strong> プログラミングとコンフィグレーション<br />

使用ガイド<br />

USERCODE_FORMAT 制約では USERCODE 制約で値の割 り 当てに使用するデータ フ ィ ール ド の形式を選択<br />

し、 次の 3 つのオプシ ョ ンがあり ます。<br />

• Binary (2 進) ~ 32 個の '1' ま たは '0' 文字を使用し て、 USERCODE を設定し ます<br />

• Hex (16 進) ~ 8 個の 16 進数 (0 ~ 9、 A ~ F) を使用し て、 USERCODE を設定し ます<br />

• ASCII ~ 4 個の ASCII 文字を使用し て、 USERCODE を設定し ます<br />

CUSTOM_IDCODE<br />

CUSTOM_IDCODE 制約は フ ィ ーチ ャ 行内 に あ る 32 ビ ッ ト レ ジ ス タ の 割 り 当 て に 使用 さ れ ま す。<br />

CUSTOM_IDCODE フ ィ ール ド がア ク テ ィ ブ と な る のは、 MY_ASSP 制約が ON ス テー ト の場合だけです。 割<br />

り 当て る値は、CUSTOM_IDCODE_FORMAT制約に従って、2進ま たは16進で入力で き ます。CUSTOM_IDCODE<br />

制約への値の割 り 当ての詳細については、 「MY_ASSP」 の項を参照し て く だ さ い。<br />

CUSTOM_IDCODE_FORMAT<br />

CUSTOM_IDCODE_FORMAT 制約では CUSTOM_IDCODE 制約での値の割 り 当てに使用するデータ の形式を選<br />

択し、次の2つのオプションがあります。s:<br />

• Binary (2 進) ~ 32 個の '1' ま たは '0' 文字を使用し て、 CUSTOM_IDCODE を設定し ます<br />

• Hex (16 進) ~ 8 個の 16 進数 (0 ~ 9、 A ~ F) を使用し て、 CUSTOM_IDCODE を設定し ます<br />

SHAREDEBRINIT<br />

に設定する と 、 こ の設計制約に よ って固有の メ モ リ 初期化フ ァ イルを 1 つ、 フ ラ ッ シ ュ メ モ リ に格納で き ま<br />

す。 こ の初期化値は複数の EBR 間で共有で き ます。 そ う する こ と で、 デザ イ ンのビ ッ ト ス ト リ ーム ・ サ イ ズ<br />

が縮小され、 UFM 容量が節約 さ れて、 他のアプ リ ケーシ ョ ンに利用で き る よ う にな り ます。<br />

MAX_CONFIGURATION_PORTS<br />

( 英語版オ リ ジナル記述を次版で改訂の予定のため、 割愛し ます。 )<br />

セキュ リ ティオプシ ョ ン<br />

セキュ リ テ ィ オプシ ョ ンでは、<strong>MachXO2</strong>デバイスの ト ラ ッ キング とセキュ リ テ ィ保護用の様々なオプシ ョ ン<br />

を選択で き ます。 表 14-18 はそれら を ま と めた も のです。<br />

表 14-18. セキ ュ リ テ ィ オプシ ョ ン<br />

オプシ ョ ン名 デフ ォル ト 設定 全設定値<br />

TRACEID 8-bit arbitrary<br />

MY_ASSP OFF OFF, ON<br />

CONFIG_SECURE OFF OFF, ON<br />

ONE_TIME_PROGRAM OFF OFF, FLASH, FLASH_UFM, FLASH_UFM_SRAM<br />

TRACEID<br />

<strong>MachXO2</strong> では TraceID と 呼ばれる新機能が導入さ れま し た。 TraceID では、 <strong>MachXO2</strong> ご と に固有の 64 ビ ッ<br />

ト ID が付けられます。 2 つの <strong>MachXO2</strong> デバイスに同じコンフィグレーシ ョ ン ・ データがロード されても、<br />

14-34 tn1204_02.2


<strong>MachXO2</strong> プログラミングとコンフィグレーション<br />

使用ガイド<br />

任意の 2 デバイ スが同じ TraceID 値を持つこ と はあ り ません。 こ の点が コ ン フ ィ グ レーシ ョ ン ・ データ内に<br />

あ る USERCODE と は異なっています。 USERCODE を使用し て コ ン フ ィ グ レーシ ョ ン ・ データ を受け取る各<br />

デバイ スは、 同じ USERCODE 値を持ち ます。<br />

TraceID は長 さ が 64 ビ ッ ト で、 下位 56 ビ ッ ト は変更不可のデータ と なっています。 こ の 56 ビ ッ ト は、 ウ ェ<br />

ハの ロ ッ ト 、 ウ ェハ番号、 及びウ ェハ上のダ イ位置を示す X/Y 座標を組み合わせた も のです。 最上位の 8<br />

ビ ッ ト はユーザが指定し、 フ ィ ーチャ行に格納さ れます。 TraceID は、 Diamond の Spreadsheet View を使用し<br />

て変更し ます。 TraceID フ ィ ール ド に固有の 8 ビ ッ ト 2 進値を入力し、 コ ン フ ィ グ レーシ ョ ン ・ データ を生<br />

成してください。<br />

TraceID 機能の詳細については、 "TN1207, Using TraceID in <strong>MachXO2</strong> Devices (<strong>MachXO2</strong> の TraceID の使用)<br />

" を ご参照 く だ さ い。<br />

MY_ASSP<br />

ラ テ ィ スの全てのデバイ スは、 デバイ ス フ ァ ミ リ 、 デバイ ス規模、 及びその他のパ ラ メ ータ (電圧、 デバ イ<br />

スステッピングなど) を識別する固有の ID コードを持っています。 このコードには、 <strong>MachXO2</strong> のコンフ ィ<br />

グレーション ・ ポートからアクセスできます。 IDCODE レジスタに格納された値からは、 ラティスのデバイ<br />

ス を一意に識別で き ます。<br />

MY_ASSP 制約では、<strong>MachXO2</strong> か ら IDCODE コー ド を読み取った場合に返 さ れる値を変更で き ます。MY_ASSP<br />

制約を ON に設定する と 、 CUSTOM_IDCODE 制約が イ ネーブル さ れます。<br />

CUSTOM_IDCODE<br />

CUSTOM_IDCODE は <strong>MachXO2</strong> デバイ スのデフ ォル ト の IDCODE を上書きする ために割 り 当て る値です。<br />

MY_ASSP 制約が ON の場合に入力で き る のは、 32 ビ ッ ト の 16 進ま たは 2 進値だけです。<br />

IDCODE を上書きする と、 ラティ スのプログラ ミ ング ・ ソフ ト ウェアが <strong>MachXO2</strong> デバイスを識別できなく<br />

な り 、 その結果 Programmer で <strong>MachXO2</strong> デバイ ス を直接プ ロ グ ラ ムで き な く な り ます。 MY_ASSP が イ ネーブ<br />

ル さ れた <strong>MachXO2</strong> デバイ ス をプ ロ グ ラ ムする には、 SVF (Serial Vector Format) フ ァ イルが生成 さ れる よ う<br />

マ イ グ レーシ ョ ンする必要があ り ます。<br />

CONFIG_SECURE<br />

こ の設計制約を ON に設定する と 、SRAM メ モ リ 及び CFM の リ ー ド バ ッ ク がブ ロ ッ ク さ れます。UFM の リ ー<br />

ドバックは、 ビットスト リームが UFM ブロックにオーバフローした場合もブロックされます。消去しない<br />

限り、 <strong>MachXO2</strong> デバイスをリードバックすることも、 プログラムすることもできなくなります。 セキュリ<br />

テ ィ 設定を リ セ ッ ト する には、 デバイ ス を消去する必要があ り ます。 CONFIG_SECURE ヒ ューズ と CFM は、<br />

連動し て消去されます。 セキ ュ リ テ ィ ヒ ューズを リ セ ッ ト する と 、 デバ イ ス を再びプ ロ グ ラ ムで き ます。<br />

ONE_TIME_PROGRAM<br />

<strong>MachXO2</strong> には OTP (One Time Programmable、 ワ ン タ イ ム ・ プ ロ グ ラ マブル) ヒ ューズがあ り 、 オンチ ッ プ<br />

メ モ リ の消去ま たはプ ロ グ ラ ムの防止に使用で き ます。 <strong>MachXO2</strong> デバ イ スには、 それぞれが SRAM、 CFM、<br />

及び UFM の各 メ モ リ セ ク タ に対応し た 3 つの OTP があ り ます。 こ の設計制約に よ って、 各 メ モ リ セ ク タ に<br />

OTP セキ ュ リ テ ィ を設定する こ と がで き ます。<br />

• FLASH ~ CFM を消去ま たはプ ロ グ ラ ムで き ません<br />

• FLASH_UFM ~ CFM と UFM を消去ま たはプ ロ グ ラ ムで き ません<br />

• FLASH_UFM_SRAM ~ CFM、 UFM、 及び SRAM を消去ま たはプ ロ グ ラ ムで き ません<br />

フ ラ ッ シ ュ メ モ リ の ONE_TIME_PROGRAM 制約が設定される と 、 内部フ ラ ッ シ ュ メ モ リ を消去ま たはプ ロ グ<br />

ラ ムで き な く な り ます。 コ ン フ ィ グ レーシ ョ ン ・ データ の変更が防止 さ れますが、 SDM モー ド を使用し てデ<br />

バイスをコンフ ィグレーシ ョ ンするこ とは可能です。<br />

14-35 tn1204_02.2


<strong>MachXO2</strong> プログラミングとコンフィグレーション<br />

使用ガイド<br />

ONE_TIME_PROGRAM 機能制約が FLASH_UFM_SRAM メ モ リ に設定さ れる と 、デバ イ スは ASIC の よ う な動作<br />

にな り ます。 内蔵フ ラ ッ シ ュ ま たは UFM を再プ ロ グ ラ ムで き な く な り 、 JTAG ポー ト か ら SRAM を変更で き<br />

なくなります。 その状態でも、内部フラッシュメモリまたは外部SPIフラッシュからのSRAMのコンフィグ<br />

レーシ ョ ンは可能です。<br />

デバイ スのウ ェ イ ク ア ッ プ ・ シーケン ス<br />

コ ン フ ィ グ レーシ ョ ンが完了する と (SRAM が ロー ド さ れる と )、 デバ イ スは予測可能な方法で ウ ェ イ ク ア ッ<br />

プし ます。 <strong>MachXO2</strong> デバイ スがチェーン内の唯一のデバイ ス、 またはチェーン内の最後のデバイ ス と なって<br />

い る場合、 コ ン フ ィ グ レーシ ョ ンの完了に よ って ウ ェ イ ク ア ッ プ ・ プ ロ セ スが起動さ れる必要があ り ます。<br />

コ ンフ ィ グレーシ ョ ンが完了する と 、 内部 DONE ビ ッ ト が設定され、 ウ ェ イ ク ア ッ プ ・ プロセスが開始され<br />

ます。 図 14-15 に、 内部 ク ロ ッ ク を使用し た ウ ェ イ ク ア ッ プ ・ シーケ ン ス を示し ます。<br />

図 14-15. 内部 ク ロ ッ ク を使用し た ウ ェ イ ク ア ッ プ ・ シーケ ン ス<br />

MCLK<br />

DONE BIT<br />

GLOBAL OUTPUT ENABLE<br />

GLOBAL SET/RESET<br />

GLOBAL WRITE DISABLE<br />

DONE PIN<br />

T0 T1 T2 T3<br />

ウェイクアップ信号<br />

3 つの内部信号 GSR、 GWDIS、 GOE に よ って ウ ェ イ ク ア ッ プ ・ シーケ ン スが決ま り ます。<br />

• GSR はデバイ スのコ アの設定 と リ セ ッ ト に使用されます。 GSR はコ ン フ ィ グレーシ ョ ン中にアサー ト さ<br />

れ (Low)、 ウェイクアップ ・ シーケンスでネゲート されます (High)。<br />

• GWDIS 信号が Low の と きは、 デバイ ス内の RAM ブ ロ ッ ク と LUT の整合性が保全 さ れます。 デバ イ スの<br />

ウ ェ イ ク ア ッ プ前、 こ の信号は Low になっています。 こ の制御信号は、 デバイ スのプ ラ イ マ リ 入力ピ ン<br />

を制御し ませんが、 EBR 及び LUT の特定の制御ポー ト を制御し ます。<br />

• GOE 信号 が Low の と きは、 デバイ スの I/O バ ッ フ ァ がピ ン を ド ラ イ ブで き な く な り ます。 GOE は出力<br />

ピンだけを制御し ます。 内部 DONE ビ ッ ト がアサー ト さ れる と 、 <strong>MachXO2</strong> は入力データ に応答する よ う<br />

にな り ます。<br />

• DONEピンが High のと きは、 コンフ ィ グレーシ ョ ンが完了し、 エラーが検出されなかったこ と を示しま<br />

す。<br />

ウェイクアップ・ クロックの選択<br />

ウ ェ イ ク ア ッ プ ・ シーケ ン ス中の 4 つのス テー ト 遷移を完了 させる ク ロ ッ ク ソースは、 ユーザが選択可能で<br />

す。 <strong>MachXO2</strong> は、 コ ン フ ィ グ レーシ ョ ンが終わ る と ウ ェ イ ク ア ッ プ ・ ス テー ト にな り 、 コ ン フ ィ グ レーシ ョ<br />

ン ・ モー ド か ら ユーザモー ド に移行し ます。 こ のシーケ ン スは ク ロ ッ ク ソース と 同期し ますが、 デフ ォル ト<br />

の ク ロ ッ ク ソ ースは sysCONFIG 使用時に MCLK/CCLK、 JTAG 使用時に TCK にな り ます。<br />

14-36 tn1204_02.2


<strong>MachXO2</strong> プログラミングとコンフィグレーション<br />

使用ガイド<br />

Verilog ま たは VHDL 内で START マ ク ロ を イ ン ス タ ン ス化する こ と で、 ウ ェ イ ク ア ッ プで使用 さ れる ク ロ ッ<br />

ク が変更で き ます。 <strong>MachXO2</strong> はウ ェ イ ク ア ッ プ ・ シーケ ン スが完了する まで内部動作を開始し ないため、 こ<br />

の ク ロ ッ ク は外部入力ピ ンか ら供給する必要があ り ます。 デバ イ スが最後の 4 つのス テー ト 遷移を実行可能<br />

にな った こ と は、 外部に示されませんので、 フ リ ーラ ン ク ロ ッ ク 周波数を指定する か、 デバ イ スがウ ェ イ ク<br />

ア ッ プ可能にな った こ と が保証される まで待つし かあ り ません。 START マ ク ロ を使用する こ と で、 1 つま た<br />

は複数のプログラマブルデバイスのコンフ ィグレーシ ョ ンが完了してから、 それらのデバイスを同期して起<br />

動する ための も う 1 つの メ カニズムが得ら れます。<br />

Verilog<br />

VHDL<br />

module START (STARTCLK);<br />

input STARTCLK;<br />

endmodule<br />

START u1 (.STARTCLK()) /* synthesis syn_noprune=1 */;<br />

COMPONENT START<br />

PORT(<br />

STARTCLK : IN STD_ULOGIC<br />

);<br />

END COMPONENT;<br />

attribute syn_noprune: boolean ;<br />

attribute syn_noprune of START: component is true;<br />

begin<br />

u1: START port map (STARTCLK =>);<br />

コンフィグレーションの詳細について<br />

フラッシュ ・プログラミング<br />

<strong>MachXO2</strong> の内蔵フ ラ ッ シ ュ メ モ リ は、 こ のデバ イ スの コ ン フ ィ グ レーシ ョ ン ・ シ ス テムの心臓部です。 柔軟<br />

で、 デバイ スの コ ン フ ィ グ レーシ ョ ン ・ データ を格納で き、 デザ イ ン固有のデータ を UFM に格納で き ます。<br />

正確な消去 と プ ロ グ ラ ミ ン グのシーケ ン ス を必要 と する リ ソースで も あ り ます。 ラ テ ィ スでは、 <strong>MachXO2</strong> フ<br />

ラ ッ シ ュ メ モ リ のプ ロ グ ラ ミ ン グ用にい く つかの方法を用意し ています。<br />

• Diamond Programmer (プ ロ グ ラ マ) : JTAG ま たは SSPI のプ ロ グ ラ ミ ング<br />

• VMEmbedded : JTAG ポー ト を制御する組み込みマ イ ク ロ プ ロ セ ッ サで使用する 'C' ソース コー ド<br />

• SSPIEmbedded : SSPI ポー ト を制御する組み込みマ イ ク ロ プ ロ セ ッ サで使用する 'C' ソース コー ド<br />

• Custom : こ の項で説明する内容、 及び "TN1246, Using User Flash Memory and Hardened Control Functions<br />

in <strong>MachXO2</strong> Devices Reference Guide (<strong>MachXO2</strong> デバ イ スの UFM と ハー ド マ ク ロ制御機能の使用法 リ フ ァ<br />

レ ン ス ガ イ ド ) " の説明に従 う と 、 カ ス タ ム ・ ソ リ ューシ ョ ン を作成で き ます。<br />

フラッシュメモリ空間には、JTAGポート、I 2 C ポート、 SPI ポート、 または WISHBONE バスからアクセスで<br />

き ます。 こ れら の コ ン フ ィ グ レーシ ョ ン ・ ポー ト をオフ ラ イ ン ま たは透過プ ロ グ ラ ミ ン グモー ド で使用する<br />

と 、<strong>MachXO2</strong> フ ラ ッ シ ュ メ モ リ ・ リ ソ ース を消去 / プ ロ グ ラ ム / ベ リ フ ァ イ で き ます。WISHBONE イ ン ター<br />

フ ェ イ スでは、 透過プ ロ グ ラ ミ ン グ動作のみを使用で き ます。 コ ン フ ィ グ レーシ ョ ン ・ ロ ジ ッ ク に渡すコ マ<br />

ン ド のシーケ ン ス と タ イ ミ ン グは、 全ての コ ン フ ィ グ レーシ ョ ン ・ ポー ト で同一です。 コ マン ド 及びデータ<br />

を送信する と き の通信プ ロ ト コル規格に よ る違いは多少あ り ます。 最初に、 全ての コ ン フ ィ グ レーシ ョ ン ・<br />

ポー ト で共通の コ マン ド と タ イ ミ ン グ フ ローについて説明し ます。 その後、 プ ロ ト コルの違いについて説明<br />

します。<br />

14-37 tn1204_02.2


<strong>MachXO2</strong> プログラミングとコンフィグレーション<br />

使用ガイド<br />

それぞれの <strong>MachXO2</strong> には、一定量の CFM と UFM が内蔵さ れています。 こ の メ モ リ サ イ ズは <strong>MachXO2</strong> のデ<br />

バイ ス規模に よ って異な り ます。 図 14-19 に各規模の <strong>MachXO2</strong> デバ イ スで使用可能な フ ラ ッ シ ュ メ モ リ の<br />

ページ数を示し ます。 各ページは 128 ビ ッ ト のデータ よ り な り ます。<br />

表 14-19. <strong>MachXO2</strong> フ ァ ミ リ のフ ラ ッ シ ュ メ モ リ のページ数<br />

<strong>MachXO2</strong> デバイ ス規模 CFM (ページ数) UFM (ページ数)<br />

CFG + UFM 連結 1<br />

(使用可能なページ数)<br />

7000 9,212 2,048 11,257<br />

4000, 2000U 5,758 768 6,524<br />

2000, 1200U 3,198 640 3,836<br />

1200, 640U 2,175 512 2,686<br />

640 1,151 192 1,342<br />

256 575 0 575<br />

1. デバイ スの制限に よ り 、 CFG+UFM (CONFIGURATION = CFGUFM) のページ数は各部の合計よ り も小さ く な る ことがあ<br />

ります<br />

<strong>MachXO2</strong> JEDEC の JEDEC フ ァ イル形式<br />

ラ テ ィ スの全ての不揮発性デバイ スは JEDEC フ ァ イルに対応し ています。開発 ソ フ ト ウ ェ アに含まれる ユー<br />

ティリティを使用すると、JEDECファイルをSTAPL、SVF、ビットストリーム (16進または2進) など他の<br />

プ ロ グ ラ ミ ン グ フ ァ イ ル形式に変換で き ます。 JEDEC フ ァ イルに関連する詳細情報について、 次の表で詳し<br />

く説明します。<br />

表 14-20. <strong>MachXO2</strong> JEDEC フ ァ イル形式<br />

JEDEC フ ィ ール ド 文法 記 述<br />

Don’t Care ( ド ン ト ケア) My design<br />

Start-of-text<br />

(テキス ト の先頭)<br />

^B<br />

^B (Control-B、 0x02) 文字よ り も前にある文字は無視。 こ こ には、 ^B を<br />

除 く 全ての文字セ ッ ト または内部言語を使用可能<br />

^B は JEDEC フ ァ イルの開始を示す。 ^B の後ろは ASCII 文字のみ有効。 文<br />

字 "*" は JEDEC フ ィ ール ド の終わ り を示すデ リ ミ タ。 CR 及び LF は、<br />

JEDEC フ ァ イルでは通常の空白と し て扱われ、 デ リ ミ タ機能を持たない<br />

Header (ヘ ッ ダ) My design<br />

最初のフ ィ ール ド は、 開始を示す識別子を持たないヘ ッ ダ。 ^B の後ろは<br />

ASCII 文字のみ有効。 ヘ ッ ダはアス タ リ ス ク文字 "*" で終端される<br />

Field Terminator (終端) * JEDEC フ ァ イル内の各フ ィ ール ド はアス タ リ ス ク で終端される<br />

Note (コ メ ン ト ) NOTE my design<br />

キーワー ド N はコ メ ン ト の開始を示す。 JEDEC フ ァ イル内の任意の位置<br />

に記述できる。 ラテ ィ スの JEDEC フ ァ イルでは NOTE とい う分かりやす<br />

い単語と なっている<br />

Fuse Count (フ ューズ数) QF3627736 キーワー ド QF はデバイ スの実際の合計ヒ ューズ数を示す 1<br />

Default Fuse State<br />

(デフ ォル ト ・ フ ューズス<br />

テー ト)<br />

Security Setting<br />

(セキュ リ テ ィ 設定)<br />

OTP and Security Setting<br />

(セキュ リ テ ィ 設定)<br />

F0 or F1<br />

G0 or G1<br />

G0, G1, G2, or G3<br />

キーワード F は、 リンクフ ィールドに含まれていないヒ ューズのヒ ュー<br />

ズ状態を示す。 F0 = ゼロ (0) で埋め、 F1 =1 で埋める。 JEDEC フ ァ イル<br />

サイズ削減のため定義された もの。 ラ テ ィ スの JEDEC フ ァ イルでは意味<br />

を持たない。 フ ァ イルサイズの削減には、 圧縮の使用を推奨する<br />

セキュ リ テ ィ のプ ログ ラ ミ ング用に JEDEC 標準では G が定義されて<br />

いる (0= な し、 1= あ り )<br />

ラティスではOTPヒューズのプログラミングにも対応するため、 G<br />

フ ィ ール ド を拡張し た。 G<br />

14-38 tn1204_02.2


表 14-20. <strong>MachXO2</strong> JEDEC フ ァ イル形式 (Continued)<br />

JEDEC フ ィ ール ド 文法 記 述<br />

Link Field<br />

(リンクフ ィールド)<br />

Fuse Checksum<br />

(フューズチェ ッ クサム)<br />

U Field<br />

(U フ ィ ール ド )<br />

E Field<br />

(E フ ィ ール ド )<br />

L0000000<br />

101011…100011<br />

…………………..<br />

111111…101100<br />

110<br />

101011…100011<br />

…………………..<br />

111111…101100<br />

110<br />

……..<br />

……..<br />

101011…100011<br />

…………………..<br />

111111…101100<br />

110*<br />

NOTE SED_CRC*<br />

L3627704<br />

111111….111111*<br />

CC1B9<br />

CC1B9<br />

UA Home<br />

EH 012..ABCDEF<br />

<strong>MachXO2</strong> の非暗号化 JEDEC フ ァ イ ルの例を、 図 14-16 に示し ます。<br />

図 14-16. 非暗号化 JEDEC フ ァ イルの例<br />

*<br />

NOTE Diamond_1.2_Production (92) JEDEC Compatible Fuse File.*<br />

NOTE Copyright (C), 1992-2010, <strong>Lattice</strong> <strong>Semiconductor</strong> Corporation.*<br />

NOTE All Rights Reserved.*<br />

<strong>MachXO2</strong> プログラミングとコンフィグレーション<br />

使用ガイド<br />

キーワー ド L は、 空白の後に続 く ヒ ューズパタ ーンの先頭ヒ ューズア ド<br />

レスを示す。 L キーワー ド に続 く 、 こ こ に示された桁数は、 QF フ ィ ール<br />

ド と一致し ている こ と。 この例では QF3627736 が 7 桁であるため、<br />

L0000000 には 7 個の 0 が必要。<br />

従来、 ヒ ューズア ド レスは 0 から カウン ト し ていた。<br />

リ ン ク フ ィ ール ド にはプ ログ ラ ミ ング ・ パタ ーンが格納され、 JEDEC<br />

フ ァ イルで最も重要な部分である。 シ リ コ ンの物理ア レ イ ・ レ イ アウ ト が<br />

正確に再現されるよう、 プログラ ミ ングデータがこのフ ィールドに書き込<br />

まれる。<br />

行ア ド レスは、 昇順で上から下に書き込まれる。<br />

先頭 = 行 0、 末尾 = 最終行<br />

列ア ド レスは、 昇順で左から右に書き込まれる。<br />

左端=ビット 0、右端=最終ビット<br />

INIT_ADDRESS コ マン ド では行 0 が最初に選択される。 プ ログ ラ ミ ングの<br />

ためデバイスに最初にシフトインされるビットはビット 0。 ベリファイ時<br />

にデバイスから最初にシフトアウトされるビットもビット0。<br />

CFM デー タの末尾は "NOTE END CONFIG DATA*" で示される。 全て '0' 値<br />

を含んだページデー タ を プ ログ ラムする必要はない。<br />

UFM ページが JEDEC 内にある場合は、 その前に "NOTE TAG DATA*" 行<br />

が付 く 。<br />

JEDEC フ ァ イルが暗号化される場合は、 リ ン ク フ ィ ール ド 内の全デー タ<br />

が暗号化される。 列サイズパケ ッ ト (パケ ッ ト あた り 128 ビ ッ ト または<br />

16 バイ ト ) の境界を示すよ う フ ィ ラービ ッ ト を含める と、 列サイズが増<br />

加する<br />

ヒューズのチェックサム= ヒューズ数。 全てのヒューズのヒューズ状態は<br />

リンクフ ィールドで確認できる。 リンクフ ィールドに指定されていない場<br />

合は、 その位置にあるデフ ォル ト ・ ヒ ューズ状態を使用する。 JEDEC<br />

フ ァ イルが暗号化される場合は、 暗号化後に ヒ ューズ ・ チ ェ ッ クサムが計<br />

算される。 暗号化前のヒ ューズ ・ チ ェ ッ クサムは、 いずれかのコ メ ン ト に<br />

ある<br />

32 ビ ッ ト USERCODE はこ こ に格納される。 32 ビ ッ ト USERCODE は UA =<br />

ASCII、 UH = ASCII Hex、 U = Binary で表現でき る。 暗号化された JEDEC2<br />

の CRC 値を格納できるよう、 ラテ ィ スはこのフ ィールドを拡張した 2<br />

JEDEC 規格の規定では、 このフ ィ ール ド にアーキテ ク チ ャ ・ ヒ ューズが<br />

格納される。 ラ テ ィ スはこのフ ィ ール ド を、 フ ィ ーチ ャ行及び FEABITS<br />

の格納に使用する。 フ ィ ーチ ャ行デー タは先頭行に置かれる。 FEABITS<br />

値は行 2 にある<br />

End-of-text (テキス ト 末尾) ^C ^C (CTLC) は JEDEC フ ァ イルの末尾を示す<br />

Transmission Checksum<br />

(送信のチ ェ ッ クサム)<br />

ABCD<br />

^B から ^C までのフ ァ イル全体のチ ェ ッ クサム。 チ ェ ッ クサム計算には、<br />

^B 及び ^C を含む全ての文字と空白が含まれる<br />

1. 暗号化 JEDEC フ ァ イルでは、 USERCODE の最初の 16 ビ ッ ト は行 0 のみか ら計算 さ れた CRC 値で、 2 番目の 16 ビ ッ ト が<br />

行 0 か ら最終行までで計算 さ れた CRC 値 と な り ます<br />

14-39 tn1204_02.2


<strong>MachXO2</strong> プログラミングとコンフィグレーション<br />

使用ガイド<br />

NOTE DATE CREATED:Fri Dec 02 14:50:08 2011*<br />

NOTE DESIGN NAME:control_SoC_demo_impl1.ncd*<br />

NOTE DEVICE NAME:LCMXO2-1200ZE-1CSBGA132ES*<br />

NOTE TRACEID 0x84*<br />

NOTE LVDS_72P M9*<br />

NOTE LVDS_72N N10*<br />

NOTE LVDS_68P P8*<br />

NOTE LVDS_68N M8*<br />

NOTE PIN ASSIGNMENTS*<br />

NOTE PINS cap_btn1 : M10 : inout*<br />

NOTE PINS LCD_COM0 : B14 : out*<br />

NOTE PINS xout : N7 : out*<br />

...<br />

NOTE PINS xin : M5 : in*<br />

NOTE PINS Icc_analog_cmp_p : P8 : in*<br />

QP132*<br />

QF343936*<br />

G0*<br />

F0*<br />

L000000<br />

11111111111111111011110110110011111111111111111100111011000000000000000000000000000000100000000000000000000000000011000000000110<br />

01000010010100001001000001001000000010011111111101000110000000000000000000000000101110001110000000000001010011010000000000000000<br />

00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000<br />

00000000000010001000100010000000000001000100000000000010001000000000000100010000000001000100010001000000100010000001000100000000<br />

01000100010001000000100010000000000000000001000100000000000000000000000000000000000000000000100010001001000000000000010010000000<br />

00000010010000000000000100100000000001000100010010000000100100000001001000000000010001000100100000001001000000000000000000010010<br />

00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000<br />

00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000<br />

...<br />

00000000000000000000000000000000000000001011110101101010111111111111111111111111111111111111111111111111111111111111111101110010<br />

00010000010000000000010111000000000000000001100000000000000000000111001000010000010101000000101000000000100000000000000100001001<br />

11111110000000000000000000000000000000000000000011000010100000000000000000000000110010101111111010111010101111101111000101000100<br />

00100010000000000000000000000000110000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111<br />

*<br />

NOTE EBR_INIT DATA*<br />

L137984<br />

11111111111111111111111111111111111101100000000000000000000000000000000000000000000110000000000010110010000100000000000010000000<br />

00011110100011110100011110100011110100011110100011110100011110100011110100011110100011110100011110100011110100011110100011110100<br />

01111010001111010001111010001111010001111010001111010001111010001111010001111010001111010001111010001111010001111010001111010001<br />

...<br />

00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000<br />

00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000<br />

00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000<br />

00100010000000000000000000000000000000000000000000000000000000000101111000000000000000000000000011111111111111111111111111111111<br />

*<br />

NOTE END CONFIG DATA*<br />

L184832<br />

00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000<br />

00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000<br />

...<br />

00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000<br />

00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000<br />

*<br />

NOTE TAG DATA*<br />

L343808<br />

01000100010001000000100010000000000000000001000100000000000000000000000000000000000000000000100010001001000000000000010010000000<br />

00000010010000000000000100100000000001000100010010000000100100000001001000000000010001000100100000001001000000000000000000010010<br />

00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000<br />

*<br />

C5CC8*<br />

NOTE FEATURE_ROW*<br />

E0000000000000000000000000000000000100001000010000000000000000000<br />

0000010000000000*<br />

NOTE User Electronic Signature Data*<br />

UHCAFEBABE*<br />

6243<br />

14-40 tn1204_02.2


<strong>MachXO2</strong> プログラミングとコンフィグレーション<br />

使用ガイド<br />

<strong>MachXO2</strong> のフ ラ ッ シ ュ メ モ リ ・ プ ロ グ ラ ミ ン グ フ ロー<br />

<strong>MachXO2</strong> のフ ラ ッ シ ュ メ モ リ の消去 と プロ グ ラ ミ ングには、 特定の一連のステ ッ プ と タ イ ミ ングが必要で<br />

す。 こ の項のフ ローチャー ト は、 フ ラ ッ シ ュ を正し く プ ロ グ ラ ミ ン グする ために必要な コ マン ド シーケ ン ス<br />

と タ イ ミ ン グ を示し ています。 コ マン ド と タ イ ミ ン グは、 全ての コ ン フ ィ グ レーシ ョ ン ・ ポー ト で共通です。<br />

タ イ ミ ン グ と は異な り 、 使用する コ ン フ ィ グ レーシ ョ ン ・ ポー ト に よ っては、 プ ロ ト コルに多少の違いがあ<br />

り ます。 例外については、 コ ン フ ィ グ レーシ ョ ン ・ ポー ト ご と の項で説明し ます。<br />

図 14-17. <strong>MachXO2</strong> のフ ラ ッ シ ュ メ モ リ ・ プ ロ グ ラ ミ ング フ ロー<br />

Delay<br />

5 µs<br />

No<br />

Check<br />

Busy?<br />

Yes<br />

Transmit Read Busy<br />

Flag (0xF0) or Read<br />

Status Register<br />

Command (0x3C)<br />

Transmit Enable<br />

Configuration Interface<br />

(Transparent Mode)<br />

Command (0x74)<br />

Busy?<br />

Yes<br />

Start<br />

Check<br />

Device ID?<br />

Transmit Read ID<br />

Command (0xE0)<br />

Read 32 ID Bits<br />

ID<br />

Match?<br />

Transparent<br />

Configuration?<br />

Erase Flash<br />

CF/UFM/FR (0x0E)<br />

Transmit Read Busy<br />

Flag (0xF0) or Read<br />

Status Register<br />

Command (0x3C)<br />

Busy?<br />

Fail?<br />

No<br />

No<br />

Transmit<br />

Read Status Register<br />

Command (0x3C)<br />

No<br />

No<br />

No No<br />

Yes<br />

Stop<br />

Transmit Enable<br />

Configuration<br />

Interface (Offline Mode)<br />

Command (0xC6)<br />

Yes Yes<br />

Yes<br />

Yes<br />

Yes<br />

1<br />

No<br />

Busy?<br />

Check<br />

Busy?<br />

Transmit Read Busy<br />

Flag (0xF0) or Read<br />

Status Register<br />

Command (0x3C)<br />

Delay<br />

5 µs<br />

Note: Do not use fixed delays for the Flash erase sequence.<br />

Exit<br />

14-41 tn1204_02.2<br />

Yes<br />

No


Transmit Reset<br />

UFM Address (0x46)<br />

or Set Address<br />

Command (0xB4)<br />

<strong>MachXO2</strong> プログラミングとコンフィグレーション<br />

使用ガイド<br />

No<br />

Yes<br />

Transmit Reset<br />

Configuration Address<br />

(0x46) or Set Address<br />

Command (0xB4)<br />

Transmit PROGRAM<br />

command and<br />

128 Bits of Data<br />

Yes<br />

Yes<br />

1<br />

Program No<br />

Configuration<br />

Flash?<br />

Check<br />

Busy?<br />

Yes<br />

Busy?<br />

No<br />

Last Row?<br />

Yes<br />

Program<br />

UFM?<br />

No<br />

Transmit<br />

Read Busy Flag or<br />

Read Status Register<br />

Command<br />

Compare Row Count<br />

No<br />

2<br />

Delay<br />

200 µs<br />

14-42 tn1204_02.2


No<br />

No<br />

Program<br />

Usercode?<br />

<strong>MachXO2</strong> プログラミングとコンフィグレーション<br />

使用ガイド<br />

Yes<br />

Transmit Program USER-<br />

CODE with Data (0xC2)<br />

Yes<br />

2<br />

Check<br />

Busy?<br />

Yes<br />

Transmit Read Status<br />

Register Command (0x3C)<br />

Fail?<br />

No<br />

Verify<br />

Usercode?<br />

Yes<br />

Transmit Read USER-<br />

CODE Command (0xC0)<br />

Usercode<br />

OK?<br />

Yes<br />

No<br />

Transmit Read Busy<br />

Flag (0xF0) or Read<br />

Status Register<br />

Command (0x3C)<br />

Busy?<br />

No<br />

Verify<br />

Configuration<br />

Flash?<br />

Yes<br />

Transmit Reset Configuration<br />

Address (0x46)<br />

or Set Flash Address<br />

Command (0xB4)<br />

3<br />

Delay<br />

200 µs<br />

Yes<br />

No<br />

No<br />

Clean<br />

Up<br />

Clean<br />

Up<br />

(Contined on<br />

Next Page)<br />

14-43 tn1204_02.2


Transmit Reset UFM<br />

Address (0x46) or Set<br />

Address Command<br />

(0xB4)<br />

No<br />

Yes<br />

<strong>MachXO2</strong> プログラミングとコンフィグレーション<br />

使用ガイド<br />

Transmit Read<br />

Command with<br />

Number of Pages<br />

(0x73)<br />

Read Page Data<br />

Data<br />

OK?<br />

Yes<br />

All Pages<br />

Read?<br />

Yes<br />

Verify<br />

UFM?<br />

Transmit Write Feature<br />

Row Command (0xE4)<br />

Yes<br />

3<br />

Write<br />

Feature<br />

Row?<br />

Yes<br />

Check<br />

Busy?<br />

Yes<br />

Transmit Read<br />

Feature Row<br />

Command (0xE7)<br />

Feature<br />

Row OK?<br />

Yes<br />

No<br />

Transmit Read Busy<br />

Flag (0xF0) or Read<br />

Status Register<br />

Command (0x3C)<br />

Busy?<br />

No<br />

Transmit Write FEA<br />

Bits Command (0xFB)<br />

4<br />

No<br />

No<br />

Delay<br />

200 µs<br />

No<br />

Clean<br />

Up<br />

Program<br />

Done<br />

Clean<br />

Up<br />

(Contined from<br />

Previous Page)<br />

14-44 tn1204_02.2


Program<br />

Done<br />

Yes<br />

Yes<br />

<strong>MachXO2</strong> プログラミングとコンフィグレーション<br />

使用ガイド<br />

4<br />

Check<br />

Busy?<br />

Yes<br />

Busy?<br />

No<br />

Yes<br />

Yes<br />

No<br />

Transmit Read Busy<br />

Flag (0xF0) or Read<br />

Status Register<br />

Command (0x3C)<br />

Transmit Read FEA<br />

Bits Command (0xFB)<br />

FEA<br />

Bits OK?<br />

Transmit<br />

Program DONE<br />

Command (0x5E)<br />

Check<br />

Busy?<br />

Busy?<br />

DONE<br />

Set?<br />

No<br />

Transmit Read Busy<br />

Flag (0xF0) or Read<br />

Status Register<br />

Command (0x3C)<br />

No<br />

Transmit Read Status<br />

Register Command (0x3C)<br />

5<br />

Delay<br />

200 µs<br />

No<br />

Delay<br />

200 µs<br />

No<br />

Clean<br />

Up<br />

Clean<br />

Up<br />

14-45 tn1204_02.2


Yes<br />

<strong>MachXO2</strong> プログラミングとコンフィグレーション<br />

使用ガイド<br />

Transmit Program<br />

OTP Command (0xF9)<br />

Yes<br />

Write<br />

Security<br />

Bit?<br />

Yes<br />

Check<br />

Busy?<br />

Yes<br />

Transmit Read Busy<br />

Flag (0xF0) or Read<br />

Status Register<br />

Command (0x3C)<br />

Busy?<br />

No<br />

Program<br />

OTP Fuses?<br />

Busy?<br />

No<br />

Verify<br />

OTP Fuses?<br />

Yes<br />

Yes<br />

5<br />

Transmit<br />

Program SECURITY<br />

(0xCE) or SECURITY<br />

PLUS Command (0xCF)<br />

No<br />

Transmit Read Busy<br />

Flag (0xF0) or Read<br />

Status Register<br />

Command (0x3C)<br />

Transmit Read<br />

OTP Command (0xFA)<br />

OTP<br />

Fuses OK?<br />

6<br />

No<br />

No<br />

No<br />

Delay<br />

200 µs<br />

Clean Up<br />

14-46 tn1204_02.2


Exit<br />

Transmit Disable<br />

Configuration<br />

Interface Command<br />

(0x26)<br />

No<br />

Clean Up<br />

Transmit Erase Flash<br />

CF/UFM/FR<br />

Command (0x0E)<br />

Transmit Read Busy<br />

Flag (0xF0) or Read<br />

Status Register<br />

Command (0x3C)<br />

Yes<br />

Busy?<br />

Done<br />

<strong>MachXO2</strong> プログラミングとコンフィグレーション<br />

使用ガイド<br />

Offline<br />

Mode?<br />

Yes<br />

Transmit Refresh<br />

Command (0x79)<br />

No<br />

Transmit Refresh<br />

Command (0x79)<br />

6<br />

Wait t REFRESH<br />

Check<br />

Refresh<br />

Successful?<br />

No<br />

Done<br />

Yes<br />

Transmit<br />

Read Status<br />

Register Command<br />

(0x36)<br />

Yes<br />

Refresh<br />

Successful?<br />

No<br />

Retry<br />

Count<br />

Exceeded?<br />

Yes<br />

Clean Up<br />

Note: Do Not use fixed delays<br />

for the Flash erase sequence.<br />

Note: The <strong>MachXO2</strong> Configuration<br />

Flash/UFM/Feature Row memories<br />

are erased.<br />

No<br />

14-47 tn1204_02.2


<strong>MachXO2</strong> のプ ロ グ ラ ミ ン グ コ マン ド<br />

表 14-21. <strong>MachXO2</strong> sysCONFIG のプ ロ グ ラ ミ ン グ コ マン ド<br />

<strong>MachXO2</strong> プログラミングとコンフィグレーション<br />

使用ガイド<br />

コマンド名<br />

[SVF Synonym] コ マン ド オペ ラ ン ド ラ イ ト デー タ リ ー ド デー タ 注<br />

Read Device ID<br />

[IDCODE_PUB]<br />

Enable Configuration Interface<br />

(Transparent Mode)<br />

[ISC_ENABLE_X]<br />

Enable Configuration Interface<br />

(Offline Mode)<br />

[ISC_ENABLE]<br />

Read Busy Flag<br />

[LSC_CHECK_BUSY]<br />

Read Status Register<br />

[LSC_READ_STATUS]<br />

Erase<br />

[ISC_ERASE]<br />

Erase UFM<br />

[LSC_ERASE_TAG]<br />

Reset Configuration Flash Address<br />

[LSC_INIT_ADDRESS]<br />

Set Address<br />

[LSC_WRITE_ADDRESS]<br />

Program Page<br />

[LSC_PROG_INCR_NV]<br />

Reset UFM Address<br />

[LSC_INIT_ADDR_UFM]<br />

Program UFM Page<br />

[LSC_PROG_TAG]<br />

Program USERCODE<br />

[ISC_PROGRAM_USERCODE]<br />

Read USERCODE<br />

[USERCODE]<br />

Write Feature Row<br />

[LSC_PROG_FEATURE]<br />

Read Feature Row<br />

[LSC_READ_FEATURE]<br />

Write FEABITS<br />

[LSC_PROG_FEABITS]<br />

Read FEABITS<br />

[LSC_READ_FEABITS]<br />

Read Flash<br />

[LSC_READ_INCR_NV]<br />

0xE0 00 00 00 N/A YY YY YY YY<br />

0x74 08 00 00 1 N/A N/A<br />

0xC6 08 00 00 1 N/A N/A<br />

0xF0 00 00 00 N/A YY<br />

0x3C 00 00 00 N/A YY YY YY YY<br />

0x0E 0Y 00 00 N/A N/A<br />

YY 文字は、 デバイ ス固有の ID コー ド を表<br />

す<br />

透過モー ド でのデバイ ス ・ プ ログ ラ ミ ング<br />

用にコ ン フ ィ グレーシ ョ ン ・ ロジ ッ ク を イ<br />

ネーブルする 1<br />

オフラインモードでのデバイス ・ プログラ<br />

ミング用にコンフィグレーション・ロジッ<br />

クをイネーブルする 1<br />

Bit 1 0<br />

7 Busy Ready<br />

Bit 1 0<br />

12 Busy Ready<br />

13 Fail OK<br />

Y = 消去する メ モ リ空間<br />

Yはビット単位のOR<br />

Bit 1=Enable<br />

17 フ ィ ーチ ャ行の消去<br />

18 CFM の消去<br />

19 UFM の消去<br />

0xCB 00 00 00 N/A N/A UFM セ ク タのみを消去する<br />

0x46 00 00 00 N/A N/A<br />

0xB4 00 00 00 M0 00 0P PP N/A<br />

0x70 00 00 01 YY * 16 N/A<br />

0x47 00 00 00 N/A N/A<br />

CFM セ ク タの開始位置へのページア ド レ<br />

ス・ポインタを設定する<br />

PP PP フ ィ ール ド の下位 14 ビ ッ ト で指定<br />

されたフラッシュページへのページアドレ<br />

ス・ポインタを設定する。<br />

'M' フ ィ ール ド は、 ア ク セス先のフ ラ ッ シ ュ<br />

メモリ空間を定義する<br />

Field 0x0 0x4<br />

M CFM UFM<br />

フラッシュの1ページをプログラムする。<br />

CFM または UFM のプログ ラムに使用可能<br />

UFM セ ク タの開始位置へのページア ド レ<br />

ス・ポインタを設定する<br />

0xC9 00 00 01 YY * 16 N/A UFM の 1 ページ を プ ロ グ ラ ムす る<br />

0xC2 00 00 00 YY * 4 N/A USERCODE を プ ロ グ ラ ムす る<br />

0xC0 00 00 00 N/A YY * 4 32 ビ ッ ト USERCODE 値を取得する<br />

0xE4 00 00 00 YY * 8 N/A フ ィ ーチ ャ 行ビ ッ ト を プ ロ グ ラ ムす る<br />

0xE7 00 00 00 N/A YY * 8 フ ィ ーチ ャ行ビ ッ ト を取得する<br />

0xF8 00 00 00 YY * 2 N/A ビ ッ ト を プ ロ グ ラ ムす る<br />

0xFB 00 00 00 N/A YY * 2 ビ ッ ト を取得する<br />

0x73 M0 PP PP N/A "フラッシュペー<br />

ジの読み出し " 項<br />

を参照<br />

PPPP カウン ト ページを取得する。 PP PP<br />

の下位 14 ビ ッ ト のみが使用される。<br />

'M' フ ィ ール ド は、 フ ラ ッ シ ュ メ モ リ の読み<br />

出しに使用するコンフ ィグレーショ ン ・<br />

ポー ト に応じ て設定するこ と<br />

0x0 I 2 C<br />

0x1 JTAG/SSPI/WB<br />

14-48 tn1204_02.2


表 14-21. <strong>MachXO2</strong> sysCONFIG のプ ロ グ ラ ミ ン グ コ マン ド (Continued)<br />

Read UFM Flash<br />

[LSC_READ_UFM]<br />

Program DONE<br />

[ISC_PROGRAM_DONE]<br />

Program OTP Fuses<br />

[LSC_PROG_OTP]<br />

Read OTP Fuses<br />

[LSC_READ_OTP]<br />

Disable Configuration<br />

Interface<br />

[ISC_DISABLE]<br />

Bypass<br />

[ISC_NOOP]<br />

Refresh<br />

[LSC_REFRESH]<br />

Program SECURITY<br />

[ISC_PROGRAM_SECURITY]<br />

Program SECURITY PLUS<br />

[ISC_PROGRAM_SECPLUS]<br />

Read TraceID code<br />

[UIDCODE_PUB]<br />

0xCA M0 PP PP N/A<br />

<strong>MachXO2</strong> プログラミングとコンフィグレーション<br />

使用ガイド<br />

コマンド名<br />

[SVF Synonym] コ マン ド オペ ラ ン ド ラ イ ト デー タ リ ー ド デー タ 注<br />

See " フラッシュ<br />

ページの読み出し<br />

" on page 14-49<br />

0x5E 00 00 00 N/A N/A<br />

0xF9 00 00 00 UCFSUCFS N/A<br />

0xFA 00 00 00 N/A UCFSUCFS<br />

0x26 00 00 N/A N/A<br />

0xFF FF FF FF N/A N/A<br />

0x79 00 00 N/A N/A<br />

0xCE 00 00 00 N/A N/A<br />

0xCF 00 00 00 N/A N/A<br />

PPPP カウン ト の UFM ページを取得する。<br />

ページ カウン ト には PP PP の下位 14 ビ ッ<br />

ト のみが使用される<br />

'M' フ ィ ール ド は、 UFM の読み出し に使用<br />

するコンフ ィグレーシ ョ ン ・ ポートに応じ<br />

て設定するこ と<br />

0x0 I 2 C<br />

0x1 JTAG/SSPI/WB<br />

SDM を イネーブルする DONE ステー タ ス<br />

ビットをプログラムする<br />

選択し た メ モ リ 空間をワン タ イム ・ プ ログ<br />

ラマブルにする。 OTP 機能を有効にするに<br />

は、 対応する ビ ッ ト を連動し てセ ッ ト する<br />

こと<br />

Bit 1 0<br />

0, 4 SRAM OTP SRAM Writable<br />

1, 5 Feature Row Feature Row<br />

OTP Writable<br />

2, 6 CF OTP CF Writable<br />

3, 7 UFM OTP UFM Writable<br />

ワンタイム ・ プログラマブル (OTP)<br />

ヒ ューズの状態を読み出す<br />

Bit 1 0<br />

0, 4 SRAM OTP SRAM Writable<br />

1, 5 Feature Row Feature Row<br />

OTP Writable<br />

2, 6 CF OTP CF Writable<br />

3, 7 UFM OTP UFM Writable<br />

オ フ ラ イ ンまたは透過プ ログ ラ ミ ングモー<br />

ドを終了する。 このコマンドを送信する<br />

と、 オフラインモード終了時に <strong>MachXO2</strong><br />

が再コ ン フ ィ グレーシ ョ ン される。 Disable<br />

コンフィグレーション ・ インターフェイ<br />

ス・コマンドを送信する前に、 コンフィグ<br />

レーシ ョ ン SRAM をク リアしてお く こ と<br />

何も実行せず、 デバイ スをウ ェ イ ク ア ッ プ<br />

する<br />

<strong>MachXO2</strong> を強制的に再コ ン フ ィ グレーシ ョ<br />

ンする。 REFRESH を送信すると、<br />

PROGRAMN を ド ラ イ ブ し た場合と同様に、<br />

<strong>MachXO2</strong> が再コ ン フ ィ グレーシ ョ ン される<br />

セキュ リ テ ィ ビ ッ ト (CFG セ ク タ を保護)<br />

をプログラムする 2<br />

セキュ リ テ ィ プ ラ ス (Security Plus) ビ ッ<br />

トをプログラムする (CFMとUFMセクタ<br />

を保護) 2<br />

0x19 00 00 00 N/A YY*8 R64 ビ ッ ト の TraceID を読み出す<br />

1. I 2 C ポー ト 使用時は、 コ マン ド のオペコー ド と オペラ ン ド の先頭 2 バイ ト を送信し ます。 オペラ ン ド の最終バイ ト を送<br />

信してはいけません<br />

2. SECURITY と SECURITY PLUS コ マン ド は相互に排他的です<br />

フ ラ ッ シ ュページの読み出し<br />

CFM 及び UFM ページ を読み出すには、 そのための手順が必要です。 CFM 及び UFM ページには、 <strong>MachXO2</strong><br />

の任意の コ ン フ ィ グ レーシ ョ ン ・ ポー ト か ら ア ク セ スで き ます。 JTAG、 SSPI、 WISHBONE の各コ ン フ ィ グ<br />

レーシ ョ ン ・ ポー ト は、 リ ード動作の実行に関し て同一の動作と な り ます。 I 2C ポートでは、 修正されたア<br />

ク セスプロ ト コルが必要です。 ポー ト ご と のデータ フ ローの概要を、 図 14-19 に示し ます。<br />

リードプロセスの開始時には、 リードフラッシュ/ リード UFM フラッシュ・コマンドを送信する方法を、全<br />

てのコンフ ィ グレーシ ョ ン ・ ポー ト が実行し ます。 コンフ ィ グレーシ ョ ン ・ ロジッ クがコマン ドバイ ト を受<br />

け取る と 、 <strong>MachXO2</strong> は リ ー ド プ ロ セス を開始し ます。 <strong>MachXO2</strong> か ら返される最初のページは、 ページア ド<br />

14-49 tn1204_02.2


<strong>MachXO2</strong> プログラミングとコンフィグレーション<br />

使用ガイド<br />

レ ス ・ ポ イ ン タ で決定されます。 単一ページ リ ー ド 動作で、 読み出 さ れる最初のページが有効であ る ために<br />

は、 240ns 待たなければな り ません (retrieval delay)。 こ の時間の定義は図 14-18 の よ う に、 コ マン ド バ イ ト<br />

の終わ り か ら第一オペラ ン ド バイ ト の終わ り までです。 イ ン ター ク ロ ッ ク の速度が遅い場合は、 付加的な遅<br />

延を挿入する必要が無い程度に、 時間が経過する か も しれません。<br />

図 14-18. 単一ぺージ リ ー ド 時の タ イ ミ ング遅延 (retrieval delay) 要件<br />

図 14-19. フ ラ ッ シ ュページ ・ コ マン ド と データ シーケ ン ス<br />

図 14-19 は複数ページの リ ー ド シーケ ン ス を示し ています。 リ ー ド ページ ま たは リ ー ド UFM ページ ・ コ マ<br />

ン ド が <strong>MachXO2</strong> に送信され、 240ns の遅延後に有効なページデータ が得ら れます。 図 14-19 か ら分か る と お<br />

り 、 全ての イ ン ターフ ェ イ スで一定の遅延後すぐに、 ページア ド レ ス ・ ポ イ ン タ位置のページが返されます。<br />

全ての コ ン フ ィ グ レーシ ョ ン ・ ポー ト は、 最初のページの最終バ イ ト の転送直後に、 単一ページ リ ー ド を終<br />

了で き ます。 I 2 C インターフェイスは、 リードフラッシュ/ リード UFMフラッシュのオペランドバイトのみ<br />

が異なっています。<br />

複数のページ を読み取る には、 特別な処理が必要です。 複数ページ リ ー ド では、 ページア ド レ ス ・ ポ イ ン タ<br />

で選択し たページが複製されます。 こ の よ う な動作 と な る ため、 ページカ ウ ン ト は目的のページ数よ り も 1<br />

大き く する必要があ り ます。 例えば 2 ページを読み取る には、 リ ー ド フ ラ ッ シ ュ / リ ー ド UFM フ ラ ッ シ ュ ・<br />

コ マン ド に指定するページカ ウ ン ト に、 値 3 を割 り 当て ます。 ページア ド レ ス ・ ポ イ ン タ が 0000 の場合、<br />

<strong>MachXO2</strong> はページ 0、 ページ 0、 ページ 1 の計 3 ページを返し ます。<br />

I 2 C イ ン ターフ ェ イ スには、 フ ラ ッ シ ュ メ モ リ ・ ページの読み出し時に さ ら にオーバヘ ッ ド があ り ます。 図<br />

14-17 を見る と 、 複数ページ リ ー ド 要求時にどの よ う にデータ が提示される かが分か り ます。 ページカ ウ ン<br />

ト が 3 で、 ページア ド レ ス ・ ポ イ ン タ が 0000 の場合、 I 2 C イ ン ターフ ェ イ スはページ 0、 未定義の 16 バ イ<br />

ト 、ページ 0、ダ ミ ーの 4 バイ ト 、ページ 1 を返し ます。最後のダ ミ ー4 バイ ト の読み出し はオプシ ョ ンです。<br />

参照資料<br />

JTAG/SPI/I 2 C/<br />

WISHBONE Tx Data<br />

JTAG/SPI<br />

WISHBONE RX Data 1<br />

I 2 C RX Data 2<br />

Notes:<br />

240 ns<br />

min.<br />

• <strong>MachXO2</strong> Family Data Sheet<br />

• TN1205, Using User Flash Memory and Hardened Control Functions in <strong>MachXO2</strong> Devices<br />

• TN1207, Using TraceID in <strong>MachXO2</strong> Devices<br />

CMD OP1 OP2 OP3<br />

CMD +<br />

OPS<br />

P(n)<br />

P(n) P(n+1) P(n+2) P(n+3)<br />

P(m)<br />

P(n)<br />

1 page<br />

undefined<br />

data<br />

P(n)<br />

4<br />

dummy<br />

bytes<br />

P(n+1)<br />

4<br />

dummy<br />

bytes<br />

P(n+2)<br />

1. JTAG/SSPI must transmit data in order to read data back. The data sent by the JTAG/SSPI<br />

master is not specified (i.e. don’t care).<br />

2. The I 2 C must use RESTART between sending the CMD and reading the data. (Issuing a STOP<br />

terminates a CMD and resets the I 2 C state machine.)<br />

CMD + OPS = Read Flash or Read UFM Flash command byte + 3 operand bytes.<br />

P(m)<br />

14-50 tn1204_02.2


テクニカルサポート支援<br />

ホットライン :1-800-LATTICE ( 北米 )<br />

+1-503-268-8001 ( 北米以外 )<br />

e-mail: techsupport@latticesemi.com<br />

インターネット :www.latticesemi.com<br />

日本語版改訂履歴 (Ver.2.0 以降)<br />

日付 バージ ョ ン ページ (新) 改訂内容<br />

2012 年 6 月 02.0 -<br />

<strong>MachXO2</strong> プログラミングとコンフィグレーション<br />

使用ガイド<br />

Ver.1.X から大幅 ・ 全面改訂。 特に<br />

• プ ログラ ミ ング ・ アルゴ リ ズムについて更新<br />

• フ ィ ーチ ャ行の記述<br />

• コ ン フ ィ グレーシ ョ ン ・ ポー ト 管理について追記<br />

2012 年 7 月 02.1 46<br />

図 14-17 <strong>MachXO2</strong> フ ラ ッ シ ュ メ モ リ ・ プログラ ミ ング フ ローにて<br />

SECURITY/SECURITY PLUS について明記<br />

48 表 14-21 sysCONFIG プログ ラ ミ ング ・ コ マン ド 追加<br />

50 図 14-18 単一 リ ー ド 時のタ イ ミ ング要件追加、 記述追加<br />

フラ ッシュ メモリ ・ プログラ ミ ングフローにて ‘Program DONE’ ス<br />

テップを追加<br />

2012 年 9 月 02.2 11, 12 PROGRAMN ピ ン情報を更新、 図 14-4 を追加<br />

28 TransFR 動作記述更新<br />

32, 34 MUX_CONFIGURATION_PORTS 記述を追加、 表 14-16 に追記<br />

41 - 47 プログラ ミングフローを更新<br />

14-51 tn1204_02.2

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!