Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
RFSoCでPynqを試す
Search
りょうす
July 18, 2024
Programming
0
270
RFSoCでPynqを試す
Xilinx の RFSoC をつかって RF の実験をする。その時、Pynq が使える。さらに Jupyter を使えってリアルタイムの情報を得ることもできる。
りょうす
July 18, 2024
Tweet
Share
More Decks by りょうす
See All by りょうす
OpenMPW 2023 技術ぽい理解
ryos36
0
560
Other Decks in Programming
See All in Programming
Full-Cycle Reactivity in Angular: SignalStore mit Signal Forms und Resources
manfredsteyer
PRO
0
170
Flutter On-device AI로 완성하는 오프라인 앱, 박제창 @DevFest INCHEON 2025
itsmedreamwalker
1
150
gunshi
kazupon
1
120
tsgolintはいかにしてtypescript-goの非公開APIを呼び出しているのか
syumai
7
2.3k
愛される翻訳の秘訣
kishikawakatsumi
3
350
0→1 フロントエンド開発 Tips🚀 #レバテックMeetup
bengo4com
0
390
AI前提で考えるiOSアプリのモダナイズ設計
yuukiw00w
0
190
開発に寄りそう自動テストの実現
goyoki
2
1.4k
Java 25, Nuevas características
czelabueno
0
110
メルカリのリーダビリティチームが取り組む、AI時代のスケーラブルな品質文化
cloverrose
2
380
ゆくKotlin くるRust
exoego
1
160
Navigation 3: 적응형 UI를 위한 앱 탐색
fornewid
1
460
Featured
See All Featured
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
115
93k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
22k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
150
Utilizing Notion as your number one productivity tool
mfonobong
2
190
My Coaching Mixtape
mlcsv
0
13
The Cost Of JavaScript in 2023
addyosmani
55
9.4k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
0
92
First, design no harm
axbom
PRO
1
1.1k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
1
210
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
0
100
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
69
Transcript
RFSoC で PYNQ りょうす
自己紹介 • りょうす • @ryos36 著者です
PYNQ と いえば... • あれは 2017 年の事だった
PYNQ を使う モチベーション • Python で簡単に FPGA を使いたい
RFSoC とは? • 高速多入力のAD,DA変換器を搭載 した大容量のFPGA • MIMO変復調装置、ビームフォーミング • 5G、Beyond 5Gなどの基地局、端末装置
• レーダー信号処理装置 • 量子コンピュータのマイクロ波制御など
RFSoC ZCU111 • 200万円くらい?
PYNQ が使えるらしい • https://github.com/Xilinx/RFSoC-PYNQ • 対応しているボード • RFSoC2x2 • RFSoC4x2
• ZCU111 • ZCU208 ZCU111 のディレクトリはある がほとんど空っぽ たとえば ZCU208 なら base というディレクトリがあって make を 実行するとどうも bitstream ができあがるらしい。
しかたがないので ZCU104 の PYNQ を 参考にちょっとやってみる • 参考にしたサイト • https://blog.n-hassy.info/2021/05/vitis-hls-to-fpga-4/
• というよりほぼそのままやってみている
SDカードを用意 • PYNQ イメージをダウンロードしマイクロ SD カードへ • Linux がたちあがるのでらくちん •
Ethernet でつなげていれば bitstream をコピーするだけで使える
USB Ether SD カード
Linux から接続 (cu コマンド!!) bitstream hwh ファイル 画像ファイル Jupyter のソース
Jupyter なのですごく簡単 design_1.bit : ビットストリーム design_1.hwh: ハードウェア情報
おおもとは C のソース(Vitis-HLS使う)
ソースコード void gaussian(AXI_STREAM &in_strm, AXI_STREAM &out_strm) { // 入出力のインターフェースを定義 #pragma
HLS INTERFACE s_axilite port=return bundle=CONTROL_BUS #pragma HLS INTERFACE axis port=in_strm #pragma HLS INTERFACE axis port=out_strm // line buffer と window を定義して,パーティションする int linebuf[d-1][width]; int window[d][d]; #pragma HLS ARRAY_PARTITION variable=linebuf complete dim=1 #pragma HLS ARRAY_PARTITION variable=window complete dim=0 AP_AXIS pix; // width * r + r + 1 個入力を読んで,linebuf と window を初期化する buf_x1: for (int px = width - r - 1; px < width; px++) { #pragma HLS PIPELINE II=1 pix = in_strm.read(); linebuf[r-1][px] = pix.data; } https://github.com/hashi0203/Vitis_HLS_Gaussian/ から AXI Stream を使用 している
ポイントはAXI-DMA(VDMAじゃない) ありがとう 「FPGAの部屋」!!情報たすかります
パケットの最後をラわすのに last を使う AP_AXIS val; val.keep = pix.keep; val.strb =
pix.strb; val.last = 0; // 最後のビットの時だけ 1 で,その他の時は 0 にする https://github.com/hashi0203/Vitis_HLS_Gaussian/ から VDMAじゃない!! user は使わない!!
しかし、このままだとRFSoCぽくない • いくつか Xilinx から有益な情報が公開されている • PYNQ RFSoC Workshop(https://github.com/Xilinx/PYNQ_RFSOC_Workshop)
そのなかの rfsoc_qpsk をトライ • ZCU111 用のソースがあるので合成可能 • make zcu111 でビットストリームが出来る
• 出来た後に design をすべて消すので注意 • boards/ZCU111/rfsoc_qpsk に移って make block_design https://github.com/strath-sdr/rfsoc_qpsk
実は pip3 でインストールするだけで使える # pip3 install https://github.com/strath-sdr/rfsoc_qpsk/releases/download/v1.4.5/rfsoc_qpsk.tar.gz python -m rfsoc_qpsk
install これも Jupyter だから 簡単!!
実機の準備 ループバックさせる
実行するとコンソールが現れる voila-dashboards という ツールを使っている リアルタイム に表示 QPSK
なんとなく RF ぽいがめんも出る
線をはずすと通信してないことがわかる
折角だから block_design もみる RF Data Converter が 重要
I (16) Q (16) 送信用:32
設定するだけ で使える!!
他のオーバレイ それにしても RFSoC 高価過ぎる!! Spectrum Analyzer RFSoC OFDM Demonstrator
ADALM-PLUTO • ソフトウェア無線アクティブ・ラーニング・モジュール • 電波法等の法規制を確認・遵守の上、ご使用ください。 https://www.analog.com/jp/design- center/evaluation-hardware-and- software/evaluation-boards-kits/adalm- pluto.html より
Zynq Z-7010 + AD9363 https://s-taka.org/plutosdr-tcxo-upgrade/ さんのサイトから
ADALM-PLUTO の機能 • 325 MHz ~ 3.8 GHz の RF
周波数帯に対応 • 最大 20 MHz の瞬時帯域幅 • 可変レートの 12 ビット ADC と DAC • 半二重または全二重のトランスミッタとレシーバー(1つずつ) • MATLAB®、Simulink® をサポート • GNU 無線シンク・ブロックとソース・ブロック https://www.analog.com/jp/design-center/evaluation- hardware-and-software/evaluation-boards-kits/adalm- pluto.html#eb-overview から引用
PyADI-IIO というのが使えるらしい https://github.com/analogdevicesinc/pyadi-iio/
今後、、、 • いろいろ買ってみたので SDR 関係に手を出していく、、、かも
おしまい