FC2カウンター FPGAの部屋 2024年04月04日
fc2ブログ

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

Efinix の RISC-V プロセッサの Sapphire SoC を勉強する

Github の Efinix-Inc/xyloni の xyloni/design/Efinity_tutorial は前回で終了した。次は、Efinix の IP の Sapphire RISC-V SoC を使用している Xiloni Development Kit のサンプル・プロジェクトの soc_sap_t8 をやってみようと思っている。
そこで今回は、Sapphire SoC を学習してみよう。

Efinix の”RISC-V SoC: 組み込みコンピューティングの推進”ページを読みながら Sapphire SoC に付いて学習する。
Efinix の”RISC-V SoC: 組み込みコンピューティングの推進”ページから引用して、ブログに書いていく。

Sapphire SoC
Efinity IP マネージャで必要なペリフェラルを選択し、SoC を構成することができるそうだ。

特徴を引用する。

・VexRiscv コア - 6 つのパイプラインステージ (フェッチ、インジェクタ、デコード、実行、メモリ、ライトバック)、割込処理、例外処理
・システムクロック: 20 ~ 400 MHz
・オンチップ RAM: 4 ~ 512 KB (SPI FLASH用のブートローダーを含む)
・DDR または HyperRAM メモリコントローラ
 ・メモリサイズサポート: 4 MB ~ 3.5 GB
 ・ユーザ設定可能な外部メモリバス周波数
 ・外部メモリアクセスのための半二重 AXI3 インターフェイス (最大 256 ビット)
 ・400 MHz DDR クロック周波数、800 Mbps
 ・200 MHz HyperRAM クロック周波数、400 Mbps
・ユーザロジック用の AXI マスタチャネル (最大 2 系統)
・ユーザロジック用の AXI スレーブチャネル (1 系統)
・浮動小数点ユニット
・Linux 用の MMU (メモリ マネジメント ユニット)
・カスタム命令セット (様々な機能を実現するための 1,024 ID)
・RISC-V アトミック拡張機能、Compressed 命令 (オプション)
・APB3 ペリフェラル:
 ・GPIO 最大 32 本
 ・I2C マスタ 最大 3 個
 ・Clint Timer
 ・PLIC
 ・SPI マスタ 最大 3 個 (最大 25 MHz)
 ・Timer 最大 3 個
 ・UART 最大 3 個
 ・APB3 ユーザペリフェラル 最大 5 個


PLIC は何かな?と思ってググって見たところ、”RISC-VのPLIC(Platform-Level Interrupt Controller)について”によると PLIC(Platform-Level Interrupt Controller) のようだ。

Sapphire SoC のブロック図を引用する。
Efinity_117_L240404.png

ユーザ・ロジックとは AXI4 インタフェースで接続だそうだ。これは嬉しい。
命令キャッシュとデータ・キャッシュもあるようだ。

SoC デザイン フローを引用する。
Efinity_118_L240404.png

ソフトウェアの作成は、”Ubuntu 22.04 に efinity-riscv-ide-2023.2 をインストールする”でインストールした efinity-riscv-ide-2023.2 を使用する。

Sapphire RISC-V SoC の使い方については、”Sapphire RISC-V SoC Hardware and Software User Guide UG-RISCV-SAPPHIRE-v6.0 December 2023”を参照する。
  1. 2024年04月04日 04:24 |
  2. Efinity IDE
  3. | トラックバック:0
  4. | コメント:0