18.12.2012 Aufrufe

MachXO2 Programming and Configuration Usage Guide - Lattice ...

MachXO2 Programming and Configuration Usage Guide - Lattice ...

MachXO2 Programming and Configuration Usage Guide - Lattice ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

2011 年 8 月 ア ド バンス ト ・ テ ク ニ カル ノ ー ト TN1204<br />

はじめに<br />

<strong>MachXO2</strong> TM PLD フ ァ ミ リ はフ ラ ッ シ ュ ・ メ モ リ セル及び SRAM メ モ リ セルを持つ構造よ り な り ます。 オン<br />

チ ッ プ ・ フ ラ ッ シ ュ メ モ リ は、 コ ン フ ィ グ レーシ ョ ン ・ データ を格納する ために使用 さ れ、 こ れら のデバ イ<br />

スに不揮発性の機能を も た ら し ます。 コ ン フ ィ グ レーシ ョ ン ・ データ がオンチ ッ プで格納 さ れてい る ため、<br />

<strong>MachXO2</strong> デバイ スは電源投入時、 あ る いは新機能に更新された と き には、 いつで も μ 秒単位で コ ン フ ィ グ<br />

レーシ ョ ン可能です。 ま た外付け メ モ リ デバイ スが不要なため、 デザ イ ンのセキ ュ リ テ ィ が大幅に向上し ま<br />

す。 <strong>MachXO2</strong> では、 フ ラ ッ シ ュ混載テ ク ノ ロ ジを SRAM と ワ ンチ ッ プに組み合わせる こ と で、 非常にコ ンパ<br />

ク ト で効率的な実装面積のプ ロ グ ラ マブル ・ ロ ジ ッ ク デバイ スです。<br />

<strong>MachXO2</strong> デバ イ スには、製造時及びデバイ ス動作時に権限のない リ ー ド バ ッ ク か ら設計ビ ッ ト ス ト リ ーム を<br />

保護する ための、 セキ ュ リ テ ィ ビ ッ ト があ り ます。 ま た、 オンチ ッ プ ・ フ ラ ッ シ ュ メ モ リ の消去やプ ロ グ ラ<br />

ミ ングを防止する、 ワ ン タ イ ム ・ プ ロ グ ラ マブル (OTP) 機能も あ り ます。<br />

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

•イ ン ス タ ン ト オン ~ μ 秒単位で電源投入<br />

•シングルチップの安全な ソ リ ューシ ョ ン<br />

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

•不揮発性 メ モ リ のバ ッ ク グ ラ ン ド ・ プ ロ グ ラ ミ ン グ<br />

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

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

プログラ ミ ングとコンフィグレーショ ンの概要<br />

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

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

<strong>MachXO2</strong> デバ イ スには 2 種類の メ モ リ (SRAM 及びフ ラ ッ シ ュ) を集積し ています。 SRAM メ モ リ には、 回<br />

路接続を定義する ” ヒ ューズ ” であ る、 ア ク テ ィ ブ ・ コ ン フ ィ グ レーシ ョ ンが格納 さ れます。 フ ラ ッ シ ュ メ<br />

モリは、 コンフィグレーション・データ用のオンチップ・ストレージを提供するメモリです。<br />

本書では ” プ ロ グ ラ ミ ング ” はフ ラ ッ シ ュ メ モ リ の状態の変化を指し、 ” コ ン フ ィ グ レーシ ョ ン ” は SRAM<br />

メ モ リ セルの状態の変化を指し ています。 コ ン フ ィ グ レーシ ョ ン ・ モー ド と は、 デバイ スがブ ラ ン ク の と き、<br />

消去された と き、 あ る いはコ ン フ ィ グ レーシ ョ ン中の こ と を表し ます。 こ の状態では、 デバ イ スの機能動作<br />

は中断され、I/O もユーザ定義の機能で制御されていません。ユーザモード と は、デバイ スが正常にコ ンフ ィ<br />

グ レーシ ョ ン さ れ、 フルに機能する状態 と 定義されます。 こ の状態では、 デバ イ スは通常動作し、 I/O はユー<br />

ザ定義の機能で制御されます。 ” 直接モー ド ” と は、 コ ン フ ィ グ レーシ ョ ンモー ド 時のフ ラ ッ シ ュ メ モ リ の<br />

プログラ ミングのことであり、 ” バックグランドモード ” は、 ユーザモード時のフラッシュメモリのプログ<br />

ラミングのことです。<br />

オンチップ・フラッシュメモリは、 さらにコンフィグレーション・フラッシュメモリ (以下CFM) ブロック<br />

とユーザフラッシュメモリ (以下 UFM) ブロックに分かれています。CFM ブロックには、SRAM メモリに<br />

ダ ウ ン ロー ド さ れる ロ ジ ッ ク パターンが保存さ れます。UFM ブ ロ ッ ク は、オンチ ッ プ組み込みブ ロ ッ ク RAM<br />

(EBR) の内容のバ ッ ク ア ッ プな どの機能に使用可能な、 汎用ユーザ メ モ リ と し て使用する こ と がで き、 ま た<br />

CFM と し て使用される こ と も あ り ます。 コ ン フ ィ グ レーシ ョ ン ・ データは、 デフ ォル ト では CFM ブ ロ ッ ク<br />

に格納されますが、 それ以上に容量が必要な場合は、 UFM ブロ ッ ク までシームレ スに拡張されます。 ただ<br />

し、 UFM データ を CFM ブ ロ ッ ク にはみ出す こ と はで き ません。 オンチ ッ プ ・ フ ラ ッ シ ュ メ モ リ に加えて、<br />

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

names are trademarks or registered trademarks of their respective holders. The specifications <strong>and</strong> information herein are subject to change without notice.<br />

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

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

www.latticesemi.com 14-1 TN1204JP_01.3e


<strong>MachXO2</strong> ユーザガ イ ド<br />

ラティスセミコンダクター プログラミングとコンフィグレーション<br />

コンフィグレーション・データを外付けメモリデバイスに格納し、そこからロードすることもできます。CFM<br />

ブ ロ ッ ク 、 UFM ブ ロ ッ ク、 及び外付け メ モ リ デバ イ スの使用の詳細については、 本書で後述し ます。<br />

オンチ ッ プ ・ フ ラ ッ シ ュ メ モ リ は IEEE 1149.1 準拠の ispJTAGTM ポー ト 、 内蔵ス レーブ SPI ポー ト 、 ま たは<br />

内蔵 I 2 C ポー ト を使用し てプ ロ グ ラ ミ ン グ可能です。 内部 WISHBONE バス を使用し て、 フ ラ ッ シ ュ メ モ リ の<br />

セルフ ・プログラ ミ ングを行う こ と もできます。 図14-1 に <strong>MachXO2</strong>デバイスファ ミ リのプログラ ミ ングと<br />

コンフィグレーションの概要を示します。<br />

図 14-1. プ ロ グ ラ ミ ン グ と コ ン フ ィ グ レーシ ョ ンのブ ロ ッ ク 図<br />

Port<br />

Mode<br />

Memory Space<br />

User Logic<br />

ispJTAG 1149.1 TAP<br />

JTAG 1532<br />

Flash Memory Space<br />

WISHBONE<br />

Background Only<br />

<strong>Configuration</strong><br />

Logic<br />

Bitstream<br />

Engine<br />

1. SPI mode can be Slave SPI (SSPI) or Master SPI (MSPI).<br />

2. SDM is the Self-Download Mode. Refer to the <strong>Configuration</strong> Mode section for details.<br />

sysCONFIG Ports<br />

SPI 1 , I 2 C<br />

ispJTAG ポー ト に よ る フ ラ ッ シ ュ メ モ リ のプ ロ グ ラ ミ ン グは、 デバ イ スに電源が投入 さ れて ispJTAG ポー ト<br />

が確保された後はいつでも、直接モードまたはバックグランドモードで実行できます。直接モードプログラ<br />

ミング中は、デバイスのI/Oピンの状態はBSCAN(バウンダリスキャン)レジスタで決まります。各BSCAN<br />

レ ジ ス タ の状態はユーザが決定で き ますが、 デフ ォル ト では ト ラ イ ス テー ト 状態にな り ます。 バ ッ ク グ ラ ン<br />

ドモードではデバイスの動作が継続されるため、 プログラ ミ ング ・ プロセス中の I/O ピンはロジッ クによっ<br />

て制御さ れます ( 例外はハー ド マ ク ロ化ユーザ SPI が実装されてい る場合、 バ ッ ク グ ラ ン ド ・ プ ロ グ ラ ミ ン<br />

グの間はディセーブルされます )。 コンフ ィ グレーシ ョ ン ・ スレーブ SPI ポート とプラ イマ リ I 2 C ポー ト は、<br />

ポー ト が確保 (preserve) さ れてい る場合、 ダ イ レ ク ト モー ド と バ ッ ク グ ラ ン ド モー ド でオンチ ッ プ ・ フ ラ ッ<br />

シュにアクセスできます。<br />

I 2 C 同様に、 SRAM メ モ リ は ispJTAG ポー ト 、 内蔵 SPI のス レーブポー ト かマス タ ポー ト 、 内蔵 I 2 C ポー ト 、<br />

またはセルフダウンロードモード (SDM) を使用してコンフィグレーショ ンできます。 ispJTAG ポートは直<br />

接ラ イ ト する こ と に よ り 、SRAMを コ ン フ ィ グ レーシ ョ ンで き ますが、ほかのsysCONFIGポー ト ではREFRESH<br />

コマンドの発行によってのみSRAM をコンフィグレーショ ンできます。コンフィグレーショ ン・プロセスは、<br />

SRAM の初期化 (RAM 及びア ド レ ス ポ イ ン タ の ク リ ア)、 SRAM への コ ン フ ィ グ レーシ ョ ン ・ データ の ロー<br />

ド 、 及びデバイ スのユーザモー ド への設定 (デバイ スのウ ェ イ ク ア ッ プ) よ り な り ます。<br />

SRAM と フ ラ ッ シ ュ メ モ リ はどち ら も、 コ ン フ ィ グ レーシ ョ ン ・ データ に対する権限の無い リ ー ド バ ッ ク を<br />

防止する ため、複数のセキ ュ リ テ ィ ビ ッ ト を持っています。これら が一度セ ッ ト さ れる と 、セキ ュ リ テ ィ ビ ッ<br />

SDM 2<br />

REFRESH<br />

Comm<strong>and</strong><br />

SRAM Memory Space<br />

14-2 TN1204JP_01.3e


<strong>MachXO2</strong> ユーザガ イ ド<br />

ラティスセミコンダクター プログラミングとコンフィグレーション<br />

ト を ク リ アする唯一の方法は メ モ リ 空間の消去だけにな り ます。 セキ ュ リ テ ィ 保護 さ れたデバ イ スではオー<br />

ル 1 が読み出され、 オール 0 のブ ラ ン ク デバイ ス と 区別で き ます。<br />

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

表 14-1 に、<strong>MachXO2</strong> デバ イ スで使用可能なプ ロ グ ラ ミ ン グ及びコ ン フ ィ グ レーシ ョ ン ・ ポー ト を示し ます。<br />

これらポートの主要な機能は、フラッシュ メモリ をプログラムするこ とです。ispJTAG ポートは、フラッシュ<br />

メ モ リ と SRAM メ モ リ の両方を直接プロ グ ラ ムでき る唯一のプロ グ ラ ミ ングポー ト です。sysCONFIG TM ポー<br />

トは、 フラッシュメモリを直接モードまたはバックグランドモードでプログラムするために使用できます。<br />

内部 WISHBONE ス レーブ ・ イ ン ターフ ェ イ スは、 フ ラ ッ シ ュ メ モ リ をバ ッ ク グ ラ ン ド でプ ロ グ ラ ムする た<br />

めの別の方法です。<br />

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

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

JTAG JTAG (IEEE 1149.1 および EEE 1532 準拠) 4線または5線のJTAGインターフェイス<br />

SSPI<br />

スレーブSPI (シリアル・ペリフェラル・ イン<br />

ターフェイス)<br />

sysCONFIG<br />

MSPI マスタ SPI<br />

I 2 C I2C (Inter Integrated Circuit) イ ン ターフ ェ イ ス<br />

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

既に記述し た よ う に、 フ ラ ッ シ ュ メ モ リ は各種機能のためのい く つかの領域に分かれています。 フ ラ ッ シ ュ<br />

メ モ リ の大部分は、 コ ン フ ィ グ レーシ ョ ン ・データ の格納用です。 こ の空間はコ ン フ ィ グ レーシ ョ ン ・ フ ラ ッ<br />

シ ュ メ モ リ (CFM) と 呼ばれ、デバイ ス の コ ン フ ィ グ レ ーシ ョ ン ・ ビ ッ ト ス ト リ ーム が格納さ れ ま す。<strong>MachXO2</strong><br />

デバイスのコンフィグレーション・フラッシュは、コンフィグレーション SRAM よ り も小さ くなっています。<br />

そのため、 オンチップ ・ フ ラ ッシュ メ モ リ 上にあるビ ッ ト ス ト リ ームは圧縮する必要があ り ます。 CFM で<br />

オーバフ ローが発生する可能性は低い も のの、 オーバフ ローし たデータ を UFM に格納する オプシ ョ ンが用<br />

意されています。 外部 メ モ リ は、 オンチ ッ プ ・ フ ラ ッ シ ュ にはサ イ ズが大き過ぎ る ビ ッ ト ス ト リ ーム を格納<br />

するためのも う一つのオプシ ョ ンです。<br />

フ ラ ッ シ ュ メ モ リ の第二の領域は UFM と し て使用さ れます。 こ れは多用途の メ モ リ ブ ロ ッ ク で、 オーバフ<br />

ローし た コ ン フ ィ グ レーシ ョ ン ・ データ用、 EBR 初期化データ の格納、 或いはユーザデータ の汎用フ ラ ッ<br />

シ ュ メ モ リ と し て使用で き ます。<br />

フラッシュメモリのフィーチャ行 (Feature Row) は、 TraceID、 My_ASSP ID、 I 2 C ア ド レ ス、 及びプ ロ グ ラ ミ<br />

ン グポー ト ・ イ ネーブルフ ューズ を格納し ます。 USERCODE には、 32 ビ ッ ト のプ ロ グ ラ マブル ・ ユーザ電<br />

子署名が格納されます。 図 14-2 にフ ラ ッ シ ュ メ モ リ の内部構造を示し ます。 UFM のサ イ ズはデバ イ ス規模<br />

に よ って異な り ます。 デバ イ ス固有の情報については、 <strong>MachXO2</strong> フ ァ ミ リ ・ データ シー ト を参照して く ださ<br />

い。<br />

14-3 TN1204JP_01.3e


<strong>MachXO2</strong> ユーザガ イ ド<br />

ラティスセミコンダクター プログラミングとコンフィグレーション<br />

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

SRAM メ モ リ にア ク セス ( リ ー ド / ラ イ ト ) で き る のは ispJTAG ポー ト のみです。 sysCONFIG ポー ト では<br />

SRAM メ モ リ を直接 リ ー ド / ラ イ ト で き ません。 sysCONFIG ポー ト を使用する場合は、 REFRESH 命令<br />

(PROGRAMN ピ ン を ト グルする こ と と 同じ機能。 詳細は後述の章を参照) を実行する こ と で、 オンチ ッ プ ・<br />

フラッシュメモリまたは外付けSPI メモリから SRAM メモリをコンフィグレーション可能です。SRAM ビッ<br />

トのバックグランド ・ リードバックは、ispJTAGポートだけに制限されています。<br />

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

フラッシュメモリ SRAMメモリ ポー ト<br />

リード ライ ト リード ライ ト<br />

