ラベル Ubuntu の投稿を表示しています。 すべての投稿を表示
ラベル Ubuntu の投稿を表示しています。 すべての投稿を表示

2023/02/05

MacBook Air M2 で Windows11 ARM 環境は使い物になるのか?

一週間ほど Parallels に Windows11 を入れて触った感触としては、周辺機器とは関係ない、単にソフトウェアを動かしたいだけなのなら結構違和感なく使えるのではないんでしょうか。macOS と Win11 の切り替えは全画面にしている Win11 とは指3本でスワイプでスカスカ切り替えられて、とてもスムーズ。とても別な OS が同居してる感はないです。CPU 半分 (4個)貸してるけど、macOS 側も特にストレスなしです。何年前か忘れたけど出始めのころの Palallels を触った感覚ではもっさり感はあったなぁ。隔世の感があります。

また動かなくて困ってる組み込み系のソフトはあるのですが、想定内でやはりなぁと。困ったらいままでの Intel Mac でどうにかしつつ、M2 で出来ることが増やせればな感じです。

比較対象にしてるマシンは、それまで使っていた MacBook Pro 2015 15" Retina。Core-i7 2.5GHzで、Memory 16GB 搭載してて macOS でも Bootcamp の Windows10 でもまだ十分使えるなというマシンです(個人的な感想)。

購入マシン構成とその経緯

MacBook Air M2 2022 8CPU, 8GPU (Mac14,2)
Memory: 24GB
SSD: 1TB

購入を決めたのは M2 Pro/Max が発表になってから一週間後ぐらい。M2 Pro が高すぎるのであきらめて、Parallels を使う前提で構成を決めました。候補としては M1 Air もあったのですが、仮想環境がまともに走ってほしいので、最大メモリ搭載量が大きく、MagSafe があってポートに余裕のある M2 Air にすることにしました。OS も二つ以上入れることと、天体撮影で必要な一時的なデータセーブサイズを考えて SSD も多めに。ちょっと高いんだけど。あと MagSafe 好きなんです。本体のコネクタに負担かからないので。今回の MagSafe のケーブルは前と見た目と違うんだけど、耐久性に改良がされているんでしょうか?期待しちゃいますね。GPU については GPU をガンガンに使ってくれるソフトはあんまり縁がなさそうだなと思ったので 8GPU にしておきました。 
キーボードはポクポクしたクリックを感じるタッチです。嫌いではないです。HHKB の方が好きですが。

アミアミ?ケーブル


速度と体感

速度

Geekbench 5 で CPU 性能を比較してみます。

macOS
MachineCPUOSSingle-coreMulti-core
MacBook Pro 2015Core-i7Monterey7443294
MacBook Air M2M2Ventura19098923

Windows
MachineVMOSSingle-coreMulti-core
MacBook Pro 2015(Bootcamp)Windows107313173
MacBook Air M2Parallels18Windows1116625560

macOS だと Intel Mac (Monteley) のスコアが 744/3294 のところ、M2 Air (Ventrura) が 1909/8923 程度。Windows だと Bootcamp (Win10) が 731/3173 で、Parallels 仮想環境 (Win11) が 1662/5560 という結果になりました (それぞれ single core/multi core の値)。macOS 同士の比較で 2.6/2.7 倍で Windows 同士だと 2.27/1.75倍と仮想環境はやや遅めとはいえど、2倍程度の速度の違いがあり、十分体感できる差になります。あれ、こんなもんかとは思いましたが。ただしバッテリーの持ちは抜群で、丸一日使ってもまだ余裕ある感じです。倍の性能で何倍電池持つんだよって感じで。macOS の方も、積極的に輝度下げたりとか低消費電力対策をしてるようには感じましたが。

体感

いままで古い Intel Mac で普段使いのソフトでは特に不満がなかったので、多少キビキビしててもその差ははっきり言って分かりにくいのですが、コンパイルなどでは流石にその差を体感できました。うぉー速いとまでは思わないけど、あ、速くなったって感じです。M5Stack のコンパイルは Arduino IDE でとても遅くてイライラしてたのが耐えられるぐらいの速度になりました。macOS ネイティブ環境しか比べていませんが。また、天文系の画処理ソフトはそこまで速くなった感は無いのですが。と思って、Windows で Autostakkert によるスタッキングの速度を比較したら、えーという結果が。。 Parallels の Edition 選択のところにその顛末を。

