はじめに
最近Tang Nano 4Kと言う安価なFPGAボードがあることを知り、買ってみた。
カメラの映像をHDMIに出力できるらしい。
個人的にまだFPGAは使ったことが無いが、
既に先輩方が色々やられている記事を参考に、自身の環境(iMac)を構築し、Lチカしてみた。
特に今回はインストールするIDEのバージョンがシビアだったので、今後のために記録しておく。
Sipeed Tang Nano 4K
カメラとHDMI出力つきのFPGAボード
- GOWIN GW1NSR-LV4C FPGA with 4608 LUT
- Arm Cortex-M3
- Tang Nanoと言うものがあるが、それのアップグレード版
- etc.
(FPGAについては簡単にググって調べて得た程度の知識しかないので、説明は他の方にお任せします)
開発環境
Tang Nano 4Kの開発環境は、WindowsかLinux向けにしか提供されていない。
今回は、MacにVagrant & VirtualBoxでUbuntuをインストールして使う。
- iMac 2020
- Mac OS Catalina 10.15.7
- IDE
- GOWIN EDA on VirtualBox(Ubuntu)
必要なものをインストール
1. VirtualBoxのインストール
nabeshin@iMacNabeshin vagrant % brew install virtualbox
2. Vagrantのインストール
nabeshin@iMacNabeshin vagrant % brew install vagrant
Updating Homebrew...
...
==> Installing Cask vagrant
==> Running installer for vagrant; your password may be necessary.
Package installers may write to any location; options such as `--appdir` are ignored.
Password:
installer: Package name is Vagrant
installer: Installing at base path /
installer: The install was successful.
🍺 vagrant was successfully installed!
nabeshin@iMacNabeshin vagrant % vagrant -v
Vagrant 2.2.18
nabeshin@iMacNabeshin vagrant %
3. Ubuntuのインストール
virtualBoxにLinuxをインストールする。
基本的にLinuxであれば何とかなる筈なので、以下の中から好きに選択すれば良い。
自分はubuntu/trusty64
にした。
nabeshin@iMacNabeshin vagrant % vagrant init ubuntu/trusty64
A `Vagrantfile` has been placed in this directory. You are now
ready to `vagrant up` your first virtual environment! Please read
the comments in the Vagrantfile as well as documentation on
`vagrantup.com` for more information on using Vagrant.
nabeshin@iMacNabeshin vagrant % ls
Vagrantfile
Vagrantfile
から以下のコメントアウトをはずす。
nabeshin@iMacNabeshin vagrant % vi Vagrantfile
...
# Create a private network, which allows host-only access to the machine
# using a specific IP.
config.vm.network "private_network", ip: "192.168.33.10"
...
Ubutuの起動&ログイン
nabeshin@iMacNabeshin vagrant % vagrant up
nabeshin@iMacNabeshin vagrant % vagrant ssh
Welcome to Ubuntu 14.04.6 LTS (GNU/Linux 3.13.0-170-generic x86_64)
...
vagrant@vagrant-ubuntu-trusty-64:~$ id
uid=1000(vagrant) gid=1000(vagrant) groups=1000(vagrant)
vagrant@vagrant-ubuntu-trusty-64:~$
4. GOWIN EDA のインストール
- 以下のページにあるリンクからダウンロードする。
- Gowin_V1.9.5Beta_linux
執筆時点での最新版はV1.9.8だが、これはTang Nano 4Kでは使えないので注意!!
最初、全くボードと通信できなくてVirtualBoxの設定からUbuntuの設定から色々調べたがダメ。。。
アプリのバージョンを古くしたら通信出来ることが分かったが、Tang Nano 4Kのボード設定が入ってなかったり、
いくつかバージョンを試した結果、これがOKだった。
(自分はこれにハマり、、、買ってからLチカできるようになるまで、2,3日かかった・・・・)
vagrant@vagrant-ubuntu-trusty-64:~$ pwd
/home/vagrant
vagrant@vagrant-ubuntu-trusty-64:~$ mkdir gowin
vagrant@vagrant-ubuntu-trusty-64:~$ cd gowin/
vagrant@vagrant-ubuntu-trusty-64:~/gowin$ wget https://cdn.gowinsemi.com.cn/Gowin_V1.9.5Beta_linux.tar.gz
vagrant@vagrant-ubuntu-trusty-64:~/gowin$ gunzip ./Gowin_V1.9.5Beta_linux.tar.gz
vagrant@vagrant-ubuntu-trusty-64:~/gowin$ tar xvf ./Gowin_V1.9.5Beta_linux.tar
vagrant@vagrant-ubuntu-trusty-64:~/gowin$ ls -l
total 1380388
-rw-rw-r-- 1 vagrant vagrant 1413498880 Mar 31 2020 Gowin_V1.9.5Beta_linux.tar
drwxr-xr-x 10 vagrant vagrant 4096 Jan 17 2020 IDE
drwxr-xr-x 3 vagrant vagrant 4096 Mar 31 2020 Programmer
drwxr-xr-x 8 vagrant vagrant 4096 Mar 9 2020 SynplifyPro
vagrant@vagrant-ubuntu-trusty-64:~/gowin$
.bashrc
にライセンスサーバの設定を追加。
vagrant@vagrant-ubuntu-trusty-64:~$ vi ~/.bashrc
...
# ------------------------
# Gowin License Server
export LM_LICENSE_FILE=27020@45.33.107.56
export PATH=/home/vagrant/gowin/IDE/bin:$PATH
vagrant@vagrant-ubuntu-trusty-64:~$ source .bashrc
5. X Serverのインストール
- UbuntuにX Serverをインストールする。
vagrant@vagrant-ubuntu-trusty-64:~$ sudo apt-get update
vagrant@vagrant-ubuntu-trusty-64:~$ sudo apt-get -y install xserver-xorg
6. xquartzのインストール
- こちらの記事を参考にMacに
xquartz
をインストールする。 - インストールしたら再ログインまたは再起動。
nabeshin@iMacNabeshin ~ % brew install xquartz
gw_ideのライセンス設定
vagrant@vagrant-ubuntu-trusty-64:~$ gw_ide
-
gw_ide
で以下のIDEが起動する。
-
初回はライセンス情報の入力が求められる。
-
Use Floating License Server
で、Serverに45.33.107.56
, Portに10559
を入力。 - 入力後、gw_ideを再起動すると以降は入力を求められずに起動できるようになる。
-
-
また、
cannot connect to X server
が出る場合、xquartzの準備ができてない。- 再ログイン、再起動なりして、以下の環境設定ができてることを確認する。
nabeshin@iMacNabeshin vagrant % echo $DISPLAY
/private/tmp/com.apple.launchd.KwU938ZDOO/org.xquartz:0
USBデバイスの認識
VirtualBoxでUSB 2,3 デバイスを使用するには、virtualbox-extension-pack
をインストールしておく必要がある。
nabeshin@iMacNabeshin ~ % brew install virtualbox-extension-pack
Tang Nano 4KをUSB接続した状態で、Virtual Boxを起動し、以下の設定画面でSiPEED JTAG Debugger
をフィルタに追加する。
VirtualBox側でUSBデバイスとしてこんな感じで認識されればOK。
vagrant@vagrant-ubuntu-trusty-64:~/gowin$ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 002: ID 0403:6010 Future Technology Devices International, Ltd FT2232C Dual USB-UART/FIFO IC
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
vagrant@vagrant-ubuntu-trusty-64:~/gowin$ ls -l /dev/*USB*
crw-rw---- 1 root dialout 188, 0 Oct 24 07:17 /dev/ttyUSB0
crw-rw---- 1 root dialout 188, 1 Oct 24 07:17 /dev/ttyUSB1
vagrant@vagrant-ubuntu-trusty-64:~/gowin$
Tang Nano 4K との通信
-
programmer_cli
でボード情報を取得できるか確認。
vagrant@vagrant-ubuntu-trusty-64:~/gowin$ cd Programmer/bin/
vagrant@vagrant-ubuntu-trusty-64:~/gowin/Programmer/bin$ sudo ./programmer_cli --scan
Scanning!
Current download-cable channel:0
Device Info:
Family: GW1NSER
Name: GW1NSER-4C
ID: 0x0100981B
1 device(s) found!
Cost 0.59 second(s)
vagrant@vagrant-ubuntu-trusty-64:~/gowin/Programmer/bin$
-
sudo
つけないとデバイスの参照権限がなくてError: Error found!
になる。 - インストールしてるアプリのバージョンが違うと
Cable Open Failed
になって情報が取得できない。- Programmerのバージョンによっては全然応答が返らなかったりする。
- Gowin_V1.9.5Betaにすると解決するかも知れない。
Lチカコードの書き込み
公式のGitHubリポジトリからサンプルコードを入手し、書き込んでみる。
vagrant@vagrant-ubuntu-trusty-64:~$ sudo apt-get install git
vagrant@vagrant-ubuntu-trusty-64:~$ git clone https://github.com/sipeed/TangNano-4K-example.git
-
gw_ide
を起動し、ダウンロードしたサンプルコードを開く。$ sudo gw_ide
- ボードへの書き込み権限が必要なので、一旦
sudo
付きで。(本当は綺麗に解決したい) - ボードの設定は、
GW1NSR-LV4CQN48PC6/I5
-
Process
タブを開いて、ビルド。-
Synthesize
を右クリックして、clean
,run
-
Place & Route
を右クリックして、clean
,run
-
- 右上のツールバーのアイコンをクリックし、
Programmer
を起動-
Cable Setting
で、Frequencyを2.5MHz
に変更
-
- 書き込み
- デフォルトだと書き込み先はSRAMになってる。
- ツールバー右上のアイコンをクリックすると書き込み開始。
- インジケータが表示されて、10秒くらいで書き込みが終了し、Lチカが始まる。
Lチカ
きたー!
— Nabeshin (@desmoquattro996) October 23, 2021
Tang Nano 4K ついに書き込めた。
結局、IDEをV1.9.5Betaにしたら行けました。
Lチカ出来てこんなに嬉しいなんて。。。 pic.twitter.com/yaeDopsCQ6
まとめ
- 結構ハマったが、約2000円でFPGAの開発環境が手に入りました。
- IDEで回路実装したり色々できるみたいなので、サンプルコードをいじりながら色々試してみようと思います。
参考資料
- 製品資料
- 環境構築系