LoginSignup
2
1

More than 1 year has passed since last update.

Tang Nano 4KのMac開発環境構築メモ

Last updated at Posted at 2021-10-24

はじめに

最近Tang Nano 4Kと言う安価なFPGAボードがあることを知り、買ってみた。
カメラの映像をHDMIに出力できるらしい。

個人的にまだFPGAは使ったことが無いが、
既に先輩方が色々やられている記事を参考に、自身の環境(iMac)を構築し、Lチカしてみた。

特に今回はインストールするIDEのバージョンがシビアだったので、今後のために記録しておく。

Sipeed Tang Nano 4K

IMG_3822D.jpeg

カメラと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

スクリーンショット 2021-10-17 14.07.41.png

必要なものをインストール

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 のインストール

執筆時点での最新版はV1.9.8だが、これはTang Nano 4Kでは使えないので注意!!

スクリーンショット 2021-10-24 14.10.33.png

最初、全くボードと通信できなくて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のインストール

nabeshin@iMacNabeshin ~ % brew install xquartz

gw_ideのライセンス設定

vagrant@vagrant-ubuntu-trusty-64:~$ gw_ide
  • gw_ideで以下のIDEが起動する。

スクリーンショット 2021-10-17 9.38.02.png

  • 初回はライセンス情報の入力が求められる。

    • 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をフィルタに追加する。

スクリーンショット 2021-10-17 14.01.09.png

スクリーンショット 2021-10-17 14.04.07.png

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!になる。
    • @ciniml さんがudevの設定方法を記載してくれている。
    • 残念ながら自分の環境では、なぜか上手く行かないので後でゆっくり調べよう。。
  • インストールしてるアプリのバージョンが違うとCable Open Failedになって情報が取得できない。
    • Programmerのバージョンによっては全然応答が返らなかったりする。
    • Gowin_V1.9.5Betaにすると解決するかも知れない。

Lチカコードの書き込み

公式のGitHubリポジトリからサンプルコードを入手し、書き込んでみる。

スクリーンショット 2021-10-24 14.56.01.png

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

スクリーンショット 2021-10-24 14.59.09.png

  • Processタブを開いて、ビルド。
    • Synthesizeを右クリックして、clean, run
    • Place & Routeを右クリックして、clean, run

スクリーンショット 2021-10-24 15.15.08.png

  • 右上のツールバーのアイコンをクリックし、Programmerを起動
    • Cable Settingで、Frequencyを2.5MHzに変更

スクリーンショット 2021-10-24 15.19.37.png

  • 書き込み
    • デフォルトだと書き込み先はSRAMになってる。
    • ツールバー右上のアイコンをクリックすると書き込み開始。
    • インジケータが表示されて、10秒くらいで書き込みが終了し、Lチカが始まる。

スクリーンショット 2021-10-24 15.25.23.png

Lチカ

まとめ

  • 結構ハマったが、約2000円でFPGAの開発環境が手に入りました。
  • IDEで回路実装したり色々できるみたいなので、サンプルコードをいじりながら色々試してみようと思います。

参考資料

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1