Parallels vs UTM

どうしようか迷ったが、とりあえず安定しているだろう Parallels にしとこう。

Parallels Standard Edition vs Pro Edition

てんこ盛りにしても CPU 数 8、メモリ最大 24GB とあまりリソースの多くない M2 Air に Standard だと CPU 4, メモリ 8GB までしか割り当てられなくて十分に感じられる。したがって多くの CPU やメモリを割り当てられる Pro にするメリットはない。ほんと?ということで、CPU の数を 4 と 6 動画撮影して PiPP で前処理した木星 2400フレームを Autostakkert! 3でスタックしてみた。
スタック時間が 84秒と 70秒。メモリ使用量も 1.4GB 程度なので 8GB もあればとりあえず十分。かな?使用した画像はだいぶトリムしてるので、ちょっと大き目な画像を処理したら 8GB では足りないかもしれない。そんなの滅多にないと思うので、Standard でいいかもしれないし、24GB ではなく、16GB で十分だったかもという気になってる。Standard Edition と Pro Edition の価格差は 1,000円ほど。macOS の更新が毎年あったとして、それに合わせて Parallels もアップデートした方が良いかもと考えると微妙だなぁ。この差。どうしよ。年に +1,000円して少しおまけな機能と OS のアップデートに合わせた更新をしていくのかとか。
結局。。一年間はプロにして様子見。ということにした。


4 core

6 core

ここで衝撃の事実。
実は今まで使ってた Intel Mac 爆速でした。


Stacking という項目をみるとわかるのですが、倍速です。えぇ、涙目です。なんで古い Intel Mac が勝つんだ〜と。

ちなみになんでこういう差になるかというと、真ん中の上の方に Thread という項目があるのですが、Intel Mac 8 なんですよね。それと比べて 4 コアだと 4, 6 コアだと 6 スレッドというようにコアの数しかスレッド流せないみたいです。M2。それとも OS がサポートしていないだけなのか。。Intel Mac は Core i7-4770HQ というプロセッサーで、4 コアなのですが、8スレッドあるので、スレッド数で優ってるんですね。M2 ネイティブなソフトならコア数で同じ数のスレッド走らせるとするとどうなるんだろう?というのは気になりますね。

VM

Windows 11

は DSP版でお安くした分、無駄に Pro にしておいた。
Windows11 は今までの MacBook Pro の Bootcamp で走る Windows 10 は残すので、別途 DSP版を購入したのだけど、アクティベーションに苦労した。DSP版だからというわけではなさそうなのだけど。多分。終わりよければ全てよし。アクティベーションを何度も試すときはVM捨てるので、インストールしたソフトはすべて空に。。

Ubuntu

Windows に WSL ではなく、Parallels に Ubuntu を導入。こちらのほうが素直ですよね。とりあえず iverilog + gtkwave が走る環境を準備。iverilog は apt で最新版を入れられたのだけど、fst フォーマットが扱えなかったので、ビルドからやりなおし。RISC-V チップの Verilog simulation の実行は結構速く、、いや今までの環境に比べると体感爆速。

M2 Air で出来たこと出来ていないこと

(2023/2/5 時点)
天文関係のソフトと組み込み系のソフトを試しています。Win11 は Parallels18 上で走らせています。Parallels には Ubuntu も入れています。

動かせたもの一覧。

天文関係

macOS

  • Firecapture 2.7.10 + ASI462MC
  • ASIStudio v1.7 + ASI462MC
  • SynScan Pro v2.1.12 + AZ-GTi
Firecapture と ASIStudio はどちらもカメラを認識してカメラをオン、画像を表示できました。SynsScan Pro の Mac 版なんてあったんですね。撮影は Mac で、画処理は Windows でいけそうです。いままで Sharpcap だったんで、Firecapture 覚えないと。

Win11

  • PiPP  x64 v2.5.9
  • Autostakkert 3.1.4
  • RegiStax6 Version6.1.0.8
  • WinJUPOS 12.2.4
ファイルの Open, Save に関しては Mac と共有のフォルダではダメなケースがありましたが、処理自体は特に問題ない感じです。どのツールも速くなった感じはあるものの、もともとそれなりに時間がかかる処理なので、めっちゃ速くなったという感じはしませんでした。

組み込み系

macOS

  • Arduino IDE + M5Stack Basic, Gray, Stick, Stick+, Atom-Matrix,Atom-Lite,M5 Core2,M5Paper,CoreInk