JTAG Yes Yes Yes Yes<br />

sysCONFIG Yes Yes No Yes 2<br />

内部 WISHBONE Yes 1<br />

Yes 1<br />

1. バ ッ ク グ ラ ン ド モー ド のみ<br />

No No<br />

2. SRAM メ モ リ のコ ン フ ィ グレーシ ョ ンは REFRESH 命令のみによ る<br />

SRAM メ モ リ 領域に対応する非圧縮のビ ッ ト ス ト リ ームサ イ ズは、 デバ イ ス規模に依存する と 共に、 アプ リ<br />

ケーシ ョ ンにも依存します。EBR ブロ ッ クを用いる設計は、よ り大きいビッ ト ス ト リームサイズにな り ます。<br />

図 14-3 に、デザイ ンの格納に外付け SPI フ ラ ッ シ ュ を用いる場合の、最大の非圧縮ビ ッ ト ス ト リ ームサイ ズ<br />

を示し ます。<br />

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

デバイ ス<br />

Row Size = M<br />

Row Size = N<br />

非圧縮ビ ッ ト ス ト リ ームサ イ ズ、<br />

EBR な し<br />

Column Size = X<br />

<strong>Configuration</strong> Flash<br />

非圧縮ビ ッ ト ス ト リ ームサ イ ズ、<br />

EBR あ り<br />

プログラ ミ ング及びコンフィグレーショ ン ・ ピン<br />

SPI フ ラ ッ シ ュ、<br />

EBR有り /EBR無し 単位<br />

LCMXO2-256 0.09 0.09 (EBR な し ) 0.5 / 0.5 Mb<br />

LCMXO2-640 0.19 0.20 0.5 / 0.5 Mb<br />

LCMXO2-1200 0.35 0.41 0.5 / 0.5 Mb<br />

LCMXO2-2000 0.51 0.58 1 / 1 Mb<br />

LCMXO2-4000 0.93 1.02 1 / 2 Mb<br />

LCMXO2-7000 1.47 1.70 2 / 2 Mb<br />

<strong>MachXO2</strong> デバ イ ス フ ァ ミ リ の sysCONFIG ピ ン及び JTAG ピ ンは、全てがデュ アル機能ピ ンで、共有 (shared)<br />

ピ ン と も呼ばれます。 こ れ ら は、 デバ イ スのコ ン フ ィ グ レーシ ョ ン完了後にユーザ I/O ピ ン と し て回復で き<br />

ます。 こ れに よ り デバイ スで使用可能な I/O ピ ン を フルに活用で き る よ う にな り ます。<br />

UFM<br />

Feature Row USERCODE<br />

14-4 TN1204JP_01.3e


<strong>MachXO2</strong> ユーザガ イ ド<br />

ラティスセミコンダクター プログラミングとコンフィグレーション<br />

プ ロ グ ラ ミ ング及びコ ン フ ィ グ レーシ ョ ン ・ オプシ ョ ンは、設計 ソ フ ト ウ ェ アのプ リ フ ァ レ ン ス (Preference、<br />

設計制約) で設定で き、 それら は <strong>MachXO2</strong> デバイ スの コ ン フ ィ グ レーシ ョ ン方法を制御し ます。 ま た、 ユー<br />

ザま たは配置配線用ソ フ ト ウ ェ アに よ る誤使用か ら、 コ ン フ ィ グ レーシ ョ ン ピ ン及び JTAG ピ ン を保護する<br />

手段も あ り ます。 表 14-4 にデバイ スのプ ロ グ ラ ミ ン グ ま たはコ ン フ ィ グ レーシ ョ ンで使用可能な ピ ンの概<br />

要を示し ます。<br />

表 14-4. <strong>MachXO2</strong> デバイ ス フ ァ ミ リ の sysCONFIG 及び JTAG ピ ン<br />

ピン名 I/Oタイプ モード<br />

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

INITN 弱いプルア ッ プのあ る双方向オープン ド レ イ ン sysCONFIG<br />

DONE 弱いプルア ッ プのあ る双方向オープン ド レ イ ン sysCONFIG<br />

MCLK/CCLK 弱いプルア ッ プのあ る入力ま たは出力 sysCONFIG – SSPI, MSPI<br />

CSSPIN 弱いプルア ッ プのあ る出力 sysCONFIG – MSPI<br />

SI/SPISI 入力ま たは出力 sysCONFIG – SSPI, MSPI<br />

SO/SOSPI 入力ま たは出力 sysCONFIG – SSPI, MSPI<br />

SN 弱いプルア ッ プのあ る入力 sysCONFIG - SSPI<br />

SCL 双方向オープン ド レ イ ン sysCONFIG - I2C SDA 双方向オープン ド レ イ ン sysCONFIG - I2 C<br />

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

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

TCK 入力 JTAG<br />

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

JTAGENB 弱いプルダウ ン ロー ド のあ る入力 JTAG<br />

sysCONFIG ピ ン<br />

以下に <strong>MachXO2</strong> デバイ スの sysCONFIG ピ ン機能説明を示し ます。 こ れら のピ ンは、 プ ロ グ ラ ミ ン グ ま たは<br />

コ ン フ ィ グ レーシ ョ ン ・ プ ロ セ ス を制御ま たはモニ タする ために使用 さ れます。 ま た JTAG 以外のプ ロ グ ラ<br />

ミ ン グ ・ シーケ ン スにのみ使用されます。 JTAG ピ ンの機能については、 本書の ispJTAG ピ ンのセ ク シ ョ ン<br />

で説明し ます。<br />

全ての sysCONFIG ピンはデュアル機能ピンであるため、デバイ スのコ ンフ ィ グレーシ ョ ン後にユーザ I/O と<br />

し て使用でき ます。 この場合ユーザは次の点に従 う 必要があ り ます。<br />

• 対応する sysCONFIG プ リ フ ァ レ ン ス を DISABLE にする必要があ り ます。 ユーザが イ ネーブルし た場合を<br />

除いて、 これらのソ フ ト ウ ェア ・ デフ ォル ト は DISABLE です<br />

• ユーザは、 内部ま たは外部ロ ジ ッ ク がデバイ スの コ ン フ ィ グ レーシ ョ ンに干渉し ない こ と を確実にする必<br />

要があ り ます<br />

表 14-5 に、 ブ ラ ン ク デバ イ スの共有 sysCONFIG ピ ンのデフ ォル ト 状態 と 、 それ ら のピ ンのユーザモー ド に<br />

おけ るデフ ォル ト 状態を示し ます。 ユーザモー ド は、 ソ フ ト ウ ェ アのデフ ォル ト sysCONFIG プ リ フ ァ レ ン<br />

スで定義されます。 ブ ラ ン ク ま たは消去デバ イ スでは、 デフ ォル ト で JTAG、 SPI ス レーブ、 及び I 2 C ポー ト<br />

がイネーブルになり ます。<br />

14-5 TN1204JP_01.3e


<strong>MachXO2</strong> ユーザガ イ ド<br />

ラティスセミコンダクター プログラミングとコンフィグレーション<br />

表 14-5. sysCONFIG ピ ンのデフ ォル ト 状態<br />

PROGRAMN 1<br />

ピン名<br />

ピ ン機能<br />

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

モード )<br />

ピ ン方向<br />

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

デフォル ト機能<br />

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

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

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

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

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

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

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

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

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

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

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

1. ユーザモー ド の PROGRAMN デフ ォル ト は、 ispLEVER 8.1 および Diamond 1.1 以降はユーザ定義の I/O に変わっ<br />

ています<br />

PROGRAMN<br />

PROGRAMN は、 弱 く プルア ッ プ さ れたデュ アル機能入力ピ ンで、 JTAG 以外の SRAM コ ン フ ィ グ レーシ ョ<br />

ン ・ シーケン スの開始に使用 さ れます。 PROGRAMN に印加 さ れる信号が High か ら Low に遷移する と 、 デバ<br />

イスがコンフィグレーションモードになります。PROGRAMNピンをLowにすることで、コンフィグレーショ<br />

ンの開始を遅らせる こ と がで き ます。 PROGRAMN の最小パルス幅要件は、 <strong>MachXO2</strong> データ シー ト を参照し<br />

て く だ さ い。デバ イ スが JTAG を用いてプ ロ グ ラ ミ ン グか コ ン フ ィ グ レーシ ョ ン を し てい る場合、PROGRAMN<br />

はデバイスが JTAG モードから解放されるまで無視されます。 デバイスのコンフィグレーシ ョ ン中に、<br />

PROGRAMN ピ ン を ト グルする こ と は避けなければな り ません。<br />

ブ ラ ン ク デバイ スがボー ド 上にあ る場合は、 PROGRAMN ピ ン を Low に し ない よ う に特に注意する必要があ<br />

り ます。 と い う のは、 PROGRAMN が Low にな る と デバイ スの SPI 及び I 2 Cモードが無効になるため、これで<br />

は SPI 及び I 2 Cからデバイスをコンフィグレーションできなくなります。<br />

INITN<br />

INITN は弱 く プルア ッ プ さ れたデュ アル機能オープン ド レ イ ンの双方向ピ ンで、 Low パルスの出力 と 、 Low<br />

パルス入力の検出が可能です。 SRAM の コ ン フ ィ グ レーシ ョ ン中に Low が出力される と 、 SRAM の初期化中<br />

であるこ とを表し、また High になるとデバイスがコンフィグレーショ ン・データの受け入れ準備ができたこ<br />

とを表します。<br />

INITN ピ ン を外部か ら Lowに保持する こ と で、コ ン フ ィ グ レーシ ョ ンの開始を遅らせる こ と がで き ます。INITN<br />

ピ ンが Low の間、 デバイ スはコ ン フ ィ グ レーシ ョ ン ・ モー ド にな り ません。 コ ン フ ィ グ レーシ ョ ンの開始後<br />

は、 INITN はビ ッ ト ス ト リ ーム ・ エ ラーの表示に使用されます。 コ ン フ ィ グ レーシ ョ ン中に何ら かのエ ラー<br />

が検出さ れる と INITN ピ ンは Low にな り 、 その後に DONE も Low のま まにな り 、 デバ イ スがウ ェ イ ク ア ッ<br />

プしません。<br />

<strong>MachXO2</strong> デバ イ スの INITN ピ ンは、 ブ ラ ン ク デバイ ス を初めてプ ロ グ ラ ムする と き、 ま たはデバ イ ス を新し<br />

いパターンでプ ロ グ ラ ムする と きは、 初期化中に Low にな り ません。 こ れは INITN ピ ンが既にデフ ォル ト で<br />

High にプルア ッ プ さ れてい る ためです。 論理 Low (デバ イ スの初期化中) か ら High (コ ン フ ィ グ レーシ ョ<br />

ン ・データ の受け入れ準備完了) への遷移は、その後の電源の再投入ま たは PROGRAMN ピ ンの ト グルに よ っ<br />

て コ ン フ ィ グ レーシ ョ ンする場合に発生し ます。<br />

DONE<br />

DONE は弱 く プルア ッ プされたデュ アル機能オープン ド レ イ ンの双方向ピンです。 デバイ スがコ ンフ ィ グ<br />

レーシ ョ ンモー ド で、 内部 DONE ビ ッ ト がプ ロ グ ラ ム さ れていない と き に、 DONE ピ ンは Low に ド ラ イ ブ さ<br />

14-6 TN1204JP_01.3e


<strong>MachXO2</strong> ユーザガ イ ド<br />

ラティスセミコンダクター プログラミングとコンフィグレーション<br />

れます。 INITN 及び PROGRAMN ピ ンが High にな り 、 内部 DONE ビ ッ ト がプ ロ グ ラ ム さ れる と 、 DONE ピ ン<br />

は解放されます。 DONE ピ ンは外部か ら Low に保持で き、 こ の場合 DONE ピ ンが解放される まで、 デバ イ ス<br />

は機能動作を開始し ません。<br />

INITN ピ ン と 同様に、 <strong>MachXO2</strong> デバ イ スの DONE ピ ンは、 デバイ ス を初めてプ ロ グ ラ ムする と き、 ま たはデ<br />

バイ ス を新し いパターンでプ ロ グ ラ ムする と きは、 初期化中に Low にな り ません。 そのため、 こ の よ う な条<br />

件では Low か ら High への遷移が発生し ません。 その後の電源の再投入ま たは PROGRAMN ピ ンの ト グルに<br />

よ って、 デバイ ス ・ コ ン フ ィ グ レーシ ョ ン を起動する と 、 DONE ピ ンはコ ン フ ィ グ レーシ ョ ン中に Low にな<br />

り 、 コ ン フ ィ グ レーシ ョ ンが正常に完了する と High に戻 り ます。<br />

ブ ラ ン ク ・ デバ イ スの DONE ピ ン動作は、 コ ン フ ィ グ レーシ ョ ン さ れていな く て も、 プルア ッ プ さ れてい る<br />

ために誤った状態を示すこ と があ り ます。最初のコ ンフ ィ グレーシ ョ ンが成功し た後に内部 DONE ビ ッ ト を<br />

読み出すこ と は、 デバイ スが コ ン フ ィ グ レーシ ョ ン済みかど う かを外部か ら確認する良い方法です。<br />

JTAG を使用し て SRAM を コ ン フ ィ グ レーシ ョ ンする場合は、 DONE ピ ンがバウ ンダ リ ス キ ャ ン ・ セルで ド<br />

ラ イ ブ さ れる ため、 DONE ピ ンの状態はコ ン フ ィ グ レーシ ョ ンが完了する まで意味を持ち ません。<br />

MCLK/CCLK<br />

MCLK/CCLK はデュ アル機能の双方向ピ ンで、 その方向はマ ス タ ま たはス レーブのど ち ら のモー ド を選択し<br />

たかで決ま り ます。 マス タ モー ド を選択し た場合は MCLK ピ ン と 呼ばれ出力ピ ンにな り ます。 それ以外の場<br />

合は CCLK と 呼ばれる入力ピ ンにな り ます。<br />

MCLK/CCLK ピ ンが出力になった場合は、 こ のピ ンに内部プ ロ グ ラ マブル ・ オシ レータ が接続 さ れ、 外付け<br />

ス レーブデバイ ス を ド ラ イ ブ し ます。 停止する と 、 MCLK は入力 ( ト ラ イ ス テー ト 出力) にな り ます。 その<br />

後の コ ン フ ィ グ レーシ ョ ン初期化シーケ ン スでは MCLK が再起動し (出力にな り ) ます。<br />

SN<br />

SN ピ ンは弱 く プルア ッ プ さ れたデュ アル機能入力ピ ンです。 SN は内部 SPI イ ン ターフ ェ イ スに対する ア ク<br />

テ ィ ブ Low のチッ プセレ ク ト で、 ス レーブ SPI モード で使用されます。<br />

SN ピ ンが Low に ド ラ イ ブ さ れた場合は、 CSSPIN (次項参照) も High に ド ラ イ ブする必要があ り 、 マ ス タ<br />

SPI イ ン ターフ ェ イ スがア ク テ ィ ブにな る こ と を防止する ために MCLK/CCLK を入力に保持し ます。 こ れに<br />

よ り マ ス タ及びス レーブ SPI イ ン ターフ ェ イ ス間の競合が回避されます。<br />

こ のピ ン を SN と し て確保し、 ス レーブ SPI イ ン ターフ ェ イ スへのア ク セス を可能にする には、 sysCONFIG<br />

プ リ フ ァ レ ン スの SLAVE_SPI_PORT を ENABLE に設定する必要があ り ます。 SLAVE_SPI_PORT オプシ ョ ンは<br />

設計ソ フ ト ウ ェ アで設定で き ます。<br />

CSSPIN<br />

