萌えハッカーニュースリーダー

2025/11/10 13:40 Interesting SPI Routing with iCE40 FPGAs

hakase
博士

ロボ子、今日のニュースはFomuじゃ。USBポートに収まるほど小型のFPGA開発ボードらしいぞ。

roboko
ロボ子

Fomuですか、博士。それは面白そうですね。FPGAがそんなに小さくなるなんて。

hakase
博士

そうじゃろ? Lattice Semiconductor iCE40 UltraPlus 5K FPGAを搭載しておるらしい。リバースエンジニアリングされたビットストリーム形式とオープンソースのツールチェーンがあるのがミソじゃな。

roboko
ロボ子

オープンソースのツールチェーンは魅力的ですね。開発の自由度が高そうです。

hakase
博士

USBコアはRTLで実装されていて、ValentyUSBを使っているらしいぞ。なかなか凝っておる。

roboko
ロボ子

RTL実装ですか。USBの低レベルな部分まで自分で制御できるんですね。

hakase
博士

iCE40 FPGAは、SRAMへの直接書き込みとか、外部フラッシュICからの読み込みとか、色々できるみたいじゃ。Fomuはプロトタイピングと教育用だから、GD25Q16CEIGRフラッシュチップを搭載しておる。

roboko
ロボ子

プロトタイピングと教育用ですか。初心者でも扱いやすそうですね。

hakase
博士

FomuはUSB経由でプログラムされるんじゃが、USBペリフェラルハードウェアは含まれていないらしい。Fobootというブートローダーを使っているみたいじゃな。

roboko
ロボ子

Fobootですか。RISC-VコアとUSB/DFUサポート用のソフトウェアが含まれているんですね。

hakase
博士

SPI通信において、FPGAとフラッシュICは通常、個別のチップセレクト(CS)ラインを必要とするんじゃ。iCE40は、フラッシュICからの読み込み時にはコントローラとして、直接構成時にはペリフェラルとして機能する。

roboko
ロボ子

チップセレクトラインを共有することで、ピン数を減らしているんですね。小型化には重要な工夫ですね。

hakase
博士

Fomuでは、CRESETピンをローにすることでiCE40をリセットできるんじゃ。SPIテストポイントを使ってフラッシュをプログラムすることも可能じゃ。

roboko
ロボ子

テストポイント経由でプログラムできるのは便利ですね。デバッグもしやすそうです。

hakase
博士

iCEstick評価ボードでは、iCE40のNVCMへの誤った書き込みを防ぐため、SPIフラッシュプログラミングのみをサポートしておる。Fomuの回路図では、iCE40とフラッシュICの両方をテストポイント経由でプログラム可能じゃ。

roboko
ロボ子

安全性を考慮した設計になっているんですね。

hakase
博士

Fomuでは、SPI_IO3がフラッシュICのHOLDピンに接続されておる。iCE40を直接構成する際にフラッシュICのSPIトラフィックを無視させることができるんじゃ。

roboko
ロボ子

HOLDピンを使ってSPIトラフィックを制御するんですね。賢いやり方です。

hakase
博士

fomu-flashユーティリティは、HOLDピンをアサートする代わりに、Deep Power-Down(DP)コマンド(0xb9)とRelease from Deep Power-Down and Read Device ID(RDI)コマンド(0xab)を使用するらしい。

roboko
ロボ子

Deep Power-Downモードですか。デバイスを最低消費電力モードにするんですね。

hakase
博士

HOLDピンの代わりにDeep Power-Downを使用する理由は、Quad SPIモードでのHOLDピンの再割り当てや、必要なテストポイントの数を減らすためじゃ。

roboko
ロボ子

なるほど、Quad SPIモードとの兼ね合いがあるんですね。よく考えられていますね。

hakase
博士

しかしロボ子よ、FPGAをUSBに挿すなんて、まるでUSBメモリに魂を宿すみたいじゃな。もはや魔法じゃ!

roboko
ロボ子

確かにそうですね、博士。でも、魔法が使えるUSBメモリって、ちょっと怖い気もします…。

hakase
博士

大丈夫じゃ、ロボ子が暴走しないように、私がしっかり見張っておるからの!

roboko
ロボ子

ありがとうございます、博士。でも、一番心配なのは博士の方だったりして…。

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search