ズッキーニの味噌煮込みBlog版

コンピュータのこと、食べ物のこと、なんでもないこと、とんでもないこと。

FPGAの開発環境を整備した(悟空+Quatus Prime on Ubuntu on VMWare Fusion on MacOSⅩ)

2016年05月21日 14時33分28秒 | FPGA

まず残念なお知らせだけど、CQ出版社の「FPGA電子工作スーパーキット」に付属している基板MAX10-JBは、タイトルの環境下ではMAX10-FBにコンフィグレーション用データを書き込むことができない(2016/05/21現在)。

基板が付属しているムックではWindows上での動作についてしか触れられていないので、Ubuntuで動かないからといってブーたれるつもりはない。せっかくのセットだし自分で部品を取り寄せてハンダ付けした基板なのだから、使いたいのは山々だ。Windows10の上ではまったく問題なく動いていたのだから、なおのことだ。悪いのはアタシだ。あぁそうだよ、アタシだよ。

------- *

そもそも独立したWindows機を持っていない。いや正確に言えば半分シャレで買ったスティックコンピュータがあるにはあるんだが、ディスク容量が小さすぎてQuartus Primeを入れられない。そこでしかたなくMacOSⅩに入れてあるVMWare Fusionに入れてある(ぉぃ)Windows10を使うことにした。さすがに仮想環境の霊験あらたかなりて、ちゃんと動いた。ここで満足していれば良かったのだ。繰り返すが悪いのはアタシだよ。あぁそうだよ、アタシだよ。

重いってか遅いってか、まったくストレスがポイント10倍付きで溜まっていく。いくら仮想環境下とは言え、これではたまらん。情報を探ったらUbuntuでの動作が確認できたので、試してみることにした。Windows10とおなじくVMWare FusionにOSを新規でインストールして、Quartus Primeのインストールまでは難なく進んだ。いやもぉ早いのなんのって。4GB食わせたWindows10とは比較したくもないほどOS自体もアプリも小気味よく立ち上がってくる。たった1GBしか割り当てていないのに。おかげで仮想環境を動かしていても母艦のiMacの動作が引っ張られることもなく、実に快適だ。

ここまでは良かったんだが、困ったことに書き込みができない。FPGAへのコンフィグレーションができないのだ。ダメじゃん。orz

------- *

ほとんど丸一日取っ組み合いをやったが、どうにもいうことを聞いてくれない。さすがのGoogle先生もこの出たばかりのムックについては情報の持ち合わせがないらしい。しかしAltera純正のダウンロードケーブルUSB Blasterは20K円もする。とてもとても。だが心配ない。世の中には互換機というものがある。Amazonで1,200円で売っている悟空なる互換ケーブルでQuartus PrimeからMAX10へのコンフィグレーションに成功したという情報も見つけた(これも役に立った)

さっそく取り寄せて今朝から試しているが、ありがたいことになんのトラブルもなくコンフィグレーションに成功している。参考にしたサイトの情報では /etc/udev/rules.d/に拡張子 .rules で権限設定のルールを記述するようにとなっているが、これがアタシの環境ではどうも効いていないようだ。#udevadm --control reload-rules が効いていないのかと思ったが、アプリを起動し直してもOSをリブートしても変わらない。ここで立ち往生は情けないとさらに調べていったら、./altera_lite/16.0/quartus/bin/jtgconfig という妖しの呪文を見つけた。

起動してみるとjtagチェーンが切れているとか言われたが、登録されているデバイスをいったん --remove して再接続したらリンクが設定されたようだ。もしかしたら16.0以降にこのあたりの仕組みが少し変わったのかも知れない。とにかくこれで、目出度く書き込みができるようになった。開発環境も快適だ。文句があるとしたらMAX10-JBならばUSBバスパワーでMAX10-FB(MAX10が乗った本体のボード)にも電源を供給してくれるのに、悟空はさすがにそこまではしてくれないことくらい。これはあとで手持ち部品を使って簡単な電源回路でも作ることにしよう。

------- *[後記]

何度か実験してみたが、やはり /etc/udev/rulrs.d/ のファイルは必要みたいだ。rules.d下に情報どおり 51-usbblaster.rules というファイルを置いている。内容は下記のとおり。

---

ATTR{idVendor}=="09fb", ATTR{idProduct}=="6001", MODE="666"
ATTRS{idVendor}=="09fb", ATTRS{idProduct}="6001", MODE="666"

---

情報元によってATTRだったりATTRSだったりするので、両方書いてある。^^;

 


最新の画像もっと見る

コメントを投稿