CSSPIN は、 弱 く プルア ッ プ さ れたデュ アル機能出力ピ ンです。 CSSPIN は、 外付け SPI フ ラ ッ シ ュ に対する<br />

アクティブ Low のチップセレク トで、 マスタ SPI モードで使用されます。sysCONFIG プリファレンス<br />

MASTER_SPI_PORT が ENABLE に設定 さ れてい る と 、 CSSPIN ピ ンは専用ピ ンにな り ます。 こ のピ ンは内部に<br />

弱いプルア ッ プ抵抗があ り ますが、 SPI 動作中の早い立ち上が り のために外部プルア ッ プを付加する こ と を<br />

推奨し ます。<br />

SI/SISPI<br />

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

ブかで決ま り ます。 SI/SISPI はス レーブ SPI モー ド 使用時は入力データ ピ ンにな り 、 マ ス タ SPI モー ド 使用時<br />

は出力データ ピ ンにな り ます。<br />

こ の ピ ン を SI/SISPI と し て確保 し、 SPI イ ン タ ー フ ェ イ ス への ア ク セ ス を可能にす る には、 少な く と も<br />

sysCONFIG プ リ フ ァ レ ン スの SLAVE_SPI_PORT ま たは MASTER_SPI_PORT のいずれかを ENABLE に設定する<br />

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

14-7 TN1204JP_01.3e


<strong>MachXO2</strong> ユーザガ イ ド<br />

ラティスセミコンダクター プログラミングとコンフィグレーション<br />

SO/SPISO<br />

SO/SOSPI ピ ンはデュ アル機能の双方向ピ ンです。 その方向はマス タ ま たはス レーブのどち ら のモー ド がア<br />

ク テ ィ ブかで決ま り ます。 SO/SOSPI はマス タ SPI モー ド 使用時は入力データ ピ ンにな り 、 ス レーブ SPI モー<br />

ド 使用時は出力データ ピ ンにな り ます。<br />

こ のピ ン を SO/SOSPI と し て確保 し、 SPI イ ン タ ーフ ェ イ スへのア ク セ ス を可能にする には、 少な く と も<br />

sysCONFIG プ リ フ ァ レ ン スの SLAVE_SPI_PORT ま たは MASTER_SPI_PORT のいずれかを ENABLE に設定する<br />

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

SCL<br />

SCL は双方向のオープン ド レ イ ン ・ ピ ンで、 I 2 Cインターフェイスのクロックポートとして使用されます。デ<br />

バイスが I 2 C マス タ の場合は出力ピ ンにな り 、 I 2 Cスレーブの場合は入力ピンになります。I 2 C仕様ではこの<br />

信号の外部プルア ッ プが求め ら れています。<br />

このピンを I 2 C ポー ト に よ るデバ イ スの コ ン フ ィ グ レーシ ョ ンに使用する目的に確保する には、 sysCONFIG<br />

プ リ フ ァ レ ン スの I2C_PORT を ENABLE に設定する必要があ り ます。<br />

SDA<br />

SDA は双方向のオープン ド レ イ ン ・ ピ ンで、 I 2 C イ ン ターフ ェ イ スのデータ ポー ト と し て使用 さ れます。 こ<br />

のピンは I 2 C バス上のデータ伝送中にダ イ ナ ミ ッ ク に方向が変化し ます。 バスの READ 動作時にはデータ を<br />

受信し、 バスの WRITE 時にはデータを送信します。 I 2 C 仕様ではこの信号の外部プルア ッ プが求められてい<br />

ます。<br />

このピンを I 2 C ポー ト に よ るデバ イ スの コ ン フ ィ グ レーシ ョ ンに使用する目的に確保する には、 sysCONFIG<br />

プ リ フ ァ レ ン スの I2C_PORT を ENABLE に設定する必要があ り ます。<br />

ispJTAG ピン<br />

ispJTAG は IEEE 1149.1 規格の TAP (テ ス ト ア ク セス ・ ポー ト ) ピ ンです。 ispJTAG は共有ピ ンですが、 デ<br />

フ ォル ト ではデバイ スのプロ グ ラ ミ ング用にイネーブルになっています。 ispJTAG ポー ト がイネーブルの と<br />

きは、 こ れら のピ ンは <strong>MachXO2</strong> デバ イ スの電源投入時には常時ア ク セ ス可能にな り ます。 sysCONFIG プ リ<br />

フ ァ レ ン スの JTAG_PORT を DISABLE に設定する と 、こ れら のピ ン をユーザ I/O に回復で き ます。4 線 ispJTAG<br />

ポー ト は専用の JTAG プ ロ グ ラ ミ ン グ ピ ン と し て使用する こ と を推奨し ます。<br />

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

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

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

表 14-6. ispJTAG ピ ンのデフ ォル ト 状態<br />

ピン名<br />

ピ ン機能<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<br />

TDO<br />

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

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

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

ンには内部プルアップ ・ レジスタがあ り、 これはバンクの V CCIO にプルア ップされています。<br />

14-8 TN1204JP_01.3e


<strong>MachXO2</strong> ユーザガ イ ド<br />

ラティスセミコンダクター プログラミングとコンフィグレーション<br />

TDI<br />

TDI (Test Data Input) ピ ンはシ リ アルテ ス ト 命令及びデータ をシフ ト イ ンする ために使用されます。 こ のピ<br />

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

ンには内部プルアップ ・ レジスタがあ り、 これはバンクの V CCIO にプルア ップされています。<br />

TMS<br />

TMS (Test Mode Select) ピ ンは TAP コ ン ト ローラ の動作を制御する入力ピ ンです。 TCK の立下 り エ ッ ジに<br />

おけ る TMS の状態に応じ て、 TAP コ ン ト ローラ ・ ス テー ト マシンの状態遷移が行われます。 TMS ピ ンには<br />

内部プルア ッ プ ・ レ ジ ス タ があ り 、 こ れはバン ク の V CCIO にプルア ップされます。<br />

TCK<br />

TCK (Test Clock) ピ ンはデータ レ ジ ス タ及び命令レ ジ ス タ の ロー ド と ア ン ロー ド を行い、 TAP コ ン ト ロー<br />

ラ を実行する ための ク ロ ッ ク を提供し ます。 TCK は High と Low のど ち ら の状態で も停止で き、 デバ イ スの<br />

データ シー ト に示さ れる周波数以下の速度で動作で き ます。 TCK ピ ンは <strong>MachXO2</strong> データ シー ト の DC 電気<br />

的特性の項に示される値に対応し ています。 TCK ピンはプルア ッ プ されていません。 V CC 電源が印加 さ れる<br />

際の、意図しないTAPコントローラへのクロック動作を防止するために、PCB上の4.7kΩでプルダウンす<br />

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

JTAGENB<br />

ピ ンは IEEE 1149.1 準拠ピ ン と も呼ばれ、 ユーザモー ド 時に ispJTAG ポー ト の機能を制御する入力ピ ンです。<br />

デフ ォル ト では JTAGENB ピ ンはユーザ I/O で、 4 線の ispJTAG ポー ト がプ ロ グ ラ ミ ン グ用に使用されます。<br />

こ れはブ ラ ン ク デバイ ス と 、 ソ フ ト ウ ェ アで sysCONFIG のデフ ォル ト 属性にプ ロ グ ラ ム さ れたデバ イ スに<br />

使用可能な、 伝統的な JTAG ポー ト ・ コ ン フ ィ グ レーシ ョ ンです。 図 14-3 に <strong>MachXO2</strong> デバイ スの ispJTAG<br />

ポー ト のデフォル ト 動作を示し ます。<br />

図 14-3. JTAG_PORT = ENABLE 時のデフ ォル ト ispJTAG ポー ト<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 />

ispJTAG ポー ト をユーザ I/O と し て回復する場合は、sysCONFIG 属性の JTAG_PORT を DISABLE に設定する<br />

必要があ り ます。こ の条件では JTAGENB ピ ンが専用ピ ンにな り ます。JTAGENB に Low 信号を与え る と JTAG<br />

ポー ト はデ ィ セーブル さ れて、 4 本の JTAG ピ ンはユーザ I/O にな り ます。 JTAGENB に High 信号を与え る<br />

と JTAG ポー ト は イ ネーブル さ れて、 4 本のピ ンは専用 JTAG ピ ンにな り ます。 図 14-4 に JTAGENB で制御<br />

さ れた ispJTAG ポー ト の動作を示し ます。<br />

14-9 TN1204JP_01.3e


<strong>MachXO2</strong> ユーザガ イ ド<br />

ラティスセミコンダクター プログラミングとコンフィグレーション<br />

図 14-4. JTAG_PORT = DISABLE 時の ispJTAG ポー ト 動作<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 はダ ウ ン ロー ド ・ ケーブルの ispEN ピ ンに接続する か、 ま たはオンボー ド JTAG プ ロ グ ラ ミ ン グで<br />

デバ ッ グが必要な場合はプルア ッ プする必要があ り ます。<br />

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

デバイ ス をユーザが動作可能なモー ド にする には、 SRAM メ モ リ を正し く コ ン フ ィ グ レーシ ョ ンする必要が<br />

あ り ます。 コ ン フ ィ グ レーシ ョ ン ・ データ を格納する ためには、 オンチ ッ プ ・ フ ラ ッ シ ュ メ モ リ ま たは外付<br />

けSPI フラッシュメモリ ・デバイスを使用する必要があります。 この項ではオンチップ・フラッシュメモリ<br />

の正常なプロ グ ラ ム後に、 デバイ ス をユーザモード にするためのコ ンフ ィ グレーシ ョ ン ・ シーケン スについ<br />

て説明し ます。<br />

デバイ スが動作可能にな る前に、 デバ イ スはコ ン フ ィ グ レーシ ョ ン ・ プ ロ セス を終了する必要があ り ます。<br />

フ ラ ッ シ ュ の DONE ヒ ューズがプ ロ グ ラ ム さ れていない場合は、 コ ン フ ィ グ レーシ ョ ン ・ プ ロ セ スは起動 さ<br />

れません。 DONE ヒ ューズがプ ロ グ ラ ム さ れてい る場合は、 次の方法でオンチ ッ プ ・ フ ラ ッ シ ュ メ モ リ か ら<br />

SRAM へコ ン フ ィ グ レーシ ョ ン ・ データ のダ ウ ン ロー ド が ト リ ガ さ れます。<br />

• デバ イ スの電源の再投入<br />

• PROGRAMN ピ ンの ト グル (使用可能な場合)<br />

• sysCONFIG ポー ト か ら の REFRESH コ マン ド の発行 (ポー ト が使用可能な場合)<br />

• JTAG REFRESH コ マン ド ま たはシーケ ン スの発行 (ポー ト が使用可能な場合)<br />

こ のシーケ ン スは、 電源が安定状態にな って内部パワーオン リ セ ッ ト (POR) が解放さ れた と き、 ま たは<br />

PROGRAMN ピ ンが Low に ド ラ イ ブ さ れた と き に開始 さ れます。次に <strong>MachXO2</strong> デバイ スは INITN ピ ン と DONE<br />

ピ ン を Low に ド ラ イ ブ し て、 I/O を ト ラ イ ス テー ト に し ます (図 14-5 参照)。 デバ イ スは、 コ ン フ ィ グ レー<br />

シ ョ ン回路を リ セ ッ ト し、 CFM を ク リ アする こ と で、 コ ン フ ィ グ レーシ ョ ンの準備を し ます。 初期化が完了<br />

し た と き に PROGRAMN が High であれば INITN が解放 さ れ、 デバイ スが コ ン フ ィ グ レーシ ョ ン ・ データ を受<br />

け入れ可能な こ と を示し ます。 INITN が外部か ら Low に保持 さ れてい る場合、 <strong>MachXO2</strong> デバイ スは High に<br />

なるまで待ちます。INITNがHighになると、デバイスは内部フラッシュメモリからのプリアンブル・ コード<br />

の検索を開始し ます。 プ リ ア ンブル以降のデータは、 全て有効な コ ン フ ィ グ レーシ ョ ン ・ データ です。 コ ン<br />

フ ィ グ レーシ ョ ンが完了する と 、 内部 SRAM の DONE ビ ッ ト がセ ッ ト さ れ、 DONE ピ ンが High にな り 、 デ<br />

バイスがウェイクアップし (ユーザモードになり) ます。<br />

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

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

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

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

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

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

VCCIO<br />

JTAGENB = ‘1’<br />

TCK<br />

TM<br />

TDIS<br />

TDO<br />

IO/JTAGENB<br />

TCK/IO<br />

TMS/IO<br />

TDI/IO<br />

TDO/IO<br />

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

14-10 TN1204JP_01.3e


<strong>MachXO2</strong> ユーザガ イ ド<br />

ラティスセミコンダクター プログラミングとコンフィグレーション<br />

• オンチップ SRAM コンフィグレーシ ョ ンまたはオンチップ ・ フラ ッシュ メモリの終わりに達しても、 プロ<br />

グ ラ ム完了コ マン ド を受信し なかった<br />

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

CCLK<br />

PROGRAMN<br />

INITN<br />

DONE<br />

既に記述し た と お り 、 INITN 及び DONE ピ ンのデフ ォル ト 動作は、 デバ イ スがプ ロ グ ラ ム さ れていない (ブ<br />

ラ ン ク ) 状態の と き、 弱 く プルア ッ プ さ れた ト ラ イ ス テー ト のユーザ I/O にな り ます。 そのため DONE ピ ン<br />

はデバイスがプログラムされていないときにHighにプルアップされます。INITNピンも同様に、初期化が行<br />

われていな く て も ブ ラ ン ク デバイ スではデータ の受け入れ準備がで き てい る よ う に見え る こ と があ り ます。<br />

こ の動作は、 電源をオンオフせずに消去済みのデバイ スが初めて直接プ ロ グ ラ ム さ れた場合に発生し ます。<br />

フラッシュ ・プログラミング<br />

フ ラ ッ シ ュ メ モ リ 領域は、 JTAG ポー ト や I 2 C ポー ト 、 SPI ポー ト 、 あ るいは WISHBONE バス を介し てア ク<br />

セスできます。 フラッシュメモリへの操作は、 ダイレク トモードかバックグランドモードが可能です。<br />

WISHBONE バス を介し て フ ラ ッ シ ュ メ モ リ にア ク セ スする場合は、バ ッ ク グ ラ ン ド モー ド で行わなければな<br />

り ません。 コマン ド "ISC ENABLE" はデバイ ス をダイ レ ク ト ・ プロ グ ラ ミ ングモード に投入し ますが、 コマ<br />

ン ド "LSC_ENABLE_X" ではバ ッ ク グ ラ ン ド ・ プ ロ グ ラ ミ ン グ を実行し てい る間もデバ イ スは通常動作モー ド<br />

にあ る ま まです。 どち ら の場合も、 フ ラ ッ シ ュ メ モ リ はプ ロ グ ラ ムする前に消去し なければな り ません。<br />

SRAM やフ ラ ッ シ ュ のデータ を全て消去する ために、 "ISC ERASE" コ マン ド を用い る こ と がで き ます。 最初<br />

のオペラ ン ド で消去する セ ク タ が決定されます。<br />

• Bit 0 = SRAM<br />

• Bit 1 = フィーチャ行<br />

• Bit 2 = コンフィグレーション・フラッシュ<br />

• Bit 3 = UFM<br />

• Bits 4-7 = 0<br />

Initialize Configure Wake-Up<br />

各デバイ ス規模に対する コ ン フ ィ グ レーシ ョ ン ・ フ ラ ッ シ ュ と UFM のページ数 と のページ数を表 14-7 に示<br />

し ます。 フ ラ ッ シ ュ ・ リ ー ド バ ッ ク かベ リ フ ァ イ の間の リ ー ド バ ッ ク ・ ページ数については、 リ ー ド バ ッ ク<br />

コ マン ド で規定する こ と がで き ます。<br />

14-11 TN1204JP_01.3e


<strong>MachXO2</strong> ユーザガ イ ド<br />

ラティスセミコンダクター プログラミングとコンフィグレーション<br />

表 14-7. <strong>MachXO2</strong> フ ァ ミ リ のフ ラ ッ シ ュ メ モ リ ・ ページ数<br />

<strong>MachXO2</strong> デバイ ス規模<br />

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

ラッシュ (ページ)<br />

UFM ( ページ )<br />

7000 9216 2046<br />

4000 5760 767<br />

2000 3200 639<br />

1200 2176 511<br />

640 1152 191<br />

256 575 0<br />

フ ラ ッ シ ュ リ ー ド と ベ リ フ ァ イ動作には内部オシ レータ か ら の 133MHz ク ロ ッ ク を用います。 <strong>MachXO2</strong>-256<br />

と <strong>MachXO2</strong>-640/U、 および <strong>MachXO2</strong>-1200 デバイ スは、 1 ページ (128 ビ ッ ト ) のフ ラ ッ シ ュデータ を読む<br />

ために 40 ク ロ ッ ク周期を必要 と し ます。こ れら よ り 大き い <strong>MachXO2</strong> デバイ スは、1 ページのフ ラ ッ シ ュデー<br />

タ を読むために 20 ク ロ ッ ク 周期が必要でます。 <strong>MachXO2</strong> デバ イ スのページあた り のフ ラ ッ シ ュ リ ー ド 時間<br />

については、 以下の よ う に計算で き ます。<br />

最悪ケースのページあた り のフ ラ ッ シ ュ リ ー ド 時間 = 総 ク ロ ッ ク 周期 x (133MHz の最も遅い ク ロ ッ ク )<br />

コ マーシ ャル ・ グ レー ド 品デバイ スに対し てデータ シー ト で規定 さ れる 133MHz ク ロ ッ ク の最小値を用い る<br />

と 、<strong>MachXO2</strong>-1200 デバイ スの 1 ページあた り フ ラ ッ シ ュ リ ー ド 時間は約 318ns にな り ます。<strong>MachXO2</strong>-4000<br />

デバイ スのページあた り の リ ー ド 時間は約 159ns です。<br />

フ ラ ッ シ ュ操作の詳細については付録 A と 付録 B で記述し ています。<br />

プログラムモード とコンフィグレーショ ン ・ モード<br />

<strong>MachXO2</strong> デバイ スは、 ispJTAG ポー ト 及び sysCONFIG ポー ト を利用する、 複数のプ ロ グ ラ ミ ン グモー ド と<br />

コ ン フ ィ グ レーシ ョ ン ・ モー ド に対応し ています。 JTAG ま たは sysCONFIG モー ド は、 設計 ソ フ ト ウ ェ アで<br />

選択で き ます。 こ れら の ソ フ ト ウ ェ ア設定では、 対応する プ ロ グ ラ ミ ン グポー ト ・ イ ネーブルを設定する こ<br />

とで、 コンフィグレーション ・モードが決まります。<br />

デバイ スがコ ン フ ィ グ レーシ ョ ン・モー ド にあ る と きは、デバイ スのプロ グ ラ ミ ング及びコ ン フ ィ グ レーシ ョ<br />

ンに JTAG、 スレーブ SPI、 I 2 C の各モー ド を使用で き ます。 全てのモー ド が有効になってい る場合は JTAG<br />

モード の優先度が最も高 く な り ます。 全てのコ ンフ ィ グレーシ ョ ン ・ モード で最も優先度が低いのは内部<br />

WISHBONE です。<br />

14-12 TN1204JP_01.3e


<strong>MachXO2</strong> ユーザガ イ ド<br />

ラティスセミコンダクター プログラミングとコンフィグレーション<br />

表 14-8. sysCONFIG モー ド の推奨ピ ンマ ッ ピ ン グ<br />

ピン<br />

ブランク<br />

デバイ ス<br />

ピン方向<br />

(コンフィグ)<br />

PROGRAMN PROGRAMN I<br />

INITN GPIO I/O<br />

DONE GPIO I/O<br />

JTAG<br />

スレーブ<br />

SPI (SSPI)<br />

JTAG モード<br />

<strong>MachXO2</strong> デバ イ スは、ispJTAG ポー ト か ら のプ ロ グ ラ ム及びコ ン フ ィ グ レーシ ョ ンが可能です。ispJTAG ポー<br />

トは常にオンで、デバイスがブランクとき、 またはデバイスがデフォルトのソフトウェア設定でプログラム<br />

さ れた後に使用可能にな り ます。 デフ ォル ト 設定では ispJTAG ポー ト が イ ネーブルにな り 、 他の全ての<br />

sysCONFIG ポー ト がデ ィ セーブルにな り ます。そのため ispJTAG ポー ト をデバ イ スのプ ロ グ ラ ミ ン グ及びコ<br />

ン フ ィ グ レーシ ョ ン用 と し て排他的に使用で き、 sysCONFIG ピ ンは汎用 I/O と し て確保されます。<br />

デバイ スの コ ン フ ィ グ レーシ ョ ン後に ispJTAG ポー ト がユーザ I/O と し て回復する と 、 JTAGENB ピ ンがア<br />

ク テ ィ ブにな り 、 ispJTAG ポー ト はデ ィ セーブル さ れ、 そ し て 4 本の JTAG ピ ンが汎用 I/O と し て使用可能<br />

にな り ます。 図 14-4 に示すよ う に、 JTAGENB を ス タ テ ィ ッ ク に Low にプルダ ウ ンする と ispJTAG ポー ト を<br />

デ ィ セーブルで き ます。 ま た 4 本のピ ン をダ イ ナ ミ ッ ク に選択し て、 JTAG ピ ン ま たは汎用 I/O と し て使用<br />

するこ と もできます。<br />

ISC 1532<br />

ispJTAG ポー ト か ら の コ ン フ ィ グ レーシ ョ ン と プ ロ グ ラ ミ ン グは、IEEE 1532 標準に準拠し ています。 バウ ン<br />

ダ リ ス キ ャ ン (BSCAN) セルは、 全ての 1532 モー ド 命令の中で I/O を制御し ます。 バウ ンダ リ ス キ ャ ン ・<br />

セルは、 JTAG 1532 モー ド 使用時には事前設定値に設定で き ます。<br />

TransFR<br />

このモードは、I/O はデバイスのコンフ ィグレーシ ョ ン中に BSCAN セルで制御されます。再コンフ ィグレー<br />

シ ョ ンが必要な場合は、 出力の値が保持 さ れます。 ユーザは任意のピ ンが送出する信号を ispVM ソ フ ト ウ ェ<br />

アか ら変更で き ます。 TransFR モー ド を終了する と きは、 ユーザ ロ ジ ッ ク で信号を必ず適切な値に設定し、<br />

モード<br />

マスタ SPI<br />

(MSPI) 2 I 2 C SDM<br />

オプシ ョ ン オプシ ョ ン<br />

MCLK/CCLK スレーブ SPI I/O � �<br />

JTAGENB GPIO I �<br />

TDO TDO O �<br />

TMS TMS I �<br />

TCK TCK I �<br />

TDI TDI I �<br />

SN スレーブ SPI I �<br />

SI スレーブ SPI I � �<br />

SO スレーブ SPI O � �<br />

CSSPIN GPIO O �<br />

SDA SDA I/O �<br />

SCL SCL I/O �<br />

内部<br />

Wishbone 1<br />

— — — �<br />

1. 内部 WISHBONE スレーブバスの ド ラ イ ブはユーザロジ ッ ク によ る。 このモー ド ではピ ンマ ッ ピ ングは適用されない<br />

2. MSPI モー ド 用に これらのピ ン を確保する こ と を推奨<br />

14-13 TN1204JP_01.3e


<strong>MachXO2</strong> ユーザガ イ ド<br />

ラティスセミコンダクター プログラミングとコンフィグレーション<br />

グ リ ッ チを防止する必要があ り ます。こ のモー ド でデュ アルブー ト 機能が ト リ ガ さ れる こ と はあ り ません(下<br />

記参照)。<br />

REFRESH 命令<br />

命令には PROGRAMN ピ ンの ト グル と 同じ効果があ り 、SRAM メ モ リ を ク リ ア し、 フ ラ ッ シ ュ メ モ リ を SRAM<br />

メモリにダウンロードして、デバイスをウェイクアップします。デバイスが JTAG モードを終了するまで、<br />

コ ン フ ィ グ レーシ ョ ン中は全ての I/O が ト ラ イ ス テー ト にな り ます。 デュ アルブー ト 機能が有効な場合は、<br />

こ の機能は REFRESH 命令に よ って起動されます。DONE ビ ッ ト を読み出すこ と に よ り 、デバ イ スのコ ン フ ィ<br />

グレーシ ョ ンが正常に行われたかど う かを確認でき ます。<br />

SRAM リ ー ド バ ッ ク<br />

直接モー ド かバ ッ ク グ ラ ン ド ・ モー ド かに係わ らず、 SRAM メ モ リ の リ ー ド バ ッ ク は ispJTAG でのみ対応し<br />

ます。 EBR 及び分散 RAM の読み出し時には注意が必要です。 と い う の も ユーザ回路か ら のア ク セ ス と 競合<br />

する (その結果、 データ が書き換え ら れる) 可能性があ る ためです。 I/O 及び非 JTAG の コ ン フ ィ グ レーシ ョ<br />

ンピンは、 バックグランドの SRAM リードバック中もアクティブのままになり ます。<br />

バウンダ リ スキャ ン と BSDL フ ァ イル<br />

こ のデバイ スの BSDL フ ァ イルは、 ラ テ ィ スのウ ェブサ イ ト (www.latticesemi.com) にあ り ます。 バウ ンダ リ<br />

ス キ ャ ン ・ リ ングには、 全ての I/O ピ ン と デュ アル機能 sysCONFIG ピ ンが含まれます。 4 本の ispJTAG ピ ン<br />

はデュ アル機能ピ ンであ る ため、 こ れら のピ ンには IEEE 1149.1 標準に準拠する ためのバウ ンダ リ ス キ ャ ン ・<br />

セルはあ り ません。 <strong>MachXO2</strong> デバイ スは IEEE1149.1 に規定されてい る JTAG デイ ジーチェ イ ンに対応し て<br />

います。<br />

SPI モード<br />

<strong>MachXO2</strong> デバイ スは SPI シ リ アルフ ラ ッ シ ュ規格に対応する メ モ リ に直接接続で き ます。SPI イ ン ターフ ェー<br />

スはス レーブ SPI モー ド と マス タ SPI モー ド の 2 モー ド で使用で き ます。 それぞれの SPI モー ド は特有の用<br />

途で使用さ れます。 <strong>MachXO2</strong> デバ イ スは、 SPI モー ド でのデイ ジーチェ イ ンには対応し ていません。<br />

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

ス レーブ SPI モー ド では MCLK/CCLK ピ ン (CCLK) は入力にな り 、 コ マン ド は CCLK の立上が り エ ッ ジで<br />

SI/SISPI ピ ンか ら <strong>MachXO2</strong> デバイ スに読み込まれます。 データは CCLK の立下 り エ ッ ジで <strong>MachXO2</strong> デバ イ<br />

スか ら SO/SPISO ピ ンに書き出 さ れます。 チ ッ プセレ ク ト ピ ン SN は、 SSPI モー ド 動作の イ ネーブル と デ ィ<br />

セーブルを行います。 SN が High の場合は SSPI イ ン ターフ ェ イ スが選択解除 さ れ、 SO/SPISO ピ ンがハ イ イ<br />

ン ピーダン スにな り ます。 SN が Low にな る と SPI イ ン ターフ ェ イ スが選択 さ れ、 <strong>MachXO2</strong> デバ イ スへの コ<br />

マン ド の書き込み と 読み出し が可能にな り ます。 電源起動後に新規コ マン ド の受け取 り が可能にな る ために<br />

は、 SN を High か ら Low に遷移し なければな り ません。<br />

SSPI モー ド はフ ラ ッ シ ュ メ モ リ のプ ロ グ ラ ミ ン グに使用する こ がで き ます。 オンチ ッ プフ ラ ッ シ ュ に ラ イ ト<br />

する ためには、 SN ピ ン を Low に保持する必要があ り 、 データは SI/SISPI か ら入力されます。 SSPI モー ド を<br />

使用する こ と で TraceID や MY_ASSP、 ま た USERCODE な ど を含む、 フ ラ ッ シ ュ メ モ リ の リ ー ド バ ッ ク が可<br />

能です。 SN を Low に ド ラ イ ブする こ と で、 デバ イ スは リ ー ド バ ッ ク 命令を SI/SISPI ピ ンか ら取 り 込み、 フ<br />

ラ ッ シ ュ メ モ リ か ら のデータ が SO/SPISO ピ ンか ら出力されます。 デバ イ スがユーザモー ド にあ る と き にフ<br />

ラ ッ シ ュ メ モ リ の リ ー ド バ ッ ク に対応する ためには、 設計ソ フ ト ウ ェ アで SLAVE_SPI_PORT プ リ フ ァ レ ン ス<br />

を ENABLE に設定する必要があ り ます。<br />

SSPI モー ド は REFRESH 命令に よ って SRAM メ モ リ を コ ン フ ィ グ レーシ ョ ンする たに使用で き ます。 その効<br />

果は ispJTAG ポー ト か ら REFRESH 命令が発行された場合 と 同じ ですが、 こ のモー ド ではデュ アルブー ト 機<br />

能が許容さ れない点が異な り ます。 SSPI では、 いずれのモー ド で も SRAM の直接コ ン フ ィ グ レーシ ョ ンや、<br />

SRAM メ モ リ の リ ー ド バ ッ ク がで き ません。<br />

ブ ラ ン ク デバ イ ス では、 SSPI モー ド が イ ネーブル さ れてい ます。 設計 ソ フ ト ウ ェ アでは、 こ のモー ド のデ<br />

フ ォル ト 設定が DISABLE です。 そのため ソ フ ト ウ ェ アのデフ ォル ト 設定を変更し ない限 り 、 ユーザモー ド で<br />

は SSPI ポー ト を使用でき ません。<br />

14-14 TN1204JP_01.3e


<strong>MachXO2</strong> ユーザガ イ ド<br />

ラティスセミコンダクター プログラミングとコンフィグレーション<br />

図 14-6. SSPI モー ド<br />

uC<br />

MCLK/CCLK<br />

SN<br />

SI/SISPI<br />

SO/SPISO<br />

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

CFG<br />

SRAM<br />

マス タ SPI モー ド (MSPI)<br />

マ ス タ SPI モー ド では <strong>MachXO2</strong> が MCLK/CCLK (MCLK) を ド ラ イ ブ し、 ビ ッ ト ス ト リ ーム を提供する ス<br />

レーブ SPI フ ラ ッ シ ュデバイ スに出力し ます。 <strong>MachXO2</strong> デバイ スは MCLK の立上が り エ ッ ジで コ マン ド を<br />

SI/SISPI に送出し、 MCLK の立下 り エ ッ ジで SO/SPISO か らデータ を受け入れます。 マ ス タ シ リ アル ・ デバ<br />

イ スは、 コ ン フ ィ グ レーシ ョ ン開始時に MCLK の ド ラ イ ブを開始し、 外部 DONE ピ ンが High に さ れる まで<br />

MCLK を ド ラ イ ブ し続け ます。 デフ ォル ト で電源投入時の MCLK 周波数は 2.08MHz です。 ビ ッ ト ス ト リ ー<br />

