X-HEEPというRISC-VをベースとしたSoCプラットフォームを教えてもらった。
SystemVerilogで記述されたRISC-Vマイクロコントローラを使ってカスタマイズ可能なSoCを構成することができる。 CPU・一般的なペリフェラル・メモリなどをカスタマイズしてMCUを構成することができる。 さらに、HALドライバやSDKを含むFWスタック全体を起動できるIPを構築できる。
シミュレーション環境としては、Verilator、QuestaSimなどによるシミュレーションをサポートしている。 さらに、gcc/clang、SEGGER Embedded Studioを使ってソフトウェアを構築することができる。 ファームウェアはFPGAに実装することもできるし、シリコンへの実装もサポートしている。
アーキテクチャは以下のドメインに分けられる:
- CPUサブシステム
- メモリバンク
- ペリフェラルサブシステム
- 常時オンペリフェラルサブシステム
CPUサブシステムは、 RISC-V lowRISC lbexをベースとしている。 - ハーバード・アーキテクチャを採用 - OBIプロトコルを実装している - キャッシュ無し - クロックゲーティングを適用できる
メモリバンクは、複数のバンクに分割され、プログラム・データを格納することができる。 - 各バンクは個別にクロックゲーティングやリテンションを設定できる
ペリフェラル・サブシステムは汎用ペリフェラルを含んでいる。 - 汎用タイマ - プラットフォーム・レベル割り込みコントローラ (PLIC) - I2Cインタフェース - SPIインタフェース - 24個の汎用入出力 (GPIO) - クロックゲーティングを適用することも可能
常時オンの周辺サブシステムは以下が含まれる: - SoCコントローラ - ブートROM - パワーマネージャ - 高速割り込みコントローラ - DMA
また、X-HEEPはASIC実装のための機能もサポートしている: