verilog事始め(Tang Primer board で始める)
2021/11/8
verilog事始め(Tang Primer board で始める)
verilog事始め(Tang Primer board で始める)
概要
FPGAのプログラミングができる開発ボードとして以下を購入した。
Sipeed Tang PriMER FPGA Dev.Board
このボードはデモとしてRISC-Vのコードが書き込まれており それを書き換えることができる。ここではツールのインストール方法とverilogのプログラミング方法について紹介する。
ツールのインストールと起動
1.downloads
https://dl.sipeed.com/TANG/Primer/IDE/
上のurlから以下のファイルをダウンロードする:
TD1910_win.zip (windows10の場合)
TD1909_linux.rar (ubuntuの場合)
Anlogic_20220130.lic(共通)
2.Install
ubuntuの場合
0.開発ボードの確認
ボードが認識しているかどうかの確認
~$ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 005: ID 138a:0097 Validity Sensors, Inc.
Bus 001 Device 004: ID 04f2:b5ce Chicony Electronics Co., Ltd Integrated Camera
Bus 001 Device 002: ID 1199:9079 Sierra Wireless, Inc. Sierra Wireless EM7455 Qualcomm Snapdragon X7 LTE-A
Bus 001 Device 007: ID 0547:1002 Anchor Chips, Inc. Python2 WDM Encoder
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
PCのハード状況で色々表示されるが以下の行があればボードが認識されていることになる:
Bus 001 Device 007: ID 0547:1002 Anchor Chips, Inc. Python2 WDM Encoder
これが表示されない場合、ボードが不良の可能性がある。(1度(ボード1枚)、経験あり)
1.Install TD driver on Linux
以下でドライバーを設定する:
sudo nano /etc/udev/rules.d/91-anlogic-jtag.rules
編集内容:
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0547", ATTRS{idProduct}=="1002", GROUP="plugdev", MODE="0660"
UDEVの再起動:
sudo service udev restart
2.Install Application
cd ~/Downloads
sudo unrar x TD1909_linux.rar -d /opt/
sudo ln -s /opt/TD_RELEASE_September2019_r4.6.2/bin/td /usr/bin/td
sudo chmod a+x /opt/TD_RELEASE_September2019_r4.6.2/bin/td
sudo ln -s /opt/TD_RELEASE_September2019_r4.6.2/arch /usr/arch
# ライセンスファイルを最新にする
cd /usr
sudo mkdir license
cd license/
sudo cp ~/Downloads/Anlogic_20220130.lic Anlogic.lic
# ツールの起動
td -gui
windows10の場合
(1)TD1910_win.zipを解凍する
(2)解凍したmsiファイルをインストールする
(3)以下のライセンスファイルを新しいもの(Anlogic_20220130.lic)に差し替えてリネームする。
C:\Anlogic\TD4.6.3\license\Anlogic.lic
(5)以下のinfをインストールする
C:\Anlogic\TD4.6.3\driver\win8_10_64\cyusb.inf
#「署名無し」の警告が出るという情報があったが特に警告はでなかった。
起動する場合、アイコンをクリックする
サンプル(blinky)の動作
https://tang.sipeed.com/en/getting-started/getting-to-blinky/ に沿って、サンプルを動作させてみる。
downloads:
mkdir tang_primer
cd tang_primer
git clone https://github.com/Lichee-Pi/Tang_FPGA_Examples
build:
ツールを起動し
(1)[Project/Open Project] で [~/TangPrimer/Tang_FPGA_Examples/0.LED/prj] の下の led.al を開く。
(2)[Process/Run] またはメニューボタンの中の Runアイコンをクリックすると、ビルドが行われ led.bit が生成される。
書き込み:
(1)downloadアイコンを押すとウィンドウがポップアップするので、そのなかでAddアイコンで書き込みたい*.bitファイルを指定する。
(2)(電源が切れると消える)揮発状態で書き込むときはModeを「JTAG」、フラッシュに書き込むときは「FROGRAM FLASH」にして、Runアイコンを押すと書き込みが開始される。
デバッグ中で何度も書き込む場合は、書き込み速度が速いので「JTAG」を使用する。なお、RESETボタンを押すとフラッシュに書き込んだものが動作する。
(注意:JTAGで書き込んだのにRESETボタンを押すと別のものが動作することになる)
Hummingbird E203 port on LicheeTang(Anlogic EG4SBG256)
RISC-V(32bits)のverilogをビルドしてみる。
download:
cd tang_primer
git clone https://github.com/Lichee-Pi/Tang_E203_Mini.git
https://github.com/riktw/Tang_E203_Mini
RISC-V デバッガでの書き込みができないバグがいるようなので 以下のように修正する:
Constraits/e203egmini_new.sdc
修正前:
9行目
create_clock -name clk_16M -period 62.5 [get_nets {CLKIN}]
修正後:
#create_clock -name clk_16M -period 62.5 [get_nets {CLKIN}]
create_clock -name clk_16M -period 62.5 [get_nets {clk_16M}]
修正後、通常のやり方でビルドと書き込むを行う。
2.sdk
RISC-V用のSDKを使用してみる。
(1)RISC-V デバッガ(Sipeed USB-JTAG/TTL)の設定
sudo usermod -a -G plugdev $USER
sudo nano /etc/udev/rules.d/45-dt2232.rules
編集内容:
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6010", GROUP="plugdev", MODE="0660"
以下でudevを再起動する
sudo service udev restart
(2)sdk
HUMMINGBRID CORE
wget https://github.com/kprasadvnsi/tang-doc/releases/download/1.0.0/sirv-e-sdk.tar.lrz
sudo apt install lrzip
lrzuntar sirv-e-sdk.tar.lrz
cd sirv-e-sdk
# upload(RISC-Vプログラムの書き込み)
make upload PROGRAM=demo_gpio BOARD=sirv-e203-lichee
# Debugging the Demo
#(1) Run the OpenOCD GDB server with the following command and leave it running.
make run_openocd PROGRAM=demo_gpio BOARD=sirv-e203-lichee
#(2) In the other Terminal run the following command to debug your code using familiar GDB Debugger.
make run_gdb PROGRAM= demo_gpio BOARD=sirv-e203-lichee
参照情報
getting started with Tang Primer board.
Tang Primer Documentation
TangPrimer(RISC-V)をArduinoIDEで開発する・・・OpenOCDの再コンパイル対応方法
Tang Primer 開発環境をセッティング
話題のFPGAボード: Tang PrimerをWindows10でLチカする
Tang Primer FPGA ボード & RISC-V
Icarus Verilog - Getting Started
Icarus Verilogの導入とAND回路のシミュレーション
Icarus Verilogコンパイラを使う
[電子工作]Tang Primer:中国製FPGAでRISC-Vの設計に挑戦
以上
| 固定リンク
「verilog」カテゴリの記事
- verilog事始め(sample#4 @Gowin RUNBER board)(2021.12.13)
- Gowin Analyzer Oscilloscope の使い方(2021.12.01)
- verilog事始め(Gowin RUNBER board で始める)(2021.11.24)
- verilog事始め(Tang Primer board で始める)(2021.11.14)
「FPGA」カテゴリの記事
- Gowin Analyzer Oscilloscope の使い方(2021.12.01)
- verilog事始め(Gowin RUNBER board で始める)(2021.11.24)
- verilog事始め(Tang Primer board で始める)(2021.11.14)
この記事へのコメントは終了しました。
コメント