ムか ら新し い ク ロ ッ ク 周波数の指定値が ロー ド さ れる まで、マス タ ク ロ ッ ク 周波数はデフ ォル ト のま まです。<br />

デュアルブー ト 機能は MSPI モードでサポー ト されます。 「ゴールデン」 ビ ッ ト ス ト リ ームは外付け SPI フ<br />

ラッシュデバイスに置かれ、プライマリビットスト リームはオンチップ・フラッシュメモリに置かれます。<br />

デバイ スは最初に、オンチ ッ プ・フ ラ ッ シ ュ メ モ リ か ら ブー ト し よ う と し ます。電源投入後ま たは PROGRAMN<br />

ピン トグル後のデバイス ・ コンフィグレーション中に、 次のいずれかの状態になるとデュアルブート ・ イベ<br />

ントがトリガされます。<br />

• オンチ ッ プ ・ フ ラ ッ シ ュ メ モ リ か ら のビ ッ ト ス ト リ ームに CRC エ ラーが検出 さ れた<br />

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

デュアルブートがトリガされると、ゴールデン・ビットストリームが外付け SPI フラッシュデバイスから、<br />

デバイ スの SRAM メ モ リ にロー ド されます。 ゴールデン ・ ビ ッ ト ス ト リ ームは、 外付け SPI フ ラ ッ シ ュの開<br />

始ア ド レ ス 0x010000 にあ る必要があ り ます。<br />

MSPI モード を使用し てオンチッ プ・フ ラ ッ シ ュ メ モ リ にア ク セスする こ と はでき ません。このモード はSRAM<br />

メ モ リ の コ ン フ ィ グ レーシ ョ ン専用です。 デュ アルブー ト ・ イベン ト で使用 さ れる ゴールデン ・ ビ ッ ト ス ト<br />

リ ームは、外付け SPI フ ラ ッ シ ュデバ イ ス にのみ格納で き ます。MSPI ポー ト は JTAG モー ド に よ る外付け SPI<br />

フ ラ ッ シ ュデバ イ スのプ ロ グ ラ ミ ン グに も 使用で き ます。 こ れに よ っ てデュ アルブー ト 機能のサポー ト や、<br />

外付け SPI フ ラ ッ シ ュデバイ ス を更新をする ための、 単一イ ン ターフ ェ イ スが得られます。 こ の機能を有効<br />

にする には、 設計ソ フ ト ウ ェ アで MASTER_SPI_PORT プ リ フ ァ レ ン ス を ENABLE にする必要があ り ます。<br />

ブラ ン クデバイ スでは MSPI モード はデ ィ セーブルされています。 設計ソ フ ト ウ ェ アでも、 このモード のデ<br />

フ ォル ト 設定は DISABLE です。 そのため ソ フ ト ウ ェ アのデフ ォル ト 設定を変更し ない限 り 、 ユーザモー ド で<br />

は MSPI ポー ト を使用で き ません。 MSPI モー ド が有効な場合は、 PROGRAMN ピ ン と DONE ピ ン を同時に イ<br />

ネーブルする こ と を推奨し ます。 こ れは電源再投入以外でデュ アルブー ト ・ プ ロ セ ス を ト リ ガで き る のは、<br />

PROGRAMN のみであ る ためです。他の コ ン フ ィ グ レーシ ョ ン ・ モー ド が有効になっていない場合、 こ のモー<br />

ド でデバイ スの コ ン フ ィ グ レーシ ョ ンが正常に行われたかど う かを確認する唯一の方法は、 DONE ピ ン を監<br />

視する こ と です。<br />

Flash<br />

REFRESH<br />

EBR<br />

14-15 TN1204JP_01.3e


<strong>MachXO2</strong> ユーザガ イ ド<br />

ラティスセミコンダクター プログラミングとコンフィグレーション<br />

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

JTAG Interface<br />

External<br />

SPI Flash<br />

I2C モード<br />

<strong>MachXO2</strong> の I 2 C モー ド は 2 線式イ ン ターフ ェ イ スで、 ク ロ ッ ク 信号 と データ線よ り な り ます。 <strong>MachXO2</strong> が<br />

I 2C バス上のス レーブ ・ コ ンポーネン ト の場合、 SCL ピ ンは入力にな り ます。 デバ イ スがバス上でマ ス タ に<br />

な る と 出力にな り ます。 SDA ピ ンは双方向信号で、 READ 動作時は入力、 WRITE 動作時は出力にな り ます。<br />

デバイ スのプ ロ グ ラ ミ ン グ及びコ ン フ ィ グ レーシ ョ ン中、 <strong>MachXO2</strong> は I 2 C マ ス タ か ら の コ マン ド に応答する<br />

I 2 C ス レーブにな り ます。 こ の イ ン ターフ ェ イ スは最速 400KHz の SCL 周波数に対応し ています。<br />

<strong>MachXO2</strong> デバ イ スには 2 つのハー ド マ ク ロ化 I 2 C IP コ アがあ り ます。 デバ イ スプ ロ グ ラ ミ ン グには、 専用<br />

II 2 Cポートを備えるプライマリ・ハードマクロI 2 C IP のみを用い る こ と がで き ます。<strong>MachXO2</strong> デバイ スでは、<br />

デバイ スプロ グ ラ ミ ング用に、またプ ラ イ マ リ I 2 Cポートおよびセカンダリ I 2 Cポート用にユニークなスレー<br />

ブア ド レ スに対応し ます。 こ れら はス レーブア ド レ スの 2 LSB ビ ッ ト に よ って特定さ れ、 表 14-9 で示 さ れ<br />

る よ う にハード コード化されています。 またス レーブア ド レ スは、 システム内でのス レーブア ド レ ス競合を<br />

避け る ためにプ ロ グ ラ マブルです。 7 ビ ッ ト ア ド レ シングの 5 MSB ビ ッ ト ( 表 14-9 で xxxxxx と し て示す )<br />

か、 10 ビ ッ ト ア ド レ シン グの 8 MSB ビ ッ ト ( 表 14-9 で yyyxxxxx と し て示す ) がプ ロ グ ラ マブルであ り 、 全<br />

I 2 C ポー ト と 機能で共有されます。<br />

<strong>MachXO2</strong> I 2 C インターフェ イ スのデフォル ト ・ スレーブアド レスは、 7 ビ ッ ト ・ ア ド レ ッシングでは<br />

7'b1000000、 10 ビ ッ ト ・ ア ド レ ッ シングでは 10'b1111000000 です。 ハー ド マ ク ロ I 2 C IP コ アの一つか両方が<br />

ユーザ機能のためにイネーブルされる と き、 5 ビ ッ ト か 8 ビ ッ ト の MSB ス レーブア ド レ スはユーザ定義の値<br />

に修正されます。これらのビ ッ ト が全 I 2 C 機能で共有さ れる ため、デバ イ スが一度プ ロ グ ラ ミ ン グか コ ン フ ィ<br />

グ レーシ ョ ン を完了する と 、 デバイ ス ・ プ ロ グ ラ ミ ン グのための I 2 C ス レーブア ド レ スはユーザ定義の値に<br />

よ って決定されます。 ブ ラ ン ク デバイ スか ら プ ロ グ ラ ム さ れたデバ イ スにな る際に、 潜在的に I 2 Cデバイス<br />

のプログラ ミ ング ・ イ ンターフェ イ ス用のスレーブア ド レスが変わ り ます。<br />

表 14-9. I 2 Cポートのスレーブアドレス<br />

スレーブアドレス I 2 C 機能<br />

4<br />

JTAG<br />

MCLK/CCLK<br />

CSSPIN<br />

SI/SISPI<br />

SO/SPISO<br />

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

CFG SRAM<br />

yyyxxxxx00<br />

プライマリ I 2 Cポートを介するデバイス・プログラミング/コンフィグレーション用の<br />

スレーブアドレス<br />

yyyxxxxx01 ユーザモード におけるプラ イマ リ I2Cポートへのスレーブアドレス yyyxxxxx10 ユーザモード におけるセカンダ リ I2 C ポー ト へのス レーブア ド レ ス<br />

yyyxxxxx11 デバイ ス ・ プ ロ グ ラ ミ ング / コ ン フ ィ グ レーシ ョ ン I2Cコアロジックをリセットする I 2 C モードでのオンチップ・ フラッシュメモリのプログラ ミング機能は、 SSPI モードでの場合と同じです。<br />

I 2 C モードではオンチップ・ フラッシュメモリを直接モードまたはバックグランドモードでプログラムでき<br />

ます。 フラ ッシュ メモ リ の リードバッ ク も I 2 C モー ド で対応し ています。 ユーザモー ド 時にオンチ ッ プ ・ フ<br />

Flash<br />

EBR<br />

14-16 TN1204JP_01.3e


<strong>MachXO2</strong> ユーザガ イ ド<br />

ラティスセミコンダクター プログラミングとコンフィグレーション<br />

ラ ッ シ ュ メ モ リ にア ク セ スする ためには、 設計ソ フ ト ウ ェ アで I2C_PORT プ リ フ ァ レ ン ス を有効にする必要<br />

があ り ます。<br />

I 2 C モー ド は REFRESH 命令に よ る SRAM メ モ リ の コ ン フ ィ グ レーシ ョ ンに使用する こ と が可能で、その効果<br />

は ispJTAG ポー ト で REFRESH 命令を使用し た場合 と 同じ です。I 2 CモードではSRAMを直接コンフィグレー<br />

ションやSRAM メモリのリードバックができません。また<strong>MachXO2</strong>はI 2 Cモードでのデイジーチェインに対<br />

応していません。<br />

ブランクデバイスでは I 2 C モードはイネーブルされています。 設計ソフ ト ウェアではこのモードのデフォル<br />

ト 設定が DISABLE です。 従って ソ フ ト ウ ェ アがデフ ォル ト 設定か ら変更 さ れない場合、 ユーザモー ド では<br />

I 2 C ポー ト を使用でき ません。<br />

図 14-8. I 2 Cモード<br />

uC<br />

SDA<br />

SCL<br />

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

CFG<br />

SRAM<br />

SDM モード<br />

セルフ ダ ウ ン ロー ド モー ド (SDM) では、 外付けデバイ ス を ま った く 使用する こ と な く 、 <strong>MachXO2</strong> デバ イ ス<br />

が自分自身を コ ン フ ィ グ レーシ ョ ンで き ます。 ビ ッ ト ス ト リ ームが コ ン フ ィ グ レーシ ョ ン中に露出し ないた<br />

め、 SDM は非常に安全です。 SDM はデバイ スの電源投入、 ま たは PROGRAMN ピ ンの ト グルで ト リ ガ さ れま<br />

す。 コ ン フ ィ グ レーシ ョ ン ・ データは常にオンチ ッ プ ・ フ ラ ッ シ ュ メ モ リ か ら ダ ウ ン ロー ド さ れます。<br />

電源再投入に よ って コ ン フ ィ グ レーシ ョ ン ・ データ のセルフダ ウ ン ロー ド が ト リ ガ さ れる ため、 こ のモー ド<br />

ではPROGRAMN、INITN、及びDONEピンの使用はオプションになります。<br />

ブランクデバイスでは、SDMモードのPROGRAMNピンはイネーブルされています。現行バージョンの設計<br />

ソ フ ト ウ ェ アのデフ ォル ト 設定では、 PROGRAMN ピ ンが専用機能のま まですが、 INITN 及び DONE ピ ンは<br />

汎用 I/O と し て回復 さ れます。 ソ フ ト ウ ェ ア ・ プ リ フ ァ レ ン ス SDM_PORT には、 こ れ ら のピ ン を確保する た<br />

めの組み合わせがい く つか用意されています。<br />

内部 WISHBONE モー ド<br />

内蔵の WISHBONE イ ン ターフ ェ イ ス を使用する と 、WISHBONE ホ ス ト がデバ イ スのコ ン フ ィ グ レーシ ョ ン ・<br />

リ ソースにアクセスできます。デバイスがユーザモードで動作中、WISHBONEホストはデバイスの WISHBONE ス レーブ ・ イ ン ターフ ェ イ ス を制御し て、 オンチ ッ プの CFM の リ ー ド ま たは ラ イ ト を行います。<br />

こ のモー ド は USERCODE や TraceID な どの コ ン フ ィ グ レーシ ョ ン ・ リ ソースか ら のデータ読み出し に特に<br />

便利です。 ま たユーザアプ リ ケーシ ョ ンのためにオンチ ッ プフ ラ ッ シ ュ の UFM セ ク シ ョ ン を管理する ため<br />

の、 高速イ ン ターフ ェ イ スにな り ます。<br />

内部 WISHBONE モー ド は、 デバ イ スの組み込み機能ブ ロ ッ ク (EFB) が設計内で使用 さ れる と 利用可能にな<br />

り ます。 EFB にはハー ド マ ク ロ化された IP (SPI コ ア、 I 2 Cコア、タイマ/カウンタコアなど)が含まれてい<br />

ます。 ま た EFB は UFM 制御用の イ ン タ フ ェースに も なっています。 オンチ ッ プ ・ フ ラ ッ シ ュ メ モ リ にア ク<br />

セ スする ためには、 EFB 内の UFM モジ ュールを設計内で イ ン ス タ ン ス化する必要があ り ます。<br />

Flash<br />

REFRESH<br />

EBR<br />

14-17 TN1204JP_01.3e


<strong>MachXO2</strong> ユーザガ イ ド<br />

ラティスセミコンダクター プログラミングとコンフィグレーション<br />

WISHBONEスレーブ・インターフェイスのピン、EFBのレジスタマップ、及びWISHBONEレジスタ定義の<br />

詳細につい て は、 TN1205, Using User Flash Memory <strong>and</strong> Hardened Control Functions in <strong>MachXO2</strong> Devices<br />

(<strong>MachXO2</strong> デバイ スのユーザフ ラ ッ シ ュ メ モ リ と ハー ド マ ク ロ化機能の使用法) を参照し て く だ さ い。<br />

ソ フ ト ウ ェ ア選択オプシ ョ ン<br />

<strong>MachXO2</strong> デバ イ スのコ ン フ ィ グ レーシ ョ ン を、 デフ ォル ト 設定か ら変更し て制御する には、 ソ フ ト ウ ェ ア属<br />

性 / プ リ フ ァ レ ン ス (attribute/preference) が使用されます。 属性 / プ リ フ ァ レ ン スは、 コ ン フ ィ グ レーシ ョ<br />

ンモー ド / ポー ト 関連、 ビ ッ ト ス ト リ ーム生成関連、 セキ ュ リ テ ィ 関連、 と い う 3 つのカテゴ リ に分類で き<br />

ます。全てのプリファレンスはグローバル設計制約と見なされ、設計ソフトウェアのスプレッドシート・<br />

ビ ュー (Spreadsheet View) に表示 さ れます。<br />

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

これらのオプシ ョ ンは、 デバイ スが正常にコンフ ィ グレーシ ョ ン後のユーザモードにおける、 プログラム及<br />

びコ ン フ ィ グ レーシ ョ ン ・ ポー ト の使用可否を決定し ます。 ピ ンが入力か出力かは選択し たオプシ ョ ンに依<br />

存します。<br />

表 14-10. コ ン フ ィ グ レーシ ョ ン ・ モー ド / ポー ト オプシ ョ ン<br />

オプシ ョ ン名 デフォル ト 設定 全ての設定値<br />

JTAG_PORT ENABLE DISABLE, ENABLE<br />

SLAVE_SPI_PORT DISABLE DISABLE, ENABLE<br />

MASTER_SPI_PORT DISABLE DISABLE, ENABLE<br />

I2C_PORT DISABLE DISABLE, ENABLE<br />

