2026/01/28(水)MachXO2 Programming and Configuration User Guide
1. Introduction
MachXO2™はSRAMベースのプログラマブルロジックデバイスであり、内蔵フラッシュメモリを備えることでMachXO2を不揮発性デバイスとして機能させます。MachXO2はFPGAのプログラミングおよび設定のための豊富な機能セットを提供します。ニーズに合ったプログラミングソリューションを構築するための多くの選択肢が用意されています。
利用可能な各オプションについて詳細に説明しているため、ご自身の要件を満たすプログラミングおよび設定ソリューションを組み立てることが可能です。
2. MachXO2 Features
Key programming and configuration features of MachXO2 devices are:• Multiple programming and configuration interfaces:
- 1149.1 JTAG
- Self-download
- Slave SPI
- Master SPI
- Dual Boot
- I2C
- WISHBONE bus
3. Definition of Terms
• BIT – BITファイルは、外部SPIフラッシュに保存されるMachXO2のコンフィギュレーションデータです。これはバイナリファイルであり、変更なしでSPIフラッシュに書き込まれます。• コンフィギュレーション – コンフィギュレーションとは、MachXO2のSRAMメモリセルの状態変更を指します。
• コンフィギュレーションデータ – 不揮発性メモリから読み出され、FPGAのSRAMコンフィギュレーションメモリにロードされるデータです。ビットストリームまたはデバイスビットストリームとも呼ばれます。
• コンフィギュレーションモード – MachXO2が不揮発性メモリからコンフィギュレーションデータを取得する方法を定義します。
• 内部フラッシュメモリ – JEDファイルまたはBITファイルは内部フラッシュセクターに直接プログラム可能です。ユーザーは構成データの実際のページ開始位置を把握する必要はありません。MachXO2構成エンジンがフラッシュからSRAMへの転送時の解析処理を処理します。
• JEDEC – JEDECファイルには、MachXO2の構成フラッシュ、ユーザーフラッシュメモリ、機能行、機能ビットにプログラムされる構成データが含まれます。フォーマット情報は本技術ノート後述で提供されます。
• オフラインモード – オフラインモードは、不揮発性メモリのプログラミングとSRAM構成の両方に適用される用語です。オフラインモードプログラミング/構成を使用する場合、FPGAはユーザーモードで動作しなくなります。
不揮発性メモリまたはSRAM構成メモリの内容は更新されますが、MachXO2はオフラインモードのプログラミング/構成が完了するまでロジック演算を実行しません。
• ポート – ポートとは、プログラミングおよび一部の設定操作を実行するために使用される物理接続を指します。
MachXO2のポートには、JTAG、SPI、I2C、WISHBONE物理接続が含まれます。
• プログラミング:プログラミングとは、内部または外部の不揮発性構成メモリの内容を変更するプロセスを指します。
• 透過モード – 透過モードは、MachXO2をユーザーモードのまま維持しながら、構成フラッシュメモリとユーザーフラッシュメモリを更新するために使用されます。
• ユーザーモード – 構成が完了し、FPGAがプログラムされた論理機能を実行している状態をユーザーモードと呼びます。
4. Configuration Details
MachXO2デバイスには、SRAMとフラッシュメモリの2種類のメモリが搭載されています。SRAMメモリにはアクティブ構成データが格納されており、これは本質的にFPGAの動作を定義する「ヒューズ」に相当します。アクティブ構成データは、ほとんどの場合、不揮発性メモリから読み出されます。不揮発性メモリは、FPGAのSRAMにロードされる構成データを保持します。MachXO2は、MachXO2のSRAMにロードされた構成データを保存する内蔵フラッシュメモリを提供します。
5. Configuration Process and Flow
Prior to becoming operational, the FPGA goes through a sequence of states, including initialization, configuration andwake-up.
MachXO2のsysCONFIGポートは、FPGAのプログラミングおよび設定のための業界標準通信プロトコルを提供します。表5.1に示す各プロトコルは、MachXO2デバイスの内部フラッシュメモリへのアクセス、またはその設定SRAMへのロード手段を提供します。メモリ空間のアクセス可能性セクションでは、各sysCONFIGポートの機能に関する情報を提供します。
フラッシュメモリにアクセス可能なsysCONFIGポートには優先順位があります。表5.1は各sysCONFIGポートを優先順位順に列挙しています。MSPI設定ポートはフラッシュメモリ領域を変更する機能を持たないため、sysCONFIGポートの優先順位スキームには影響しません。優先順位体系を理解することは重要です。低優先度のsysCONFIGポートを使用した設定ロジック操作は、高優先度のsysCONFIGポートによって中断される可能性があるためです。低優先度のsysCONFIGポートが高優先度のsysCONFIGポートによって中断された場合、設定ロジックの動作は定義されません。sysCONFIGポートを使用した設定ロジックへの同時アクセスを許可しないでください。
5.1. Power-up Sequence
MachXO2が動作するためには、デバイスに電源を供給する必要があります。システムに印加される電圧が上昇する短い期間中、FPGAは不確定状態となります。電源電圧が上昇し続けると、FPGA内部のパワーオンリセット(POR)回路が作動します。POR回路は作動後、外部I/Oピンが高インピーダンス状態にあることを保証します。またVCCおよびVCCIO0入力レールを監視します。POR回路は以下の条件を満たすまで待機します:
• VCC > 1.06 V(HCデバイスの場合は2.1 V)
• VCCIO0 > 1.06 V
これらの条件が満たされると、POR回路は内部リセットストローブを解放し、デバイスが初期化プロセスを開始できるようにします。MachXO2はINITNをアクティブローでアサートし、DONEをローに駆動します。INITNとDONEがローでアサートされると、デバイスは図5.1に示す初期化状態に移行します。
注記: 外部INITNおよびDONEは、有効化時のみ双方向オープンドレインI/Oとなります。
5.2. Initialization
MachXO2は、パワーオンリセット回路がINITNおよびDONEステータスピンをローレベルに駆動した直後にメモリ初期化フェーズに入ります。初期化状態の目的は、FPGA内部の全SRAMメモリをクリアすることです。FPGAは、以下の条件がすべて満たされるまで初期化状態を維持します:- tINITL時間期間が経過する
- PROGRAMNピンがディアサートされる
- INITNピンが外部マスターによってローアサートされなくなった
tINITL時間期間中、FPGAはコンフィギュレーションSRAMをクリアします。MachXO2がデバイスチェーンの一部である場合、各デバイスは異なるtINTIL初期化時間を有します。最も遅いtINTILパラメータを持つFPGAは、チェーン内の他のデバイスがコンフィギュレーションを開始するのを妨げる可能性があります。マルチデバイスチェーンにおいてINITNを時期尚早に解放すると、1つ以上のチェーン接続デバイスが断続的にコンフィギュレーションに失敗する原因となる場合があります。
アクティブローのオープンドレイン初期化信号INITNは、初期化完了時に外部抵抗でハイレベルに引き上げる必要があります。複数FPGAのコンフィギュレーションを同期させるには、1つ以上のINITNピンをワイヤAND接続すべきです。1つ以上のFPGAまたは外部デバイスがINITNをローレベルに保持している場合、FPGAは初期化状態を維持します。
5.3. Configuration
INITNピンの立ち上がりエッジにより、FPGAはコンフィギュレーション状態に入ります。FPGAはDiamond開発ツールで作成されたコンフィギュレーションビットストリームを受け入れることができます。MachXO2は不揮発性メモリからコンフィギュレーションデータのフェッチを開始します。MachXO2のコンフィギュレーションに使用されるメモリは、内部フラッシュメモリか外部SPIフラッシュメモリのいずれかです。有効なコンフィギュレーションデータを持つメモリが存在しない場合、MachXO2はコンフィギュレーション状態を離脱しません。FPGA内蔵または接続された不揮発性メモリをプログラムするか、JTAGポートを使用してプログラムする必要があります。デバイスがブランク/消去状態にある場合、プログラミングモードとして使用できるのはJTAG、SSPI、I2Cモードのみです。
FPGAがコンフィギュレーションデータを受信している間、INITN制御ピンは最終的な機能を発揮します。INITNはコンフィギュレーションデータにエラーが存在することを示すために使用されます。INITNがハイの場合、コンフィギュレーションは問題なく進行します。INITNがローにアサートされた場合、エラーが発生しており、FPGAは動作しません。
5.4. Wake-up
ウェイクアップは、コンフィギュレーションモードからユーザーモードへの遷移です。MachXO2の固定4段階ウェイクアップシーケンスは、デバイスがすべてのコンフィギュレーションデータを正しく受信した時点で開始されます。全コンフィギュレーションデータ受信後、FPGAは内部DONEステータスビットをアサートします。この内部DONEのアサートにより、4つの制御を順次実行するウェイクアップステートマシンが動作します。4つの制御ストローブは以下の通りです:• グローバル出力有効化 (GOE)
• グローバルセット/リセット (GSR)
• グローバルライト無効 (GWDISn)
• 外部DONE
ウェイクアッププロセスの第一段階では、MachXO2がグローバル出力イネーブルを解放します。これがアサートされると、FPGAのI/Oは高インピーダンス状態を解除し、プログラムされた出力機能を発揮できるようになります。FPGA入力は常にアクティブです。入力信号は、グローバルセット/リセット(GSR)のアサートによって、FPGAフリップフロップに対して何らかの動作を実行するのを防がれます。
ウェイクアッププロセスの第二段階では、グローバルセット/リセットとグローバルライトディサブル制御が解放されます。
グローバルセット/リセットは内部ストローブであり、アサートされると、GSR有効属性を有する全てのI/Oフリップフロップ、ルックアップテーブル(LUT)フリップフロップ、分散RAM出力フリップフロップ、および組み込みブロックRAM出力フリップフロップが、ハードウェア記述言語の定義に従ってセット/クリアされます。
グローバル書き込み禁止は、FPGA内部の全RAMロジックに対する書き込み許可ストローブを無効化する制御です。
FPGA入力は常にアクティブであり(グローバル出力許可セクション参照)、GWDISをアサート状態に維持することで
FPGA内部にインスタンス化されたRAMリソースの偶発的な破損を防止します。
ウェイクアッププロセスの最終段階は、外部DONEピンのアサートです。外部DONEは、有効化されている場合にのみ双方向オープンドレインI/Oとなります。外部DONEピンをローレベルに保持する外部エージェントは、MachXO2のウェイクアッププロセスの進行を阻止します。外部DONEが有効化されている場合、アクティブハイになって初めて最終ウェイクアップフェーズが完了します。外部DONEピンが有効化されていない場合、ウェイクアップは中断されずに完了します。
最終ウェイクアップフェーズが完了すると、FPGAはユーザーモードに移行します。
ウェイクアッププロセスを図9.1に示します。
5.5. User Mode
The MachXO2 enters User Mode immediately following the Wake-Up sequence has completed. User Mode is the pointin time when the MachXO2 begins performing the logic operations you designed. The MachXO2 remains in this state
until one of three events occurs:
• The PROGRAMN input pin is asserted.
• A REFRESH command is received through one of the configuration ports.
• Power is cycled.
5.6. Clearing the Configuration Memory and Re-initialization
The current user mode configuration of the MachXO2 remains in operation until it is actively cleared, or power is lost.Several methods are available to clear the internal configuration memory of the MachXO2. The first is to remove power
and reapply power. Another method is to toggle the PROGRAMN pin. Lastly you can reinitialize the memory through a
Refresh command. Any active configuration port can be used to send a Refresh command.
- Assertion of the PROGRAMN input
- Cycling power to the MachXO2
- Sending the Refresh command using a configuration port
initialization state as described earlier.
5.7. Memory Space Accessibility
The two internal memories, Flash and SRAM, of the MachXO2 can be read and written. Each port on the MachXO2 hasa different level of access to each memory space. Table 5.1 provides a cross-reference of the MachXO2 ports and the
memory space they can access.
As shown in Table 5.1, the JTAG, SPI, and I2C can read and write both internal memory spaces while wishbone can only
access the internal flash and not the SRAM.
Table 5.1. Memory Space Accessibility of Different Ports
5.8. On-chip Flash Programming
表5.1に示すように、オンチップフラッシュは異なるプログラミングモードでプログラミングされます。これらのプログラミングモードについては、次のセクションで説明します。異なるプログラミングモード内では、オンチップフラッシュをプログラミングする2つの方法があります:オフラインプログラミングとバックグラウンドプログラミングです。- オフラインプログラミング – この方法では、デバイスがプログラミングモードに入る必要があります。プログラミングモードでは、プログラミングが完了するまでデバイスは動作を停止します。Diamond Programmerを使用する場合、FLASHで始まる操作でオフラインモードを選択します。操作で特に指定がない限り、アクセスされるフラッシュセクタはFeature、Configuration、UFMです。
- バックグラウンドプログラミング – この方法では、デバイスがユーザーモードで動作を継続しながら、構成ロジックがオンチップフラッシュメモリをプログラミングします。オンチップフラッシュメモリのプログラミングが完了すると、デバイスはREFRESH命令でSRAMにダウンロードできます。Diamond Programmer使用時、
ConfigurationとUFMです。
MachXO2-2000U、MachXO2-4000、MachXO2-7000でバックグラウンドプログラミングを使用する場合、システムは
バックグラウンドプログラミング中に右側PLLをリセット状態にする必要があることに注意してください。バックグラウンドフラッシュプログラミングに必要な時間(消去部分)は、
『MachXO2デバイスにおけるユーザーフラッシュメモリとハードン制御機能の使用に関するリファレンスガイド』(FPGA-TN-02163)の表97に規定されています。
左側PLLはバックグラウンドプログラミング中もアクティブ状態を維持できます。
5.9. Bitstream/PROM Sizes
MachXO2はSRAMベースのFPGAです。SRAM構成メモリは、全構成データを格納可能な不揮発性メモリからロードする必要があります。構成データのサイズは可変です。これはFPGA内の利用可能な論理量と、事前初期化された組み込みブロックRAM(EBR)コンポーネントの数に基づきます。最大デバイスを使用し、すべてのEBRを固有のデータ値で事前初期化し、圧縮を無効にして生成したMachXO2設計では、最大のストレージ容量が必要となります。MachXO2の内部フラッシュメモリに構成データを保存する際には、特別な考慮事項があります。MachXO2のフラッシュメモリは3つの独立したセクターを提供します。
第1セクターは圧縮済み構成データの保持専用であり、構成用フラッシュと呼ばれます。
第2セクター(ユーザーフラッシュメモリ)は3つの異なる機能を提供します。
大規模な構成データイメージ用の追加構成用フラッシュストレージとして機能し、
EBRの内容を保存でき、または汎用フラッシュメモリとして使用可能です。
第3セクターは機能行(Feature Row)です。
Figure 5.3. Flash Memory Space of a MachXO2 Device
ほとんどの設計において、コンフィギュレーションフラッシュはSRAMコンフィギュレーションメモリにロードされる圧縮コンフィギュレーションデータを格納するのに十分な容量を有しています。しかし、設計内のロジック量が増加し、事前初期化済みEBRの量が増加すると、コンフィギュレーションデータのサイズも増加します。このサイズ増加により、コンフィギュレーションデータがUFMセクタにオーバーフローする可能性があります。また、可能性は低いものの、コンフィギュレーションデータが内部フラッシュメモリ全体に対して大きすぎる場合も考えられます。コンフィギュレーションデータがコンフィギュレーションフラッシュとUFMメモリの合計容量に収まらなくなった場合、設計を縮小するか、外部コンフィギュレーションメモリを使用する必要があります。UFMへのオーバーフローを防ぐため、コンフィギュレーションデータを生成するソフトウェアに入力を提供できます。
設定データが設定用フラッシュとUFMメモリの合計容量を超える場合、デバイスビットストリームを外部SPIフラッシュに保存できます。表5.2は最大非圧縮ビットストリームサイズを示しており、SPIフラッシュの選定に利用できます。