Xilinx」カテゴリーアーカイブ

Vitis/Vivado 2020.1でMicroBlazeを使う

Vitis/Vivado 2019.2ではVivado SDKがなくなり、ソフトウェア開発はVitisに統合されました。MicroBlazeを使う場合もVivadoでハードウェアモジュールを組み立ててVitisでソフトウェアの開発をします。

この記事は、Vivado 2020.1でArtyを対象にMicroBlazeを使った開発をする手順のメモです。

続きを読む

ad-refkitでFPGAの再コンフィギュレーション

ad-refkit では githubにあるXilnxリポジトリのLinuxカーネルを利用しています。これは、ZYNQ PLのコンフィギュレーションに /sys/kernel/config/device-tree/overlays を使います。

ad-refkitの場合 init.sh の実行中にFPGAのコンフィギュレーション処理が含まれていますが、マニュアルで実行したい場合は次の手順で。

python3 fpga-bit2bin.py --flip design_1_wrapper.bit fpga.bin
cp /home/user/fpga.bin /lib/firmware/
rmdir /sys/kernel/config/device-tree/overlays/fpga # if exists
mkdir -p /sys/kernel/config/device-tree/overlays/fpga
dtc -I dts -O dtb -o fpga.dtb fpga.dts
cp fpga.dtb /sys/kernel/config/device-tree/overlays/fpga/dtbo

fpga-bit2bin.pyは github からダウンロードできます。

再コンフィギュレーションする場合には一度 rmdir で overlays の下の fpga ディレクトリを削除するのが肝。rm -rf ではないので注意。

GPU拡張ボックスでAlveo U50を使ってみる

PCIeタイプのFPGAを使おうと思うとどうしてもシステムがおおきくなりがちです.ちょっと持ち運んで使いたい場合を想定してGPU拡張ボックスに接続してみました.

フルレングス・フルハイトのGPUも入るボックスなだけあって,Alveo U50は余裕で入ります.なんか,上も結構あいてるから少し前のFPGA評価ボードを入れてもよいかも.

Alveo U50の場合,PCIe x16でデスクトップPCに接続した場合と比べて,転送性能が1/8程度しか出ないものの,とりあえず認識して使えることが確認できました.

続きを読む

Alveo U50で100GbEを使ってみる

XilinxのFPGAボード Alveo U50には,100GbEのポートが用意されています.内蔵されている100GbEコアを使うと,結構簡単にでデータのやりとりができます.

というわけで,とりあえず,Alveo U50の100GbEを使ってみた手順の紹介です.

これは,およそ9000バイトのデータが233サイクル@322MHz(おそらく)で受信されてる様子.

関連情報

続きを読む

Alveo U50のセットアップをする

HBMを搭載したAlveo U50をセットアップしてみました.セットアップ対象は,x86_64の普通のパソコンです.スペックは,

  • CPU: Intel(R) Core(TM) i5-8400 CPU @ 2.80GHz
  • メモリ: MemTotal: 64GB  DDR4 2400 MT/s

OSはUbuntuで18.04で,詳細は次の通り.

$ uname -a
Linux dev-8800 4.15.0-74-generic #84-Ubuntu SMP Thu Dec 19 08:06:28 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
$ cat /etc/lsb-release 
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=18.04
DISTRIB_CODENAME=bionic
DISTRIB_DESCRIPTION="Ubuntu 18.04.3 LTS"

Vitisの正式サポートはUbuntu 18.04.2までなのですが,とりあえず動作は確認できました.
重要なのは,libjson-glibとunzipのインストールです.

続きを読む

Xilinx FPGA向けCortex-M1を合成してみた

arm Cortex-M1(Cortex-M0をFPGA向けに最適化したコアらしい)がXilinx FPGAで無償で利用できるという話をきいたので,試してみました.

リソースは,Easy Access to Cortex-M Processors on FPGA からアクセスできる.

XC7A35向けの合成で,リソース使用量は,

  • Slice LUT 3481 (16.7%)
  • Slice FF 2814 (6.8%)
  • Slice 1171 (14.4%)
  • BlockRAM 24 (48%)
  • DSP 3 (3.3%)

という結果.HCLKという動作クロックっぽいポートには100MHzが供給されていた.

MicroBlazeは,テンプレートで作ったササンプルデザインで,最適化オプションがPERFORMANCEで1405 Slice,最適化オプションがAreaで316 Sliceなので,Cortex-M1のリソース使用量は,その間くらいに当たるよう.

配置配線のフロアマップは下の通り.

続きを読む

ZYBO Z7-20でPYNQを使う

Xilinx の PYNQ 環境が手軽に ZYNQ を使う環境として素敵で便利なので積極的に利用しています。公式で提供されているボード以外で利用する場合には自分でビルドする必要がありますが、そんなに手間でもありません。私はZYBO Z7-20向けにビルドして利用しています。

この記事では、PYNQのZYBO Z7-20向けのビルド方法を簡単に紹介します。

続きを読む