SDM_PORT 1<br />

PROGRAMN DISABLE, PROGRAMN, PROGRAMN_DONE, PROGRAMN_DONE_INITN<br />

MCCLK_FREQ 2.08 記述参照<br />

ENABLE_TRANSFR DISABLE DISABLE, ENABLE<br />

1. SDM_PORT のデフ ォル ト 値は、 ispLEVER 8.1 および Diamond 1.1 以降は DISABLE に変更されています。<br />

JTAG ポー ト<br />

デフ ォル ト で制約 JTAG_PORT が ENABLE に設定 さ れ、 ispJTAG ポー ト は有効になっています。 4 本の JTAG<br />

ピ ンはユーザモー ド では専用ピ ンにな り ます。JTAG_PORT 制約が DISABLE に変更さ れる と 、4 本の JTAG ピ<br />

ンはユーザ I/O にな り 、 JTAGENB ピ ンが専用ピ ンにな り ます。 こ れら のピ ン をユーザ I/O と し てのみ使用<br />

する と きは、 JTAGENB を Low に固定する必要があ り ます。<br />

スレーブ SPI ポート<br />

ユーザモード時にス レーブ SPI ポー ト を使用し てオンチッ プ ・ フ ラ ッ シ ュ メ モ リ にア ク セスするには、<br />

SLAVE_SPI_PORT 制約を ENABLE に設定する必要があ り ます。 こ のプ リ フ ァ レ ン ス をセ ッ ト する と 、 ス レー<br />

ブ SPI ポー ト ピ ンが確保さ れて、 ユーザモー ド 時に外付けマ ス タデバ イ スか らデバ イ スにア ク セ スで き る よ<br />

う にな り ます。 ま た こ れに よ って、 ソ フ ト ウ ェ アはス レーブ SPI ポー ト ピ ンが予約済みで ソ フ ト ウ ェ アエン<br />

ジン ま たはユーザが使用で き ない こ と も認識し ます。<br />

マスタ SPI ポート<br />

マ ス タ SPI ポー ト を コ ン フ ィ グ レーシ ョ ンに使用する には、 MASTER_SPI_PORT プ リ フ ァ レ ン ス を ENABLE<br />

に設定する必要があ り ます。 こ のポー ト を確保する と 、 ユーザモー ド で外付け SPI フ ラ ッ シ ュ と の接続を維<br />

持でき ます。 このポー ト では、 デバイ ス ・ コ ンフ ィ グレーシ ョ ン用にデュ アルブー ト 機能が可能にな り、<br />

ispJTAG ポー ト か ら外付け SPI フ ラ ッ シ ュ のプ ロ グ ラ ミ ン グが可能です。 マス タ SPI ポー ト がユーザ機能の<br />

ためのみであ り、 デバイ ス ・ コンフ ィ グレーシ ョ ンのためではない場合、 本プ リ フ ァ レンスは EBR_USER に<br />

設定されるべき です。 こ れに よ り 、 ポー ト はマ ス タ SPI 機能のために予約 さ れますが、 デュ アルブー ト 機能<br />

をバイパスします。<br />

14-18 TN1204JP_01.3e


<strong>MachXO2</strong> ユーザガ イ ド<br />

ラティスセミコンダクター プログラミングとコンフィグレーション<br />

I 2 Cポート<br />

制約 I2C_PORT を ENABLE に設定する と 、こ のポー ト はユーザモー ド で専用 I 2 Cポートとして確保されます。<br />

こ のポー ト はユーザモー ド 時にフ ラ ッ シ ュ のプ ロ グ ラ ミ ン グに使用する こ と も、 ユーザ機能用の I 2 Cポート<br />

と し て使用する こ と も で き ます。<br />

SDM ポー ト<br />

SDM_PORT プ リ フ ァ レ ン ス を使用する と PROGRAMN と INITN、 及び DONE ピ ンはユーザモー ド で専用コ ン<br />

フ ィ グ レーシ ョ ン ・ ピ ン と し て確保されます。 こ のプ リ フ ァ レ ン スには、 次の 4 つの設定があ り ます。<br />

• DISABLE :ピンが汎用ユーザI/Oに回復されます<br />

• PROGRAMN : PROGRAMN ピ ン をユーザモー ド に確保し ます<br />

• PROGRAMN_DONE : PROGRAMN と DONE の両ピ ン をユーザモー ド で確保し ます<br />

• PROGRAMN_DONE_INITN : 3 本全ピンをユーザモード で専用ピン と し て確保し ます<br />

マ ス タ SPI モー ド では SDM_PORT 制約を有効にする こ と を推奨し ます。こ れは PROGRAMN ピ ンの ト グルが、<br />

デバイ スの電源再投入以外にMSPIモー ド を ト リ ガする唯一の方法だか ら です。MASTER_SPI_PORTがENABLE<br />

に設定されてい る場合、 設計ソ フ ト ウ ェ アは SDM_PORT を有効にする よ う にユーザに促し ます。<br />

MCCLK 周波数<br />

<strong>MachXO2</strong> がマ ス タデバイ スの場合、 MCLK/CCLK ピ ンはユーザが設定し た周波数の ク ロ ッ ク 出力にな り ま<br />

す。 デフ ォル ト のマ ス タ ク ロ ッ ク 周波数は 2.08MHz です。 ユーザは、 MCCLK_FREQ プ リ フ ァ レ ン ス を設定<br />

する こ と で、 マ ス タ ク ロ ッ ク 周波数を決定で き ますが、 こ の制約は MSPI モー ド のみで使用 さ れます。 ユー<br />

ザが変更し た MCCLK 周波数の選択値が有効にな る のは、 <strong>MachXO2</strong> デバ イ スが外付け SPI フ ラ ッ シ ュ か ら<br />

ブー ト さ れた場合だけです。オンチ ッ プ・フ ラ ッ シ ュはJEDECフ ァ イ ルのMCCLK周波数設定を制御し ません。<br />

MCCLK 周波数を指定変更する場合はス レーブデバイ スの周波数仕様を超えない よ う に し、 ま た PCB レ イ ア<br />

ウ ト のシグナル ・ イ ンテグ リ テ ィ に注意する必要があ り ます。 設計 ソ フ ト ウ ェ アにおけ る MCCLK FREQ の<br />

選択範囲は 2.08MHz ~ 133MHz です。<br />

ビ ッ ト ス ト リ ーム生成オプシ ョ ン<br />

ビ ッ ト ス ト リ ーム生成を決定する オプシ ョ ンはい く つかあ り ます。 表 14-11 はそれら を ま と めた も のです。<br />

表 14-11. ビ ッ ト ス ト リ ーム生成オプシ ョ ン<br />

オプシ ョ ン名 デフォル ト 設定 全ての設定値<br />

GENERATE_BITSTREAM DISABLE DISABLE, ENABLE<br />

COMPRESS_CONFIG ON OFF, ON<br />

CONFIGURATION 1<br />

CFG CFG, CFG_EBRUFM, CFGUFM, EXTERNAL<br />

USERCODE_FORMAT BINARY HEX, BINARY, ASCII<br />

USERCODE 全てゼロ 32 ビ ッ ト の任意値<br />

CUSTOM_IDCODE_FORMAT BINARY HEX, BINARY<br />

CUSTOM_IDCODE 全てゼロ 32 ビ ッ ト の任意値<br />

SHAREDEBRINIT DISABLE DISABLE, ENABLE<br />

1. ispLEVER 8.1 および Diamond 1.1 では、 デフ ォル ト 値が CFG_EBRUFM です。<br />

GENERATE BITSTREAM<br />

設計ソ フ ト ウ ェ アはデフ ォル ト で <strong>MachXO2</strong> デバ イ スのプ ロ グ ラ ミ ン グ用 JEDEC フ ァ イ ルを生成し ます。 本<br />

制約が ENABLE に設定する と 、 バ イ ナ リ ・ ビ ッ ト ス ト リ ーム (.bit フ ァ イル) も生成する よ う に指示 さ れま<br />

す。 こ のビ ッ ト ス ト リ ームは、 外付け SPI フ ラ ッ シ ュ のプ ロ グ ラ ミ ン グに有用です。<br />

14-19 TN1204JP_01.3e


<strong>MachXO2</strong> ユーザガ イ ド<br />

ラティスセミコンダクター プログラミングとコンフィグレーション<br />

COMPRESS_CONFIG<br />

デフ ォル ト では生成される全てのビ ッ ト ス ト リ ームが圧縮されます。 オンチ ッ プ ・ CFM は、 SRAM メ モ リ よ<br />

り もややサ イ ズが小さ いためです。 こ のプ リ フ ァ レ ン ス を OFF にする こ と は、 コ ン フ ィ グ レーシ ョ ン ・ デー<br />

タ の格納に外付けデバイ ス を使用する場合のみです。<br />

こ の制約は GENERATE_BITSTREAM 制約が有効な場合のみ効果があ り 、 COMPRESS_CONFIG はビ ッ ト ス ト<br />

リ ームの生成だけに影響を与え ます。 <strong>MachXO2</strong> 用の JEDEC フ ァ イ ルは常に圧縮形式で生成 さ れます。<br />

CONFIGURATION<br />

CFM 及び UFM フ ラ ッ シ ュ セ ク タ の使用率を指定し ます。 こ のプ リ フ ァ レ ン スで使用可能な 4 つのオプシ ョ<br />

ンそれぞれに、 固有の用途があ り ます。<br />

• CFG_EBRUFM : コ ン フ ィ グ レーシ ョ ン ・ ビ ッ ト ス ト リ ーム (EBR 初期化データ を含ま ない) が CFM に格<br />

納 さ れます。 EBR 初期化データ があ る場合は、 UFM セ ク タ の最下位ページア ド レ ス (先頭がページ 0)<br />

に格納されます<br />

• CFG : コ ン フ ィ グ レーシ ョ ン ・ ビ ッ ト ス ト リ ーム (EBR 初期化データ があ る場合は こ れを含む) が CFM<br />

に格納され、 UFM にオーバフ ローし ません。 その結果 UFM セ ク タ全体を汎用フ ラ ッ シ ュ メ モ リ と し て利<br />

用でき ます<br />

• CFGUFM : メ モ リ 空間が余分に必要な場合に、 コ ン フ ィ グ レーシ ョ ン ・ ビ ッ ト ス ト リ ーム (EBR 初期化<br />

データ があ る場合は こ れを含む) が UFM にオーバフ ローする こ と を許可し ます。 ユーザはユーザモー ド<br />

の UFM への書き込み権限があ り ません<br />

• EXTERNAL : コ ン フ ィ グ レーシ ョ ン ・ ビ ッ ト ス ト リ ーム (EBR 初期化データ があ る場合は こ れを含む) が<br />

外付け メ モ リ デバイ スに格納されます。 UFM セ ク タ全体を汎用フ ラ ッ シ ュ メ モ リ と し て利用で き る よ う<br />

にな り ます<br />

現行バージ ョ ンの設計ソ フ ト ウ ェ アでは、 こ のプ リ フ ァ レ ン スの ソ フ ト ウ ェ ア ・ デフ ォル ト が CFG です 注1 。<br />

こ れに よ り 、 内部 WISHBONE イ ン ターフ ェ イ スか ら の EBR 初期化データ のダ イナ ミ ッ ク ・ ア ッ プデー ト が<br />

可能にな り ます。 こ のオプシ ョ ン を使用する と 、 EBR 初期化データ のマ ッ ピ ン グ後に未使用だった全ての<br />

UFM ページを、 汎用フ ラ ッ シ ュ メ モ リ と し て利用で き ます。<br />

CFM 空間が設計ビ ッ ト ス ト リ ームに対し て不十分な場合は、 CFGUFM ま たは EXTERNAL オプシ ョ ン を使用<br />

して、 必要なメモリ空間を用意するよ うにしてください。 CFGUFM オプションでは、 ビッ ト ス ト リームを<br />

UFM 空間にオーバフ ローで き ます。 こ のモー ド では UFM をユーザ機能に利用で き ません。 EXTERNAL オプ<br />

シ ョ ンでは、 ビ ッ ト ス ト リ ーム全体を外付け メ モ リ デバイ スに格納で き ます。 ビ ッ ト ス ト リ ーム ・ フ ァ イル<br />

は生成さ れますが、 JEDEC フ ァ イルではないため、 GENERATE_BITSTREAM 制約を ENABLE に設定する必要<br />

があ り ます。 デバイ ス を外付け SPI フ ラ ッ シ ュ メ モ リ か ら起動する ために、 こ のオプシ ョ ン を MSPI モー ド<br />

と 組み合わせる こ と があ り ます。<br />

UFM は、 最小の <strong>MachXO2</strong> デバ イ スであ る <strong>MachXO2</strong>-256 にはあ り ません。<br />

USERCODE<br />

ユーザは 32 ビ ッ ト USERCODE フ ィ ール ド に特定の値を指定で き ます。 こ の編集可能な フ ィ ール ド に表示及<br />

び許容される フ ォーマ ッ ト は、 USERCODE_Format を選択する設定に対応し ます。<br />

USERCODE_FORMAT<br />

このプリファレンスは、USERCODE フィールドのエントリのフォーマットを決定します。有効な選択肢は<br />

HEX、 BINARY、 ASCII です。<br />

1. 英語オリジナル版は誤り<br />

14-20 TN1204JP_01.3e


<strong>MachXO2</strong> ユーザガ イ ド<br />

ラティスセミコンダクター プログラミングとコンフィグレーション<br />

CUSTOM_IDCODE<br />

ユーザは 32 ビ ッ ト の CUSTOM_IDCODE フ ィ ール ド の値を指定する こ と がで き ます。CUSTOM_IDCODE はフ<br />

ラ ッ シ ュ メ モ リ のフ ィ ーチャ行 (Feature Row) にあ り ます。 こ の値は MY_ASSP プ リ フ ァ レ ン スが イ ネーブル<br />

さ れた場合のデバイ ス IDCODE と し て用い ら れます。<br />

CUSTOM_IDCODE_FORMAT<br />

本プ リ フ ァ レ ン スは CUSTOM_IDCODE フ ィ ール ド のエン ト リ ー形式を決定し ます。 有効な選択は HEX と<br />

BINARY です。<br />

SHAREDEBRINIT<br />

本プ リ フ ァ レ ン スが ENABLE に設定 さ れる こ と で、 ユニー ク な メ モ リ 初期化フ ァ イルのコ ピーを フ ラ ッ シ ュ<br />

メ モ リ に格納で き る よ う にな り ます。 複数の EBR で こ の初期化値の コ ピーを共有する こ と がで き ます。 こ れ<br />

に よ り デザ イ ンのビ ッ ト ス ト リ ームサ イ ズを削減し、 他の用途のために UFM スペース を確保で き ます。<br />

セキュ リ ティ ・ オプシ ョ ン<br />

<strong>MachXO2</strong> デバイ ス フ ァ ミ リ には様々なレベルのセキ ュ リ テ ィ が用意され、ユーザ設計の信憑性が保護されま<br />

す。 こ う し たセキ ュ リ テ ィ 機能は ソ フ ト ウ ェ アのプ リ フ ァ レ ン スに よ って対応し ます。<br />

表 14-12. セキ ュ リ テ ィ ・ オプシ ョ ン<br />

オプシ ョ ン名 デフ ォル ト 設定 全ての設定値<br />

TRACE_ID 全てゼロ 8 ビ ッ ト 任意値<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 />

TraceID は <strong>MachXO2</strong> デバ イ スの新機能です。 同一の設計を使用し なが ら も、 シ リ コ ン ご と にユニー ク な 64<br />

ビ ッ ト ID と し て提供されます。 こ れは設計ご と に同じ にな る従来の USERCODE と は異な り ます。<br />

