超小型XyloniボードにRISC-V Sapphire SoCを実装する
1万円 FPGAスタータキットで作る RISC-V CPU
[Webinar/KIT/data]新人技術者のためのRISC-V CPU設計 初めの一歩(5月31日~6月7日,2日コース)
デバイス接続を定義するInterface Designer
![]() |
---|
図1 Interface Designerは,FPGA内の周辺機能と物理端子との橋渡しを行うツール.Efinityにおいて,論理設計と物理設計を明確に分離するという設計思想を反映している.画像クリックで動画を見る.または記事を読む.参考:[VOD/KIT] 実習キットで一緒に作る!オープンソースCPU RISC-V入門 |
Xyloniボードは,FPGAデバイスTrion T8を搭載した超小型のスタータキットです.このボードにRISC-Vアーキテクチャを採用したSapphire SoCを実装することで,FPGA設計とオープンソースCPUの学習が可能になります.FPGA開発環境にはEfinix社のEfinityを使用します.
Efinityでプロジェクトを構築する
最初にEfinityを起動し,「File」→「Create Project...」から新規プロジェクトを作成します.プロジェクト名にはXyloniRISCVを指定し,FPGAファミリにはTrion,デバイスにはT8F81,タイミングモデルにはC2を選択します.
次に「Design」タブで,Top Module/Entityを「TOP」とし,HDLの種類にverilog_2kを設定します.プロジェクト構成ファイルはXyloniRISCV.xmlとして保存されます.
Interface DesignerによるI/O設計
デバイスインターフェース設計はInterface Designerで行います.各周辺機能に対応するI/Oを以下のように設定します.
- GPIO端子の作成:GPIO0[15:0],GPIO1[15:0]
- PLLクロック入力端子の作成:PLLCLKIN
- SDカードアクセス用SPI端子の作成:SD_CS_N,SD_DI,SD_DO,SD_SCLK
- NOR Flash用SPI端子の作成:SPI_MISO,SPI_MOSI,SPI_SCLK,SPI_SS_N
- UART端子の作成:UART_RXD,UART_TXD
- PLLブロックの作成:出力20MHzに設定
- ユーザ用JTAGインターフェースの作成
続いて,それぞれの入出力端子をFPGAのGPIOピンに割り当てます.Instance Viewで端子名を入力して割当を行い,最後に「Check Design」で整合性を確認します.
Xyloniボードでは,すべての拡張端子がGPIOに割当てられているわけではありません.これは端子数の制限やコンフィグレーション信号との兼用のためです.PMOD端子などは必要に応じて再配線可能です.
Interface Designerとは何か
Interface Designerは,FPGA内の周辺機能と物理端子との橋渡しを行うツールです.Efinityにおいて,論理設計と物理設計を明確に分離するという設計思想を反映しています.このツールでは,UARTやSPIなどのインターフェースをグラフィカルに定義し,それぞれの端子を実際のFPGAピンにアサインできます.
Interface Designerの基本的な使用手順
- 「ツールs」→「Open Interface Designer」で起動
- 各周辺回路に対応する端子をGUI上で追加
- 必要な属性を設定:方向,バス幅,初期値など
- 「Show/Hide GPIO Resource Assigner」でFPGAピンを割り当て
- 「Check Design」で論理と物理の整合性を確認
この手法により,HDLの記述前に入出力の全体構成を明示でき,後の設計やデバッグが効率化されます.また,プロジェクト再利用時もI/O構成を保持したまま流用できる利点があります.
設計効率とエラー低減への寄与
Interface Designerでは,誤ったピン割り当てを防ぐために,設計段階でリアルタイムにエラーチェックが可能です.また,設計ファイルはXML形式(例:XyloniRISCV.peri.xml)で保存されるため,バージョン管理や設定変更が容易です.
複数の周辺回路が存在する設計では,Interface Designerがもつビジュアル性が非常に有効です.たとえば,GPIOやSPIなどのピン数や接続関係が明示されることで,設計全体の構造を視覚的に把握できます.
明確なI/O設計の技術的利点
Interface Designerにより,物理設計と論理設計の分離が可能です.その結果,端子設定の一貫性が保たれ,設計変更時のリスクを最小化できます.FPGA設計における初学者にも,設計構造の理解を深める助けになります.
〈著:ZEPマガジン〉
著者紹介
- 出身地:京都市左京区
- 仕事:1986年,日立製作所に入社し,SHマイコンの開発に従事.以降,ルネサステクノロジ,ベンチャー企業,大手半導体メーカにて,画像処理用SoCや各種マイコンおよび関連半導体デバイスの開発を統括.現在もマイコン製品設計に取り組んでいる.
- 趣味:1978年からマイコン・FPGA・GPUと戯れ
- 執筆活動:2000年からマイコンを絡めた雑誌記事と書籍を執筆
著書
- [VOD/KIT]実習キットで一緒に作る!オープンソースCPU RISC-V入門,ZEPエンジニアリング株式会社.
- ARMベース・システムLSI開発の事例研究,Design Wave Magazine 2006年5月号,CQ出版社.
- ARM汎用プロセッサで使える汎用JTAGデバッガを自作する,Design Wave Magazine 2008年6月号,CQ出版社.
- 並列処理プロセッサxCORE徹底研究,インターフェース 2014年11月号~2015年6月号(連載),CQ出版社.
- Cで直叩き!超並列コンピュータGPU全速力,トランジスタ技術 2019年9月号(特集),CQ出版社.ほか
- 今すぐ使えるH8マイコン基板 初版2010年,増補版2011年,CQ出版社.
- 2枚入り小型ARMマイコン基板 2011年,CQ出版社.
- ARM PSoCで作るMyスペシャル・マイコン 基板付き 2013年,CQ出版社.
- ARM PSoCで作るMyスペシャル・マイコン 開発編 2013年,CQ出版社.
- SHマイコン活用記事全集 2014年,CQ出版社.
- FPGA電子工作スーパキット 2016年,CQ出版社.
- MAX10実験キットで学ぶFPGA&コンピュータ 2016年,CQ出版社.
- 完全版FPGA電子工作オールインワン・キット 2016年,CQ出版社.
参考文献
- Lチカ入門!ソフトウェア屋のためのHDL事はじめ,ZEPエンジニアリング株式会社.
- Zynqで作るカスタム・コンピュータ・チップ,ZEPエンジニアリング株式会社.
- [VOD/KIT]一緒に動かそう!Lチカから始めるFPGA開発【基礎編&実践編】,ZEPエンジニアリング株式会社.
- [VOD/KIT]Xilinx製FPGAで始めるHDL回路設計入門,ZEPエンジニアリング株式会社.
- [VOD/KIT]Zynqで初めてのFPGA×Linux I/O搭載カスタムSoC製作,ZEPエンジニアリング株式会社.
- [VOD]カメラ×ラズパイで一緒に!初めての画像処理プログラミング
- [VOD/KIT] 実習キットで一緒に作る!オープンソースCPU RISC-V入門,ZEPエンジニアリング株式会社.
- [VOD/KIT]ARM Cortex-A9&FPGA内蔵SoC Zynqで初体験!オリジナル・プロセッサ開発入門,ZEPエンジニアリング株式会社.