2019年9月17日火曜日

TinyFPGA BXをVSCode(+PowerShell)で開発する



 ブログのネタを探してさまよっていた中の人です。夏休みはマウスのコーディングやらバイトやらで忙しい毎日を送ってました。(今夏はアキバへ2桁回買い出しに行ってました。定期がなかったらヤバかった)
 今はこの記事を書きながら環境構築研究を始めています。圧倒的進捗のNASA。



 さて、今回のネタはちっちゃいFPGAをVSCode上で開発する話です。タイトルには(+PowerShell)って入ってますが、pipが入ってる(入る)ターミナルなら何でも大丈夫です。

0.TinyFPGA BXについて&開発の動機

 TinyFPGA BXはLattice Semiconductor Corporation製ICE40LP8Kを使ったFPGAボードで、その名の通り小さいのが特徴です。(AX2っていうもっと小さいのもある)

 サイズ感はArduino nanoやNucleo F303に近いです。
 このボードGUI環境でも開発ができるのですが、なんとPython2.xを使用しているのです!(インストールしようとしたら2.7.11を突っ込もうとしてきた)
 よって今回はPython3.x系で開発環境を整えようとした感じです。

1.今回の環境及び使うもの

  • VSCode 1.38.1
  • Python 3.7.4
  • pip 19.2.3
  • TinyFPGA BX
  • USB micro B ケーブル
今回はVHDLではなくverilogを使用します。(ビルドツールがVHDL未対応らしい)

2.インストール

最初は、TinyFPGA BX User Guideに従ってインストールを進めましょう。私が環境構築をしていて詰まったところは、

apio drivers --serial-enable

の前に

apio install drivers

をすることでしょうか。この辺りはそこまで難しくないはずです。
この時、一緒にverilogのExtensionをVSCodeに入れておくと.vが読みやすくなります。

Atomを入れろとなっていますが、今回は無視します。


3.実機実装

 FPGAの開発では、大体の場合シミュレーションを走らせてから実機実装しますが、面倒なので飛ばします。
とりあえず、サンプルコードを使いたいので、TinyFPGA BXのリポジトリをどうにかこうにかして落としましょう。落として来たら、apio_templateをフォルダコピーしておきます。(書き換えると面倒なので)

 コピーしたフォルダをVSCodeで開いたら、ターミナルを出して、

apio build

と打ちましょう。.vが間違っていなければビルドが通り、hardware.binが生成されているはずです。(ほかのファイルも同時に生成)



 ボードへの書き込みは、ケーブルでPCとつなぎ、リセットボタンを一回押した状態で、

tinyprog -p .\hardware.bin

と打てば書き込まれます。


書き込みがうまくいかないときは、User Guideの下の方に書いてあるブートローダのアップデートをやってみましょう。

参考:tinyFPGA-BX boardにTerminalのみでbuildとボードへの書き込みを行った




©2018 shts All Right Reserved.