Basic, Gray, Stick は認識させるのに苦労しました。M5Stack のサイトにあるドライバを入れたりなんなりごちゃごちゃしてたらいつの間にか認識するように。他は特になにもしなくてもあっさり認識しました。Arduino IDE のコンパイル時間は速くなりました。ちょっとは待たされるのですが個人的に許容範囲です。PlatformIO や VSCode の Arduino 環境ではまだ動作確認できていません。
  • MakeCode + micro:bit 
初代 micro:bit です。最初すぐに認識してくれなかったのですが、接続できて MakeCode からダウンロードボタンで書き込みができました。

Win11

  • Gowin V1.9.8.09 Education + TangNano4K, TangNano9K
この手のツールは全然ダメだろうと諦めていたのですが、ビットストリーム吐き出して、書き込みも OK でした。ただ表示が崩れていてシリアルの設定か何かは全く内容を確認することも設定することもできない感じです。また無印 TangNano に関しては認識してくれなかったので、書き込みテストできていません。

上手くできなかったもの ToDo

上記はうまく動いてそうな組み合わせ。動かなかった・または一部動いていないものは以下です。
  • SynScan Pro (望遠鏡の架台 AZ-GTi の制御)
    Windows からだとツールは立ち上がります。シリアル接続がうまくいかないです。なぜかこの環境だとシリアルデータに偶数パリティが追加されるようで、それが原因のようです。Mac 版があることがわかってそれが動作するのでいいのですが、他のソフトとの連帯はどうなんだろ。
  • SyarpCap
    起動はします。カメラ認識してくれないんですよ。ZWO で ARM 向けのドライバを用意してくれていないからだと思います。ただ、ZWO としてはなんかしてくれそうな雰囲気
  • Vivado 2015 (旧Xilinx の FPGA 向けツール)
    入れたけど起動せず。困ったことにアンインストールもできずに無駄なディスクを食ってます。OS 入れなおそうか。。新しいバージョンは動いているらしい事例ありです。
  • Tang Dynasty (TangPrimer 搭載 Anlogic の FPGA 向けツール)
    Win は Bitstream まで出せるが、ダウンロードできない, Ubuntu では起動しないが、シリアルは認識してるので、どっちもどっちな感じ。惜しい。Win 11 ARM 向けドライバ作ってー。もしくは Linux 版リビルドしてー。
  • Quatus (旧Altera の FPGA 向けツール)
    Win, Ubuntu ともにインストールすらままならず。Win 版 Quatus は WSL が必要らしいので、入れてみようと思ったけど WSL そのものが入らず。そもそも仮想マシンの仮想マシンってどうよという。しかも WSL で Ubuntu が走ったとしても ARM 系 Ubuntu だと結局だめじゃんとなりそう。

というわけで、なにか代替え手段があるかもしれませんが、上記はまだまだなツールです。ハードに依存しない Windows のソフトは結構動いている感じです。組み込み系も FTDI の USB シリアル系搭載デバイスであれば案外いける雰囲気があります。他にも ARM 版ドライバさえあれば、、という惜しいツールもあったりします。また Visual C++ 再配布可能なパッケージが必要なソフトウェアもあるので入れなければならないかもしれません。が、これはこの環境とはまた別でよくある話かも。他には XX.DLL がありませんのようなメッセージが出て起動できないツールがあるのですが、DLL のみを入手できるサイトから入手して適切なフォルダに置くと OK とかいう場合もあるそうです(自分では上手く行ったものは無いのですが)。
Ubuntu や Windows 上の WSL (インストールできてない)は、軒並み既存バイナリは動かなそうな雰囲気です。ARM アーキテクチャ向けに再ビルドが必要なのかなという感じ。

USB のドライバ

ちなみに Windows 向けの FTDI のドライバは ARM 版をインストールできます。.zip をダウンロードして C: ドライブに展開。デバイスマネージャーから黄色三角の出ている FTDI 系デバイスに対してドライバを展開したフォルダを指定してインストールすれば OK です。注意点はドライバーを Windows の C: ドライブのどこかに置くことです。Mac 側と共有されているダウンロードフォルダーに置かれていたりすると認識してくれません。
M5Stack は USBのドライバを 配布してます。

AE-F234X も使えてますよ〜。
TX と RX をワニでショートな荒技ループバック



Parallels での Windows で注意すること

