帰らざるMOS回路(48) Digilent CMOD S7、HW+SWプロジェクトその3

Joseph Halfmoon

前回、MicroBlazeコア上で実際にソフトウエアを動作させんとしたところが、ビットストリーム生成でまさかのエラー勃発、その対処に1回を費やしました。今度こそということでソフトウエアまで書き込み、動作OK。やったね。でもソフトウエアをビルドする前にもやっぱり引っかかってましたデス。「待てばできる」問題だったけれど。

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

※Digilent CMOD S7のマニュアルは以下のページにあります。

Cmod S7 Reference Manual

なお、CMOD S7搭載のFPGAは「多分、お求めやすい」XC7S25-1CSGA225Cです。

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

チュートリアル・プロジェクト

Digilent社の以下のチュートリアルどおりに実習を実施しているつもりが、FPGA素人の老人はアチコチで引っかかっております。

Using the Simulator Getting Started with Vivado and Vitis for Baremetal Software Projects

今回の「引っかかった」のは、ソフトウエア開発環境 Vitis の「選択」であります。

Vitis ソフトウエア開発環境

前回、ようやくという感じで、AMD(Xilinx)のFPGAハードウエア設計環境であるVivadoにてMicroBlaze 32bitコアを搭載したブロック・デザイン・プロジェクトをビットストリームにまで落とすことができました。そしてその設計をAMD(Xilinx)ソフトウエア開発環境である「Vitis」に輸出するためにXSAファイルというものに変換済です。

さてこれをVitisで「輸入」してソフトウエアを作製(チュートリアル掲載コードのコピペだけれども)すればソフト部分をビルドできるハズ。そう意気込んだらVitisのインストールが「中途半端」なことに気づきました。

忘却力の老人は、数か月前のことなど忘却の彼方ですがインストール時にVitisを指定していなかったような「やましい気」がしていたのです。にもかかわらずデスクトップには Vitis HLS というアイコンがあったので、Vitisインストールされているのね、と思っていたのですが、起動したところ以下のメッセージに気づきました。DeprecationNotice

どうも手元環境にインストール済である Vitis HLS GUIというものはそのうち消えてしまう運命のもののようです。Vitis Unified IDEを使え、と。

まあとりあえず今は使えるのだからと起動してみたところ、チュートリアルで説明されているような項目が見当たりませぬ。どうもチュートリアルで説明されているのは違うやつみたい。大慌てで再度Vitisをインストールしなおすことに。

ここで一つ気づきました。手元環境にはVivado ML版と上記のVitis HLSなどインストール済であるので、これに「重ねて」ソフトウエアを追加する場合はインストーラから行うのではなく、以下のVivadoの「Add Design Tools or Devices」から行うのがよろしいみたいです。AddDesignTools

上記から、「Vitis関係」を追加インストールしてみましたぞ。追加分だけで10Gバイト以上ダウンロードされていたので、それなりに時間が掛かりました。インストール後デスクトップを眺めてみると以前にはVitisHLS 2023.2しかなかったところにVitis関係のアイコンが大量にできました。こんな感じ。VitisIcons

さて、ここで一番シンプルなVitis 2023.2アイコンをクリクリしてみたところ、先ほどから噂に聞くVitis Unified IDEというものが立ち上がりました。これが「本流」なのね、これからの。Vitis202320

しかし、画面がダークであるだけでなく、チュートリアルで説明されているようなメニューとは大分異なります。FPGA素人の老人は戸惑いました。

そこでUnivied IDEを一端出て、VitisClassicという方を起動してみました。起動直後のワークスペース選択画面が以下に。これだ、チュートリアルの説明通りじゃん。これがほしいのよ。VitisClassic20232

ただし、Classicというだけあって、こちらにもDeprecatedの警告がでてました。ちょうどVitisのソフトウエア体系にいろいろ変更が入っている時期なのね。。。知らんけど。VitisClassicDeprecated

今後を考えるとVitis Unified IDEで行うべきなのだろうけれど、今回はチュートリアル通りになぞりたいので Classicね。

後はチュートリアル通り

さてVitis Classic を起動したところが以下に。チュートリアルに書いてある通りのメニューね。そこでCreate Application Projectをせよ、と。CreateApplicationProj

Create Application Projectを選択すると最初に現れる画面は、今後のステップの説明みたいです。FPGA素人の老人にはサッパリだが。まあ前回XSAファイルは作ってあるので突撃するのみ。CreateApplicationProj0

最初のPlatformの指定のところでまず「Create a new platform from hardware(XSA)」というタブの方を選んで、生成したXSAファイルを指定することになります。CreateApplicationProj1

その後の設定は「訳も分からずデフォルトのまま」で良いみたいですが、Application project name欄だけは何か埋めないと先に進めませぬ。CreateApplicationProj2

次の画面は「Domain」というものですが、ここもデフォルトで良いみたいです。多分FPGAに複数個のコアなど載せるともう大変なのだろうけれども。。。CreateApplicationProj3

素晴らしいことに、Templatesというステップでひな型ソースコードを生成してくれるみたいです。今回はチュートリアル通りに「空のCのプロジェクト」を選択。CreateApplicationProj4

srcディレクトリの中に main.c という空のソースファイルを作り、チュートリアルにCのソースコードが掲載されているのでそれをコピペ。BTN_MASKのところだけ、1ビットに変更(前回設定がトラブったところだね。)CreateApplicationProj5

Assistantというウインドウから、金づちアイコンでビルド。CreateApplicationProj6

ビルド後、elf形式のオブジェクトファイルが出来たことが報告されるっと。1撃だね。CreateApplicationProj7

そこで現物ボードをUSB接続、右クリックで現れるメニューから「Launch Hardware」すればVivadoで作ったハードもVintisのソフトもまとめて書き込んで起動してくれるみたい。とってもお楽。CreateApplicationProj8

伝統のTeratermProを仮想シリアル端末として接続しておきました。すると、上記のソースでprintfしている文字列が出てきたではありませぬか。あたりまえか。FPGA上のMicroBlazeが動いているのね。CreateApplicationProjRuns

ボード上のBTN1を押すとちゃんとLEDが点灯します(4灯。)離すと消える。予定通りだ、と。

帰らざるMOS回路(47) Digilent CMOD S7、HW+SWプロジェクトその2 へ戻る

帰らざるMOS回路(49) Digilent CMOD S7、ADCのサンプルプロジェクト へ進む