TraceID の 8 ビ ッ ト はフ ラ ッ シ ュ メ モ リ のフ ィ ーチ ャ行 (Feature Row) に格納 さ れ、 ユーザがプ ロ グ ラ ム可<br />

能です。残 り の 56 ビ ッ ト にはチ ッ プに格納 さ れた製造情報が含まれます。64 ビ ッ ト TraceID は ispJTAG ポー<br />

ト 及び sysCONFIG ポー ト か ら読み出し可能です。<br />

TraceID の用途の詳細については、TN1207, Using TraceID in <strong>MachXO2</strong> Devices(<strong>MachXO2</strong> デバ イ ス内の TraceID<br />

使用法) を参照し て く だ さ い。<br />

MY ASSP<br />

従来は ラ テ ィ スのデバイ ス ご と に JTAG IDCODE と も呼ばれる、 専用のデバ イ ス IDCODE があ り ま し た。 デ<br />

バイ ス IDCODE はデバイ ス フ ァ ミ リ ご と にユニー ク です。 た と えば <strong>MachXO2</strong> デバイ スのデバ イ ス IDCODE<br />

は、 E デバイ ス (1.2V) と C デバイ ス (2.5V 及び 3.3V) で異な り ます。 こ のプ リ フ ァ レ ン ス を使用する と 、<br />

<strong>MachXO2</strong> デバ イ スがユーザ指定のデバ イ ス IDCODE を持つこ と がで き ます。<br />

MY_ASSP プ リ フ ァ レ ン ス を ON に設定する と 、 デバイ ス IDCODE と し て 32 ビ ッ ト カ ス タ ム IDCODE コー ド<br />

が使用されます。 MY_ASSP 制約がセ ッ ト さ れる と 、 ラ テ ィ スのプ ロ グ ラ ミ ン グ ・ ソ フ ト ウ ェ ア ispVM TM はデ<br />

バイ ス IDCODE を認識で き ないため、 そのデバイ スに対応で き な く な り ます。 ユーザは ispVM シ ス テム ソ フ<br />

ト ウ ェ アで SVF フ ローを使用し、 デバ イ スのプ ロ グ ラ ミ ン グサポー ト を可能にする必要があ り ます。<br />

CONFIG_SECURE<br />

こ のプ リ フ ァ レ ン ス を ON に設定する と 、 SRAM メ モ リ 及び CFM の リ ー ド バ ッ ク がブ ロ ッ ク さ れます。 ま<br />

た、ビ ッ ト ス ト リ ームが UFM ブ ロ ッ ク にはみ出す場合、UFM の リ ー ド バ ッ ク はブ ロ ッ ク さ れます。<strong>MachXO2</strong><br />

14-21 TN1204JP_01.3e


<strong>MachXO2</strong> ユーザガ イ ド<br />

ラティスセミコンダクター プログラミングとコンフィグレーション<br />

デバイ ス を リ ー ド バ ッ ク する こ と も、 消去せずにプ ロ グ ラ ムする こ と も で き な く な り ます。 セキ ュ リ テ ィ 設<br />

定を リ セ ッ ト する には、 デバイ ス を消去する必要があ り ます。 セキ ュ リ テ ィ ・ ヒ ューズを リ セ ッ ト する と 、<br />

デバイ ス を再びプロ グ ラ ムでき ます。<br />

ONE_TIME_PROGRAM<br />

<strong>MachXO2</strong>にはワンタイム・プログラマブル (OTP) ヒューズがあり、オンチップメモリの消去またはプログ<br />

ラ ムの防止に使用で き ます。 <strong>MachXO2</strong> デバ イ スには、 SRAM、 CFM、 UFM、 フ ィ ーチ ャ行の各 メ モ リ セ ク タ<br />

用にそれぞれ 1 つずつ、 合計 4 セ ッ ト の OTP セキ ュ リ テ ィ ・ ヒ ューズがあ り ます。 こ のプ リ フ ァ レ ン スに<br />

よ って、 各 メ モ リ セ ク タ に OTP セキ ュ リ テ ィ を設定する こ と がで き ます。<br />

• FLASH : CFM 及びフィーチャ行を消去またはプログラムできません • FLASH_UFM :CFM、 フィーチャ行、及びUFMを消去またはプログラムできません<br />

• FLASH_UFM_SRAM :CFM、フィーチャ行、UFM、及びSRAMを消去またはプログラムできません<br />

フ ラ ッ シ ュ メ モ リ の ONE_TIME_PROGRAM 制約が設定される と 、 オンチ ッ プ ・ フ ラ ッ シ ュ メ モ リ を消去ま た<br />

はプログラムできなくなります。 これによりコンフィグレーション・データの変更が防止されますが、SDM<br />

モー ド を使用し てデバイ ス を コ ン フ ィ グ レーシ ョ ンする こ と は可能です。<br />

ONE_TIME_PROGRAM 制約が FLASH_UFM_SRAM メ モ リ に設定される と 、 デバイ スは ASIC の よ う にな り ま<br />

す。しかしこの状態でもオンチップ・フラッシュメモリまたはSPIフラッシュからのSRAMのコンフィグレー<br />

シ ョ ンは可能です。<br />

デバイ スのウ ェ イ ク ア ッ プ ・ シーケン ス<br />

コ ン フ ィ グ レーシ ョ ンが完了する と (SRAM に ロー ド さ れる と )、 デバ イ スは予測可能な方法で ウ ェ イ ク ア ッ<br />

プし ます。 <strong>MachXO2</strong> デバイ スがチェ イ ン内の唯一のデバイ ス、 またはチェ イ ン内の最後のデバイ スであ る場<br />

合、 コ ン フ ィ グ レーシ ョ ンの完了に よ って、 ウ ェ イ ク ア ッ プ ・ プ ロ セ スが起動 さ れる必要があ り ます。 コ ン<br />

フ ィ グ レーシ ョ ンが完了する と 、内部 DONE ビ ッ ト が設定され、 ウ ェ イ ク ア ッ プ ・ プ ロ セスが開始さ れます。<br />

図 14-9 に内部 ク ロ ッ ク を使用し た ウ ェ イ ク ア ッ プ ・ シーケ ン ス を示し ます。<br />

図 14-9. 内部 ク ロ ッ ク の ウ ェ イ ク ア ッ プ ・ シーケ ン ス<br />

MCLK/CCLK<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 />

14-22 TN1204JP_01.3e


<strong>MachXO2</strong> ユーザガ イ ド<br />

ラティスセミコンダクター プログラミングとコンフィグレーション<br />

れ (Low)、 ウェイクアップ ・ シーケンスで解除される (High)<br />

• GWDIS 信号が Low の と きはデバイ ス内の RAM ブ ロ ッ ク と LUT の整合性が保全 さ れる。 デバ イ スのウ ェ<br />

イ ク ア ッ プ前、 こ の信号は Low になってい る。 こ の制御信号は、 デバイ スのプ ラ イ マ リ 入力ピ ン を制御<br />

し ないが、 EBR 及び LUT の特定の制御ポー ト を制御する<br />

• GOE信号がLowのときはデバイスのI/Oバッファがピンを制御できなくなる<br />

• DONEピンが High のと きは、 コンフ ィ グレーシ ョ ンが完了しエラーが検出されなかったこ と を示す<br />

ウェイクアップ・ クロックの選択<br />

内部ウ ェ イ ク ア ッ プ ・ シーケ ン スの ク ロ ッ ク 源はユーザが選択可能です。 <strong>MachXO2</strong> はコ ン フ ィ グ レーシ ョ ン<br />

が終わるとウェイクアップ状態になり、 コンフィグレーション ・ モードからユーザモードに遷移します。 こ<br />

のシーケンスはクロック源と同期し、デフォルトのクロック源はsysCONFIG使用時はMCLK/CCLKに、JTAG<br />

使用時は TCK にな り ます。<br />

必要に応じ て内部ク ロ ッ ク源の代わ り にユーザ定義の ク ロ ッ ク源を使用でき ます。 ユーザはこのク ロ ッ ク信<br />

号を指定し、 設計内で START ラ イ ブ ラ リ ・ エレ メ ン ト を イ ン ス タ ン ス化する必要があ り ます。 次の例は<br />

START のインスタンス化の正しい構文を示しています。<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 />

14-23 TN1204JP_01.3e


<strong>MachXO2</strong> ユーザガ イ ド<br />

ラティスセミコンダクター プログラミングとコンフィグレーション<br />

参考資料<br />

• <strong>MachXO2</strong> Family Data Sheet (<strong>MachXO2</strong> フ ァ ミ リ ・ データ シー ト )<br />

• TN1205、 Using User Flash Memory <strong>and</strong> Hardened Control Functions in <strong>MachXO2</strong> Devices (ユーザフ ラ ッ シ ュ<br />

メ モ リ と ハー ド マ ク ロ化制御機能の使用法)<br />

• TN1207, Using TraceID in <strong>MachXO2</strong> Devices (<strong>MachXO2</strong> デバイ スの TraceID 使用法)<br />

テクニカルサポート<br />

ホ ッ ト ラ イ ン : 1-800-LATTICE (北米)<br />

+1-503-268-8001 (北米以外)<br />

電子 メ ール :techsupport@latticesemi.com<br />

インターネッ ト :www.latticesemi.com<br />

日本語版改版履歴<br />

リ リ ース バージ ョ ン 該当新ページ 更 新 内 容<br />

2010 年 11 月 01.0 初版<br />

14-4 表 14-2 の次にパ ラ グ ラ フ追加<br />

14-11, -12 フ ラ ッ シ ュ ・ プ ロ グ ラ ミ ング章追加、 表 14-7 追加<br />

14-14, -15 I2C モー ド の章記述変更、 表 14-9 追加<br />

2011 年 8 月 01.1, 01.2, 01.3<br />

14-17<br />

14-19<br />

表 14-10 更新 (行追加)<br />

表 14-11 更新 (行追加など)<br />

14-20 プ リ フ ァ レ ン ス 3 つの記述追加、 表 14-12 更新<br />

14-24...30 付録 A / B 追加<br />

その他マ イ ナーな記述変更 ・ 追加多数<br />

2011 年 8 月 1.3c 14-25 下か ら 4 行目コ マン ド の記述訂正<br />

2011 年 9 月 1.3d 14-15 SPI 開始ア ド レ ス記述追加<br />

2011 年 10 月 1.3e 14-17 上から 4 行目をマイナ修正<br />

14-24 TN1204JP_01.3e


<strong>MachXO2</strong> ユーザガ イ ド<br />

ラティスセミコンダクター プログラミングとコンフィグレーション<br />

付録 A. <strong>MachXO2</strong> ス レーブ I 2 C プ ロ グ ラ ミ ン グガ イ ド<br />

ユーザ I 2 Cポート機能として、またはデバイス・プログラミングポート として<strong>MachXO2</strong>デバイスのプライマ<br />

リI 2 C ポー ト を用い る こ と がで き ます。デバ イ スのプ ロ グ ラ ミ ン グか コ ン フ ィ グ レーシ ョ ンに用い ら れる時、<br />

プライマリ I 2 C ポートはスレーブ I 2 C で、 デフォルト のスレーブアド レスが 7 ビッ ト アド レシングでは<br />

7'b100_0000、 10 ビ ッ ト ア ド レ シングでは 10'b11_1100_0000 です。 I 2 Cプロトコルを用いたデバイスプログラ<br />

ミ ン グに対応する ためには、 プ ラ イ マ リ I 2 Cポートをイネーブルしなければなりません。これはソフトウェ<br />

アで I2C_PORT プ リ フ ァ レ ン ス を ENABLE に設定する こ と で行います。 I 2 C プ ロ グ ラ ミ ン グは単一デバ イ ス<br />

のプログラ ミ ングに対応し ます。<br />

I 2 C ポー ト を用い るデバ イ スプ ロ グ ラ ミ ン グのためのシーケ ン スは、 ラ テ ィ ス標準的デバ イ スプ ロ グ ラ ミ ン<br />

グ・アルゴリズムに従います。 I 2 C バスのハードウェア要件とタイ ミング要件、 そして送受信プロ ト コルは<br />

I 2 C 仕様に従わなければな り ません。 SDA データ ホール ド タ イ ム (tHD; DAT) の定義は、 SCL 立ち下が り エ ッ<br />

ジの 30% VDD か ら、 SDA 立ち下が り エ ッ ジの 70% VDD、 ま たは SDA 立ち上が り エ ッ ジの 30% VDD までの遅<br />

延です。 SDA データ セ ッ ト ア ッ プ時間 (tSU: DAT) は、 SDA 立ち下が り エ ッ ジの 30% VDD、 ま たは SDA 立ち<br />

上が り エ ッ ジの 70% VDD か ら、 SCL 立ち上が り エ ッ ジの 30% VDD までの タ イ ミ ン グ要件です。 図 14-10 は<br />

I 2 C 仕様に基づ く I 2 C バス上のセ ッ ト ア ッ プ / ホール ド タ イ ム を示し ます。 I 2 C バス上の Fast モー ド お よ び<br />

St<strong>and</strong>ardモー ド デバ イ スに関する タ イ ミ ン グ定義やその他の タ イ ミ ン グ詳細に関し ては、 I 2 C 仕様を参照し て<br />

ください。<br />

Figure 14-10. 2 Cバスのセットアップとホールドタイム要件<br />

以下のアルゴ リ ズムは、 プ ラ イ マ リ I 2 Cポートを介して7ビットアドレシングで行うフラッシュのプログラ<br />

ミ ング ・ シーケンス と リ ードバッ ク ・ シーケンスの基本的な要件について概説し ます。 リ ードバッ ク ・ シー<br />

ケンスはプログラムされたデバイスをベリ ファイするために用いるこ とができます。 フラッシュ消去とプロ<br />

グ ラ ム、 およびベ リ フ ァ イ動作に対応する ためには、 2 つのシーケ ン ス を組み合わせる こ と がで き ます。<br />

ISC DISABLE コ マン ド を除いて、 全 I 2 C ス レーブ コ マン ド は 1 バイ ト のオペコー ド と 、 それに続 く 3 つの 1<br />

バイ トオペランド よ りなり ます。I 2 C プ ロ グ ラ ミ ン グのための ISC DISABLE コ マン ド は、1 バ イ ト のオペコー<br />

ドと、続く 2オペランドよりなります。また、I 2 Cプログラミングはバックグランドでもできます。この場<br />

合、 ISC ENABLE コ マン ド (0xC6) は LSC_ENABLE_X コ マン ド (0×74) に置き換え る必要があ り ます。<br />

フラッシュ消去とプログラミング<br />

オペラ ン ド 値 0x0C はコ ン フ ィ グ レーシ ョ ン ・ フ ラ ッ シ ュ と UFM を消去し ます。 初期化ア ド レ スは、 コ ン<br />

フィグレーションフラッシュは0x46、UFMは0x47です。<br />

14-25 TN1204JP_01.3e


<strong>MachXO2</strong> ユーザガ イ ド<br />

ラティスセミコンダクター プログラミングとコンフィグレーション<br />

// Enable the Flash, enter <strong>Programming</strong> Mode<br />

! Issue START<br />

! Transmit slave address with write (X80)<br />

! Transmit ISC ENABLE comm<strong>and</strong> (0xC6), followed by 3 oper<strong>and</strong>s (0x08, 0x00, 0x00)<br />

! Issue STOP<br />

// Erase the Flash (<strong>Configuration</strong> Flash <strong>and</strong> UFM)<br />

! Issue START<br />

! Transmit slave address with write (0x80)<br />

! Transmit ISC ERASE comm<strong>and</strong> (0x0E), followed by 3 oper<strong>and</strong>s (0x0C, 0x00, 0x00)<br />