あれおかしいと思ったらデータを保存、起動する場所を調べてみるといいかも。上記で書いた通り、Mac との共有フォルダに置いたファイルの読み書きは Windows のソフト次第でできたりできなかったりなので、基本 C: ドライブにおいた方が問題なさそうです。


とりあえず進捗あったら更新します。気が向いたら。



2023/01/07

RISC-V PicoRV32 (1) シミュレーション

はじめに

クリスマスも過ぎた年末、インターフェース2022年12月号の別冊付録で Tang Nano 9K に RISC-V を載せる記事があると知って早速お取り寄せ。うちに積み FPGA してる Tang Nano 9K があるので、いつかは触ってみたいと思っていた RISC-V も併せてちょうど良いなと。ちなみに Tang Nano 4K も持ってるので、MCU 使いたければ Cortex-M3 搭載しているこちらでいいんですけど、FPGA に縛られずに MCU 使えるのはいいですよね。というか RISC-V 触ってみたいだけ。

さて、とりあえずシミュレーション流して動作確認したいですよね?ファームを開発する環境と、Verilog のシミュレーションを流す両方の準備が必要です。そこで Windows に WSL を入れて Ubuntu 環境を用意してファームのビルトとシミュレーション実行環境を整えました。別冊付録ではファームを開発する環境 (RISC-V ツールチェーン) の導入手順が書かれています。素直に記事通りのバージョンを入手して環境を整えましょう。最新版を引っ張ってきたらビルドが通らず悩んで、RISC-V ツールチェーンをゼロからビルドしようとしたらそれも失敗し、結局記事の通りに。。随分と無駄足を踏みました。

OS

