Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
実践的!FPGA開発セミナー vol.19 LT
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
windy
February 25, 2023
Technology
0
590
実践的!FPGA開発セミナー vol.19 LT
Latticeの小規模・低消費電力FPGA iCE40でハマった話
windy
February 25, 2023
Tweet
Share
More Decks by windy
See All by windy
LT:組込み屋さんのオシロが壊れた!
windy_pon
0
970
Other Decks in Technology
See All in Technology
LINE Messengerの次世代ストレージ選定
lycorptech_jp
PRO
19
7.7k
組織全体で実現する標準監視設計
yuobayashi
2
380
OpenClawで回す組織運営
jacopen
3
660
情シスのための生成AI実践ガイド2026 / Generative AI Practical Guide for Business Technology 2026
glidenote
0
170
2026-03-11 JAWS-UG 茨城 #12 改めてALBを便利に使う
masasuzu
1
150
PMBOK第8版は第7版から何が変わったのか(PMBOK第8版概要解説) / 20260304 Takeshi Watarai
shift_evolve
PRO
0
100
管理者向けGitHub Enterpriseの運用Tips紹介: 人にもAIにも優しいプラットフォームづくり
yuriemori
0
180
Exadata Database Service on Dedicated Infrastructure(ExaDB-D) UI スクリーン・キャプチャ集
oracle4engineer
PRO
8
7.1k
白金鉱業Meetup_Vol.22_Orbital Senseを支える衛星画像のマルチモーダルエンベディングと地理空間のあいまい検索技術
brainpadpr
2
270
AWSをCLIで理解したい! / I want to understand AWS using the CLI
mel_27
2
260
Datadog の RBAC のすべて
nulabinc
PRO
3
400
AWS SES VDMで 将来の配信事故を防げた話
moyashi
0
240
Featured
See All Featured
Are puppies a ranking factor?
jonoalderson
1
3.1k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
310
Facilitating Awesome Meetings
lara
57
6.8k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.1k
AI: The stuff that nobody shows you
jnunemaker
PRO
3
360
Discover your Explorer Soul
emna__ayadi
2
1.1k
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
260
Information Architects: The Missing Link in Design Systems
soysaucechin
0
820
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
180
VelocityConf: Rendering Performance Case Studies
addyosmani
333
24k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
130
Producing Creativity
orderedlist
PRO
348
40k
Transcript
実践的!FPGA開発セミナー vol.19 LT:iCE40でハマった話 (伊藤 慎治) 実践的!FPGA開発セミナー vol.19 LT Latticeの小規模・低消費電力 FPGA
iCE40でハマった話 システムアイ 伊藤慎治 1
実践的!FPGA開発セミナー vol.19 LT:iCE40でハマった話 (伊藤 慎治) • 伊藤 慎治 システムアイ 代表
(個人事業主) – 2004年独立開業 – 2007年 名古屋市の大須に事務所開設 – 組込システムの受託開発が主な業務 • FPGA歴 – 2004年 FPGAに初めて触れる • AlteraのStratix、Verilog-HDLを使用 – 2005年 Xilinxと出会う • Virtex-Ⅱ Pro (PPC405×2個内蔵)、VHDLを使用 • 当時のツール(EDK)のIPがVHDLのため、以降はVHDL派 – 使ってきたFPGA • Xilinx :Spartan-3,6・Virtex-II Pro・Virtex-4 FX, Artix-7, Zynq-7000 • Intel :Stratix, Cyclone-3, 4, 5 • Lattice :MACH-XO2・iCE40Ultra ←今日の主役 • GOWIN :GW1Nシリーズ(Tang Nano) • 伝統的な組込用途のFPGAのみ – アプリ寄り・AI等は全然、HLSも使ったこと無い 2 自己紹介 Twitter: @windy_pon
実践的!FPGA開発セミナー vol.19 LT:iCE40でハマった話 (伊藤 慎治) • 手組み基板 – 低周波治療器の原理試作 –
アナログ部分は客先提示 – マイコンにはルネサスのRL78を使用 3 こんな事もやってます この製品の 中身 全部ユニバーサル 基板に手組み!
実践的!FPGA開発セミナー vol.19 LT:iCE40でハマった話 (伊藤 慎治) 対象プロジェクト要件 4 • 24bitADC から1.44Mサンプル/秒でデータを取得する
• 1回のサンプルは694nsだが、変換に392nsかかるので読出しは300nsで終 わらせる必要がある • SPIクロックに100MHz必要 • 出力波A・BとADC取得タイミングは同期させる必要がある • 当初はマイコンだけで想定されていた!!絶対無理でしょ 1.44Msps(694ns) ADC変換時間 (392ns) 読出し時間 (300ns) 出力波A 出力波B ADC取得 ADC-CNV ADC-BUSY SPI-CLK 240kHz(4,166ns)
実践的!FPGA開発セミナー vol.19 LT:iCE40でハマった話 (伊藤 慎治) • クロックが3系統必要 – 240kHzの出力波の生成に36MHzが必要 –
ADCへのSPIクロックに100MHzが必要 – マイコンからのQSPIで50MHz • 36MHzからPLLで100MHzが生成出来る必要がある • ロジックはそんなに要らない • 一部とは言え100MHz動作が必要 • RAMがあればサンプルデータをバッファ出来てマイコンに余 裕が出来て嬉しいかも? 5 FPGAの要件
実践的!FPGA開発セミナー vol.19 LT:iCE40でハマった話 (伊藤 慎治) • iCE40シリーズでは中くらいの製品 • 今回は一番容量の小さいLP1Kを採用、パッケージは7mm角のQFN48 –
こんなにピンは要らないが、取りあえずマイコンの空きピンを繋 いでおく • 人気が無いのかMouserに大量に在庫があった(2022/8月) 6 Lattice iCE40 Ultra マクニカの Webサイト より
実践的!FPGA開発セミナー vol.19 LT:iCE40でハマった話 (伊藤 慎治) • iCE40シリーズでは中くらいの製品 • Logicの1100というのはLUT4-FFのセットが単位 •
PLLが1個ある • ブロックRAM(EBR)は1個につき4kbit×16個 • 16x16=32bit乗算器が2個ある • iCE40シリーズは2011年12月にLatticeが買収したSilliconBlueと いう会社の製品 • ツール内にやたらとSB_という 名前が出てくる 7 Lattice iCE40 Ultra EETimes Japanより
実践的!FPGA開発セミナー vol.19 LT:iCE40でハマった話 (伊藤 慎治) • かなり簡素な作りのツール • 左側にプロジェクトファイルのツリーと合成プロセスのツリー •
右側のメイン画面は、通常コンソール出力のみ • シミュレータはModelSim Lattice Editionが付属(ライセンス不要) • VHDL-2008に対応している 8 Lattice iCE40 Ultra 開発ツール
実践的!FPGA開発セミナー vol.19 LT:iCE40でハマった話 (伊藤 慎治) • IP生成機能は無い • PLLの設定ウィザードはある(大した設定項目は無い) 9
Lattice iCE40 Ultra 開発ツール
実践的!FPGA開発セミナー vol.19 LT:iCE40でハマった話 (伊藤 慎治) • IPカタログ(Xilinx)、MegaFunction(Altera)、IPExpress(Lattice)のような IP生成ツールが存在しない • RAM・乗算器はプリミティブを直接配置する必要がある
– RAMはともかく乗算器はMACにも出来るので、中間のパイプラ インレジスタの設定は大変そう 10 ハマり所・IP
実践的!FPGA開発セミナー vol.19 LT:iCE40でハマった話 (伊藤 慎治) • 4kbit-RAMはシンプルデュアルポートでそれぞれ以下の選択肢 – 256×16bit –
512× 8bit – 1024×4bit – 2048×2bit • 何よりFIFOが無いのが辛い、自分で作れと? – 作りました 11 ハマり所・IP
実践的!FPGA開発セミナー vol.19 LT:iCE40でハマった話 (伊藤 慎治) • PLLにはOUTA・OUTBと2個の出力クロックがあるが、任意の 周波数合成が出来るのはOUTAの1個のみ – OUTBはOUTAの半分か、入力クロックそのまま
– 今回の用途では36MHz→100MHzと36MHzそのままの2出 力で使用 • グローバルクロック入力はデバイスに8個あるが、PLLに直接 繋がってるのはこのうち1個だけ – しかもドキュメントに書いてない – 試しに合成してみたらそこはダメだと言われる 12 ハマり所・PLL
実践的!FPGA開発セミナー vol.19 LT:iCE40でハマった話 (伊藤 慎治) 13 ハマり所・PLL これがPLL このピンからしか直接接続出来ない
実践的!FPGA開発セミナー vol.19 LT:iCE40でハマった話 (伊藤 慎治) • IOピン直近に入出力レジスタがある – 今時らしく、入出力ともDDR対応 –
がしかし、リセットが無い! • 入力はともかく、 出力にリセットが無い 14 ハマり所・IOレジスタ
実践的!FPGA開発セミナー vol.19 LT:iCE40でハマった話 (伊藤 慎治) • ロジックの割当は合成時に決まるので、リセットっぽい動作を 書くと絶対にIOレジスタに割り当ててくれない – こんな書き方をしてもダメ、selが負論理リセットになる
• 仕方が無いのでSB_IOプリミティブを直接配置したら… – なんと立ち下がりエッジトリガの指定が無視されるという バグを踏んだ… 15 ハマり所・IOレジスタ DO_cmb <= d_out when (sel = '0') else '0'; process (CLK) begin if falling_edge(CLK) then DO <= DO_cmb; end if; end process;
実践的!FPGA開発セミナー vol.19 LT:iCE40でハマった話 (伊藤 慎治) • パラメータ(generic) 「NEG_TRIGGER」で立ち下がりエッジト リガになるはずが、実機・インプリメント後simでも立上り エッジトリガになっていた
• 合成後のEDIFネットリストを見たら、「NEG_TRIGGER=0」 になっていた – EDIFを手作業で書き換えたら立ち下がりエッジトリガに なった – これを毎回やれと? 16 ハマり所・IOレジスタ
実践的!FPGA開発セミナー vol.19 LT:iCE40でハマった話 (伊藤 慎治) • LatticeだからFLASH内蔵だと思ってたら… – なんとiCE40はO T
P – 他社FPGAと同じく外部SPIフラッシュも使用出来る – さらにコンフィグIFはJTAGではなく、SPI • LatticeのツールはMPSSEがあるFTDIのチップが使える (FT232H、FT2232等)のでこれはそれほど問題ではない – 内蔵ロジアナのような便利なモノは無い – 小さいので全部をsimすれば良い • 今回はマイコンからSPIでコンフィグ 17 ハマり所・コンフィグ
実践的!FPGA開発セミナー vol.19 LT:iCE40でハマった話 (伊藤 慎治) • 色々ハマりましたが、XilinxやAlteraの最新FPGAと比較するの がそもそも間違い – 超低消費電力、小フットプリントがウリの製品なので
• Latticeはスマホなどの大量量産品での採用を狙ってる? • 今回の案件では十分役割を果たしてくれました – マイコンからのSPIコンフィグ – 24bit-ADCからの1.44Msmp/sでのデータ取得 – 240kHz出力とのADC-CNVタイミングの同期 – 内蔵RAM使用FIFOによるデータのバッファ • マイコンのタイミング要件が楽になる • 実際には1msごとにQSPIでデータを取得 • ロジックが余っているので、現状マイコンで処理している一部 のデータ処理のFPGAへの移動を検討中 18 まとめ