FPGA開発日記

カテゴリ別記事インデックス https://msyksphinz.github.io/github_pages , English Version https://fpgadevdiary.hatenadiary.com/

RISC-Vプラットフォーム SiFive Freedomについて

RISC-VのASICチップおよび評価ボードとして、SiFiveのHiFive1ボードがすでに世界中で販売されているが、このHiFive1の持つFreedomプラットフォームについてまとめておこう。

そもそもHiFive1のRISC-Vプラットフォームはどのようになっているのだろう。

SiFive Freedomプラットフォームについて

そもそもHiFive1とは何なのか

dev.sifive.com

HiFive1は、SiFive FE310-G000という製品名として定義されている。

The FE310-G000 is the first Freedom E300 SoC, and forms the basis of the HiFive1 developmentboard for the Freedom E300 family.

f:id:msyksphinz:20170328004906p:plain

FE310-G000のブロックダイアグラム

ブロックダイアグラムの左側が、E31 CoreplexというCPUコアの部分になる。 HiFive1のE31 Coreplexは、以下のような構成となっている。

  • コア構成 : RV32IMAC (浮動小数点無し)
  • 分岐予測 : 40エントリのBranch-Target Buffer(BTB), 128エントリの分岐ヒストリ, 2エントリのReturn Stack Pointer(RAS)
  • 整数乗算 : 1サイクルあたり8ビットの乗算、つまり32ビットの計算を4クロックで実行
  • 整数除算 : 1ビットあたり1サイクル。計算サイクルは可変
  • 命令キャッシュ : 16kB, 2ウェイセットアソシアティブ
  • データキャッシュ : 16kB SRAM
  • システムマスクROM : 8kB ブートコード、コンフィグレーション文字列、デバッグROMルーチン挿入用

Freedom プラットフォームについて

Freedom プラットフォームには、現在2種類が存在する。 Freedom Unleashedという大規模SoC向けプラットフォームと、Freedom Everywhereというマイコン向けプラットフォームだ。 それぞれのプラットフォームの特徴を比較してみる。

Freedom Unleashed Freedom Everywhere
コア種類 U5 Coreplex at 1.6GHz+ E3 Coreplex
アーキテクチャ RV64GC RV32IMC/RV32EMC
マルチコア マルチコア、キャッシュコヒーレンシ -
Peripherals PCIe 3.0, USB3.0, GbE, DDR3/4 On chip Flash, OTP, SRAM
プロセス TSMC 28nm TSMC 180nm
OS Linux FreeRTOS
デバッグツール サポート サポート
FPGA VC707 FPGA Board(Xilinx) Arty FPGA Board(Xilinx)
ASIC - HiFive1

Freedom Unleashed

UNIXベースのSoCプラットフォームを構築するためのプラットフォーム。マシンラーニング、ストレージ、ネットワークなどの用途向けとなっている。

サポートFPGAボード

現在では、VC707 FPGAをサポートしている。開発環境は、githubから入手可能だ。

https://dev.sifive.com/static/core/images/dev-boards/xilinx-virtex-7-fpga-vc707-evaluation-kit.7cc42519defd.jpg

ブロックダイアグラム

f:id:msyksphinz:20170328010836p:plain

Freedom U500プラットフォームは、1~8コアまでのマルチコアをサポートしている。またキャッシュコヒーレンシをとるためのL2ユニットと、DDR3/4、PCI-Express Gen3.0, Ethernet, USB-3.0などを接続可能だ。

Freedom Everywhere

マイクロコントローラタイプのプラットフォーム。組み込みマイクロプロセッサ、IoT、ウェアラブルなどのマーケット向け。

サポートFPGAボード

現在では、Arty FPGAボードをサポートしている。開発環境は、githubから入手可能だ。 また、ASICチップとして、HiFive1が入手できる。

https://dev.sifive.com/static/core/images/dev-boards/arty-artix-7.cf703ff39240.jpg

https://dev.sifive.com/static/core/images/dev-boards/hifive1.c27e1a6465d5.png

ブロックダイアグラム

ブロックダイアグラムはHiFive1のものと同一だ。

f:id:msyksphinz:20170328004906p:plain

関連記事

msyksphinz.hatenablog.com

msyksphinz.hatenablog.com