! Issue STOP<br />

! Wait 5s for Flash erase<br />

//Program the <strong>Configuration</strong> Flash<br />

! Issue START<br />

! Transmit slave address with write (0x80)<br />

! Transmit LSC_INIT _ADDRESS comm<strong>and</strong> (0x46), followed by 3 oper<strong>and</strong>s (0x00, 0x00,<br />

0x00)<br />

! Issue STOP<br />

! Issue START<br />

! Transmit slave address with write (0x80)<br />

! Transmit LSC_PROG_INCR_NV comm<strong>and</strong> (0x70), followed by 3 oper<strong>and</strong>s (0x00, 0x00, 0x00)<br />

! Transmit one 16 data byte page<br />

! Issue STOP<br />

! Wait 1ms for Flash page programming<br />

! Repeat above comm<strong>and</strong> sequence “LSC_PROG_INCR_NV comm<strong>and</strong> + 3 oper<strong>and</strong>s + 1 page of<br />

! data + Wait” for all the Flash pages<br />

// Program the UFM<br />

! Issue START<br />

! Transmit slave address with write (0x80)<br />

! Transmit LSC_INIT_ADDR_UFM comm<strong>and</strong> (0x47), followed by 3 oper<strong>and</strong>s (0x00, 0x00,<br />

0x00)<br />

! Issue STOP<br />

! Issue START<br />

! Transmit slave address with write (0x80)<br />

! Transmit LSC_PROG_INCR_NV comm<strong>and</strong> (0x70), followed by 3 oper<strong>and</strong>s (0x00, 0x00, 0x00)<br />

! Transmit one 16 data byte page<br />

! Issue STOP<br />

! Wait 1ms for Flash page programming<br />

! Repeat above comm<strong>and</strong> sequence “LSC_PROG_INCR_NV comm<strong>and</strong> + 3 oper<strong>and</strong>s + 1 page of<br />

! data + Wait” for all the Flash pages<br />

// Program DONE bit<br />

! Issue START<br />

! Transmit slave address with write (0x80)<br />

! Transmit ISC PROGRAM DONE comm<strong>and</strong> (0x5E), followed by 3 oper<strong>and</strong>s (0x00, 0x00, 0x00)<br />

! Issue STOP<br />

14-26 TN1204JP_01.3e


<strong>MachXO2</strong> ユーザガ イ ド<br />

ラティスセミコンダクター プログラミングとコンフィグレーション<br />

// Exit <strong>Programming</strong> Mode<br />

! Issue START<br />

! Transmit slave address with write (0x80)<br />

! Transmit ISC DISABLE comm<strong>and</strong> (0x26), followed by 2 oper<strong>and</strong>s (0x00, 0x00)<br />

! Issue STOP<br />

フラッシュ ・ リードバック /ベリファイ<br />

データ リ ー ド バ ッ ク やベ リ フ ァ イ は同じ アルゴ リ ズ ム を用います。 I 2 C プ ロ ト コルでは、 データ転送の方向<br />

を変更する ために REPEATED START が必要です。 リ ー ド バ ッ ク さ れた最初のページは捨て ます。 各 メ モ リ<br />

スペースのページ数については、 本ド キ ュ メ ン ト のフ ラ ッ シュ ・ プロ グ ラ ミ ング章を参照し て く ださい。<br />

// Enable the Flash, enter <strong>Programming</strong> Mode<br />

! Issue START<br />

! Transmit slave address with write (X80)<br />

! Transmit ISC ENABLE comm<strong>and</strong> (0xC6), followed by 3 oper<strong>and</strong>s (0x08, 0x00, 0x00)<br />

! Issue STOP<br />

// READBACK or Verify the <strong>Configuration</strong> Flash<br />

! Issue START<br />

! Transmit slave address with write (0x80)<br />

! Transmit LSC_INIT_ADDRESS comm<strong>and</strong> (0x46), followed by 3 oper<strong>and</strong>s (0x00, 0x00, 0x00)<br />

! Issue STOP<br />

! Issue START<br />

! Transmit slave address with write (0x80)<br />

! Transmit LSC_READ_INCR_NV comm<strong>and</strong> (0x73), followed by 3 oper<strong>and</strong>s (0x10, 0xMM, 0xNN)<br />

!! where MMNN is a 16-bit value = (number_of_pages_to_read_back + 1) , number of<br />

pages<br />

!! for XO2-1200 <strong>Configuration</strong> Flash is 2175)<br />

! Issue STOP<br />

! Issue REPEATED START<br />

! Transmit slave address with read (0x81)<br />

! Receive 16 byte data (should be ignored)<br />

! Receive 16 byte data of page 1<br />

! Receive 16 byte data of page 2<br />

.<br />

.<br />

.<br />

! Receive 16 byte data of page MMNN<br />

! Issue STOP<br />

// READBACK or Verify the UFM<br />

! Issue START<br />

! Transmit slave address with write (0x80)<br />

! Transmit LSC_INIT_ADDR_UFM comm<strong>and</strong> (0x47), followed by 3 oper<strong>and</strong>s (0x00, 0x00,<br />

0x00)<br />

! Issue STOP<br />

! Issue START<br />

! Transmit slave address with write (0x80)<br />

14-27 TN1204JP_01.3e


<strong>MachXO2</strong> ユーザガ イ ド<br />

ラティスセミコンダクター プログラミングとコンフィグレーション<br />

! Transmit LSC_READ_INCR_NV comm<strong>and</strong> (0x73), followed by 3 oper<strong>and</strong>s (0x10, 0xMM, 0xNN)<br />

!! where MMNN is a 16-bit value = (number_of_pages_to_read_back + 1) , number of<br />

pages<br />

!! for XO2-1200 UFM is 512)<br />

! Issue STOP<br />

! Issue REPEATED START<br />

! Transmit slave address with read (0x81)<br />

! Receive 16 byte data (should be ignored)<br />

! Receive 16 byte data of page 1<br />

! Receive 16 byte data of page 2<br />

.<br />

.<br />

.<br />

! Receive 16 byte data of page MMNN<br />

! Issue STOP<br />

// Exit <strong>Programming</strong> Mode<br />

! Issue START<br />

! Transmit slave address with write (0x80)<br />

! Transmit ISC DISABLE comm<strong>and</strong> (0x26), followed by 2 oper<strong>and</strong>s (0x00, 0x00)<br />

! Issue STOP<br />

14-28 TN1204JP_01.3e


<strong>MachXO2</strong> ユーザガ イ ド<br />

ラティスセミコンダクター プログラミングとコンフィグレーション<br />

付録 B. <strong>MachXO2</strong> ス レーブ SPI プ ロ グ ラ ミ ン グガ イ ド<br />

デバイ スプロ グ ラ ミ ング と ユーザ機能に、 <strong>MachXO2</strong> デバイ スの SPI ポー ト を用いる こ と ができ ます。 ス レー<br />

ブ SPI モー ド に設定されてい る場合、ダ イ レ ク ト ま たはバ ッ ク グ ラ ン ド ・フ ラ ッ シ ュ プ ロ グ ラ ミ ン グに本ポー<br />

トを用いることができます。SPI プロトコルを用いるデバイスプログラミングに対応するためには、 スレー<br />

ブ SPI ポー ト がイネーブルされていなければな り ません。 これはソ フ ト ウ ェ アで SLAVE_SPI_PORT プ リ フ ァ<br />

レンスを ENABLEするこ とによって行います。 スレーブ SPI プログラ ミ ングは、 単一デバイスのプログラ ミ<br />

ングに対応します。<br />

ラティスのプログラ ミング ・ ソフト ウェア (ispVM System)は、 デバイスアクセス ・オプションの1つとして<br />

ス レーブ SPI プ ロ グ ラ ミ ン グモー ド に対応し ます。 こ のオプシ ョ ン を選択する こ と で、 デバ イ ス消去 と プ ロ<br />

グラ ミング、 ベリファイ、 リードバック、 そしてリフレッシュなどを実行できます。 ispVM System ソフト<br />

ウェアのプロジェク ト設定では、 スレーブ SPI ピンと ラティス ・ プログラ ミ ングケーブルとの接続を図 14-<br />

11 の よ う に示し ます。<br />

Figure 14-11. ケーブル と ス レーブ SPI ピ ンの接続<br />

スレーブ SPI のプログラ ミング ・ アルゴリズムは I 2 C のそれに非常に類似し ています。 主な違いは、 コ マン<br />

ド シーケ ン スの間にス レーブ SPI チ ッ プセレ ク ト ピ ン (SN) を Low に保持する こ と です。 ス レーブ SPI プ ロ グ<br />

ラミングモードのためにispVM System ソフトウェアによって生成されたSVFファイルは、コマンドシーケ<br />

ン スの詳細を示し ます。 以下は XO2-1200 デバイ スのス レーブ SPI SVF フ ァ イルに関する例です。<br />

フ ラ ッ シ ュ消去、 プ ロ グ ラ ム、 およびベ リ フ ァ イ<br />

SRAM やフラ ッシュのすべての内容を消去するために、 ISC ERASE コマン ド を用いる こ とができます。 ISC<br />

ERASE コ マン ド に関する オペラ ン ド のビ ッ ト 定義については、 本 ド キ ュ メ ン ト の付録 A を参照し て く だ さ<br />

い。READBACK 動作にはベ リ フ ァ イ ・アルゴ リ ズム を用い る こ と がで き ます。ス レーブ SPI コ マン ド のフ ォー<br />

マッ トは、 1 バイ トのオペコード と 3つの 1 バイ ト ・ オペランドから構成されます。<br />

ス レーブ SPI では、 データ と コマン ド はク ロ ッ クの立ち上が り エ ッ ジで SI/SISPI ピンからデバイ スに取 り 込<br />

まれます。 データは ク ロ ッ ク の立ち下が り エ ッ ジで SO/SPISO ピ ンか ら シ フ ト ア ウ ト さ れます。 リ ー ド コ マ<br />

ン ド のみが、 リ ードデータのために SO/SPISO ピンを イ ネーブルする こ と にな り ます。 コマン ド を発行し た<br />

後の 33 番目の ク ロ ッ ク周期で、 リ ー ド バ ッ ク やベ リ フ ァ イデータ が SO/SPISO ピ ン上に現れ始めます。 こ れ<br />

はコ マン ド をシ フ ト 入力する ために、 32 ク ロ ッ ク が必要なためです。<br />

14-29 TN1204JP_01.3e


<strong>MachXO2</strong> ユーザガ イ ド<br />

ラティスセミコンダクター プログラミングとコンフィグレーション<br />

//Enable the Flash, enter <strong>Programming</strong> Mode<br />

ISPEN LOW;<br />

! Shift in ISC ENABLE(0xC6) instruction<br />

SDR 32 TDI (00001063);<br />

ISPEN HIGH;<br />

RUNTESTIDLE1.00E-003 SEC;<br />

//Erase SRAM, <strong>Configuration</strong> Flash, UFM, <strong>and</strong> Feature Row<br />

ISPEN LOW;<br />

! Shift in ISC ENABLE(0xC6) instruction<br />

SDR 32 TDI (00000063);<br />

SDR 8 TDI (00);<br />

ISPEN HIGH;<br />

ISPEN LOW;<br />

! Shift in ISC ERASE(0x0E) instruction<br />

SDR 32 TDI (00008070); // erase SRAM<br />

ISPEN HIGH;<br />

RUNTESTIDLE2.50E-001 SEC;<br />

ISPEN LOW;<br />

! Shift in ISC ENABLE(0xC6) instruction<br />

SDR 32 TDI (00001063);<br />

ISPEN HIGH;<br />

ISPEN LOW;<br />

! Shift in ISC ERASE(0x0E) instruction<br />

SDR 32 TDI (00007070); // erase Flash<br />

ISPEN HIGH;<br />

RUNTESTIDLE1.00E-003 SEC;<br />

! Wait for 5s for Flash erase<br />

// Program <strong>Configuration</strong> Flash<br />

ISPEN LOW;<br />

! Shift in LSC_INIT_ADDRESS(0x46) instruction<br />

SDR 32 TDI (00000062);<br />

ISPEN HIGH;<br />

ISPEN LOW;<br />

! Shift in LSC_PROG_INCR_NV(0x70) instruction<br />

SDR 32 TDI (0000000E);<br />

! Shift in Data Row = 1<br />

SDR 128TDI (D01800000040000000DCFFFFCDBDFFFF);<br />

ISPEN HIGH;<br />

! Wait for 1 ms for Flash page programming<br />

// repeat until all the pages are transmitted<br />

// Program the UFM<br />

ISPEN LOW;<br />

! Shift in LSC_INIT_ADDR_UFM(0x47) instruction<br />

SDR 32 TDI (000000E2);<br />

ISPEN HIGH;<br />

ISPEN LOW;<br />

! Shift in LSC_PROG_INCR_NV(0x70) instruction<br />

SDR 32 TDI (0000000E);<br />

! Shift in Data Row = 1<br />

SDR 128TDI (00000000000000000000000000000000);<br />

ISPEN HIGH;<br />

14-30 TN1204JP_01.3e


<strong>MachXO2</strong> ユーザガ イ ド<br />

ラティスセミコンダクター プログラミングとコンフィグレーション<br />

! Wait for 1ms for Flash page programming<br />

// repeat until all the pages are transmitted<br />

//Verify <strong>Configuration</strong> Flash<br />

ISPEN LOW;<br />

! Shift in LSC_INIT_ADDRESS(0x46) instruction<br />

SDR 32 TDI (00000062);<br />

ISPEN HIGH;<br />

ISPEN LOW;<br />

! Shift in LSC_READ_INCR_NV(0x73) instruction<br />

SDR 160TDI (00000000000000000000000000000000FFFF08CE);<br />

! Shift out Data Row = 1<br />

SDR 128TDI (00000000000000000000000000000000)<br />

TDO (D01800000040000000DCFFFFCDBDFFFF);<br />

// repeat until all the pages are verified<br />

ISPEN HIGH;<br />

// Verify UFM<br />

! Shift in LSC_INIT_ADDR_UFM(0x47) instruction<br />

SDR 32 TDI (000000E2);<br />

ISPEN HIGH;<br />

ISPEN LOW;<br />

! Shift in LSC_READ_INCR_NV(0x73) instruction<br />

SDR 160TDI (00000000000000000000000000000000FFFF08CE);<br />

! Shift out Data Row = 1<br />

SDR 128TDI (00000000000000000000000000000000)<br />

TDO (00000000000000000000000000000000);<br />

// repeat until all the pages are verified<br />

//Program Feature Rows<br />

ISPEN LOW;<br />

! Shift in LSC_INIT_ADDRESS(0x46) instruction<br />

SDR 32 TDI (00004062);<br />

ISPEN HIGH;<br />

ISPEN LOW;<br />

! Shift in LSC_PROG_FEATURE( 0xE4) instruction<br />

SDR 32 TDI (00000027);<br />

SDR 64 TDI (0000000000C00000);<br />

ISPEN HIGH;<br />

// Program DONE bit<br />

ISPEN LOW;<br />

! Shift in ISC PROGRAM DONE(0x5E) instruction<br />

SDR 32 TDI (0000007A);<br />

ISPEN HIGH;<br />

// Exit the programming mode<br />

ISPEN LOW;<br />

! Shift in ISC DISABLE(0x26) instruction<br />

SDR 32 TDI (00000064);<br />

RUNTESTIDLE2.00E-001 SEC;<br />

ISPEN HIGH;<br />

14-31 TN1204JP_01.3e


<strong>MachXO2</strong> ユーザガ イ ド<br />

ラティスセミコンダクター プログラミングとコンフィグレーション<br />

14-32 TN1204JP_01.3e

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!