帰らざるMOS回路(54) Xilinx Vivado、コマンドラインインタフェース

Joseph Halfmoon

FPGA素人老人がAMD(Xilinx)社Vivadoで気になったのがGUIの下方のtclウインドウ。昔 tcl/tk を直接使いましたが、最近ではアチコチの縁の下でご活躍は知っていても直接tclを呼び出すことは有りません。しかしtclに触れずしてVivado環境の理解にいたらず、ということで触り始めました。

※かえらざるMOS回路 投稿順 INDEX

※実習にはWindows11上の AMD社(Xilinx) Vivado 2023.2 を使用させていただいております。

Vivadoのコマンドライン

Vivadoをインストールしてからこれまでデスクトップに置かれたVivadoのアイコンをクリクリしてGUIを呼び出してました。しかし当然というかVivadoにもCUI、コマンドライン・インタフェースがあるのでした。そしてその引数として「tclスクリプト」を指定して実行できるようになってます。

その辺をXilinx社の以下の日本語ドキュメントで勉強させてもらっています(最新版対応は英語しかありません。日本語版は古いVivado対応ですが、まあ素人老人が使う範囲などは大差あるまいと。)

Vivado Design Suite Tcl コマンド リファレンス ガイド (UG835)

vivado.batがおかれているbinフォルダへPATHを通しておいて以下のようにすると vivado のコマンドラインのヘルプを見ることができました。出力の冒頭が以下に。vivadoHelp

 

今回練習しているあたりの引数の説明が以下に。vivadoHelp2

Vivadoのtcl で Hello, World!

プログラミング言語を学ぶ第一歩はカーニハン&リッチ先生以来、”Hello, World!”と決まっています。そこで以下の tcl スクリプトをVivadoで実行してみることにいたしました。

puts "Hello World!"

まずはこんな感じ、えい。vivadoScript1

およよ、GUIが立ち上がってきました。GUI的には tcl スクリプトの実行結果の影もありません。しかし、GUIを閉じて実行後のフォルダを見ると以下のLOGファイルとジャーナル・ファイルが生成されてます。

    • vivado.log
    • vivado.jou

LOGファイルの中身の一部を見るならばこんな感じです。vivadoScriptLOG1

ちゃんと tclスクリプトは実行されていたみたいです。ただし、GUI上に行先はなく、LOGファイルにひっそりと痕跡がのこされてました。

なお、vivadoのコマンドラインには以下の2つのオプションがあってどちらも tcl スクリプトファイル名を引数にとれるみたいです。

    • -script
    • -source

手元でちょっとやってみたところでは、どちらの挙動も同じみたいでした。”-script “でファイル名を指定しているのに、LOGみると source になってるし。

しかし、tclでHello WorldするのにGUIが毎度立ち上がるのもメンドイっす(VivadoでHello Worldする方が変態か?)

その場合、-mode 引数を使えるようです。まずは tcl モードね。vivadoScriptTCLmode

青矢印のところを見ると、Hello World!されてます。しかしその下の赤線をみると、Vivado%などとプロンプトが。これぞ tcl の「シェル」じゃないかと。ここにFPGAを操作するためのtcl コマンドを打ち込んでいけば、GUI無にも処理ができるのでしょう。。。

とりあえず 「汎用」tcl 的にちょっと計算してお茶を濁します。tclShell

なんだ、フツーのTCL処理系として使えるじゃん。

多分、処理スクリプトを生成しておいて、バッチで処理するという方が普通かも(大きな設計になるとそれなりに時間かかるので、手動でGUIをクリクリしていくのもメンドそうだし。)バッチ実行が以下に。vivadoScriptBatchMode

バッチモードにすると、スクリプトを実行して、標準出力に結果が表示され、完了後プロンプトに戻ります。なお、この場合でもジャーナルファイル、LOGファイルは生成されるので、何かエラーがあったなどしても追及は出来るのでしょう。知らんけど。

コマケー話だけれども、ちょっとスッキリした。

帰らざるMOS回路(53) CMOD S7用、8ビット・シリアル・パラレル変換器 へ戻る

帰らざるMOS回路(55) Xilinx Vivado、Example Project へ進む