MachXO2 - Lattice Semiconductor Corporation
MachXO2 - Lattice Semiconductor Corporation
MachXO2 - Lattice Semiconductor Corporation
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
2012 年 6 月 テ ク ニ カル ノ ー ト TN1205<br />
概要<br />
<strong>MachXO2</strong> FPGA フ ァ ミ リ は、 高性能、 低消費電力の FPGA フ ァ ブ リ ッ ク に、 ハー ド マ ク ロ化 さ れた制御機<br />
能 と オンチ ッ プ UFM (User Flash Memory、 ユーザフ ラ ッ シ ュ メ モ リ ) が組み込まれています。 ハー ド マ ク ロ<br />
化 さ れた制御機能に よ っ て、 デザ イ ンの実装が容易にな り 、 LUT、 レ ジ ス タ、 ク ロ ッ ク 、 配線な どの汎用 リ<br />
ソ ース を節約で き ます。 こ のハー ド マ ク ロ化された制御機能は、 物理的には EFB (Embedded Function Block、<br />
組み込み機能ブ ロ ッ ク ) 内に配置されます。 EFB モジ ュールは全ての <strong>MachXO2</strong> デバイ スに内蔵されていて、<br />
次の制御機能を持っています。<br />
• 2 系統の I 2 Cコア<br />
• 1 系統の SPI コア<br />
• 1 個の 16 ビッ ト ・ タイマ / カウンタ<br />
• 以下を含むフラ ッシュ メモ リ ・ インターフェ イ ス<br />
– <strong>MachXO2</strong>-640 以上の規模ではユーザフ ラ ッ シ ュ メ モ リ (UFM)<br />
– コンフィグレーシ ョ ン ・ ロジッ ク<br />
• PLL のダイナミ ッ ク ・ コンフィグレーシ ョ ンへのインターフェイス<br />
• オンチップ ・ パワーコン ト ローラへのインターフェイス (I 2 C 及び SPI 経由)<br />
図 9-1 に EFB のアーキテ ク チャ、及び FPGA ユーザ ロ ジ ッ ク 用の WISHBONE イ ン ターフ ェ イ ス を示し ます。<br />
図 9-1. EFB (組み込み機能ブ ロ ッ ク )<br />
User Logic<br />
User Logic<br />
WISHBONE Interface<br />
EFB Register Map<br />
<strong>MachXO2</strong> ユーザフラッシュメモリ<br />
とハードマクロ制御機能の使用法<br />
Configuration<br />
(including<br />
USERCODE)<br />
Flash Memory<br />
UFM<br />
Flash Command Interface<br />
EFB<br />
PLL0/<br />
PLL1<br />
Feature Row<br />
(including<br />
TraceID)<br />
Power<br />
Controller<br />
Configuration<br />
Slave<br />
User<br />
Master/Slave<br />
User<br />
Master/Slave<br />
Configuration<br />
Master/Slave<br />
User<br />
Master/Slave<br />
Timer/<br />
Counter<br />
Primary<br />
I 2C Port<br />
Secondary<br />
I 2 C Port<br />
SPI Port<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 9-1 tn1205J_04.0<br />
JTAG
<strong>MachXO2</strong> ユーザフラッシュメモリと<br />
ハードマクロ制御機能の使用方法<br />
EFB に含まれるハー ド SPI と I 2 C、 およびタ イ マ / カ ウ ン タ IP は、 ラ テ ィ スの参照デザ イ ン を使用し て同じ<br />
機能を FPGA ロ ジ ッ ク で実装し た場合 と 比較し て、 500LUT 以上の節約を可能に し ます。<br />
EFB レ ジ ス タ マ ッ プは、 ス レーブ WISHBONE バス を通し た EFB ハー ド マ ク ロ機能へのア ク セ スに使用され<br />
ます。 ハー ド IP はそれぞれ専用の 8 ビ ッ ト ・ データ及び制御レ ジ ス タ を持ち ますが、 例外 と し て フ ラ ッ シ ュ<br />
メ モ リ (UFM/ コ ン フ ィ グ レーシ ョ ン) は同じ レ ジ ス タ セ ッ ト か ら ア ク セ ス さ れます。 EFB レ ジ ス タ マ ッ プ<br />
にアクセス可能なポー ト は、 全レジスタにアクセスできます。 例えば、 プラ イマ リ I 2 Cスレーブポートはタ<br />
イ マ / カ ウ ン タ ・ レ ジ ス タ にア ク セ スで き ます。 EFB レ ジ ス タ マ ッ プを次に示し ます。<br />
表 9-1. EFB メ モ リ マ ッ プ<br />
設計ソ フ ト ウ ェ アには EFB モジ ュールがプ リ ミ テ ィ ブ と し て扱われ、 本書で説明し ます。 EFB の構成、 及び<br />
Verilog ま たは VHDL ソース コー ド の生成には IPexpress を使用し ます。ソース コー ド はデザ イ ン内に イ ン ス<br />
タ ン ス化し ます。<br />
WISHBONE バス イ ン ターフ ェ イ ス<br />
ア ド レス範囲 (16 進)<br />
8ビット・データ/制御レジスタの機<br />
能<br />
0x00-0x1F PLL0 の動的ア ク セス 1<br />
0x20-0x3F PLL1 の動的ア ク セス 1<br />
0x40-0x49 プ ラ イ マ リ I 2 C<br />
0x4A-0x53 セ カ ンダ リ I2 C<br />
0x54-0x5D SPI<br />
0x5E-0x6F タ イ マ / カウン タ<br />
フラッシュメモリ (UFM/ コンフィグ<br />
0x70-0x75<br />
レーシ ョ ン)<br />
0x76-0x77 EFB の割 り 込みソース<br />
1. <strong>MachXO2</strong> デバイ スには最大 2 個の PLL があ り ます。 PLL0 のア ド<br />
レ ス範囲は 0x00 ~ 0x1F。 PLL1 (も し あれば) のア ド レ ス範囲は<br />
0x20 ~ 0x3F。 PLL の コ ン フ ィ グ レーシ ョ ン ・ レ ジ ス タ及び推奨す<br />
る使用法の詳細については、 "TN1199, <strong>MachXO2</strong> sysCLOCK PLL<br />
Design and Usage Guide (<strong>MachXO2</strong> sysCLOCK PLL 設計 と 使用法ガ<br />
イド) " を参照してください<br />
<strong>MachXO2</strong> 内の WISHBONE バスは、OpenCores の WISHBONE 標準に準拠し、FPGA ユーザロ ジ ッ ク と EFB 機<br />
能ブ ロ ッ ク 間、 及び各 EFB 機能ブ ロ ッ ク 間を接続し ます。 ユーザロ ジ ッ ク には、 EFB の WISHBONE ス レー<br />
ブ ・ イ ン ターフ ェ イ ス と 通信する ための、 WISHBONE マス タ ・ イ ン ターフ ェ イ ス を含める必要があ り ます。<br />
WISHBONE マス タ の例 と し ては <strong>Lattice</strong>Mico8 があ り ます。<br />
図 9-2のブロック図は、FPGAコアとEFBとの間のWISHBONEバス信号を示しています。表 9-2に信号の<br />
詳細な定義を示し ます。<br />
9-2 tn1205J_04.0
図 9-2. FPGA コ ア と EFB モジ ュール間の WISHBONE バス イ ン ターフ ェ イ ス<br />
表 9-2. EFB モジ ュールの WISHBONE ス レーブ ・ イ ン ターフ ェ イ ス信号<br />
信号名 I/O 幅 記 述<br />
wb_clk_i 入力 1<br />
wb_rst_i 入力 1<br />
wb_cyc_i 入力 1<br />
wb_stb_i 入力 1<br />
<strong>MachXO2</strong> ユーザフラッシュメモリと<br />
ハードマクロ制御機能の使用方法<br />
EFB モジ ュール内の WISHBONE イ ン タ ーフ ェ イ スのレ ジス タ及びハー ド マ ク ロ機能<br />
で使用される ク ロ ッ ク。 立ち上が り エ ッ ジ有効で、 ク ロ ッ ク速度は最速 133MHz まで<br />
対応<br />
WISHBONE イ ン タ ーフ ェ イ ス ・ ロジ ッ ク を リ セ ッ ト する同期 リ セ ッ ト 信号で、 レジス<br />
タ値には影響を与えない。 ア ク テ ィ ブなバスサイ クルを終端する。 ネゲー ト 後に 1us<br />
待っ てから、 その後の WISHBONE ト ラ ンザク シ ョ ン を開始する こ と<br />
WISHBONE マス タ によ っ てアサー ト され、 バスに有効なバスサイ クルが存在する こ と<br />
を示す<br />
バス上の現在の ト ラ ンザク シ ョ ンのタ ーゲ ッ ト が、 WISHBONE スレーブである こ と を<br />
示すストローブ信号。 このストローブのアサートに対する応答として、EFBモジュー<br />
ルがア ク ノ レ ッ ジをアサー ト する<br />
wb_we_i 入力 1<br />
レベルセンシテ ィ ブな ラ イ ト / リ ー ド 制御信号。 Low は リ ー ド 動作、 High はラ イ ト 動<br />
作を示す<br />
wb_adr_i 入力 8 EFB 固有のレジス タの選択に使用される 8 ビ ッ ト 幅ア ド レス<br />
wb_dat_i 入力 8<br />
wb_dat_o 出力 8<br />
wb_ack_o 出力 1<br />
User Logic<br />
WISHBONE Master (User Logic)<br />
<strong>MachXO2</strong><br />
wb_clk_i<br />
wb_rst_i<br />
wb_cyc_i<br />
wb_stb_i<br />
wb_we_i<br />
wb_addr_i[7:0]<br />
wb_dat_i[7:0]<br />
wb_dat_o[7:0]<br />
wb_ack_o<br />
リード ・ サイクル中に WISHBONE マスタが wb_dat_i バスサイクルを使用して、 アド レ<br />
ス指定された EFB レジスタにデータ を書き込む<br />
リード ・ メモリ ・サイクル中に WISHBONE マスタがwb_dat_o を使用して、 アドレス<br />
指定されたレジス タからデー タ を読み出す<br />
バスサイ クルが完了し、 EFB へのデー タ書き込みが了承された こ と を、 WISHBONE マ<br />
スタに知らせる。 EFB からのデータ リードは有効<br />
EFB と インターフェイスするには、 ユーザロジッ ク内に WISHBONE マスタコン ト ローラを作成する必要が<br />
あります。複数マスタ構成では、WISHBONE 出力がユーザ定義のアービタで多重化されます。<strong>Lattice</strong>Mico8<br />
ソ フ ト プ ロ セ ッ サは、 マルチマ ス タ ・ バス構成を実装可能な Mico System Builder (MSB) プ ラ ッ ト フ ォーム<br />
で利用する こ と も で き ます。 同じ サ イ ク ル中に 2 つのマ ス タ がバス を要求し た場合は、 アービ ト レーシ ョ ン<br />
で選択された出力だけがス レーブ ・ イ ン ターフ ェ イ スに接続 さ れます。<br />
WISHBONE Slave Interface<br />
EFB Register Map<br />
EFB<br />
9-3 tn1205J_04.0
WISHBONE プ ロ ト コル<br />
<strong>MachXO2</strong> ユーザフラッシュメモリと<br />
ハードマクロ制御機能の使用方法<br />
WISHBONE のプ ロ ト コ ル と コ マン ド シーケ ン ス については、 "TN1246, Reference Guide for Using User Flash<br />
Memory and Hardened Control Functions in <strong>MachXO2</strong> Devices (<strong>MachXO2</strong> デバ イ ス のユーザ フ ラ ッ シ ュ メ モ リ<br />
と ハー ド マ ク ロ化制御機能の使用法 リ フ ァ レ ン スガ イ ド ) " の WISHBONE 項を参照し て く だ さ い。<br />
WISHBONE 設計の ヒ ン ト<br />
1. 消費電力削減のため コ ンポーネン ト を動的にオフする場合に、 WISHBONE ク ロ ッ ク の ソースに<br />
な ってい る かど う かにかかわ らず、 EFB は <strong>MachXO2</strong> の内部オシ レータ を イ ネーブルにする必要が<br />
あります<br />
2. 未使用の EFB WISHBONE の入力信号は '0' に接続する必要があ り ます<br />
3. WISHBONE の仕様の詳細については、 OpenCores のウ ェブサイ ト を参照し て く ださい<br />
4. ラ テ ィ スの参照デザ イ ンの多 く が WISHBONE バス を持っています<br />
(www.latticesemi.com/products/intellectualproperty/aboutreferencedesigns.cfm)<br />
IPexpress に よ る EFB モジ ュールの生成<br />
IPexpress は、 EFB のハー ド マ ク ロ化 IP 機能の構成 (モー ド 、 パ ラ メ ータ設定な ど) と 、 EFB モジ ュールの<br />
生成に使用 さ れ ます。 <strong>Lattice</strong> Diamond ® の ト ップ メ ニューで、 Tools --> IPexpress を選択して起動します。<br />
Diamond プ ロ ジ ェ ク ト で <strong>MachXO2</strong> デバ イ ス を ターゲ ッ ト と する と 、 IPexpress ウ ィ ン ド ウ の Modules --><br />
Architecture Modules (アーキテ ク チ ャ ・ モジ ュール) 下に EFB モジ ュールが表示されます。<br />
図 9-3. IPexpress の EFB モジ ュール<br />
Project Path (プ ロ ジ ェ ク ト パス)、 File Name (フ ァ イル名 = モジ ュール名)、 Module Output (VHDL ま たは<br />
Verilog) の各フ ィ ール ド に入力 ・ 設定し、 Customize (カス タム化) を ク リ ッ ク し ます。<br />
Customize ボ タ ン を ク リ ッ クする と 、EFB の構成ダ イ ア ロ グが表示されます。EFB ウ ィ ン ド ウの左側には、各<br />
IP 機能に関連する I/O がグ ラ フ ィ カルに表示 さ れます。各 IP を イ ネーブルま たはデ ィ セーブルにする と 、そ<br />
の I/O ピ ンが表示 さ れた り 、 非表示 さ れた り し ます。 最初の タ ブ (EFB Enables) では、 イ ネーブルするハー<br />
ド マ ク ロ機能の選択、 PLL コ ン フ ィ グ レーシ ョ ン設定への動的ア ク セス、 UFM (ユーザフ ラ ッ シ ュ メ モ リ )<br />
の イ ネーブル、 及び WISHBONE ク ロ ッ ク 周波数の入力に使用し ます。 全ての機能を イ ネーブルに し た EFB<br />
の例を図 9-4 に示し ます。<br />
9-4 tn1205J_04.0
<strong>MachXO2</strong> ユーザフラッシュメモリと<br />
ハードマクロ制御機能の使用方法<br />
ハー ド マ ク ロ IP 機能 と UFM には、 EFB ウ ィ ン ド ウにそれぞれ個別の コ ン フ ィ グ レーシ ョ ン設定タ ブがあ り<br />
ます。 こ れら の タ ブについては、 機能ご と に後述し ます。 全ての機能の構成後、 Generate (生成) ボ タ ン を<br />
ク リ ックすると、 EFBモジュールが生成されてデザイン内にインスタンス化できるようになります。<br />
図 9-4. IPexpress に よ る EFB モジ ュールの生成<br />
利用可能な PLL モジ ュール数はデバ イ スの規模に よ って異な り 、 IPexpress の EFB の GUI はそれを反映し た<br />
も のにな り ます。 <strong>MachXO2</strong>-256 と <strong>MachXO2</strong>-640 には PLL モジ ュールがないため、 EFB ウ ィ ン ド ウ の PLL<br />
チェ ッ ク ボ ッ ク スが選択で き ない よ う になっています。 <strong>MachXO2</strong>-640U、 <strong>MachXO2</strong>-1200、 <strong>MachXO2</strong>-1200U、<br />
及び <strong>MachXO2</strong>-2000 にはそれぞれ PLL が 1 個あ り 、 <strong>MachXO2</strong>-2000U、 <strong>MachXO2</strong>-4000、 及び <strong>MachXO2</strong>-7000<br />
にはそれぞれ PLL が 2 個で、 EFB の WISHBONE ス レーブ ・ イ ン ターフ ェ イ スか ら動的にア ク セスでき ます。<br />
WISHBONE ク ロ ッ ク 周波数はデフ ォル ト で 50MHz に設定 さ れ、 最高 133MHz ま での値を入力で き ます。<br />
WISHBONE ク ロ ッ ク は EFB の WISHBONE イ ン ターフ ェ イ ス ・ レ ジ ス タ で使用 さ れ、 SPI 及び I 2 Cハードマ<br />
クロ IP コアでも使用されます。EFBでは、WISHBONEのクロックソースになっているかどうかにかかわら<br />
ず、 <strong>MachXO2</strong> の内部オシ レータ を イ ネーブルする必要があ り ます。<br />
他のモジ ュール と 同様、 EFB の設定は次に示すよ う に Map Report (マ ッ プレポー ト ) に表示されます。<br />
Embedded Functional Block Connection Summary:<br />
---------------------------------------------<br />
Desired WISHBONE clock frequency: 2.0 MHz<br />
Clock source: clk<br />
Reset source: wb_rst<br />
Functions mode:<br />
I2C #1 (Primary) Function: ENABLED<br />
I2C #2 (Secondary) Function: DISABLED<br />
SPI Function: ENABLED<br />
9-5 tn1205J_04.0
Timer/Counter Function: DISABLED<br />
Timer/Counter Mode: WB<br />
UFM Connection: DISABLED<br />
PLL0 Connection: DISABLED<br />
PLL1 Connection: DISABLED<br />
I2C Function Summary:<br />
--------------------<br />
I2C Component: PRIMARY<br />
I2C Addressing: 7BIT<br />
I2C Performance: 100kHz<br />
Slave Address: 0b0001001<br />
General Call: ENABLED<br />
I2C Wake Up: DISABLED<br />
I2C Component: UFM/Configuration<br />
I2C Addressing: 7BIT<br />
I2C Performance: 100kHz<br />
Slave Address: 0b0001000<br />
SPI Function Summary:<br />
--------------------<br />
SPI Mode: BOTH<br />
SPI Data Order: LSB to MSB<br />
SPI Clock Inversion: DISABLED<br />
SPI Phase Adjust: DISABLED<br />
SPI Wakeup: DISABLED<br />
Timer/Counter Function Summary:<br />
------------------------------<br />
None<br />
UFM Function Summary:<br />
--------------------<br />
UFM Utilization: EBR Initialization<br />
Available General<br />
Purpose Flash Memory: 511 Pages (511*128 Bits)<br />
EBR Blocks with Unique<br />
Initialization Data: 6<br />
<strong>MachXO2</strong> ユーザフラッシュメモリと<br />
ハードマクロ制御機能の使用方法<br />
WID EBR Instance<br />
--- ------------<br />
0b0000000011 LCDCharMap_inst/LCDCharMap_0_0_0<br />
0b0000000100 STRING_TABLE_INST/EXT_ROM_INST/pmi_romXhmenusdn8101024_0_0_0<br />
0b0000000101<br />
lm8_inst/u1_isp8/u1_isp8_prom/pmi_romXhprom_initadn18112048_1_1_0<br />
0b0000000110<br />
lm8_inst/u1_isp8/u1_isp8_prom/pmi_romXhprom_initadn18112048_0_0_3<br />
0b0000000111<br />
lm8_inst/u1_isp8/u1_isp8_prom/pmi_romXhprom_initadn18112048_0_1_2<br />
0b0000001000<br />
lm8_inst/u1_isp8/u1_isp8_prom/pmi_romXhprom_initadn18112048_1_0_1<br />
9-6 tn1205J_04.0
ハー ド マ ク ロ I 2 C IP コ ア<br />
<strong>MachXO2</strong> ユーザフラッシュメモリと<br />
ハードマクロ制御機能の使用方法<br />
I 2 C は 2 線式シ リ アルバスで、 同一基板上のデバ イ ス間通信用 と し て幅広 く 使用されています。 各 <strong>MachXO2</strong><br />
デバイ スには、 " プ ラ イ マ リ " 及び " セカ ンダ リ " I 2 Cとして設計された、2系統のハードマクロ化I 2 C IP コ<br />
アがあります。<strong>MachXO2</strong>内の両コアは、I 2 CマスタまたはI 2 C ス レーブ と し て動作で き ます。 こ の 2 つの コ<br />
アの違いは、 プラ イマ リ コアには I/O ピンが事前割り当てされているのに対して、 セカンダ リ コアのポート<br />
は任意の汎用 I/O に割 り 当て可能な こ と です。 ま た、 プ ラ イ マ リ コ アはフ ラ ッ シ ュ コ マン ド ・ イ ン ターフ ェ<br />
イ ス経由で、 フ ラ ッ シ ュ メ モ リ (UFM/ コ ン フ ィ グ レーシ ョ ン) にア ク セ スする こ と も で き ます。 ハー ド マ<br />
クロI 2 C IP コ アの機能 と ブロ ッ ク図を、 次に示し ます。<br />
表 9-3. ハー ド マ ク ロ化 I 2 Cの機能<br />
図 9-5. I 2 Cブロック図<br />
EFB の I 2 C コ アがマ ス タ の場合は、 物理的な イ ン ターフ ェ イ ス を通じ て I 2 C バス上の他のデバイ ス を制御で<br />
き ます。 EFB の I 2 C コ アがス レーブの場合、 そのデバイ スは I 2 CマスタへのI/Oを拡張できます。<strong>MachXO2</strong><br />
のプラ イマ リ 及びセカンダ リ コアはどちら も、 次の I 2 C 機能に対応し ています。<br />
• マスタ / スレーブモードに対応<br />
• 7 ビッ ト及び10 ビッ ト ・ アドレッシング<br />
プライマリ I 2 C<br />
コンフィグレーション<br />
プライマリ I 2 C<br />
ユーザ<br />
セカンダリ I 2 C<br />
ユーザ<br />
I2 Cポート、マスタ No Yes Yes<br />
I2 Cポート、スレーブ Yes Yes Yes<br />
フ ラ ッ シ ュ メ モ リ (UFM/ コ ン フ ィ グレーシ ョ ン) のア ク セス Yes No No<br />
ユーザロジ ッ クのアクセス No Yes Yes<br />
専用 I/O の使用の必要性 Yes Yes No<br />
パワーコ ン ト ローラのス タ ンバイ モー ド からの起動 Yes Yes Yes<br />
パワーコ ン ト ローラのス タ ンバイ モー ド への移行 Yes No No<br />
User Logic<br />
WISHBONE Interface<br />
EFB Register Map<br />
Configuration<br />
(including<br />
USERCODE)<br />
Flash Memory<br />
UFM<br />
Flash Command Interface<br />
EFB<br />
Feature Row<br />
(including<br />
TraceID)<br />
Power<br />
Controller<br />
Configuration<br />
Slave<br />
User<br />
Master/Slave<br />
User<br />
Master/Slave<br />
Primary<br />
I 2 C Port<br />
Secondary<br />
I 2C Port<br />
9-7 tn1205J_04.0
<strong>MachXO2</strong> ユーザフラッシュメモリと<br />
ハードマクロ制御機能の使用方法<br />
• クロッ クス ト レッチ (I2Cスレーブがクロックをホールドダウンまたはストレッチし、バス速度を抑制で きる)<br />
• 50KHz、 100KHz、 及び 400KHz のデータ転送速度に対応<br />
• 同報通知 (General Call) に対応 (I2 C ア ド レ ス 0 を使用し て、 バス上の全てのデバイ ス を ア ド レ ス指定)<br />
• EFB WISHBONE ス レーブ ・ イ ン ターフ ェ イ スか ら ユーザ ロ ジ ッ ク への イ ン ターフ ェ イ ス<br />
プライマリ I 2 C<br />
<strong>MachXO2</strong> のプ ラ イ マ リ I 2 C コ ン ト ローラ を図 9-6 に示し ます。 プ ラ イ マ リ ・ コ ン ト ローラ の主要機能には、<br />
次のものがあ り ます。<br />
• I 2C コンフィグレーション・スレーブによる、 フラッシュメモリ (UFM/ コンフィグレーション) へのア<br />
クセス<br />
• I2Cユーザロ ジ ッ クへのア ク セス<br />
• I2 C コンフ ィ グレーシ ョ ンまたはユーザスレーブによ る、 <strong>MachXO2</strong>パワーコント ローラへのアクセス<br />
• I2Cユーザマスタ に よ る、 <strong>MachXO2</strong> に接続された周辺回路へのア ク セ ス<br />
図 9-6. プ ラ イ マ リ I 2 Cのブロック図<br />
User Logic<br />
i2c1_irqo<br />
WISHBONE Interface<br />
EFB Register Map<br />
Configuration<br />
(including<br />
USERCODE)<br />
Flash Memory<br />
プライマリ I 2 C コ アは、 フ ラ ッ シ ュ メ モ リ (UFM/ コ ン フ ィ グ レーシ ョ ン) へのア ク セス、 及び I 2 Cポート経<br />
由でのデバイ スのプ ロ グ ラ ミ ングに使用で き る こ と に注意し て く だ さ い。図 9-6 のブ ロ ッ ク 図は、I 2 Cブロッ<br />
ク と フ ラ ッ シ ュ メ モ リ 間の イ ン ターフ ェ イ ス を示し ています。 I 2 Cポートからの<strong>MachXO2</strong>のプログラミング<br />
の詳細については、 "TN1204, <strong>MachXO2</strong> Programming and Configuration Usage Guide (<strong>MachXO2</strong> プ ロ グ ラ ミ ン<br />
グとコンフィグレーションのユーザガイド) " のI 2 C項を参照してください。<br />
UFM<br />
Flash Command Interface<br />
EFB<br />
Feature Row<br />
(including<br />
TraceID)<br />
Power<br />
Controller<br />
cfg_wake/<br />
cfg_stdby<br />
Configuration<br />
Slave<br />
yyyxxxxx00<br />
User<br />
Master/Slave<br />
yyyxxxxx01<br />
i2c1_scl<br />
i2c1_sda<br />
9-8 tn1205J_04.0
<strong>MachXO2</strong> ユーザフラッシュメモリと<br />
ハードマクロ制御機能の使用方法<br />
バス上のスレーブ I 2 C 周辺回路は、 そのス レーブ固有のア ド レ ス を呼び出す こ と で、 マ ス タ I 2 Cからアクセ<br />
スで き ます。 プ ラ イ マ リ ・ コ ン フ ィ グ レーシ ョ ン ・ ア ド レ スは "yyyxxxxx00"、 プ ラ イ マ リ ・ ユーザア ド レ ス<br />
は "yyyxxxxx01" で、 "y" と "x" は IPexpress か ら ユーザがプ ロ グ ラ ム可能です。<br />
プライマリ ・ コンフィグレーショ ン I 2 C は、 パワーコン ト ローラのスタンバイからのウェイクアップ、 また<br />
はス タ ンバイへの移行に使用で き ます。 プ ラ イ マ リ ・ ユーザは、 パワーコ ン ト ローラ のス タ ンバ イ モー ド か<br />
ら の ウ ェ イ ク ア ッ プだけに使用で き ます。パワーコ ン ト ローラ の詳細については、"TN1198, Power Estimation<br />
and Management for <strong>MachXO2</strong> Devices (<strong>MachXO2</strong> デバ イ スの電源見積 り と 管理) " を参照し て ください。 I 2 C<br />
パワーコ ン ト ローラ の機能は、 後述する よ う に IPexpress か ら設定で き ます。 レ ジ ス タ設定については、<br />
"TN1246, Reference Guide for Using User Flash Memory and Hardened Control Functions in <strong>MachXO2</strong> Devices<br />
(<strong>MachXO2</strong> デバイ スのユーザフ ラ ッ シ ュ メ モ リ 及びハー ド マ ク ロ制御機能の使用法 リ フ ァ レ ン スガ イ ド ) "<br />
に説明があ り ます。<br />
表 9-4 にプ ラ イ マ リ I 2 C コ アの IP 信号を示し ます。<br />
表 9-4. プ ラ イ マ リ I 2 C ~ IP 信号<br />
Signal Name<br />
Pre-Assigned<br />
Pin Name I/O Width Description<br />
i2c1_scl SCL Bi-directional 1<br />
i2c1_sda SDA Bi-directional 1<br />
i2c1_irqo — Output 1<br />
cfg_wake — Output 1<br />
cfg_stdby — Output 1<br />
I2 Cコアのオープンドレイン・クロックライン ~ I 2 Cコアが<br />
マス タ動作を実行中、 信号は出力。 スレーブ動作時、 この<br />
信号は入力<br />
この信号は、 事前に割 り 当て られた対応する ピ ンに直接配<br />
線する。 各 <strong>MachXO2</strong> デバイ スの I2 C ポー ト のパ ッ ド と ピ ン<br />
の位置については、 "<strong>MachXO2</strong> Family Data Sheet (<strong>MachXO2</strong><br />
フ ァ ミ リ ・ デー タ シー ト ) " のピ ンテーブルを参照<br />
I2 Cコアのオープンドレイン・データライン ~ I 2 Cコアが<br />
デー タ を送信時、 信号は出力。 I2 C コ アがデー タ を受信時、<br />
この信号は入力<br />
この信号は、 事前に割 り 当て られた対応する ピ ンに直接配<br />
線する。 各 <strong>MachXO2</strong> デバイ スの I 2 C ポー ト のパ ッ ド と ピ ン<br />
の位置については、 "<strong>MachXO2</strong> Family Data Sheet (<strong>MachXO2</strong><br />
フ ァ ミ リ ・ デー タ シー ト ) " のピ ンテーブルを参照<br />
I 2 C コ アの割 り 込み要求出力信号 ~ この信号の本来の用途<br />
は、 WISHBONE マス タ コ ン ト ローラ (マ イ ク ロ コ ン ト ロー<br />
ラ またはステー ト マシン) に接続し、 特定の条件に適合し<br />
た場合に割 り 込みを要求する こ と。 その条件については、<br />
TN1246 の I 2 C項を参照<br />
ウェイクアップ信号 ~ 機能シ ミ ュ レーシ ョ ンのため、<br />
<strong>MachXO2</strong> デバイ スのパワーコ ン ト ローラのみに接続する<br />
ハー ド ワイヤ信号。 この信号がイネーブルと なるのは、 EFB<br />
GUI の I2C タ ブで Wakeup Enable (ウ ェ イ ク ア ッ プ ・ イネー<br />
ブル) 機能がイ ネーブルと な っ ている場合のみ<br />
スタンバイ信号 ~ 機能シ ミ ュ レーシ ョ ンのため、 <strong>MachXO2</strong><br />
デバイ スのパワーコ ン ト ローラのみに接続するハー ド ワイ<br />
ヤ信号。 この信号がイ ネーブルと なるのは、 EFB GUI の I2 C<br />
タ ブで Wakeup Enable (ウ ェ イ ク ア ッ プ ・ イネーブル) 機能<br />
がイネーブルと な っ ている場合のみ<br />
セカンダ リ I 2 C<br />
<strong>MachXO2</strong>のセカ ンダ リ I 2 Cコン ト ローラは、プライマリI 2 C コ ン ト ローラ と 同じ機能を提供し ますが、<strong>MachXO2</strong><br />
コ ン フ ィ グ レーシ ョ ン ・ ロ ジ ッ ク にア ク セ スで き ない点が異な り ます。 i2c2_scl 及び i2c2_sda ポー ト は FPGA<br />
フ ァ ブ リ ッ ク の一般配線を用いて接続され、 任意の GPIO (General Purpose I/O、 汎用 I/O) に割 り 当て る こ<br />
とができます。<br />
9-9 tn1205J_04.0
<strong>MachXO2</strong> ユーザフラッシュメモリと<br />
ハードマクロ制御機能の使用方法<br />
セカンダ リ I 2 Cは、パワーコントローラのスタンバイモードからのウェイクアップに使用できます。パワー<br />
コ ン ト ローラの詳細については、 "TN1198, Power Estimation and Management for <strong>MachXO2</strong> Devices (<strong>MachXO2</strong><br />
デバイ スの電源見積 り と 管理) " を参照し て く だ さ い。 I 2 C パワーコ ン ト ローラ の機能は、 後述する よ う に<br />
IPexpress か ら設定で き ます。レ ジ ス タ設定については、"TN1246, Reference Guide for Using User Flash Memory<br />
and Hardened Control Functions in <strong>MachXO2</strong> Devices (<strong>MachXO2</strong> デバ イ スのユーザ フ ラ ッ シ ュ メ モ リ 及びハー<br />
ド マ ク ロ制御機能の使用法 リ フ ァ レ ン スガ イ ド ) " に説明があ り ます。<br />
バス上のスレーブ I 2 C 周辺回路は、 そのス レーブ固有のア ド レ ス を呼び出すこ と で、 ユーザマ ス タ I 2 Cから<br />
ア ク セ ス さ れます。 セカ ンダ リ ・ ユーザア ド レ スは "yyyxxxxx10" で、 "y" と "x" は IPexpress か ら ユーザがプ<br />
ロ グ ラ ム可能です。<br />
図 9-7 にセカ ンダ リ I 2 Cコアのブロック図を示します。<br />
図 9-7. セカ ンダ リ I 2 Cのブロック図<br />
User Logic<br />
i2c1_irqo<br />
WISHBONE Interface<br />
表 9-5 にセカ ンダ リ I 2 C コ アの IP 信号を示し ます。 こ れら の信号は、 <strong>MachXO2</strong> デバ イ スの任意の GPIO で配<br />
線でき ます。<br />
表 9-5. セカ ンダ リ I 2 C ~ IP 信号<br />
信号名 固有のピ ン名 I/O 幅 記 述<br />
i2c2_scl — 双方向 1<br />
i2c2_sda — 双方向 1<br />
i2c2_irqo — 出力 1<br />
cfg_wake — 出力 1<br />
cfg_stdby — 出力 1<br />
EFB Register Map<br />
EFB<br />
Power<br />
Controller<br />
cfg_wake/<br />
cfg_stdby<br />
User<br />
Master/Slave<br />
i2c1_scl<br />
zzzyyyyy10 i2c1_sda<br />
コアのオープンドレイン ・ クロックライン ~ I 2 Cコアがマスタ動作を実行<br />
中、 信号は出力。 スレーブ動作時、 この信号は入力。 <strong>MachXO2</strong> の任意の<br />
GPIO で配線で き る<br />
I 2 Cコアのオープンドレイン・データライン~ I 2 Cコアがデータを送信時、<br />
信号は出力。 I 2 C コ アがデー タ を受信時、 この信号は入力。 <strong>MachXO2</strong> の任意<br />
の GPIO で配線でき る<br />
I 2 C コ アの割 り 込み要求出力信号 ~ この信号の目的は、 WISHBONE マス タ コ<br />
ン ト ローラ (マ イ ク ロ コ ン ト ローラ またはステー ト マシン) に接続し、 特定<br />
の条件に適合し た場合に割 り 込みを要求する こ と。 その条件については、 I 2 C<br />
レジス タの定義を参照<br />
ウェイクアップ信号 ~ 機能シ ミ ュ レーシ ョ ンのため、 <strong>MachXO2</strong> デバイ スの<br />
パワーコ ン ト ローラのみに接続するハー ド ワイヤ信号。 この信号がイネーブ<br />
ルと なるのは、 EFB GUI の I 2 C タ ブで Wakeup Enable (ウ ェ イ ク ア ッ プ ・ イ<br />
ネーブル) 機能がイネーブルと な っ ている場合のみ<br />
スタンバイ信号 ~ 機能シ ミ ュ レーシ ョ ンのため、 <strong>MachXO2</strong> デバイ スのパ<br />
ワーコ ン ト ローラのみに接続するハー ド ワイヤ信号。 この信号がイネーブル<br />
と なるのは、 EFB GUI の I 2 C タ ブで Wakeup Enable (ウ ェ イ ク ア ッ プ ・ イネー<br />
ブル) 機能がイネーブルと な っ ている場合のみ<br />
9-10 tn1205J_04.0
IPexpress に よ る I 2 Cコアの構成<br />
<strong>MachXO2</strong> ユーザフラッシュメモリと<br />
ハードマクロ制御機能の使用方法<br />
IPexpress を使用し て I 2 C コ ア を構成し、EFB モジ ュールを生成で き ます。 EFB GUI で I 2 C タ ブを選択する と 、<br />
I 2 C コ アの構成可能な設定が表示されます。 図 9-8 に I 2 C コ アの構成例を示し ます。<br />
図 9-8. IPexpress に よ る EFB モジ ュールの I 2 C機能の構成<br />
同報通知イ ネーブル (General Call Enable)<br />
こ の設定では、 ス レーブモー ド での I 2 C 同報通知応答 (I 2 C ア ド レ ス 0 を使用し てバス上の全デバイ スに送<br />
信) が イ ネーブルにな り ます。 プ ラ イ マ リ レ ジ ス タ I2C_1_CR ま たはセカ ンダ リ レ ジ ス タ I2C_2_CR の GCEN<br />
ビ ッ ト を イ ネーブルにする と 、 こ の設定を動的に変更で き ます。<br />
ウ ェ イ ク ア ッ プ ・ イ ネーブル (Wake-up Enable)<br />
パ ワ ー コ ン ト ロ ー ラ の 詳細 に つ い て は、 "TN1198, Power Estimation and Management for <strong>MachXO2</strong> Devices<br />
(<strong>MachXO2</strong> デバイ スの電源見積 り と 管理) " を参照し て く だ さ い。<br />
Wake-up Enable を選択する と 、 外部 I 2 C マス タ が <strong>MachXO2</strong> のス タ ンバ イ電源状態を解除で き る よ う にな り<br />
ます。 外部 I 2 Cマスタが<strong>MachXO2</strong>のウェイクに使用できる方法は、次の2つあります。<br />
• プライマリ またはセカンダリ ・ スレーブ I2C EFB ア ド レ スの照合<br />
• 同報通知 と 、 それに続 く 0xF3 16 進コ マン ド Op コー ド の実行<br />
I2C_1_CR ま たは I2C_2_CR の WKUPEN ビ ッ ト は動的に変更で き、 ウ ェ イ ク ア ッ プ機能を イ ネーブルま たは<br />
ディセーブルにできます。<br />
I 2 C バス動作速度 (I 2 C Bus Performance)<br />
I 2 C 周波数を 50KHz、 100KHz、 400KHz か ら選択で き ます。 こ れは、 I 2 C バスの SCL ク ロ ッ ク 周波数にな り ま<br />
す。 こ の GUI 値 と 、 EFB Enables タ ブの WISHBONE Clock Frequency 属性 と の組み合わせか ら、 ソ フ ト ウ ェ<br />
アが (WB クロック) / (クロック・プリスケール値) という式を使用して、10ビット ・プリスケール・レジ<br />
9-11 tn1205J_04.0
<strong>MachXO2</strong> ユーザフラッシュメモリと<br />
ハードマクロ制御機能の使用方法<br />
ス タ の ク ロ ッ ク 分周値を計算し ます。 プ ラ イ マ リ I 2 C ボーレー ト ・ レ ジ ス タペア I2C_1_BR1、 I2C_1_BR0、 ま<br />
たはセカンダ リ I 2 C ボーレー ト ・ レ ジ ス タペア I2C_2_BR1、I2C_2_BR0 にア ク セ スする こ と で、 こ のプ リ ス ケー<br />
ル値を動的に変更で き ます。<br />
I 2 Cアドレッシング (I 2 C Addressing)<br />
7ビットまたは10 ビットのI 2 C ス レーブ ・ ア ド レ ッ シング方式を選択で き ます。 7 ビ ッ ト ア ド レ ス及び 10<br />
ビッ トアドレスの最後の 2 ビッ トはハードコードされ、 I 2 C コ ンポーネン ト の 1 つを選択する よ う になって<br />
います。 I 2 Cアドレスのプログラマブル・ビットはI 2 C モジ ュール間で共有され、 次の よ う に定義 さ れます。<br />
yyyxxxxxww<br />
ww ビッ トはハードコード され、 次のよ うに定義されます<br />
00 =プライマリ ・コンフィグレーション・フラッシュメモリ (UFM/コンフィグレーション) I2C 01 = プ ラ イ マ リ ・ ユーザ I 2C 10 = セカ ンダ リ ・ ユーザ I 2C 11 = I 2Cコア選択 xxxxx ビ ッ ト は IPexpress GUI を使用し てプ ロ グ ラ ムで き、 デフ ォル ト 値は 10000 です。<br />
yyy ビ ッ ト は、 10 ビ ッ ト ・ ア ド レ ッ シングを選択し た場合にプ ロ グ ラ ム可能 と な り 、 デフ ォル ト 値は 000<br />
です。<br />
プライマリ I 2 Cアドレスは、フラッシュメモリ (UFM/コンフィグレーション) I 2 Cアドレスと長さが同じで<br />
す。 プ ラ イ マ リ 及びセカ ンダ リ I 2 C ア ド レス ・ サイズは、 長さが異なってもかまいません。 例えば、 プラ イ<br />
マリ I 2 Cアドレスが10ビットで、セカンダリ I 2 C アドレスが7 ビッ ト という ことが可能です。<br />
<strong>MachXO2</strong> I 2 Cのユースケース<br />
以下で説明する I 2 C の使用例は図 9-9 を参照し て く だ さ い。<br />
1. ス レーブ外部 I2C デバイスにアクセスするマスタ <strong>MachXO2</strong> I2C a. <strong>MachXO2</strong> ロ ジ ッ ク 内に WISHBONE バスマス タ を実装<br />
b. I2Cデバイス1、2、及び3は全てスレーブデバイス c. WISHBONE バスマス タ が EFB 内のプ ラ イ マ リ I 2Cコントローラへのトランザクションを実行し、 バス A の外部ス レーブ I 2Cデバイス1にアクセスする d. WISHBONE バスマス タ が EFB 内のセカ ンダ リ I 2Cコントローラへのトランザクションを実行し、 バス B の外部ス レーブ I 2C デバイス番号 2 または 3 にアクセスする<br />
e. I 2C レ ジ ス タ の定義 と コ マン ド シーケ ン スについては、 "TN1246, Using User Flash Memory and<br />
Hardened Control Functions in <strong>MachXO2</strong> Devices Reference Guide (<strong>MachXO2</strong> デバ イ ス のユーザフ<br />
ラ ッ シ ュ メ モ リ と ハー ド マ ク ロ制御機能の使用法 リ フ ァ レ ン ス ガ イ ド ) " の I 2 C の項を参照<br />
2. ス レーブ <strong>MachXO2</strong> I2C にアクセスする外部マスタ I2Cデバイス a. I 2 Cデバイス1、2、及び3はI 2 Cマスタデバイス<br />
b. バス A の外部マス タ I 2 CデバイスがI 2 C メ モ リ サ イ ク ルを実行し、ア ド レ ス yyyxxxxx01 を使用し<br />
てEFBプライマリI 2 Cコントローラにアクセスする<br />
c. バス B の外部マ ス タ I2Cデバイス2または3がI2Cメ モ リ サ イ ク ルを実行し、ア ド レ ス yyyxxxxx10<br />
でEFBセカンダリI 2 Cユーザにアクセスする<br />
d. <strong>MachXO2</strong> フ ァ ブ リ ッ ク内の WISHBONE バス マス タ が、 データ の送受信を管理する必要があ る。<br />
WISHBONE マス タは、 割 り 込みま たはポー リ ン グ技術を使用し てデータ転送を管理し、 データ<br />
のオーバーラ ン状態を防止で き る<br />
i. I2 C レジスタの定義とコマンドシーケンスについては、 "TN1246, Reference Guide for Using<br />
User Flash Memory and Hardened Control Functions in <strong>MachXO2</strong> Devices (<strong>MachXO2</strong> デバ イ ス<br />
9-12 tn1205J_04.0
<strong>MachXO2</strong> ユーザフラッシュメモリと<br />
ハードマクロ制御機能の使用方法<br />
のユーザフ ラ ッ シ ュ メ モ リ と ハー ド マ ク ロ制御機能の使用法 リ フ ァ レ ン ス ガ イ ド ) " の I2C の項を参照<br />
3. プ ラ イ マ リ I 2C イ ン ターフ ェ イ ス を使用し て <strong>MachXO2</strong> フ ラ ッ シ ュ メ モ リ にア ク セ スする外部マ ス<br />
タI 2Cデバイス a. バス A の外部マ ス タ I 2C デバイ ス 1 が、 ア ド レ ス yyyxxxxx00 を使用し てバス ト ラ ンザ ク シ ョ ン<br />
を実行。 外部マ ス タ は こ のア ド レ ス を使用し て、 <strong>MachXO2</strong> コ ン フ ィ グ レーシ ョ ン ・ ロ ジ ッ ク と<br />
対話する。コ ン フ ィ グ レーシ ョ ン・ ロ ジ ッ ク は、フ ラ ッ シ ュ メ モ リ 動作の実行に必要な制御を提供<br />
b. I 2Cによる<strong>MachXO2</strong>デバイスのフラッシュメモリ (UFM/コンフィグレーション)のアクセスの<br />
詳細については、 本書で後述し ます。 ま た、 "TN1246, <strong>MachXO2</strong> EFB Reference Guide (<strong>MachXO2</strong><br />
EFB リ フ ァ レ ン ス ガ イ ド ) " を参照<br />
c. I 2C ポー ト か ら の <strong>MachXO2</strong> のプ ロ グ ラ ミ ン グの詳細については、"TN1204, <strong>MachXO2</strong> Programming<br />
and Configuration Usage Guide (<strong>MachXO2</strong> プ ロ グ ラ ミ ン グ と コ ン フ ィ グ レーシ ョ ンのユーザガ イ<br />
ド) " の I 2C項を参照 4. 上記の使用例は相互に排他的ではあ り ません。 例えば :<br />
a. バス A の外部マ ス タデバ イ ス 1 が、 <strong>MachXO2</strong> コ ン フ ィ グ レーシ ョ ン ・ ロ ジ ッ ク にア ク セ スする<br />
と同時に、 WISHBONEマスタがバスBの I2C ス レーブデバ イ スにデータ を転送で き る<br />
b. WISHBONE マ ス タ がバス A のマ イ ク ロ プ ロ セ ッ サ (I2C デバイ ス 1) にデータ を転送し、 将来の<br />
ある時点でマイクロプロセッサが WISHBONEマスタにデータを返送できる。 マイクロプロセッ<br />
サは、 将来のあ る時点で <strong>MachXO2</strong> のフ ラ ッ シ ュ メ モ リ をプ ロ グ ラ ム し、 <strong>MachXO2</strong> デバ イ スの機<br />
能をアップデー ト する こ と も可能<br />
図 9-9. I 2 C回路<br />
I 2 C設計のヒント<br />
SCL<br />
SDA<br />
I2 SCL<br />
C Device 1<br />
SDA<br />
SCL<br />
SDA<br />
Bus A<br />
Bus B<br />
I 2 C Device 2 I 2 C Device 3<br />
<strong>MachXO2</strong><br />
SCL<br />
SDA<br />
(any GPIO)<br />
(any GPIO)<br />
1. I 2 C レ ジ ス タ の定義 と コ マン ド シーケ ン スについては、 "TN1246, Using User Flash Memory and<br />
Hardened Control Functions in <strong>MachXO2</strong> Devices Reference Guide (<strong>MachXO2</strong> デバ イ スのユーザフ ラ ッ<br />
シ ュ メ モ リ と ハー ド マ ク ロ制御機能の使用法 リ フ ァ レ ン スガ イ ド ) " の I 2 C項を参照してください<br />
2. EFB では、 消費電力削減のため コ ンポーネン ト を動的にオフする場合に、 WISHBONE ク ロ ッ ク の<br />
ソ ースにな ってい る かど う かにかかわ らず、 <strong>MachXO2</strong> の内部オシ レータ を イ ネーブルにする必要<br />
があ り ます<br />
EFB<br />
Flash Memory<br />
Primary I<br />
i2c1_scl<br />
2C<br />
i2c1_sda<br />
Secondary I 2C<br />
i2c2_scl<br />
i2c2_sda<br />
WISHBONE<br />
9-13 tn1205J_04.0<br />
User Logic
<strong>MachXO2</strong> ユーザフラッシュメモリと<br />
ハードマクロ制御機能の使用方法<br />
3. フ ラ ッ シ ュ メ モ リ (UFM/ コ ン フ ィ グ レーシ ョ ン) へのア ク セ スでは、 I2CはJTAGポート及びス レーブ SPI ポー ト よ り も優先順位が低 く な り ます。 詳細については、 29 ページの " フ ラ ッ シ ュ メ モ<br />
リ (UFM/ コ ン フ ィ グ レーシ ョ ン) のア ク セ ス " を参照し て く だ さ い<br />
4. Refresh コ マン ド の発行後、 ま たは PROGRAMN の ト グル後にセカ ンダ リ セカ ンダ リ I 2Cポートをイ ネーブルにした場合は、I2C_STOPでステートマシンをリセットすることを推奨します。I2C STOP<br />
は、 I2C_2_CMDR への 0x40 のレ ジ ス タ の 1 回ラ イ ト で実行で き ます。 その結果、 SCK にブ ロ ッ ク<br />
信号 STOP と し て短い Low パルスが発生し ます。 遅延が発生する こ と な く 、 通常の I2C動作が開始 されます<br />
5. ラ テ ィ スのウ ェブサ イ ト (www.latticesemi.com/products/intellectualproperty/<br />
aboutreferencedesigns.cfm) には、 次の よ う な多数の I 2C 参照デザ イ ンがあ り ます。<br />
–a. RD1124 : I 2C Slave Peripheral Using Embedded Function Block (組み込み機能ブ ロ ッ ク を使用し た<br />
I 2C ス レーブ周辺回路)<br />
–b. UG55 : <strong>MachXO2</strong> Hardened I2C Master/Slave Demo (<strong>MachXO2</strong> ハー ド マ ク ロ I2Cマスタ/スレー ブ・デモ)<br />
6. I 2C プロ ト コルの詳細については www.i2c-bus.org/ を参照して く ださい<br />
ハー ド マ ク ロ化 SPI IP コ ア<br />
SPI は幅広 く 使用されてい る 4 線式シ リ アルバスで、全二重動作でデバイ ス間の通信が行われます。<strong>MachXO2</strong><br />
EFB に内蔵される SPI コ ン ト ローラ は、SPI マ ス タ / ス レーブま たは SPI ス レーブ と し て構成で き ます。IP コ<br />
アがマ ス タ / ス レーブ と し て構成された場合は、 ス レーブ SPI イ ン ターフ ェ イ ス を持つ最大 8 個の他のデバ<br />
イ ス を制御で き ます。 コ アがス レーブ と し て構成された場合は、 外部 SPI マ ス タデバ イ ス と イ ン ターフ ェ イ<br />
スできます。SPI コアは、<strong>MachXO2</strong>のコンフィグレーション・ロジックまたは他のユーザロジックとインター<br />
フ ェ イ ス し ます。 ハー ド マ ク ロ化さ れた SPI IP コ アの機能 と ブ ロ ッ ク 図を、 次に示し ます。<br />
表 9-6. ハー ド マ ク ロ化 SPI の機能<br />
スレーブ SPI ポート<br />
コンフィグレーション<br />
SPI ユーザ SPI<br />
Yes Yes<br />
マスタ SPIポート No 1<br />
Yes<br />
フラッシュメモリ (UFM/ コンフィグレーション)<br />
のアクセス<br />
Yes No<br />
専用 I/O の使用の必要性 Yes Yes 2<br />
パワーコ ン ト ローラのス タ ンバイモー ドからのウ ェ<br />
イクアップ<br />
Yes Yes<br />
パワー コ ン ト ローラのス タ ンバイ モー ド への移行<br />
1. SRAM の コ ン フ ィ グ レーシ ョ ン専用<br />
2. 任意の GPIO を spi_csn[7:1] 及び spi_scsn に使用で き る<br />
No Yes<br />
9-14 tn1205J_04.0
図 9-10. SPI ブ ロ ッ ク 図<br />
User Logic<br />
spi_irq<br />
<strong>MachXO2</strong> デバ イ スの SPI IP コ アは次の機能をサポー ト し ています。<br />
<strong>MachXO2</strong> ユーザフラッシュメモリと<br />
ハードマクロ制御機能の使用方法<br />
• 構成可能なマス タ及びス レーブモー ド<br />
• CPU 割 り 込み機能のあ る モー ド 故障エ ラーフ ラ グ<br />
• ダブルバッファ ・ データレジスタによるスループッ トの向上<br />
• 極性と位相がプログラマブルなシリアルクロッ ク<br />
• LSB ファース ト または MSB ファース トのデータ転送<br />
• EFB WISHBONEスレーブ ・ インターフェイスによるカスタムロジックへのインターフェイス<br />
マス タ / ス レーブ SPI モー ド の場合<br />
• ユーザ SPI コ ン ト ローラ では、 8 個のマス タ ・ チ ッ プセレ ク ト (spi_csn[7:0]) ポー ト を使用で き ます。 そ<br />
のため、 ス レーブ SPI イ ン ターフ ェ イ ス を持つ最大 8 個の外部デバ イ ス を制御で き ます。<br />
• 電源投入時の コ ン フ ィ グ レーシ ョ ン SPI では、 外部 SPI フ ラ ッ シ ュ メ モ リ か ら <strong>MachXO2</strong> デバ イ スが起動<br />
する よ う SPI ポー ト が イ ネーブルになってい る場合、 その SPI ポー ト はマ ス タ SPI コ ン ト ローラ と し て機<br />
能し、 特定の SPIフラ ッシュ メモリ を選択するためのマスタ ・ チップセレク ト と して spi_csn[0] が使用さ<br />
れます。 SPI ポー ト か ら の <strong>MachXO2</strong> のプ ロ グ ラ ミ ン グの詳細については、 "TN1204, <strong>MachXO2</strong><br />
Programming and Configuration Usage Guide (<strong>MachXO2</strong> プ ロ グ ラ ミ ング と コ ン フ ィ グ レーシ ョ ンのユーザガ<br />
イ ド ) " の SPI の項を参照し て く だ さ い。<br />
ス レーブ SPI モー ド の場合<br />
WISHBONE Interface<br />
EFB Register Map<br />
Configuration<br />
(including<br />
USERCODE)<br />
Flash Memory<br />
• ユーザ SPI コ アには、 ス レーブ ・ チ ッ プセレ ク ト (spi_scsn) ピ ンが 1 本あ り ます。 そのため、 マ ス タ SPI<br />
イ ン ターフ ェ イ ス を持つ外部デバイ スか ら ユーザ SPI を選択で き ます。 ユーザロ ジ ッ ク は、 FPGA ロ ジ ッ<br />
ク内の WISHBONE マ ス タ か ら、 EFB WISHBONE イ ン ターフ ェ イ ス を通じ てア ク セス さ れます。<br />
• コンフィグレーシ ョ ン SPI には、 スレーブ ・ チップセレク ト (ufm_sn) ピンが 1 本あり ます。 外部SPI マ<br />
スタは、 チップセレクト入力をアサートすることで、 <strong>MachXO2</strong>のコンフィグレーション・ ロジックにア<br />
ク セスでき ます。 外部 SPI マ ス タは、 SN がアサー ト さ れた状態のプ ロ グ ラ ミ ングバス転送を使用し て、<br />
UFM<br />
EFB<br />
Feature Row<br />
(including<br />
TraceID)<br />
Flash Command Interface<br />
Power<br />
Controller<br />
cfg_wake/<br />
cfg_stdby<br />
Configuration<br />
Master/Slave<br />
User<br />
Master/Slave<br />
ufm_sn<br />
spi_clk<br />
spi_miso<br />
spi_mosi<br />
spi_scsn<br />
spi_csn<br />
[7:0]<br />
9-15 tn1205J_04.0
<strong>MachXO2</strong> ユーザフラッシュメモリと<br />
ハードマクロ制御機能の使用方法<br />
<strong>MachXO2</strong>のコンフィグレーション・フラッシュ及びユーザフラッシュメモリをプログラムできます。<br />
こ の使用法ガ イ ド では、 ユーザ SPI のア ク セ ス を中心に説明し ます。 SPI ポー ト か ら の <strong>MachXO2</strong> のプ ロ グ ラ<br />
ミ ン グの詳細については、 "TN1204, <strong>MachXO2</strong> Programming and Configuration Usage Guide (<strong>MachXO2</strong> プ ロ グ<br />
ラ ミ ン グ と コ ン フ ィ グ レーシ ョ ンのユーザガ イ ド ) " の SPI の項を参照し て く だ さ い。<br />
スレーブ・ コンフィグレーション SPI ポートは、 パワーコント ローラのスタンバイからのウェイクアップ、<br />
ま たはス タ ンバイへの移行に使用で き ます。 ス レーブ ・ ユーザ SPI ポー ト は、 パワーコ ン ト ローラ のス タ ン<br />
バイモードからのウェイクアップだけに使用できます。パワーコントローラの詳細については、"TN1198,<br />
Power Estimation and Management for <strong>MachXO2</strong> Devices (<strong>MachXO2</strong> デバ イ スの電源見積 り と 管理) " を参照し<br />
て く だ さ い。 SPI パワーコ ン ト ローラ の機能は、 後述する よ う に IPexpress か ら設定で き ます。 レ ジ ス タ設定<br />
に つ い て は、 "TN1246, Reference Guide for Using User Flash Memory and Hardened Control Functions in<br />
<strong>MachXO2</strong> Devices (<strong>MachXO2</strong> デバイ スのユーザフ ラ ッ シ ュ メ モ リ 及びハー ド マ ク ロ制御機能の使用法 リ フ ァ<br />
レ ン スガ イ ド ) " に説明があ り ます。<br />
SPI イ ン ターフ ェ イ ス信号<br />
SPI イ ン ターフ ェ イ スではシ リ アル送信プ ロ ト コルが使用 さ れます。 データはシ リ アルに送信 さ れ (送信デ<br />
バイ スか ら シ フ ト ア ウ ト さ れ)、受信デバイ スにシ フ ト イ ン さ れてシ リ アルに受信されます。マス タデバ イ ス<br />
は、 チ ッ プセレ ク ト をアサー ト し て特定のス レーブデバイ ス を選択する こ と で、 ス レーブデバ イ スがコ マン<br />
ド / データ をシフ ト イ ン し、 データ のシ フ ト ア ウ ト で応答で き る よ う に し ます。<br />
表 9-7 に IP コ アで生成 さ れる信号を示し ます。 各信号には、 使用方法 と 、 デザ イ ンプ ロ ジ ェ ク ト の中での接<br />
続方法に関する説明が記述されています。<br />
表 9-7. SPI ~ IP 信号<br />
信号名 固有のピ ン名 I/O 幅 記 述<br />
spi_clk MCLK/CCLK 双方向 1<br />
spi_miso SPISO/SO 双方向 1<br />
spi_mosi SISPI/SI 双方向 1<br />
spi_csn[7:0] CSSPIN 出力 8<br />
spi_scsn — 入力 1<br />
SPI コ アがマス タ モー ド 時、 信号は出力 (MCLK) で、 SPI コ アがス<br />
レーブモー ド 時、 信号は入力 (CCLK)<br />
この信号は、 事前に割 り 当て られた対応する ピ ンに直接配線される こ<br />
と。 各 <strong>MachXO2</strong> デバイ スの SPI 信号のパ ッ ド と ピ ンの位置については、<br />
"<strong>MachXO2</strong> Family Data Sheet (<strong>MachXO2</strong> フ ァ ミ リ ・ デー タ シー ト ) " のピ<br />
ンテーブルを参照<br />
SPI コ アがマス タ モー ド 時は入力 (SPISO)。 SPI コ アがスレーブモー<br />
ド 時は出力 (SO)<br />
この信号は、 事前に割 り 当て られた対応する ピ ンに直接配線する。 各<br />
<strong>MachXO2</strong> デバイ スの SPI 信号のパ ッ ド と ピ ンの位置については、<br />
"<strong>MachXO2</strong> Family Data Sheet (<strong>MachXO2</strong> フ ァ ミ リ ・ デー タ シー ト ) " のピ<br />
ンテーブルを参照<br />
SPI コ アがマス タ モー ド 時は出力 (SISPI) で、 SPI コ アがスレーブ<br />
モー ド 時は入力 (SI)<br />
この信号は、 事前に割 り 当て られた対応する ピ ンに直接配線する。 各<br />
<strong>MachXO2</strong> デバイ スの SPI 信号のパ ッ ド と ピ ンの位置については、<br />
"<strong>MachXO2</strong> Family Data Sheet (<strong>MachXO2</strong> フ ァ ミ リ ・ デー タ シー ト ) " のピ<br />
ンテーブルを参照<br />
マスタ ・ チップセレクト (アクティブ Low)。 マスタ SPIモードの <strong>MachXO2</strong> SPI コ ン ト ローラ を使用する と、 最大 8 個の個別スレーブ SPI<br />
デバイスにア クセス可能<br />
信号 spi_csn[0] は、 事前に割 り 当て られた対応する ピ ンに直接配線す<br />
る。 各 <strong>MachXO2</strong> デバイ スの SPI 信号のパ ッ ド と ピ ンの位置については、<br />
"<strong>MachXO2</strong> Family Data Sheet (<strong>MachXO2</strong> フ ァ ミ リ ・ デー タ シー ト ) " の<br />
テーブルを参照<br />
ユーザスレーブ・チップセレクト (アクティブLow)。 外部SPIマスタ<br />
コ ン ト ローラがこの信号をアサー ト し、 SPI コ ン ト ローラの送信デー タ /<br />
受信デー タ ・ レ ジス タ との間でデー タ を転送。 <strong>MachXO2</strong> デバイ スの任意<br />
の GPIO で配線で き る<br />
9-16 tn1205J_04.0
表 9-7. SPI ~ IP 信号 (Continued)<br />
信号名 固有のピ ン名 I/O 幅 記 述<br />
ufm_sn SN 入力 1<br />
spi_irq — 出力 1<br />
cfg_wake — 出力 1<br />
cfg_stdby — 出力 1<br />
IPexpress に よ る SPI コ アの構成<br />
<strong>MachXO2</strong> ユーザフラッシュメモリと<br />
ハードマクロ制御機能の使用方法<br />
コンフィグレーション・ロジックのチップセレクト (アクティブLow)<br />
は、 フ ラ ッ シ ュ メ モ リ の UFM 及びコ ン フ ィ グレーシ ョ ン ・ セ ク タの選択<br />
専用<br />
この信号は事前に割 り 当て られた対応する ピ ンに直接配線される こ と。<br />
各 <strong>MachXO2</strong> デバイ スの SPI 信号のパ ッ ド と ピ ンの位置については、<br />
"<strong>MachXO2</strong> Family Data Sheet (<strong>MachXO2</strong> フ ァ ミ リ ・ デー タ シー ト ) " のピ<br />
ンテーブルを参照<br />
SN は、 EFB プ リ ミ テ ィ ブに 'ufm_sn' が存在するかど う かにかかわら<br />
ず、 SPI コ アがイ ンス タ ンス化される と必ずア ク テ ィ ブピン と なる。 そ<br />
のため、 SN はユーザ I/O と し て回復でき ない。 外部マス タ SPI バスに接<br />
続し ない場合は、 SN を外部的に High に接続し、 内部の弱いプルア ッ プ<br />
を強化できる<br />
SN は、 ブ ラ ン ク または消去済みデバイ スの内部で も ア ク テ ィ ブ と なる<br />
SPI コ アの割 り 込み要求出力信号。 この信号の目的は、 WISHBONE マ<br />
スタコン ト ローラ (マイクロコン ト ローラまたはステートマシン) に接<br />
続する こ と。 特定の条件に適合する と アサー ト される。 このよ う な条件<br />
は、 SPI レジス タ設定を使用し て制御される<br />
ウ ェ イ ク ア ッ プ信号 ~ <strong>MachXO2</strong> デバイ スのパワーコ ン ト ローラのみ<br />
に接続この信号がイネーブルと なるのは、 EFB GUI の SPI タ ブで Wakeup<br />
Enable (ウ ェ イ ク ア ッ プ ・ イネーブル) 機能がイネーブルと な っ ている<br />
場合のみ<br />
ス タ ンバイ信号 ~ <strong>MachXO2</strong> デバイ スのパワーコ ン ト ローラのみに接<br />
続この信号がイネーブルと なるのは、 EFB GUI の SPI タ ブで Wakeup<br />
Enable (ウ ェ イ ク ア ッ プ ・ イネーブル) 機能がイネーブルと な っ ている<br />
場合のみ<br />
IPexpress は、SPI コ ン ト ローラ の構成 と 、デザ イ ンに組み込むための Verilog ま たは VHDL ソース コー ド の生<br />
成に使用されます。 EFB GUI で SPI タ ブを選択する と 、 SPI コ アの構成可能な設定が表示されます。 図 9-11<br />
に SPI コ ン ト ローラ の構成例を示し ます。<br />
9-17 tn1205J_04.0
図 9-11. IPexpress に よ る EFB モジ ュールの SPI 機能の構成<br />
<strong>MachXO2</strong> ユーザフラッシュメモリと<br />
ハードマクロ制御機能の使用方法<br />
SPI モー ド (SPI Mode)<br />
本オプシ ョ ンでは、 ユーザが SPI コ アの内部モード を "Slave" または "Slave & Master" モード に設定でき ま<br />
す。 "Slave & Master" を選択する と 、 マス タ ・ ク ロ ッ ク レー ト やマ ス タ ・ チ ッ プセレ ク ト な どの SPI マ ス タ設<br />
定が イ ネーブルにな り ます。 レ ジ ス タ SPICR2 の MSTR ビ ッ ト を変更する と 、 こ のオプシ ョ ン を動的に更新<br />
できます。<br />
マ ス タ ・ ク ロ ッ ク レー ト (SPI Master Clock Rate)<br />
Desired Frequency (希望する周波数) : SPI マ ス タ と し て構成された EFB SPI コ ン ト ローラ は、 バス上の SPI<br />
ス レーブデバイ スへの出力 ク ロ ッ ク を出力し ます。 出力 ク ロ ッ ク は、 WISHBONE ク ロ ッ ク 周波数を 2 のべき<br />
乗値で分周さ れます。 SPI マ ス タはマ ス タ ・ ク ロ ッ ク レー ト を使用し て、 全ての SPI バス ト ラ ンザ ク シ ョ ン及<br />
び内部動作の タ イ ミ ン グ を合わせます。 <strong>MachXO2</strong> の SPI マス タ ・ イ ン ターフ ェ イ スは、 最高 45 MHz まで動<br />
作で き ます。 入力は、 ダ イ ア ロ グの EFB Enables タ ブにあ る WISHBONE Clock Frequency で行います。<br />
除数は、 FPGA がユーザモー ド の と き に変更で き ます。 SPIBR レ ジ ス タ の分周値を更新する と 、 SPI コ ン ト<br />
ローラ が リ セ ッ ト さ れ、 新し い出力 ク ロ ッ ク 周波数を使用する よ う にな り ます。<br />
Actual Frequency (実際の周波数) : 入力 WISHBONE ク ロ ッ ク を、 ユーザが要求し た周波数どお り に分周で き<br />
ない場合があ り ます。 その場合に実際の周波数値は、 こ の読み取 り 専用フ ィ ール ド に返 さ れます。 希望する<br />
SPI ク ロ ッ ク と WISHBONE ク ロ ッ クの両方のフ ィ ール ド に有効な値が指定され、 どち らかが更新される と、<br />
こ のフ ィ ール ド には小数点以下 2 位までに丸め ら れた値が返 さ れます。<br />
SPI プ ロ ト コル ・ オプシ ョ ン (SPI Protocol Options)<br />
LSB First (LSB 先出し) : こ の設定では、 データバイ ト のシ リ アルシ フ ト の順序が指定さ れます。 データ の<br />
順序 (MSB と LSB のど ち ら が先か) は SPI コ ア内部でプ ロ グ ラ ムで き ます。 レ ジ ス タ SPICR2 の LSBF ビ ッ<br />
ト を変更する と 、 こ のオプシ ョ ン を動的に更新で き ます。<br />
9-18 tn1205J_04.0
<strong>MachXO2</strong> ユーザフラッシュメモリと<br />
ハードマクロ制御機能の使用方法<br />
Inverted Clock (反転 ク ロ ッ ク ) : サンプル及び出力データ に使用される ク ロ ッ ク 極性の反転は、 SPI コ アに対<br />
し てプ ロ グ ラ ムで き ます。 選択する と 、 有効 ク ロ ッ ク エ ッ ジが立ち上が り か ら立ち下が り に変わ り ます。 レ<br />
ジ ス タ SPICR2 の CPOL ビ ッ ト にア ク セスする こ と で、 こ のオプシ ョ ン を動的に更新で き ます。<br />
Phase Adjust (位相調整) : 特定の要件を持つ SPI デバイ スに対し ては、 別の ク ロ ッ ク と データ の関係を設定<br />
できます。 このオプシ ョ ンでは、 ユーザがアプ リ ケーシ ョ ンに合った位相を指定できます。 レジス タ SPICR2<br />
の CPHA ビ ッ ト にア ク セ スする こ と で、 こ のオプシ ョ ン を動的に更新で き ます。<br />
Slave Handshake Mode (ス レーブ ・ ハン ド シ ェー ク モー ド ) : SPI プ ロ ト コルに対する ラ テ ィ ス固有の拡張機<br />
能を イ ネーブルし ます。 内部サポー ト 回路 (WISHBONE ホ ス ト な ど) が最初のデータ が必要な時間内に応答<br />
で き ない場合、 及びス レーブ ・ リ ー ド ア ウ ト ・ データ を定期的に速い SPI ク ロ ッ ク レー ト で使用で き る よ う<br />
にする場合に使用し ます。 レ ジ ス タ SPICR2 の SDBRE ビ ッ ト にア ク セ スする こ と で、 こ のオプシ ョ ン を動的<br />
に更新でき ます。<br />
マ ス タ ・ チ ッ プセレ ク ト (Master Chip Selects)<br />
SPI コ ン ト ローラ はマ ス タ動作用 と し て、 最大 8 本の独立し たチ ッ プセレ ク ト を生生で き ます。 マ ス タ か ら<br />
ア ク セ ス さ れる SPI デバイ ス ご と に、 専用のチ ッ プセレ ク ト が必要です。 レ ジ ス タ SPICSR を変更する こ と<br />
で、 こ のオプシ ョ ン を動的に更新で き ます。<br />
SPI コ ン ト ローラ の割 り 込み (SPI Controller Interrupts)<br />
TX Ready: SPI 送信データ レ ジ ス タ (SPITXDR) が空であ る こ と を示す割 り 込みで、 割 り 込みビ ッ ト はレ ジ ス<br />
タ SPIIRQ の IRQTRDY です。 イ ネーブルする と 、 TRDY がアサー ト さ れた こ と を示し ます。 本ビ ッ ト に '1' を<br />
ラ イ ト する と 、 割 り 込みが ク リ ア さ れます。 レ ジ ス タ SPICSR のビ ッ ト IRQTRDYEN を変更する こ と で、 こ<br />
のオプシ ョ ン を動的に変更で き ます。<br />
RX Ready: 受信データ レ ジ ス タ (SPIRXDR) に有効な受信データ が格納 さ れてい る こ と を示す割 り 込みで、 割<br />
り 込みはレ ジ ス タ SPIIRQ のビ ッ ト IRQRRDY です。 イ ネーブルする と 、 RRDY がアサー ト さ れた こ と を示し<br />
ます。本ビットに'1'をライトすると、割り込みがクリアされます。レジスタSPICSRのビットIRQRRDYEN<br />
を変更する こ と で、 こ のオプシ ョ ン を動的に変更で き ます。<br />
TX Overrun: SPI マス タ の と き に、 ス レーブ SPI チ ッ プセレ ク ト (SPI_SCSN) が Low に ド ラ イ ブ さ れた こ と を<br />
示す割 り 込みで、割 り 込みはレ ジ ス タ SPIIRQ のビ ッ ト IRQMDF です。 イ ネーブルする と 、MDF (Mode Fault)<br />
がアサー ト さ れた こ と を示し ます。 本ビ ッ ト に '1' を ラ イ ト する と 、 割 り 込みが ク リ ア さ れます。 レ ジ ス タ<br />
SPICSR のビ ッ ト IRQMDFEN を変更する こ と で、 こ のオプシ ョ ン を動的に変更で き ます。<br />
RX Overrun: SPIRXDR が、 新し いデータ をその前のデータ よ り も先に受信し た こ と を示す割 り 込みで、 割 り<br />
込みはレ ジ ス タ SPIIRQ のビ ッ ト IRQROE です。 イ ネーブルする と 、 ROE がアサー ト さ れた こ と を示し ます。<br />
本ビ ッ ト に '1' を ラ イ ト する と 、 割 り 込みが ク リ ア さ れます。 レ ジ ス タ SPICSR のビ ッ ト IRQROEEN を変更<br />
する こ と で、 こ のオプシ ョ ン を動的に変更で き ます。<br />
Enable Port (割 り 込み) : SPI コ ア信号の割 り 込み要求出力信号 (spi_irq) を イ ネーブルし ます。 こ の信号の<br />
目的は、 WISHBONE マ ス タ コ ン ト ローラ (マ イ ク ロ コ ン ト ローラ ま たはス テー ト マシン) に接続し、 特定の<br />
条件に適合し た場合に割 り 込みを要求する こ と です。<br />
ウ ェ イ ク ア ッ プ ・ イ ネーブル (Wake-up Enable)<br />
ユーザス レーブ SPI チッ プセレ ク ト (spi_csn[0]) が Low に ド ラ イブされた と きに、 SPI コ アがパワーコ ン ト<br />
ローラ に ウ ェ イ ク ア ッ プ信号を送出し、デバ イ スがス タ ンバ イ モー ド か ら起動する こ と を イ ネーブルし ます。<br />
レ ジ ス タ SPICR1 のビ ッ ト WKUPEN_USER を変更する こ と で、 こ のオプシ ョ ン を動的に更新で き ます。<br />
<strong>MachXO2</strong> SPI のユース ケース<br />
以下で説明する SPI の使用例は、 以下の図を参照し て く だ さ い。<br />
1. ス レーブ <strong>MachXO2</strong> のユーザ SPI にア ク セ スする外部マ ス タ SPI デバイ ス<br />
9-19 tn1205J_04.0
<strong>MachXO2</strong> ユーザフラッシュメモリと<br />
ハードマクロ制御機能の使用方法<br />
a. 外部マ ス タ SPI は、 専用の SI、 SO、 CCLK ピ ン を使用し て <strong>MachXO2</strong> に接続され、 spi_scsn には任<br />
意の汎用 I/O が使用される。 EFB の SPI モー ド はス レーブオン リ ーに設定される<br />
b. WISHBONE マス タ コ ン ト ローラ が、 <strong>MachXO2</strong> の汎用ロ ジ ッ ク ア レ イ に実装 さ れる。 マ ス タ コ ン<br />
ト ローラ は、SPI ス テータ ス レ ジ ス タ をポー リ ングする か、SPI コ ン ト ローラ で生成された割 り 込<br />
みに応答する こ と で、 送信ま たは受信データ があ る かど う かをモニ タする<br />
i. SPI レジスタの定義とコマンドシーケンスについては、 "TN1246, Reference Guide for Using<br />
User Flash Memory and Hardened Control Functions in <strong>MachXO2</strong> Devices (<strong>MachXO2</strong> デバ イ ス<br />
のユーザフ ラ ッ シ ュ メ モ リ と ハー ド マ ク ロ制御機能の使用法 リ フ ァ レ ン ス ガ イ ド ) " の SPI<br />
項を参照<br />
c. コ ン フ ィ グ レーシ ョ ン ・ ロ ジ ッ ク を選択する SN が High にプルア ッ プ さ れてい る ため、 外部 SPI<br />
マスタは <strong>MachXO2</strong> のコンフィグレーショ ン ・ ロジッ クにアクセスできない<br />
図 9-12. ス レーブ <strong>MachXO2</strong> のユーザ SPI にア ク セ スする外部マ ス タ SPI デバイ ス<br />
External<br />
SPI Master<br />
SCLK<br />
MOSI<br />
MISO<br />
SS<br />
(opt.)<br />
<strong>MachXO2</strong><br />
SN<br />
CCLK<br />
SI<br />
SO<br />
(any gpio)<br />
2. 1 個または複数のス レーブ SPI デバイ スにア ク セスする <strong>MachXO2</strong> のユーザ SPI マス タ<br />
a. <strong>MachXO2</strong> の SPI マ ス タは、専用 SPI ポー ト ピ ン を使用し て外部 SPI ス レーブデバイ スに接続され、<br />
チップセレク トは次のよ うに構成される<br />
i. <strong>MachXO2</strong> の SPI マ ス タ ・ チ ッ プセレ ク ト spi_scn[0] には専用の CSSPIN が使用 さ れ、 外部ス<br />
レーブ ・ チ ッ プセレ ク ト に接続される<br />
ii. <strong>MachXO2</strong> の SPI マ ス タ ・ チ ッ プセレ ク ト spi_scn[1] には任意の I/O が使用 さ れ、 別の外部ス<br />
レーブ ・ チ ッ プセレ ク ト に接続される<br />
iii. spi_scn[7:0] を使用し て、 最大 8 個の外部ス レーブ SPI を接続で き る<br />
b. WISHBONE マ ス タ コ ン ト ローラは、 <strong>MachXO2</strong> の一般ロ ジ ッ ク に実装され、 ス レーブ SPI デバ イ<br />
スへの転送を制御する。 ポー リ ン グ方式ま たは SPI コ ン ト ローラ割 り 込みを使用し て、 データ の<br />
送受信を管理する<br />
i. SPI レ ジ ス タ の定義 と コ マン ド シーケ ン スについては、 "TN1246, Reference Guide for Using<br />
User Flash Memory and Hardened Control Functions in <strong>MachXO2</strong> Devices (<strong>MachXO2</strong> デバ イ ス<br />
のユーザフ ラ ッ シ ュ メ モ リ と ハー ド マ ク ロ制御機能の使用法 リ フ ァ レ ン ス ガ イ ド ) " の SPI<br />
項を参照<br />
spi_clk<br />
EFB<br />
Flash Memory<br />
ufm_sn<br />
spi_mosi<br />
spi_miso<br />
spi_scsn<br />
WISHBONE<br />
9-20 tn1205J_04.0<br />
User Logic
<strong>MachXO2</strong> ユーザフラッシュメモリと<br />
ハードマクロ制御機能の使用方法<br />
図 9-13. 1 個ま たは複数のス レーブ SPI デバ イ スにア ク セスする <strong>MachXO2</strong> のユーザ SPI マ ス タ<br />
User Logic<br />
WISHBONE<br />
<strong>MachXO2</strong><br />
External<br />
SPI Slave(s)<br />
3. <strong>MachXO2</strong> のコンフィグレーショ ン ・ ロジッ クにアクセスする外部マスタ SPIデバイス<br />
a. 外部 SPI マ ス タは、 <strong>MachXO2</strong> の専用ス レーブ ・ コ ン フ ィ グ レーシ ョ ン SPI ポー ト ピ ンに接続 さ<br />
れ、 外部 SPI マ ス タ のチ ッ プセレ ク ト は、 <strong>MachXO2</strong> の コ ン フ ィ グ レーシ ョ ン論理ブ ロ ッ ク を イ<br />
ネーブルする SN 入力を制御する。 外部マ ス タは、 コ ン フ ィ グ レーシ ョ ン論理ブ ロ ッ ク に コ マン<br />
ド を送信し、 コ ン フ ィ グ レーシ ョ ン ・ フ ラ ッ シ ュ及び UFM と の イ ン ターフ ェ イ ス を可能にする<br />
i. SPI に よ る <strong>MachXO2</strong> デバ イ スのフ ラ ッ シ ュ メ モ リ (UFM/ コ ン フ ィ グ レーシ ョ ン) のア ク<br />
セスの詳細については、 本書で後述する<br />
ii. SPI ポー ト か ら の <strong>MachXO2</strong> のプ ロ グ ラ ミ ン グの詳細については、 "TN1204, <strong>MachXO2</strong><br />
Programming and Configuration Usage Guide (<strong>MachXO2</strong> プ ロ グ ラ ミ ン グ と コ ン フ ィ グ レーシ ョ<br />
ンのユーザガイド) " の SPI の項を参照<br />
図 9-14. <strong>MachXO2</strong> の コ ン フ ィ グ レーシ ョ ン ・ ロ ジ ッ ク にア ク セ スする外部マス タ SPI デバ イ ス<br />
External<br />
SPI Master<br />
EFB<br />
spi_clk<br />
spi_mosi<br />
spi_miso<br />
spi_csn[0]<br />
spi_csn[1]<br />
...<br />
spi_csn[7]<br />
SS<br />
SCLK<br />
MOSI<br />
MISO<br />
MCLK<br />
SISPI<br />
SPISO<br />
CSSPIN<br />
(any GPIO)<br />
(any GPIO)<br />
(opt.)<br />
(opt.)<br />
(opt.)<br />
<strong>MachXO2</strong><br />
SN<br />
CCLK<br />
SI<br />
SO<br />
SCLK<br />
MOSI<br />
MISO<br />
SS<br />
spi_clk<br />
spi_mosi<br />
spi_miso<br />
spi_scsn<br />
EFB<br />
SCLK<br />
MOSI<br />
MISO<br />
SS<br />
Flash Memory<br />
ufm_sn<br />
9-21 tn1205J_04.0
<strong>MachXO2</strong> ユーザフラッシュメモリと<br />
ハードマクロ制御機能の使用方法<br />
SPI 設計の ヒ ン ト<br />
1. SPI レ ジ ス タ の定義 と コ マン ド シーケ ン スについては、 "TN1246, Reference Guide for Using User<br />
Flash Memory and Hardened Control Functions in <strong>MachXO2</strong> Devices (<strong>MachXO2</strong> デバ イ スのユーザフ<br />
ラ ッ シ ュ メ モ リ と ハー ド マ ク ロ制御機能の使用法 リ フ ァ レ ン ス ガ イ ド ) " の SPI の項を参照し て く<br />
ださい<br />
2. EFB では、 消費電力削減のため コ ンポーネン ト を動的にオフする場合、 WISHBONE ク ロ ッ ク の<br />
ソ ースにな ってい る かど う かにかかわ らず、 <strong>MachXO2</strong> の内部オシ レータ を イ ネーブルにする必要<br />
があ り ます<br />
3. SPI バスは双方向性です。 送信し た全てのバイ ト に対するバイ ト が受信 さ れます。 ROE (Receiver<br />
Overrun Error) 防止のため、 RX データは全て破棄し て く だ さ い<br />
4. SN は、 EFB プ リ ミ テ ィ ブに 'ufm_sn' が存在するかど う かにかかわらず、 SPI コアがイ ンス タ ンス化<br />
さ れる と 必ずア ク テ ィ ブピ ンにな り ます。 そのため、 SN はユーザ I/O と し て回復で き ません。 外<br />
部マ ス タ SPI バスに接続し ない場合は、 SN を外部的に High に接続し、 内部の弱いプルア ッ プを強<br />
化する必要があ り ます<br />
5. ラ テ ィ スのウ ェブサ イ ト (www.latticesemi.com/products/intellectualproperty/<br />
aboutreferencedesigns.cfm) には、 次の よ う な多数の SPI 参照デザ イ ンがあ り ます<br />
a. RD1125: SPI Slave Peripheral Using Embedded Function Block (組み込み機能ブ ロ ッ ク を使用し た<br />
SPI ス レーブ周辺回路)<br />
b. UG56: <strong>MachXO2</strong> Hardened SPI Master/Slave Demo(<strong>MachXO2</strong> ハー ド マ ク ロ SPI マ ス タ / ス レ ーブ・<br />
デモ)<br />
タイマ/カウンタ<br />
<strong>MachXO2</strong> EFB にはタイマ / カウンタ機能が内蔵されています。 このタイマ / カウンタは汎用16 ビッ ト タイ<br />
マ / ア ッ プダ ウ ン・カ ウ ン タ モジ ュールで、独立し た出力比較ユニ ッ ト があ り 、PWM(Pulse Width Modulation)<br />
に対応し ています。 このタ イマ / カ ウ ン タは次の機能に対応し ています。<br />
• 独自の 4 つの動作モード<br />
– ウォッチド ッグタイマ<br />
– コ ンペアマ ッ チ (比較一致時) タ イ マ ク リ ア<br />
– 高速 PWM<br />
– 位相及び周波数補正 PWM<br />
• プログラマブルなクロッ ク入力ソース<br />
• プログラマブルな入力クロッ クのプリ スケール<br />
• FPGA フ ァ ブ リ ッ ク への割 り 込み出力<br />
• オーバフ ロー、 出力比較一致、 及び入力キ ャ プチャ と い う 3 つの独立し た割 り 込みソース<br />
• 自動リ ロード<br />
• 入力キ ャ プチャ ユニ ッ ト で タ イ ム ス タ ンプ設定に対応<br />
• 出力で波形生成<br />
• PWM 期間が可変でグ リ ッ チのない PWM 波形生成<br />
• 制御及びス テータ ス レ ジ ス タへの内部 WISHBONE バス ア ク セ ス<br />
• プ リ ロー ド 制御レ ジ ス タ と 直接 リ セ ッ ト 入力付き のス タ ン ド ア ロ ンモー ド<br />
9-22 tn1205J_04.0
図 9-15. タ イ マ / カ ウ ン タ のブ ロ ッ ク 図<br />
User Logic<br />
tc_oc<br />
tc_int<br />
tc_ic<br />
tc_rstn<br />
tc_clki<br />
WISHBONE Interface<br />
<strong>MachXO2</strong> ユーザフラッシュメモリと<br />
ハードマクロ制御機能の使用方法<br />
タ イ マ / カ ウ ン タは、 WISHBONE イ ン ターフ ェ イ ス、 及び ク ロ ッ ク 、 リ セ ッ ト 、 割 り 込み、 タ イ マ出力、 イ<br />
ベン ト ト リ ガな ど特定の信号を使用し て、FPGA コ ア ロ ジ ッ ク と 通信し ます。タ イ マ / カ ウ ン タは、WISHBONE<br />
イ ン ターフ ェ イ スの有無にかかわ らず、 設計に含め る こ と がで き ます。<br />
タイマ/カウンタの動作モード<br />
タ イ マ / カ ウ ン タは、4 つの動作モー ド を持つ柔軟な機能です。こ れら のモー ド は、シーケン ス制御及び PWM<br />
(Pulse Width Modulation) に関連する様々なシ ス テムニーズに適合する よ う 設計 さ れています。 タ イ マ / カ ウ<br />
ンタには次の4つのモードがあります。<br />
• コンペアマッチ ・ タイマク リア<br />
• ウォッチド ッグタイマ<br />
• 高速 PWM<br />
• 位相及び周波数補正 PWM<br />
EFB Register Map<br />
EFB<br />
TCTOPSET<br />
TCOCRSET<br />
Timer/Counter<br />
コ ンペアマ ッ チ (比較一致時) タ イ マ ク リ ア ・ モー ド<br />
CTCM (Clear Timer on Compare Match) は、 割 り 込みを持つ基本的なカ ウ ン タ です。 カ ウ ン タ値 (TCCNT レ<br />
ジ ス タ) が TCTOP レ ジ ス タ に ロー ド さ れた値 と 一致する と 、カ ウ ン タ が自動的に 0x0000 に ク リ ア さ れます。<br />
TCTOP レ ジ ス タ の値は、 WISHBONE レ ジ ス タ を使用し て動的に更新で き、 IP 生成時に IPexpress で割 り 当て<br />
ら れた固定値を格納する こ と も で き ます。 TCTOP レ ジ ス タ のデフ ォル ト 値は 0xFFFF です。<br />
ト ッ プカ ウ ン タ値定義のために タ イ マカ ウ ン タ に ロー ド さ れたデータは、ク ロ ッ ク で二回サンプル さ れます。<br />
WISHBONE ホ ス ト がデータ を TCTOPSET レ ジ ス タ に書き込む と 、 それが自動 ク リ ア時に TCTOP レ ジ ス タ<br />
に自動的に ロー ド さ れます。 そのため、 オーバフ ローフ ラ グの発生後、 及び ト ッ プ値までのカ ウ ン ト ア ッ プ<br />
中に、 新し い ト ッ プ値を TCTOPSET レ ジ ス タ に書き込む こ と がで き ます。 TCTOP レ ジ ス タ の値を更新する<br />
と 、 タ イ マ / カ ウ ン タ の出力信号の周波数が変化し ます。<br />
TCICR<br />
TCCR0,1,2<br />
TCSR0<br />
TCIRQ<br />
TCIRQEN<br />
TCTOP<br />
TCOCR<br />
PRESCALE<br />
16-Bit<br />
Counter<br />
TCCNT<br />
Timer/<br />
Counter<br />
Logic<br />
9-23 tn1205J_04.0
図 9-16. タ イ マ / カ ウ ン タ の出力波形<br />
<strong>MachXO2</strong> ユーザフラッシュメモリと<br />
ハードマクロ制御機能の使用方法<br />
Period 1 Period 2<br />
Period 3<br />
Period 4<br />
OC<br />
CNT<br />
OVF<br />
Top 0 1 Counting Up Top 0 1 Counting Up Top 0 1<br />
ウ ォ ッ チ ド ッ グ タ イ マ (Watchdog Timer) モー ド<br />
ウ ォ ッ チ ド ッ グ タ イ マは、 シ ス テム動作の監視用に使用 さ れ、 シ ス テムのマ イ ク ロ コ ン ト ローラ ま たは組み<br />
込みス テー ト マシンが動作し な く な った場合に、 リ セ ッ ト ま たは割 り 込みを発生し ます。 シナ リ オの 1 つ と<br />
し て、 マ イ ク ロ コ ン ト ローラ が処理を開始する前に、 ウ ォ ッ チ ド ッ グ タ イ マを 0x0000 に リ セ ッ ト する こ と が<br />
あ り ます。 マイ ク ロ コ ン ト ローラは、 タ イマが最終カ ウ ン ト に達する前に、 処理を完了し てウ ォ ッチ ド ッ グ<br />
タ イ マを リ セ ッ ト する必要があ り ます。マ イ ク ロ プ ロ セ ッ サが余裕を も って タ イ マを ク リ ア し なかった場合、<br />
ウ ォ ッ チ ド ッ グ タ イ マはス ト ローブ信号時間切れを アサー ト し ます。 シ ス テムは " 時間超過 " ス ト ローブを<br />
使用し て、 シ ス テム を正常に リ カバ リ し ます。<br />
ウ ォ ッ チ ド ッ グ タ イ マの も う 1 つの使用法 と し ては、 シ ス テムモジ ュールを定期的に電源オフ し、 消費電力<br />
を節約する と い う 方法があ り ます。 <strong>MachXO2</strong> のオンチ ッ プ ・ パワーコ ン ト ローラ と の連動に使用する こ と も<br />
できます。<br />
ウォッチド ッグタイマ ・ モードのタイマ / カウンタで最もよ く使用されるポートは、 クロック、 リセッ ト、<br />
及び割 り 込みです。 オプシ ョ ン と し て、 WISHBONE イ ン ターフ ェ イ ス を使用し て TCICR レ ジ ス タ か ら タ イ<br />
ム ス タ ンプを読み取 り 、 カ ウ ン タ の ト ッ プ値を更新する こ と も で き ます。<br />
高速 PWM (Fast PWM) モー ド<br />
PWM (Pulse-Width Modulation) は、 アナロ グ回路をデジ タル制御する ために よ く 使用される技術です。 PWM<br />
では、 パルス幅が変調された方形波パルス を使用し て、 波形の平均値を変化させます。 設計者は、 TCTOP レ<br />
ジスタに 16 ビッ ト値をロードして波形の周期とデューティーサイクルを変化させるこ とで、カウンタのト ッ<br />
プ値を定義し、 カ ウ ン タ出力 と の比較値を TCOCR レ ジ ス タ か ら得る こ と がで き ます。<br />
タイマ / カウンタの出力は、 カウンタ値が TCTOP レジスタにロードされたト ップ値と一致すると ク リアさ<br />
れます。 TCOCR レ ジ ス タ に ロー ド さ れた比較値 と カ ウ ン タ の値が一致する と 、 出力がセ ッ ト さ れます。 ク<br />
リ ア / セ ッ ト 機能は反転可能です。 その場合は、 カ ウ ン タ値が ト ッ プ値 と 一致する と タ イ マ / カ ウ ン タ の出<br />
力がセ ッ ト さ れ、 カ ウ ン タ値が比較値 と 一致する と ク リ ア さ れます。<br />
割 り 込みラ イ ンは、 OVF (Overflow Flag、 オーバフ ローフ ラ グ) 及び OCRF (Output Compare Flag、 出力比<br />
較フ ラ グ) と し て使用で き ます。<br />
図 9-8 に PWM 波形の生成を示し ます。 タ イ マ / カ ウ ン タ の出力は、 カ ウ ン タ が ト ッ プ値 と 一致する と セ ッ<br />
ト さ れ、 カ ウ ン タ が比較値 と 一致する と ク リ ア さ れる よ う 構成 さ れます。<br />
9-24 tn1205J_04.0
表 9-8. PWM 波形の生成<br />
<strong>MachXO2</strong> ユーザフラッシュメモリと<br />
ハードマクロ制御機能の使用方法<br />
Period 1 Period 2<br />
Period 3<br />
Period 4<br />
OC<br />
CNT<br />
OVF<br />
OCRF<br />
top 0 1 ... ocr ocr+1 ... Top 0 1 ... ocr ocr+1 ... Top 0 1<br />
位相及び周波数補正 PWM (Phase and Frequency Correct PWM) モー ド<br />
位相及び周波数補正 PWM モー ド では、 カ ウ ン タ が ト ッ プ値 ( ト ッ プ値 -1) まで増加する と 、 カ ウ ン ト 方向<br />
がア ッ プか ら ダ ウ ンに変化し ます。 カ ウ ン タ が 0x0001 か ら 0x0000 に減少する と 、 次の動作が行われます。<br />
1. TCTOP が、 TCTOPSET レ ジ ス タ に ロー ド さ れた値で更新される<br />
2. TCOCR が、 TCOCRSET レ ジ ス タ に ロー ド さ れた値で更新 さ れる<br />
3. 1 ク ロ ッ ク サ イ ク ルの間、 オーバフ ロー TCSR[OVF] がアサー ト さ れる<br />
タ イ マ / カ ウ ン タ の出力が更新 さ れる のは、 カ ウ ン タ値が TCOCR レ ジ ス タ の比較値 と 一致し た場合だけで<br />
す。 こ れは、 1 周期に 2 回発生し ます。 最初の一致が発生する のはカ ウ ン タ がカ ウ ン ト ア ッ プ時で、 2 回目の<br />
一致が発生する のはカ ウ ン タ がカ ウ ン ト ダ ウ ン時です。 両方の一致が発生する と、 出力比較フ ラ グ<br />
TCSR[OCRF] がアサー ト さ れます。 タ イ マ / カ ウ ン タ の出力は最初の比較一致でセ ッ ト さ れ、 2 回目の比較<br />
一致でクリアされます。セットとクリアの順序は逆にできます。<br />
こ のモー ド では、 生成される波形の周波数 ( ト ッ プ値がベース) と 位相 (比較値がベース) をユーザが調整<br />
できます。<br />
図 9-17. 位相及び周波数補正 PWM 波形の生成<br />
OC<br />
Direction<br />
CNT<br />
OVF<br />
OCRF<br />
Period 1 Period 2<br />
Period 3<br />
Counting<br />
UP<br />
Counting<br />
DOWN<br />
1 0 1 ... ocr ocr+1 ... top-1 top top-1 ... ocr ocr-1 ... 1 0 1<br />
9-25 tn1205J_04.0
タイマ/カウンタのIP信号<br />
<strong>MachXO2</strong> ユーザフラッシュメモリと<br />
ハードマクロ制御機能の使用方法<br />
表 9-9 に IP で生成 さ れる信号を示し ます。 各信号には、 使用方法 と デザ イ ンプ ロ ジ ェ ク ト 中での接続方法に<br />
関する説明が記述されています。<br />
表 9-9. タ イ マ / カ ウ ン タ ~ IP 信号<br />
信号名 I/O 幅 記 述<br />
tc_clki 入力 1<br />
タ イ マ / カウン タ入力信号。 オンチ ッ プ ・ オシレー タ に接続可能。 ク ロ ッ ク信号の上限は<br />
133 MHz<br />
tc_rstn 入力 1 ア ク テ ィ ブ Low の リ セ ッ ト 信号。 16 ビ ッ ト カウン タ を リ セ ッ ト する<br />
tc_ic 入力 1<br />
タイマ/カウンタの構成<br />
ア ク テ ィ ブ High の入力キャ プチ ャ ・ ト リ ガ イベン ト 。 PWM 以外のモー ド の WISHBONE イ<br />
ン タ ーフ ェ イ スで使用可能。 イ ネーブルする と、 この信号の立ち上が り エ ッ ジが検出さ<br />
れ、 カウン タ値 (TCCNT レジス タ) のキャ プチ ャが同期されて、 その値を TCICR レ ジス<br />
タにロードするこ とで、 WISHBONE インターフ ェ イスから値にアクセスできるよ うにな<br />
る。 一般的な用途は、 カウン タ によ る タ イムス タ ンプ動作の実行<br />
tc_int 出力 1<br />
オーバフ ロー、 出力比較一致、 入力キャ プチ ャ など、 特定のイベン ト の発生を示す割 り 込<br />
み信号<br />
tc_oc 出力 1 タ イ マ / カウン タの出力信号<br />
タ イ マ / カ ウ ン タ の構成には IPexpress を使用し ます。 EFB GUI で Timer/Counter (タ イ マ / カ ウ ン タ) タ ブ<br />
を選択する と 、 タ イ マ / カ ウ ン タ ・ コ アの構成可能な設定が表示 さ れます。<br />
タイマ/ カウンタは、WISHBONE インターフェイスの有無にかかわらず使用できます。WISHBONE インター<br />
フ ェ イ スがない場合の用途については、 設計者が IPexpress の EFB GUI で値を選択 / 入力し ます。 値は、 プ<br />
ロ グ ラ マブルな ビ ッ ト ス ト リ ーム を使用し て タ イ マ / カ ウ ン タ でプ ロ グ ラ ム し ます。 タ イ マ / カ ウ ン タ と<br />
WISHBONE イ ン ターフ ェ イ ス を組み合わせて使用する と 、 ユーザが WISHBONE イ ン ターフ ェ イ スか ら レ ジ<br />
ス タ の内容を動的に更新で き ます。 メ イ ン EFB GUI であ る EFB Enables タ ブでは、 タ イ マ / カ ウ ン タ を<br />
WISHBONE と 組み合わせて使用する かど う かを、 ス ク リ ーンシ ョ ッ ト で選択で き ます。<br />
図 9-18 に特定のデザ イ ン用に構成さ れた タ イ マ / カ ウ ン タ の例を示し ます。<br />
9-26 tn1205J_04.0
図 9-18. タ イ マ / カ ウ ン タ の構成<br />
タ イ マ / カ ウ ン タ ・ モー ド (Timer/Counter Mode)<br />
こ のオプシ ョ ンでは、 ユーザが次の 4 つの動作モー ド の 1 つを選択で き ます。<br />
• CTCM ~ コ ンペアマ ッ チ (比較一致時) タ イ マ ク リ ア<br />
• WATCHDOG ~ ウ ォ ッ チ ド ッ グ タ イ マ<br />
• FASTPWM ~ 高速PWM<br />
• PFCPWM ~ 位相及び周波数補正 PWM<br />
<strong>MachXO2</strong> ユーザフラッシュメモリと<br />
ハードマクロ制御機能の使用方法<br />
レ ジ ス タ TCCR1 のビ ッ ト TCM[1:0] を変更する こ と で、 こ のオプシ ョ ン を動的に更新で き ます。<br />
出力機能 (Output Function)<br />
タ イ マ / カ ウ ン タ IP の出力信号 (tc_oc) の機能を以下か ら選択で き ます。<br />
• STATIC ~ タ イ マ / カ ウ ン タ の出力が Low に固定 さ れます<br />
• TOGGLE ~ タ イ マ / カ ウ ン タ の出力が、 Timer/Counter Mode で定義された条件に基づいて ト グルし ます<br />
• WAV_GENERATE ~ Timer/Counter Mode で定義 さ れた条件に基づいたセ ッ ト / ク リ アに よ って、 波形が<br />
生成 さ れます<br />
• INV_WAV_GENERATE ~ 波形が反転 さ れます<br />
レ ジ ス タ TCCR1 のビ ッ ト OCM[1:0] を変更する こ と で、 こ のオプシ ョ ン を動的に更新で き ます。<br />
ク ロ ッ ク エ ッ ジ選択 (Clock Edge Selection)<br />
入力 ク ロ ッ ク ソ ースのエ ッ ジ (正ま たは負) を選択し、 オンチ ッ プ ・ オシ レータ の使用を イ ネーブルし ます。<br />
次の選択肢があ り ます。<br />
• PCLOCK ~ ユーザ ロ ジ ッ ク か ら の ク ロ ッ ク の立ち上が り エ ッ ジ<br />
• POSC ~ 内部オシ レータ か ら の ク ロ ッ ク の立ち上が り エ ッ ジ<br />
• NCLOCK ~ ユーザ ロ ジ ッ ク か ら の ク ロ ッ ク の立ち下が り エ ッ ジ<br />
9-27 tn1205J_04.0
• NOSC ~ 内部オシ レータ か ら の ク ロ ッ ク の立ち下が り エ ッ ジ<br />
<strong>MachXO2</strong> ユーザフラッシュメモリと<br />
ハードマクロ制御機能の使用方法<br />
レ ジ ス タ TCCR0 のビ ッ ト CLKSEL及びCLKEDGE を変更する こ と で、こ のオプシ ョ ン を動的に更新で き ます。<br />
プ リ ス ケール分周値 (Pre-scale Divider Value)<br />
16 ビ ッ ト カ ウ ン タ に到達する前に入力 ク ロ ッ ク を分周で き る よ う 、 プ リ ス ケール分周値 (0、 1、 8、 64、 256、<br />
1024) が用意されています。 レ ジ ス タ TCCR1 のビ ッ ト PRESCALE[2:0] を変更する こ と で、 こ のオプシ ョ ン<br />
を動的に更新で き ます。<br />
タ イ マ / カ ウ ン タ の ト ッ プ値 (Timer/Counter Top)<br />
カ ウ ン タ の ト ッ プ値を選択で き ます。 レ ジ ス タ TCTOPSET1 及び TCTOPSET0 のビ ッ ト TCTOPSET を変更<br />
する こ と で、 こ のオプシ ョ ン を動的に更新で き ます。<br />
出力比較値 (Output Compare Value)<br />
カ ウ ン タ の出力比較値を選択で き ます。 レ ジ ス タ TCOCRSET1 及び TCOCRSET0 のビ ッ ト TCOCRSET を変<br />
更する こ と で、 こ のオプシ ョ ン を動的に更新で き ます。<br />
割 り 込みレ ジ ス タ の イ ネーブル (Enable Interrupt Registers)<br />
• Overflow ~ カ ウ ン タ が TCTOP0/1 レ ジ ス タ の値 と 一致し た こ と を示す割 り 込みで、 割 り 込みはレ ジ ス タ<br />
TCIRQ のビ ッ ト IRQOVF です。 イ ネーブルする と 、 OVF がアサー ト さ れた こ と を示し ます。 本ビ ッ ト に<br />
'1' を ラ イ ト する と 、 割 り 込みが ク リ ア さ れます。 レ ジ ス タ TCIRQEN のビ ッ ト IRQOVFEN を変更する こ<br />
と で、 こ のオプシ ョ ン を動的に更新で き ます。<br />
• Output Compare Match ~ カ ウ ン タ が TCOCR0/1 レ ジ ス タ の値 と 一致し た こ と を示す割 り 込みで、 割 り 込<br />
みはレ ジ ス タ TCIRQ のビ ッ ト IRQOCRF です。 イ ネーブルする と 、 OCRF がアサー ト さ れた こ と を示し<br />
ます。 本ビ ッ ト に '1' を ラ イ ト する と 、 割 り 込みが ク リ ア さ れます。 レ ジ ス タ TCIRQEN の IRQOCRFEN<br />
ビ ッ ト を変更する こ と で、 こ のオプシ ョ ン を動的に更新で き ます。<br />
• Input Capture ~ ユーザが TC_IC 入力信号を アサー ト し た こ と を示す割 り 込みで、 割 り 込みはレ ジ ス タ<br />
TCIRQ のビ ッ ト IRQICRF です。 イ ネーブルする と 、 ICRF がアサー ト さ れた こ と を示し ます。 本ビ ッ ト に<br />
'1' を ラ イ ト する と 、 割 り 込みが ク リ ア さ れます。 レ ジ ス タ TCIRQEN の IRQICRFEN ビ ッ ト を変更する こ<br />
と で、 こ のオプシ ョ ン を動的に更新で き ます。<br />
• Standalone Overflow ~ WISHBONE イ ン ターフ ェ イ スがない場合に使用 さ れ、 使用可能な唯一の割 り 込み<br />
要求 と な り ます。<br />
<strong>MachXO2</strong> Timer/Counter タ イ マ / カ ウ ン タ のユース ケース<br />
1. 割 り 込みのあ る基本的カ ウ ン タ<br />
a. 静的ま たは動的動作用に タ イ マ / カ ウ ン タ を構成する。 動的動作では WISHBONE バス イ ン ター<br />
フェイスがイネーブルとなり、 WISBONEマスタがタイマ/ カウンタを制御できる。<br />
b. Timer/Counter タ ブで<br />
i. モー ド 選択制御を使用し て、 Timer/Counter Mode を構成<br />
1. CTCM (コ ンペアマ ッ チ ・ タ イ マ ク リ ア) モー ド を選択<br />
2. 出力機能 (Output Function) を選択<br />
a. 0 を保持 (STATIC)<br />
b. ト グル (TOGGLE)<br />
ii. ク ロ ッ ク 選択 (Clock Selections) を更新<br />
1. タ イ マ / カ ウ ン タ が反応する ク ロ ッ ク エ ッ ジを選択<br />
a.正(PCLOCK)または負(NCLOCK)のエッジ<br />
2. ク ロ ッ ク のプ リ ス ケール分周を選択<br />
iii. カ ウ ン タ値を構成<br />
1. ト ッ プカ ウ ン タ値を イ ネーブル<br />
9-28 tn1205J_04.0
<strong>MachXO2</strong> ユーザフラッシュメモリと<br />
ハードマクロ制御機能の使用方法<br />
2. タ イ マ / カ ウ ン タ の ト ッ プ値を選択<br />
iv. オプシ ョ ンの割 り 込みを イ ネーブル<br />
2. ウ ォ ッ チ ド ッ グ タ イ マ<br />
a. 静的ま たは動的動作用に タ イ マ / カ ウ ン タ を構成する。 動的動作では WISHBONE バス イ ン ター<br />
フェイスがイネーブルとなり、 WISBONEマスタがタイマ/ カウンタを制御できる。<br />
b. Timer/Counter タ ブで<br />
i. モー ド 選択制御を使用し て Timer/Counter Mode を構成<br />
1. WATCHDOG モー ド を選択<br />
2. 出力機能 (Output Function) を選択<br />
a. Hold static 0 を保持 (STATIC)<br />
ii. ク ロ ッ ク 選択 (Clock Selections) を更新<br />
1. タ イ マ / カ ウ ン タ が反応する ク ロ ッ ク エ ッ ジを選択<br />
a.正(PCLOCK)または負(NCLOCK)のエッジ<br />
2. ク ロ ッ ク のプ リ ス ケール分周を選択<br />
iii. カ ウ ン タ値を構成<br />
1. ト ッ プカ ウ ン タ値を イ ネーブル<br />
2. タ イ マ / カ ウ ン タ の ト ッ プ値を選択<br />
3. 出力比較値 (Output Compare Value) を選択<br />
iv. 割 り 込み (TC_INT) を イ ネーブル<br />
1. 出力比較一致 (Output Compare Match) を選択<br />
2. 入力比較 (Input Compare) を選択<br />
3. デューテ ィ ーサ イ ク ル と 周期が可変の PWM 出力<br />
a. 静的ま たは動的動作用に タ イ マ / カ ウ ン タ を構成する。 動的動作では WISHBONE バス イ ン ター<br />
フ ェ イ スが イ ネーブル と な り 、 WISBONE マ ス タ が タ イ マ / カ ウ ン タ を制御で き る<br />
b. Timer Counter タ ブで<br />
i. モー ド 選択制御を使用し て Timer/Counter Mode を構成<br />
1. FASTPWM モー ド を選択<br />
2. Output Function を選択<br />
a. 0 を保持 (STATIC)<br />
b. PWM (WAVE_GENERATOR)<br />
c. 補完的 (Complement) PWM (INV_WAVE_GENERATOR)<br />
ii. Clock Selections を更新<br />
1. タ イ マ / カ ウ ン タ が反応する ク ロ ッ ク エ ッ ジを選択<br />
a.正(PCLOCK)または負(NCLOCK)のエッジ<br />
2. ク ロ ッ ク のプ リ ス ケール分周を選択<br />
iii. PWM 値を構成<br />
1. PWM の周期を選択 (Timer Counter Top)<br />
2. PWM のデューテ ィ ーサ イ ク ルを選択 (Output Compare Value)<br />
a. デューテ ィ ーサ イ ク ルの計算式 (Output Compare Value)/(Timer Counter Top):<br />
[(Timer Counter Top) – (Output Compare Value)]/(Timer Counter Top)<br />
4. デューテ ィ 50:50 で位相 と 周期が可変の PWM<br />
a. 静的ま たは動的動作用に タ イ マ / カ ウ ン タ を構成し ます。動的動作では WISHBONE バス イ ン ター<br />
フ ェ イ スが イ ネーブル と な り 、 WISBONE マ ス タ が タ イ マ / カ ウ ン タ を制御で き ます。<br />
b. Timer Counter タ ブで<br />
9-29 tn1205J_04.0
<strong>MachXO2</strong> ユーザフラッシュメモリと<br />
ハードマクロ制御機能の使用方法<br />
i. モー ド 選択制御を使用し て、 Timer/Counter Mode を構成<br />
1. FASTPWM を選択<br />
2. Output Function を選択<br />
a. 0 を保持 (STATIC)<br />
b. PWM (WAVE_GENERATOR)<br />
c. 補完的 (Complement) PWM (INV_WAVE_GENERATOR)<br />
ii. Clock Selections を更新<br />
1. タ イ マ / カ ウ ン タ が反応する ク ロ ッ ク エ ッ ジを選択<br />
a.正(PCLOCK)または負(NCLOCK)のエッジ<br />
2. ク ロ ッ ク のプ リ ス ケール分周を選択<br />
iii. PWM 値を構成<br />
1. PWM 周期を選択 (Timer Counter Top)<br />
2. 位相調整 (Phase Adjustment) を選択 (Output Compare Value)<br />
a. 位相調整の計算式 : (360 degrees)*(Output Compare Value)/ (Timer Counter Top)<br />
タイマ/カウンタ設計のヒント<br />
1. タ イ マ / カ ウ ン タ ・ レ ジ ス タ の定義 と コ マン ド シーケ ン スについては、 "TN1246, Reference Guide<br />
for Using User Flash Memory and Hardened Control Functions in <strong>MachXO2</strong> Devices (<strong>MachXO2</strong> デバ イ ス<br />
のユーザフ ラ ッ シ ュ メ モ リ と ハー ド マ ク ロ制御機能の使用法 リ フ ァ レ ン ス ガ イ ド ) " の タ イ マ / カ<br />
ウ ン タ の項を参照し て く だ さ い。<br />
2. EFB では、 消費電力削減のため コ ンポーネン ト を動的にオフする場合に、 WISHBONE ク ロ ッ ク の<br />
ソ ースにな ってい る かど う かにかかわ らず、 <strong>MachXO2</strong> の内部オシ レータ を イ ネーブルにする必要<br />
があ り ます。<br />
9-30 tn1205J_04.0
フラッシュメモリ (UFM/ コンフィグレーション) のアクセス<br />
<strong>MachXO2</strong> ユーザフラッシュメモリと<br />
ハードマクロ制御機能の使用方法<br />
JTAG、 SPI、 I 2 C、 ま たは WISHBONE イ ン ターフ ェ イ ス を使用し て、 フ ラ ッ シ ュ メ モ リ の コ ン フ ィ グ レーシ ョ<br />
ン・ロジック・インターフェイスにアクセスできます。<strong>MachXO2</strong>のフラッシュメモリは、次の3つのセクタ<br />
で構成されます。<br />
• ユーザフ ラ ッ シ ュ メ モ リ (UFM)<br />
• コンフィグレーシ ョ ン<br />
• フィーチャ行<br />
フラッシュメモリへのアクセス用ポート、 及びブロック図を表 9-10に示します。 .<br />
表 9-10. フ ラ ッ シ ュ メ モ リ (UFM/ コ ン フ ィ グ レーシ ョ ン) のア ク セ ス<br />
UFM<br />
コンフィグレーション ・<br />
フラッシュメモリ<br />
JTAG Yes Yes<br />
スレーブ SPI ポー ト 、 チ ッ プセレ ク ト (ufm_sn) あ り Yes Yes<br />
スレーブ SPI ポー ト 、 チ ッ プセレ ク ト (spi_scsn) あ り No No<br />
プライマリ ・ スレーブI2 C ポー ト ・ ア ド レス (yyyxxxxx00) Yes Yes<br />
プライマリ ・ スレーブI2 C ポー ト ・ ア ド レス (yyyxxxxx01) No No<br />
セカンダリ ・ スレーブI 2C ポー ト ・ ア ド レス (yyyxxxxx10) No No<br />
WISHBONE Yes Yes<br />
図 9-19. フ ラ ッ シ ュ メ モ リ (UFM/ コ ン フ ィ グ レーシ ョ ン) のブ ロ ッ ク 図<br />
User Logic<br />
WISHBONE Interface<br />
EFB Register Map<br />
Configuration<br />
(including<br />
USERCODE)<br />
Flash Memory<br />
フラッシュメモリ (UFM/ コンフィグレーション) のアクセスポート<br />
UFM<br />
Flash Command Interface<br />
EFB<br />
Feature Row<br />
(including<br />
TraceID)<br />
Configuration<br />
Slave<br />
Configuration<br />
Master/Slave<br />
Primary I 2 C Port<br />
(Address yyyxxxxx00)<br />
コンフィグレーション ・ ロジックは、 インターフェイスからフラッシュメモリへのアクセスを、 次の優先順<br />
位で調停し ます。優先順位の高いポー ト のフ ラ ッ シ ュ メ モ リ へのア ク セスは、優先順位の低いポー ト をブ ロ ッ<br />
ク する こ と で可能にな り ます。<br />
1. JTAG ポー ト ~ 全ての <strong>MachXO2</strong> デバ イ スには JTAG ポー ト があ り 、 それを使用し て フ ラ ッ シ ュ メ<br />
モ リ (UFM/ コ ンフ ィ グレーシ ョ ン) への リ ード / ラ イ ト 動作が実行されます。 JTAG ポー ト は、<br />
JTAG<br />
SPI Port<br />
ufm_sn<br />
9-31 tn1205J_04.0
<strong>MachXO2</strong> ユーザフラッシュメモリと<br />
ハードマクロ制御機能の使用方法<br />
IEEE 1149.1 及び IEEE 1532 仕様に準拠し ています。 JTAG は、 フ ラ ッ シ ュ メ モ リ (UFM/ コ ン フ ィ<br />
グ レーシ ョ ン) への最高の優先順位を持っています。<br />
2. ス レーブ SPI ポー ト ~ 全ての <strong>MachXO2</strong> デバイ スにはス レーブ SPI ポー ト があ り 、 それを使用し て<br />
フ ラ ッ シ ュ メ モ リ (UFM/ コ ンフ ィ グレーシ ョ ン) への リ ード / ラ イ ト 動作が実行されます。 フ<br />
ラッシュメモリ (UFM/コンフィグレーション) のスレーブ・チップセレクト (ufm_sn) をアサー<br />
ト する と 、 ア ク セ スが可能にな り ます。<br />
3. プ ラ イ マ リ I 2C ポー ト ~ 全ての <strong>MachXO2</strong> デバイ スには I2Cポートがあり、それを使用してフラッ シ ュ メ モ リ (UFM/ コ ン フ ィ グ レーシ ョ ン) への リ ー ド / ラ イ ト 動作が実行さ れます。 プ ラ イ マ リ<br />
I 2C ポー ト のア ド レ スは yyyxxxxx00 ('y' 及び 'x' はユーザがプ ロ グ ラ ム可能) です。<br />
4. WISHBONE ス レーブ ・ イ ン ターフ ェ イ ス ~ EFB モジ ュールの WISHBONE ス レーブ ・ イ ン ター<br />
フェイスでは、WISHBONEマスタを作成することで、FPGAのユーザロジックからフラッシュメモ<br />
リ (UFM/コンフィグレーション) にアクセスできます。WISHBONEバス信号だけでなく、割り込<br />
み要求出力信号が FPGA フ ァ ブ リ ッ ク に渡 さ れます。 WB マ ス タ に よ る UFM/CF のプ ロ グ ラ ミ ン<br />
グ動作に役立つよ う 、 IRQ (wbc_ufm_irq) が用意さ れています。 IRQ は構成可能で、 R/W FIFO 及び<br />
調停エ ラーに関する情報を提供し ます。<br />
注 : R1 デバイ スの WISHBONE 経由でフ ラ ッ シ ュ メ モ リ (UFM/ コ ン フ ィ グ レーシ ョ ン) にア ク セ ス<br />
するには、 ハード SPI ポート またはプラ イマ リ I 2 C ポー ト を イ ネーブルする必要があ り ます。 詳細に<br />
ついては、 "AN8086, Designing for Migration from <strong>MachXO2</strong>-1200-R1 to Standard (Non-R1) Devices (マ<br />
イ グ レーシ ョ ンの設計) " を参照し て く だ さ い<br />
注: イネーブル・コンフィグレーション・インターフェイス・コマンド0x74透過モードを使用して、フラッ<br />
シ ュ メ モ リ (UFM/ コ ン フ ィ グ レーシ ョ ン) イ ン ターフ ェ イ ス を イ ネーブルする と 、 次の よ う なデバイ スの<br />
一部機能が一時的にデ ィ セーブルにな り ます<br />
•パワーコ ン ト ローラ<br />
•GSR<br />
•ハー ド マ ク ロ ・ ユーザ SPI ポー ト<br />
ディセーブル・ コンフィグレーション・ インターフェイス ・ コマンド 0x26 と、それに続いてバイパス ・ コマ<br />
ン ド 0xFF を使用する と 、 フ ラ ッ シ ュ メ モ リ (UFM/ コ ン フ ィ グ レーシ ョ ン) イ ン ターフ ェ イ スのデ ィ セー<br />
ブル後に、 機能が回復されます。<br />
UFM への イ ン ターフ ェ イ ス<br />
<strong>MachXO2</strong>-640 以上の規模のデバ イ スには、1 セ ク タ のユーザフ ラ ッ シ ュ メ モ リ (UFM) が用意されています。<br />
JTAG、 コンフィグレーション SPI、 プライマリ ・ コンフィグレーション I 2 C、 ま たは WISHBONE イ ン ター<br />
フェイスを使用して、 コンフィグレーション ・ ロジック ・ インターフェイスから UFM セクタにアクセスで<br />
き ます。 UFM はオンチ ッ プのフ ラ ッ シ ュ メ モ リ か ら 分離 さ れたセ ク タ と な っ ていて、 ページで構成 さ れま<br />
す。 各ページは 128 ビ ッ ト (16 バイ ト ) あ り ます。 表 9-11 に、 各デバ イ ス内の UFM リ ソ ース を ビ ッ ト 数、<br />
バイ ト 数、 及びページ数で示し ます。 )<br />
表 9-11. <strong>MachXO2</strong> デバ イ スの UFM リ ソース<br />
UFM ビ ッ ト<br />
数<br />
UFM バイ ト<br />
数<br />
UFM ページ<br />
数<br />
<strong>MachXO2</strong>-<br />
256<br />
<strong>MachXO2</strong>-<br />
640<br />
<strong>MachXO2</strong>-<br />
640U<br />
<strong>MachXO2</strong>-<br />
1200<br />
<strong>MachXO2</strong>-<br />
1200U<br />
<strong>MachXO2</strong>-<br />
2000<br />
<strong>MachXO2</strong>-<br />
2000U<br />
<strong>MachXO2</strong>-<br />
4000<br />
<strong>MachXO2</strong>-<br />
7000<br />
0 24,576 65,536 65,536 81,920 81,920 98,304 98,304 262,144<br />
0 3,072 8,192 8,192 10,240 10,240 12,288 12,288 32,768<br />
0 192 512 512 640 640 768 768 2048<br />
9-32 tn1205J_04.0
<strong>MachXO2</strong> ユーザフラッシュメモリと<br />
ハードマクロ制御機能の使用方法<br />
UFM は汎用フ ラ ッ シ ュ メ モ リ です。 プ ロ グ ラ ミ ン グや消去の様々な仕様については、 <strong>MachXO2</strong> フ ァ ミ リ の<br />
データ シー ト を参照し て く だ さ い。 一般的に、 UFM はシ ス テム レベルのデータ、 組み込みブ ロ ッ ク RAM の<br />
初期化データ、ま たはマ イ ク ロ プ ロ セ ッ サま たはス テー ト マシン用の実行可能コー ド の格納に使用されます。<br />
UFM リ ソースの分割には、 次のツールを使用し ます。<br />
• IPexpress: UFM を イ ネーブルし、 メ モ リ を初期化する には IPexpress を使用し ます<br />
• Spreadsheet View (スプレ ッ ド シー ト ・ ビ ュー) (Diamond) : グ ローバルな sysConfig コ ン フ ィ グ レーシ ョ<br />
ン ・ オプシ ョ ンに よ って、 UFM の使用が制御 さ れます。 利用可能なオプシ ョ ンの詳細については、<br />
"TN1204, <strong>MachXO2</strong> Programming and Configuration Usage Guide (<strong>MachXO2</strong> プ ロ グ ラ ミ ン グ と コ ン フ ィ グ<br />
レーシ ョ ンのユーザガイ ド) " をご覧ください<br />
IPexpress に よ る UFM の初期化<br />
IPexpress を使用する こ と で、 UFM セ ク タ をシ ス テム レベルの不揮発性データ で初期化し、 EFB モジ ュール<br />
を生成で き ます。 EFB GUI で UFM タ ブを選択する と 、 UFM の構成可能な設定が表示さ れます。<br />
図 9-20. IPexpress に よ る UFM セ ク タ の初期化<br />
初期化データ をプ リ ロー ド するページ数を入力し ます。初期化データは " ア ド レ ス下位揃え(bottom justified)<br />
" さ れる ため、初期化 さ れる最初のページのア ド レ ス を、読み出し のみのフ ィ ール ド "Initialization Data Starts<br />
at Page (初期化データ の開始ページ) " で確認で き ます。 本書で使用する例では、 <strong>MachXO2</strong>-2000 の UFM セ<br />
ク タ の 512 ページが、 メ モ リ フ ァ イ ル "example.mem" の内容で初期化されます。<br />
9-33 tn1205J_04.0
<strong>MachXO2</strong> ユーザフラッシュメモリと<br />
ハードマクロ制御機能の使用方法<br />
<strong>MachXO2</strong>-2000 には UFM セ ク タ が 640 ページあ り ます。 初期化データは、 UFM のボ ト ム (上位) のア ド レ<br />
ス指定可能ページに格納され、 ト ッ プ (下位) のア ド レ ス指定可能ページは未初期化のま ま (全てゼ ロ) と<br />
な り ます。 メ モ リ フ ァ イルの形式はページベース と な り 、 2 進と 16 進のどち らの形式でも表現でき ます。<br />
UFM 初期化用 メ モ リ フ ァ イル<br />
初期化用 メ モ リ フ ァ イ ルのプ ロパテ ィ と 形式は、 次の と お り です。<br />
拡張子 : .mem<br />
フ ォーマ ッ ト : 2 進、 16 進<br />
データ幅 : 1 ページ (フ ァ イルの 1 行が 128 ビ ッ ト )<br />
行数 : 使用可能なページ数以下<br />
例1. 2進数<br />
1010…1010 (UFM 初期化データ の開始ページに配置、 ア ド レ ス = N)<br />
1010…1010 (ページア ド レ ス = N + 1)<br />
1010…1010 (ページア ド レ ス = N + 2)<br />
…<br />
1010…1010 (最上位 UFM ページア ド レ スに配置)<br />
例2. 16進数<br />
Uninitialized Pages<br />
First Page of Initial Data<br />
Last Page of Initial Data<br />
A…B (UFM 初期化データ の開始ページに配置、 ア ド レ ス = N)<br />
C…D (ページア ド レ ス = N + 1)<br />
E…F (ページア ド レ ス = N + 2)<br />
…<br />
A…F (最上位 UFM ページア ド レ スに配置)<br />
UFM Utilization Example (<strong>MachXO2</strong>-2000)<br />
Initializing 512 Pages<br />
Page 0<br />
Page 1<br />
...<br />
Page 128<br />
Page 129<br />
...<br />
Page 639<br />
ページの最上位バイ ト (バイ ト 15) は、 行の左端にあ り ます。 ページの最下位バイ ト (バイ ト 0) は行の右<br />
端にあ って、 行の最上位ビ ッ ト は左端 (ビ ッ ト 127)、 最下位ビ ッ ト は右端 (ビ ッ ト 0) にあ り ます。<br />
9-34 tn1205J_04.0
<strong>MachXO2</strong> ユーザフラッシュメモリと<br />
ハードマクロ制御機能の使用方法<br />
EBR の初期化<br />
UFM セ ク タ を EBR 初期化データ と 共有する こ と に し た場合は、 デザ イ ンの計画時に次に示すセ ク タ マ ッ プ<br />
を例 と し て参照する必要があ り ます。 ただ し、 現時点で Diamond は EBR マ ッ ピ ン グに対応し ていません。<br />
Block N Location<br />
and Initiliazation<br />
Data<br />
Block M Location<br />
and Initialization<br />
Data<br />
Pages Available for<br />
General Purpose<br />
Non-volatile Data<br />
UFM Sector<br />
(<strong>MachXO2</strong>-2000)<br />
Page 0 (EBR Block N Location)<br />
Page 1 (EBR Block N Initialization Data)<br />
...<br />
Page 72 (EBR Block N Initialization Data)<br />
Page 73 (EBR Block M Location)<br />
Page 74 (EBR Block M Initialization Data)<br />
...<br />
Page 145 (EBR Block M Initialization Data)<br />
Page 146<br />
...<br />
...<br />
Page 639<br />
一括消去動作を実行する と きは、 EBR 初期化データ が失われない よ う 注意する必要があ り ます。 UFM セ ク タ<br />
を消去する前に、 EBR ブ ロ ッ ク 位置 と EBR 初期化データ が格納 さ れたページを、 2 次 メ モ リ リ ソースにコ<br />
ピーし てお く 必要があ り ます。こ れに よ り UFM セ ク タ の消去後、データ を UFM に書き戻すこ と がで き ます。<br />
電源投入時、 ま たは再構成コ マン ド が実行さ れる と 、 EBR 初期化データ が自動的に対応する EBR ブ ロ ッ ク に<br />
ロー ド さ れます。 EBR ブ ロ ッ ク位置データは、 コ ン フ ィ グ レーシ ョ ン ・ ロ ジ ッ ク に EBR ブ ロ ッ ク の位置を知<br />
らせます。<br />
<strong>Lattice</strong> Diamond ソ フ ト ウ ェ アでの UFM<br />
UFM セ ク タは、 <strong>MachXO2</strong> のフ ラ ッ シ ュ メ モ リ ・ リ ソ ースの 1 つです。 Diamond の Spreadsheet View (スプ<br />
レ ッ ド シー ト ・ ビ ュー) にあ る CONFIGURATION オプシ ョ ンでは、UFM の動作が制御されます。各オプシ ョ<br />
ンは、 UFM に次の よ う な影響を与え ます。<br />
9-35 tn1205J_04.0
図 9-21. Diamond Spreadsheet View での UFM<br />
<strong>MachXO2</strong> ユーザフラッシュメモリと<br />
ハードマクロ制御機能の使用方法<br />
CONFIGURATION パ ラ メ ータ のオプシ ョ ン<br />
• CFG_EBRUFM – The SRAM configuration (not including EBR initialization data) is stored in the Configuration<br />
Flash. EBR ~ SRAM コ ン フ ィ グ レーシ ョ ン (EBR 初期化データ を含ま ない) が コ ン フ ィ グ レーシ ョ ン ・ フ<br />
ラ ッ シ ュ に格納されます。 EBR 初期化データ があ る場合は、 それが UFM セ ク タ の最下位ページア ド レ ス<br />
(ページ 0 か ら開始) に格納 さ れます。 EBR 初期化データ のマ ッ ピ ン グ後に未占有の UFM ページは、 汎<br />
用 メ モ リ と し て使用可能です。<br />
• CFG ~ SRAM コ ン フ ィ グ レーシ ョ ン (EBR 初期化データ があればそれを含む) はコ ン フ ィ グ レーシ ョ<br />
ン・ フラッシュアレイに格納され、 UFMにオーバフローしません。 UFMセクタ全体を汎用フラッシュメ<br />
モ リ と し て使用可能です。<br />
• CFGUFM ~ SRAM コ ン フ ィ グ レーシ ョ ン (EBR 初期化データ があればそれを含む) はコ ン フ ィ グ レー<br />
シ ョ ン ・ フ ラ ッ シ ュ に格納さ れ、 UFM へのオーバフ ローを許可 さ れます。 UFM を汎用 メ モ リ と し て使用<br />
できません。<br />
• EXTERNAL ~ SRAM コ ン フ ィ グ レーシ ョ ン (EBR 初期化データ があればそれを含む) は外付け メ モ リ の<br />
SPI メ モ リ に格納さ れます。 UFM セ ク タ全体を汎用フ ラ ッ シ ュ メ モ リ と し て使用可能です。<br />
コンフィグレーション ・ フラッシュメモリ<br />
EFB モジ ュールの WISHBONE イ ン ターフ ェ イ スでは、 WISHBONE マス タ が <strong>MachXO2</strong> デバ イ スのコ ン フ ィ<br />
グレーション ・ リ ソースにアクセスできます。 このこ とは、 USERCODE や TraceID などのコンフィグレー<br />
ション・ リソースからのデータリードで特に便利です。WISHBONE マスタは、 コンフィグレーション・ロ<br />
ジ ッ ク の透過モー ド を使用し て、 コ ン フ ィ グ レーシ ョ ン ・ フ ラ ッ シ ュ メ モ リ を更新で き ます。 新し いデザ イ<br />
ンは、 電源投入後、 ま たはコ ン フ ィ グ レーシ ョ ンの リ フ レ ッ シ ュ動作後にア ク テ ィ ブにな り ます。<br />
<strong>MachXO2</strong> のプ ロ グ ラ ミ ン グの詳細については、"TN1204, <strong>MachXO2</strong> Programming and Configuration Usage Guide<br />
(<strong>MachXO2</strong> プ ロ グ ラ ミ ン グ と コ ン フ ィ グ レーシ ョ ンのユーザガ イ ド )" 及び "TN1246 Using User Flash Memory<br />
and Hardened Control Functions in <strong>MachXO2</strong> Devices Reference Guide (<strong>MachXO2</strong> デバ イ ス のユーザフ ラ ッ シ ュ<br />
メ モ リ と ハー ド マ ク ロ化制御機能の使用法 リ フ ァ レ ン スガ イ ド ガ イ ド ) " を参照し て く だ さ い。<br />
9-36 tn1205J_04.0
<strong>MachXO2</strong> ユーザフラッシュメモリと<br />
ハードマクロ制御機能の使用方法<br />
TraceID の詳細については、 "TN1207, Using TraceID in <strong>MachXO2</strong> Devices (<strong>MachXO2</strong> デバ イ ス で の TraceID の<br />
使用法) " を参照し て く だ さ い。<br />
表 9-12. <strong>MachXO2</strong> デバ イ スのコ ン フ ィ グ レーシ ョ ン ・ フ ラ ッ シ ュ リ ソース<br />
CFM ビ ッ<br />
ト数<br />
CFM バイ<br />
ト数<br />
CFM ペー<br />
ジ数<br />
<strong>MachXO2</strong>-<br />
256<br />
<strong>MachXO2</strong>-<br />
640<br />
<strong>MachXO2</strong>-<br />
640U<br />
<strong>MachXO2</strong>-<br />
1200<br />
<strong>MachXO2</strong>-<br />
1200U<br />
<strong>MachXO2</strong>-<br />
2000<br />
<strong>MachXO2</strong>-<br />
2000U<br />
<strong>MachXO2</strong>-<br />
4000<br />
<strong>MachXO2</strong>-<br />
7000<br />
73,600 147,328 278,400 278,400 409,344 409,344 737,024 737,024 1,179,136<br />
9,200 18,416 34,800 34,800 51,168 51,168 92,128 92,128 147,392<br />
575 1,151 2,175 2,175 3,198 3,198 5,758 5,758 9,212<br />
フラッシュメモリ (UFM/ コンフィグレーション) 設計のヒント<br />
1. フ ラ ッ シ ュ メ モ リ (UFM/ コ ンフ ィ グレーシ ョ ン) レジス タの定義と、 コマン ド シーケン スの詳細<br />
については、 "TN1246, Reference Guide for Using User Flash Memory and Hardened Control Functions<br />
in <strong>MachXO2</strong> Devices (<strong>MachXO2</strong> デバ イ スのユーザフ ラ ッ シ ュ メ モ リ と ハー ド マ ク ロ化制御機能の使<br />
用法 リ フ ァ レ ン スガ イ ド ガ イ ド ) " のフ ラ ッ シ ュ メ モ リ (UFM/ コ ン フ ィ グ レーシ ョ ン) の項を参<br />
照してください。<br />
2. <strong>MachXO2</strong> のプ ロ グ ラ ミ ン グの詳細については、 "TN1204, <strong>MachXO2</strong> Programming and Configuration<br />
Usage Guide (<strong>MachXO2</strong> プ ロ グ ラ ミ ン グ と コ ン フ ィ グ レーシ ョ ンのユーザガ イ ド ) " を参照し て く<br />
ださい。<br />
3. TraceID の詳細については、 "TN1207, Using TraceID in <strong>MachXO2</strong> Devices (<strong>MachXO2</strong> デバイ スでの<br />
TraceID の使用法) " を参照し て く だ さ い。<br />
4. EFB では、 消費電力削減のため コ ンポーネン ト を動的にオフする場合に、 WISHBONE ク ロ ッ ク の<br />
ソ ースにな ってい る かど う かにかかわ らず、 <strong>MachXO2</strong> の内部オシ レータ を イ ネーブルにする必要<br />
があ り ます。<br />
5. フ ィ ーチャ行にはコ ン フ ィ グ レーシ ョ ン ・ ポー ト の恒久的設定が格納 さ れてい る ため、 コ ン フ ィ グ<br />
レーシ ョ ン ・ フラ ッシュにアクセスする と きは、 初期プログラ ミ ング後にフ ィーチャ行を リードオ<br />
ンリーにすることを推奨します。<br />
6. UFM 及び SPI 機能を イ ネーブルする と 、 コ ン フ ィ グ レーシ ョ ン ・ フ ラ ッ シ ュ のチ ッ プセレ ク ト<br />
(ufm_sn) がイネーブルされます。 コンフ ィ グレーシ ョ ン ・ フラ ッシュ /UFM のアクセスにスレー<br />
ブ SPI イ ン ターフ ェ イ ス を使用し ない場合は、 ufm_sn が非ア ク テ ィ ブ (High) にな り ます。<br />
7. フ ラ ッ シ ュ メ モ リ 及び UFM のア ク セ スに使用するバスには優先順位があ り ます。 バスの優先順位<br />
はJTAGポートが最も高く、 スレーブSPIポート、 プライマリ I2Cポート、WISHBONEスレーブ・ イ ン ターフ ェ イ スの順に低 く な り ます。 優先順位の高いポー ト のフ ラ ッ シ ュ メ モ リ へのア ク セ ス<br />
は、 優先順位の低いポー ト をブ ロ ッ ク する こ と で可能にな り ます。 各コ ン フ ィ グ レーシ ョ ン ・ ポー<br />
ト のマ ス タ に よ る、 コ ン フ ィ グ レーシ ョ ン ・ フ ラ ッ シ ュ /UFM への同時ア ク セス を防止する プ ロ セ<br />
ス を定義する必要があ り ます。<br />
8. イ ネーブル ・ コ ン フ ィ グ レーシ ョ ン ・ イ ン ターフ ェ イ ス ・ コ マン ド 0x74 透過モー ド を使用し て、<br />
フラッシュメモリ (UFM/ コンフィグレーション) インターフェイスをイネーブルすると、 パワー<br />
コントローラ、GSR、ハードマクロ・ユーザSPIポートが一時的にディセーブルになります。ディ<br />
セーブル・コンフィグレーション・インターフェイス・コマンド0x26と、それに続いてバイパ<br />
ス ・ コ マン ド 0xFF を使用する と 、 フ ラ ッ シ ュ メ モ リ (UFM/ コ ン フ ィ グ レーシ ョ ン) イ ン ター<br />
フ ェ イ スのデ ィ セーブル後に、 機能が回復されます。<br />
9. フ ラ ッ シ ュ メ モ リ で、 0 は消去済み、 1 は書き込み済みを定義し ます。<br />
10. ラ イ ト 動作 (ビ ッ ト = 1) の最小単位は 1 ページ (16 バイ ト ) です。<br />
9-37 tn1205J_04.0
<strong>MachXO2</strong> ユーザフラッシュメモリと<br />
ハードマクロ制御機能の使用方法<br />
11. 消去動作 (ビ ッ ト = 0) の最小単位は 1 セ ク タ、 即ち、 UFM セ ク タ、 或いはコ ン フ ィ グ レーシ ョ<br />
ン・フラッシュ・セクタです。<br />
12. UFM の消去 / プロ グ ラ ミ ングのサイ クル数には制限があ り ます。 このサイ クル数については<br />
DS1035 に説明があ り ます。 UFM には静的データ、 ま たはあ ま り 変化し ないデータ を格納する こ と<br />
を推奨し ます。<br />
13. ラ テ ィ スの ウ ェ ブサ イ ト (www.latticesemi.com/products/intellectualproperty/<br />
aboutreferencedesigns.cfm) には、 次の よ う な多数のフ ラ ッ シ ュ メ モ リ (UFM/ コ ン フ ィ グ レーシ ョ<br />
ン) 参照デザ イ ンがあ り ます。<br />
a.RD1126: RAM-Type Interface for Embedded User Flash Memory (組み込みユーザ フ ラ ッ シ ュ メ モ<br />
リ用RAM型インターフェイス)<br />
b.UG57: <strong>MachXO2</strong> Programming via WISHBONE Demo (WISHBONE か ら の <strong>MachXO2</strong> プ ロ グ ラ ミ ン<br />
グ・デモ)<br />
動的 PLL 構成設定用イ ン ターフ ェ イ ス<br />
EFB モジ ュールの WISHBONE イ ン ターフ ェ イ ス を使用する と 、 <strong>MachXO2</strong> デバイ ス内の PLL (Phase Locked<br />
Loop) の構成可能な設定を動的に更新で き ます。<br />
図 9-22. 動的 PLL 設定の EFB イ ン ターフ ェ イ ス<br />
User Logic<br />
WISHBONE Interface<br />
EFB Register Map<br />
<strong>MachXO2</strong> デバイ スには最大 2 個の PLL があ り ます。PLL0 のア ド レ ス範囲は、EFB レジス タマ ッ プ内で 0x00<br />
~ 0x1F です。 PLL1 (も し あれば) のア ド レ ス範囲は、 EFB レ ジ ス タ マ ッ プ内で 0x20 ~ 0x3F です。 PLL の<br />
構成ビ ッ ト と 推奨する使用法については、 "TN1199, <strong>MachXO2</strong> sysCLOCK PLL Design and Usage Guide<br />
(<strong>MachXO2</strong> sysCLOCK PLL 設計 と 使用法ガ イ ド ) " を参照し て く だ さ い。<br />
図 9-23 に示すよ う に、 PLL コ ンポーネン ト への WISHBONE イ ン ターフ ェ イ ス を、 EFB GUI の IPexpress で<br />
イネーブルできます。<br />
EFB<br />
PLL0<br />
PLL1<br />
9-38 tn1205J_04.0
図 9-23. 動的 PLL 構成設定用イ ン ターフ ェ イ ス<br />
<strong>MachXO2</strong> ユーザフラッシュメモリと<br />
ハードマクロ制御機能の使用方法<br />
WISHBONE イ ン ターフ ェ イ スか ら PLL 設定を動的に制御する イ ン ターフ ェ イ ス を イ ネーブルにする と 、PLL<br />
への専用接続に使用される次のポー ト を持つ IP が生成されます。<br />
表 9-13 に、 IP で生成さ れる信号を示し ます。 各信号には、 使用方法 と 、 デザ イ ンプ ロ ジ ェ ク ト の中での接<br />
続方法に関する説明が記述されています。<br />
表 9-13. PLL イ ン ターフ ェ イ ス ~ IP 信号<br />
信号名 I/O 幅 記 述<br />
pll0_bus_i 入力 9<br />
pll0_bus_i 入力 9<br />
pll0_bus_o 出力 17<br />
pll0_bus_1 出力 17<br />
テクニカルサポート支援<br />
直通電話 :1-800-LATTICE ( 北米 )<br />
+1-503-268-8001 ( 北米以外 )<br />
e-mail: techsupport@latticesemi.com<br />
インターネット :www.latticesemi.com<br />
入力デー タ及び制御バス。 このバスは、 デザイ ン内にイ ンス タ ンス化される<br />
PLL コ ンポーネン ト だけに接続する<br />
入力デー タ及び制御バス。 このバスは、 デザイ ン内にイ ンス タ ンス化される<br />
PLL コ ンポーネン ト だけに接続する<br />
出力デー タ及び制御バス。 このバスは、 デザイ ン内にイ ンス タ ンス化される<br />
PLL コ ンポーネン ト だけに接続する<br />
出力デー タ及び制御バス。 このバスは、 デザイ ン内にイ ンス タ ンス化される<br />
PLL コ ンポーネン ト だけに接続する<br />
9-39 tn1205J_04.0
日本語版更新履歴<br />
日付 バージ ョ ン 更新内容<br />
2012 年 6 月 04.0 旧 TN1205 を 1205 と TN1246 に分割し た初版<br />
<strong>MachXO2</strong> ユーザフラッシュメモリと<br />
ハードマクロ制御機能の使用方法<br />
9-40 tn1205J_04.0