Skip to content
SERV RISC-V sample for Tang Nano FPGA board
SystemVerilog Makefile Tcl
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
serv @ 6067b0e Replace to SERV Dec 15, 2019
src Fix that main sources are missing. Dec 17, 2019
sw Fix that main sources are missing. Dec 17, 2019
.gitmodules Replace to SERV Dec 15, 2019
.svls.toml Initial commit Dec 15, 2019
LICENSE Initial commit Dec 15, 2019
Makefile Change name Dec 17, 2019
README.md Fix description Dec 17, 2019
project.tcl Change name Dec 17, 2019
synthesize.cfg Initial commit Dec 15, 2019

README.md

SERV RISC-V core design for Tang Nano

概要

RISC-VのCPUコア SERV をTang Nanoで動かすためのデザイン。

機能

Lチカします。

sw/blinky.hex がSERVで実行されるプログラムになっています。SERVに付属のblinky.hexの定数をデザインに合わせて修正したものです。

5行目の

0042c293

が、 xori t0, t0, 4 に対応する命令で、左から3桁が即値の 4 に対応しています。 よって、 0042c2930012c293 に書き換えると、 xori t0, t0, 1 になります。

この値はRGB LEDの各色に対応しているので、デフォルトで青色、変更後は赤色が点滅します。0022c293だと緑色です。

ビルド

GoWin IDEをダウンロードしてどこかのディレクトリ (例:$HOME/gowin/1.9.2.02 )に展開します。

展開したディレクトリを $GOWIN_HOME として、 $GOWIN_HOME/IDE/bin:$GOWIN_HOME/Programmer/bin をパスに追加します。

export PATH=$GOWIN_HOME/IDE/bin:$GOWIN_HOME/Programmer/bin:$PATH

ライセンスの設定を行っておきます。参考:https://qiita.com/ciniml/items/bb9723673c91d8374b63

このリポジトリをcloneして、makeでビルドします。

git clone --recursive https://github.com/ciniml/tn_serv
cd tn_serv
make

書き込み

とりあえず試したいだけならSRAMコンフィグをします。電源を入れ直せば書き込んだ内容は消えます。

make run を実行するとSRAMコンフィグを実行します。

$ make run
if lsmod | grep ftdi_sio; then sudo modprobe -r ftdi_sio; fi
programmer_cli --device GW1N-1 --run 2 --fsFile tn_serv/impl/pnr/tn_serv.fs
 "SRAM Program" starting on device-1...
Programming...: [######################## ] 99%                  User Code: 0x00000000
 Status Code: 0x0001F020
 Cost 4.91 second(s)

電源を切っても消えないようにコンフィグROMに書き込みたい場合は、make deploy を実行します。

$ make deploy
if lsmod | grep ftdi_sio; then sudo modprobe -r ftdi_sio; fi
programmer_cli --device GW1N-1 --run 6 --fsFile tn_serv/impl/pnr/tn_serv.fs
 "embFlash Erase,Program,Verify" starting on device-1...
Erasing embFlash ...: [                         ] 0%                 number addresses of data:332
Programming...: [#########################] 100%
Verifying...: [#########################] 100%
 Verify success!
 Status Code: 0x0001F020
 User Code: 0x00000000
 Finished!
 Cost 36.4 second(s)

ライセンス

私が書いた部分 (srcディレクトリ以下)は Boost Software License です。ソースコードにライセンスの文言が残っていればいい、とてもゆるいライセンスです。

コードの内容は一切保証しないし、コードを使って起きたいかなる損害についても補償しません。

serv/以下のSERVコアのソースは、SERVのライセンスに従います。

You can’t perform that action at this time.