aster_ismの工作室

FPGAとかマイコンとか

Google ColaboratoryでいつでもどこでもFPGA開発(VivadoMagic編)

これまでVivadoのインストール方法について説明してきましたが、実際Colab上でVivadoを操作するとなるとTclによるコマンドライン操作がメインとなります。

普通に!vivadoと起動するとコマンドが全てパスワード入力のようになってしまい、自分の入力しているコマンドが分かりません。

f:id:aster_ism:20181225104427p:plain

今回、colab(IPython/Jupyter notebook)上で動作するvivadoマジックコマンドを作ったので紹介します。

概要

colabでは、いくつかマジックコマンドと呼ばれる%から始まる特殊なコマンドが用意されてます。例えば普通に!cd /tmpを実行するとカレントディレクトリは変更されないですが、%cd /tmp にすると変更できます。このマジックコマンドは自分でも作ることができるので、vivadoのTclコンソールを操作するマジックコマンドを作りました。

使い方

ソースコードをダウンロードして、マジックコマンドの設定をします。

!pip install pexpect
!git clone https://github.com/a5teri5m/vivado_magic.git
from vivado_magic import VivadoMagic
ip = get_ipython()
vmagic = VivadoMagic(ip, prefix='/opt/Xilinx', version='2018.2')
ip.register_magics(vmagic)

Vivadoを起動します。

vmagic.init()
 ****** Vivado v2018.2 (64-bit)
  **** SW Build 2258646 on Thu Jun 14 20:02:38 MDT 2018
  **** IP Build 2256618 on Thu Jun 14 22:10:49 MDT 2018
    ** Copyright 1986-2018 Xilinx, Inc. All Rights Reserved.

実際に使ってみます。1行のコマンドは%vivado に続けてコマンドを指定します。

f:id:aster_ism:20190531221527p:plain

複数行のコマンドは%%vivado の次の行からコマンドを書きます。%%vivado sample.tclとファイルを指定することもできます。

f:id:aster_ism:20190531221533p:plain

まとめ

とりあえずは、vivadoのTclが直接叩けるようになった。

おそらく、真面目に終了処理書いてないので、vivadoのプロセスがちゃんと終了されずに残るはずなので注意する。 あと、時間がかかる処理とか、出力が多いものとかも確かめてないのでダメかもしれない。 また暇なときに確認したり直したりする。

github.com