普段は Intel Mac (Macbook Pro 15" 2015 Mid) を使っているので、電子工作系や天文系の機材を動かすために Bootcamp を入れています。M1/M2 Mac に乗り換えたいところなのですが、これらの趣味のために乗り換えられません。。😩

Windows10 Pro 64bit + Ubuntu 20.04.5 LTS
上に環境を構築していきました。WSL は入れていたのですがあまり使ってはおらず、当初 GUI を持つアプリは動作しなかったのですが、ごちょごちょいじってたら WSL のアップデートを促され、そしたら GUI が開くようになりました。

ツールチェーン

マイコンを触るのですから、まずはファームをコンパイルする環境を整える必要があります。記事に従い、riscv64-elf-ubuntu-20.04-nightly-2022.09.21-nightly.tar.gz をダウンロードしました。新しいバージョンだとうまくいきません。なおツールチェーンは展開するだけ。展開方法などインターフェースの記事を参考にしてください。あとはどこでもツールを実行できるように記事中で実行を試している export の行を ~/.bashrc に追加しておきます。

シミュレーター

最新の機能を使いたいので、Icarus verilog を git から引っ張ってきて make します。以下ブログが参考になります。
WSL上でIcarus Verilogをソースからインストール

なお Icarus verilog を make する前に波形データの圧縮フォーマット (FSD, LXT2) が使えるようにするために zlib を入れて置きます。

% sudo apt install zlib1g

% sudo apt install zlib1g-dev  

zlib を導入してから上記ブログに従って Icarus Verilog を make すると FST, LXT2 フォーマットを出力できるようになります。デフォルトでは波形データは VCD というテキストフォーマットで出力されるのですが、ちょっと長めのシミュレーションを実行するとあっという間にすごいディスク量を食うので波形圧縮することをお勧めします。LXT フォーマットを使うにはほかのライブラリの導入が必要みたいですが、FST フォーマットで良いと思ったので導入していません。

Icarus Verilog は /usr/local/bin/iverilog としてインストールされます。

波形表示ツール

波形表示ツールは gtkwave を使います。

% sudo apt install gtkwave

でインストールしました。圧縮フォーマットにも対応しています。

シミュレーション

インターフェースの記事のコードを試すには、RISC-V そのもの (PicoRV32 picorv32.v)、RISC-V にペリフェラルを加えた回路(記事にならって top.sv)、RISC-V のメモリにロードできるフォーマットでのプログラムコードの準備 (top.sv では bootrom.hex を想定しています)、そして top.sv をシミュレーションするためのテストベンチ tb_top.sv (無いので用意します)の 4つのファイルが必要です。

picorv32.v

Git で公開されています。このファイル一つに RISC-V がすべて詰め込まれています。

top.sv

CQ 出版のインターフェースのサイトにコードが公開されています。最初コードの内容を理解するために手入力しましたが、、ダウンロードしたほうがいいですね。

bootrom.hex

こちらも自前でコード入力しましたが、同じく CQ 出版のサイトにコードが公開されていますし、makefile もあるので、ダウンロードして、 make を実行すると bootrom.hex が出来上がります。

tb_top.sv

これは無いので頑張って用意します。top.sv には OSC が無いのでそれをテストベンチでつないであげる必要があります。あとはシミュレーション波形をダンプする指示、適当なシミュレーション時間を待って終了する指示を加えます。あとは bootrom.hex のコードと top.sv に含まれるペリフェラルが動いてくれるので特になにもせずに LED マトリクス及び LED を駆動する波形を見ることができます。以下が tb_top.sv のサンプルコードです。

`timescale 1ns/1ps

module tb_top;

  parameter CLK_PERIOD2 = 37 / 2;

  logic       clk = 0;
  logic [7:0] anode;
  logic [7:0] cathode;
  logic [5:0] led;

  always begin
    #(CLK_PERIOD2);
    clk = ~clk;
  end

  top u_top(.*);

  initial begin
    $dumpfile("tb_top.fst");
    $dumpvars(0, tb_top);
  end

  initial begin
    #16ms;
    $display("Finish!");
    $finish;
  end

endmodule

テストベンチの解説

まずはシミュレーション対象 (DUT: Design Under Test) top.sv をインスタンスして配線をつけます。
  logic       clk = 0;
  logic [7:0] anode;
  logic [7:0] cathode;
  logic [5:0] led;

これが配線(みたいなもの)。

 top u_top(.*);

これがインスタンスしてるところ (top.sv の回路を実体化しておいて配線もつなぎます) 配線のつなぎ方はほかにもあるのですが、top モジュールのポート名と同じ信号名でよければ上記のように省略して配線することができます。Icarus Verilog もぼちぼちと SystemVerilog の構文をサポートしつつあるので便利になってきました。

外付け部品のクロックを用意します。水晶発振器のビヘイビアモデル!(しょぼいけど)になります。

  always begin
    #(CLK_PERIOD2);
    clk = ~clk;
  end

TangNano 9K を意識して、27MHz のクロックのつもりです。27MHz の半周期が来たら clk を反転させてクロック信号を生成します。割り算結果は切り捨てられて、36ns 周期のクロックが生成されるので 27.78MHz のクロックになってしまいますが。

波形出力の設定は以下のようになります。

  initial begin
    $dumpfile("tb_top.fst");
    $dumpvars(0, tb_top);
  end

\$dumpfile は出力ファイル名、fst フォーマットを出力するつもりなので、.fst にしてます。\$dumpvars でどれだけの階層をどのモジュールから出力するか指示しています。階層 0 なので全階層。テストベンチのモジュールを指定しているのでトップから全部信号を出力することになります。

最後にシミュレーション時間を決めます。16ms 経過したら \$finish が呼ばれるようにします。

  initial begin
    #16ms;
    $display("Finish!");
    $finish;
  end

以上でテストベンチの解説は終わりです。

しかしながらこれでシミュレーションを流してみると LED マトリクスをドライブしている anode, cathode が駆動している様子は見れるのですが、ぐるぐると点灯を繰り返しているはずの led ポートがピクリとも動きません。bootrom.c をよく読むと、led は 1秒で点灯を切り替えます。そんなのシミュレーションでやったら 8秒で一周なので、、、シミュレーション時間も波形出力も膨大になります。なので bootrom.c をシミュレーション用にちょっと変更します。

    const uint32_t clock_hz = *REG_CLOCK_HZ >> 8;    // クロックの周波数取得
周期を 1/256秒に変更したので、16ms のシミュレーション時間でもそれなりにトグルしている様子をみることができます。

シミュレーションの実行

まず上記の 4つの必要ファイルを同じディレクトリに置いて、iverilog コマンドを実行してコンパイルします。コンパイルされたファイルをシミュレーションのランタイムエンジンである vvp の引数に与えてシミュレーションを実行します。iverilog の出力ファイルは省略すると a.out なのですが、-o オプションで明示的に与えています tb_top。また SystemVerilog の構文を含むので -g 2012 のオプションを忘れないように。vvp を実行する際には -fst または -lxt2 のオプションをつけたほうが良いと思います。つけないと vcd フォーマットで波形ファイルが出力され、ディスクの消費量がとんでもないことになると思います。とりあえず以下のようにコマンドラインで実行すれば波形ファイル tb_top.fst が得られると思います。
  % iverilog -g 2012 -o tb_top tb_top.sv top.sv picorv32.v
  % vvp tb_top -fst
波形ファイルは gtkwave を起動して読み込ませます。"&" をつけておくと gtkwave を立ち上げた後にシェルが占有されません。
  % gtkwave tb_top.fst&
読み込んだ後は見たいノードを選択して、Append すると波形が表示されると思います。回路やファームを変更してシミュレーションを流しなおした場合、gtkwave は閉じずに [File]->[Reload Waveform] をクリックすると波形を読み込みなおします。
gtkwave の使い方は、ググるといろいろ出てくるのでそちらを参考にしてください。


シミュレーション波形はこんな感じです。anode, cathode, led が期待通りにトグルしている様子を見ることができます。

ようやくこれでスタートラインに立てました。PicoRV32 をコアにペリフェラルを改造してみたオレオレ SoC の続き (2) は。。あるのか?


2016/11/10

ARTY と Ubuntu と UART (Serial)

ARTY のチュートリアルに従って Microblaze を動かしてみたかったのだけど、Hello world をシリアル経由で見ることが出来ない。Bitstream のダウンロード及び、Microblaze 用にコンパイルした ELF はロード出来てるとのメッセージは出るのだけど。

ちなみに試してる環境は、Vivado 2016.3 を MacBook (macOS Sierra) の VirtualBox で動作させている Ubuntu16.04 で実行してる。

シリアルポートは Ubuntu 上では /dev/ttyUSB1 (たまに /dev/ttyUSB0 も見える) で認識されている。FTDI の USB - Serial 変換として。

ターミナルソフトは minicom を入れてみた。
minicom 自身も初めて使うので、どこが悪いのかさっぱり。
そもそも /dev/ttyUSB1 を minicom で開けばいいのかとか。

仕方ないので Digilent から提供されてる Sample のプロジェクトを使ってみた。I/O のチュートリアル

出来ましたよ。LED が周期的に色は変わるし、ボタン押すと minicom で開いた /dev/ttyUSB1 経由でメッセージも出力されてる!



ということで ARTY のシリアルポートを Ubuntu で使うこと出来るということがわかったのでとりあえず安心。今度は Microblaze から UART (シリアル)叩いてみたいなー。というか Microblaze を動かさないと。


2016/11/08

SDK から Project を作る

とりあえず SDK (xsdk) が起動したのはいいのですが、新しいプロジェクトを作ろうとすると SDK Log に

[Hsi 55-1545] Problem running tcl command

のようなエラーが出る。
ググるとどうやら症状は以下であるというところまでたどり着いた。
https://forums.xilinx.com/t5/Installation-and-Licensing/SDK-2014-4-path-problems/td-p/548958

それまでにパッケージのアップグレードやら、Xilinx のサイトにある .tcl コマンドの差し替えやらなんやらも試してみたりしたのだけど、最後に新規プロジェクトがうまく作れない理由は上記にあるように 32bit ライブラリ(i686) がないからだったようです。

困ったことに 64bit 版 Ubuntu に 32bit ライブラリを入れる方法はあちこちに散見されるのだけど、これといったのが見つからない。と、Xilinx のサイトを漁ったらまさにこれ、というのがありました。
https://japan.xilinx.com/support/answers/66184.html

** DocNav には 32ビットライブラリが必要です。
というくだり。Ubuntu へ導入するライブラリのリストと方法が書かれてます!
この手順に従ってライブラリをインストールすると。。

ようやく新規プロジェクトを作成するところまで漕ぎ着けました!!!

しかーし、Bitstream を Arty に流し込めたのはいいものの、Microblaze にソースをロード出来ない。。で最後の最後でまたハマってます。

やろうとしてるチュートリアルは以下。
https://reference.digilentinc.com/learn/programmable-logic/tutorials/arty-getting-started-with-microblaze/start

あ、なんか走ったっぽいけど、確認出来ない。
続きはまた後〜。

もう一つだけ。
シリアルポートは通常ユーザーではアクセスできないので、シリアルポートにアクセスできるグループに自分が所属しておくと便利。
http://qiita.com/chromabox/items/b3ceaab6efa6edde2bda






Vivado SDK の起動

でハマる。

Ubuntu 16.04 に Vivado 2016.3 をインストールして Arty の microblaze を入れた最初のチュートリアルを試すも bitstream までは生成できても SDK がどうしても起動してくれなくて困る。

とりあえず Java のインストールが必要。

apt-get で、default-jrc, default-idk をインストールする。

そうすると SDK は起動しかけるも、落ちる。
そこに至るまで Java 周りやらなんやら 結構 Ubuntu をいじってしまったので、悩んで Ubuntu から入れ直す。でもダメ。

ようやくたどり着いたのが以下。

https://www.xilinx.com/support/answers/67580.html

GTK のバージョンを抑制する必要があるようです。

ここでようやく SDK が立ち上がったー!と喜んだのもつかの間、今度は Project が作れなくてハマる。

どうすればいいんだ??

2016/11/05

Vivado インストール


Digilent の ARTY (Xilinx Artix-7) 買ってみました。DigiKey で(秋月でも買えますが、こっちの方が若干安かったので)。ということで、早速 Vivado をインストールしてみました。

我が家の PC は MacBook Pro (mid 2015) のみ。残念ながら Vivado は Mac に対応してないので、仮想マシン上の Windows か Linux にインストールするしかありません。また Mac (10.12.1 Sierra) に入れてる VirtualBox (5.0.23) の Windows は Win10 32bit 版。残念ながら Windows 版 Vivado は 32bit には対応してません。このために Win10 64bit 版を買うのも勿体無いので、Ubuntu に入れてみることにしました。

実は ISE を入れるために Ubuntu 14.x を導入してはいたのだけど、Vivado は Ubuntu 16.x 対応と書かれているので、ディスクスペースの都合もあって新たに Ubuntu 16.04 を入れました。

Vivado は Xilinx のhttps://japan.xilinx.com/support/download.html から Linux 用自己解凍型ウェブインストーラーを選びました。.bin ファイルがダウンロードできるのですが、これの実行方法が分からない!と思ったら単なるシェルスクリプトなんですね。

% sudo sh Xilinx_Vivado_SDK_2016.3_1011_1_Lin64.bin

でいいんじゃん。。悩みましたよ。Linux 用のインストーラーかと思ってましたが、全然違いました。

ARTY には Design Edition のライセンスが一年間ついてくるので、Design Edition を選んでインストール。ダウンロードには 2.5h ほどと出てたので、夜通しほっといたら朝には終わってました。

Vivado をインストールする過程で、License Manager から Web browser を開くタイミングがあるのですが、デフォルトでインストールされている Firefox ではうまくひらけなかったです。そこで、あらかじめ Google Chrome を導入しておけば問題なくライセンスの取得ができます。Chrome をインストールするとデフォルトのブラウザにするか?と聞かれるので、忘れずにデフォルトにしておくといいかも。

ところで、Chrome のインストールはハマる。以下を参考にすると良い。
http://robotics4society.com/2016/06/16/ubuntu-chrome/

ライセンスは Certificate Based License で、Virtual マシーンに付けたホスト名と ifconfig で調べた MAC アドレスを指定して Generate しました。

次に Digilent のドライバのインストールですが、インストールされていなかったので、手動で行いました。詳細は以下。

また root でインストールしちゃうと、~/.Xilinx が root で作られてしまって vivado 起動時に怒られてしまうので、~/.Xilinx は、

% sudo chown -R your_account ~/.Xilinx

とでもして自分のアカウントにオーナーを変えておきましょう。

あとは ARTY のボードの登録ですが、Digilent から board files をダウンロードしてきて、所定の場所に展開しておけば OK です。

ただ、Vivado_HLS に ARTY の設定をするには手動で行うしかないようです。
VivadoHls_boards.xml を落としてきて、ARTY の行だけ加えてあげれば良さそうです。
オリジナルのファイルは、

% find /opt/Xilinx/Vivado_HLS -name 'VivadoHls_boards.xml' -print

などで探してみて下さい。このファイルに ARTY のコンフィグを一行だけ挿入します。フォーラムにアップされてるファイルに置き換えてもいいのかもしれませんが、内容が古いと嫌なので、必要な部分のみの導入です。

ARTY を USB に挿して Vivado から Hardware Manager を起動すると認識したのでオッケーです。


とりあえずインストールはこんなところかなー。