CPU/RAMからROM/I/Oまで!自作のミニRISC-Vマイコンの構成
FPGAキットDE10のスイッチやLEDとの接続
CPUとメモリ構成の概要
![]() |
---|
図1 FPGAキットDE10上に構築した自作のミニRISC-Vマイコンは,CPU,ROM,RAM,SDRAMといった基本的なメモリ構成をもつ.画像クリックで動画を見る.または記事を読む.[著]圓山 宗智 詳細:[VOD]新人技術者のためのRISC-V CPU設計初めの一歩~C言語完全対応!HDLソース500行のミニCPUを一緒に作る~ |
FPGAキットDE10上に構築されるミニRISC-Vマイコンは,CPU,ROM,RAM,SDRAMといった基本的なメモリ構成をもちます.CPUは命令の解釈とデータ処理を行い,命令メモリとしてROMを参照し,データメモリとしてRAMを利用します.ROMは128KB,RAMは32KB,SDRAMは64MBの容量をもち,それぞれ独立したアドレス範囲にマップされています.内部クロックは20MHzで動作し,命令やデータのアクセスはmmBUSを介して行われます.
周辺機能とI/Oインターフェース
周辺機能としてTICKタイマ,入出力ポート,UART,SPI,I2Cインターフェースが用意されています.TICKタイマはシステム・クロックに基づき時間を測定し,入出力ポートはLEDやスイッチなどの外部信号と接続されます.UARTは調歩同期式シリアル通信,SPIは同期式シリアル通信,I2Cは外部センサやシールドとのデータ交換に利用されます.ボード上の3軸加速度センサとの通信もI2Cで制御されます.
バス接続とマスタ・スレーブ構成
CPUと周辺モジュールはmmBUSを介して接続されます.CPUは命令用とデータ用の2つのマスタポートをもち,各スレーブ・ポートはROM,RAM,SDRAM,タイマ,I/Oインターフェースに接続されます.マスタの優先順位はCPUデータ>CPU命令となり,アドレス・デコードはメモリ・マップに従います.周辺機器のレジスタは必要最小限のメモリ空間に配置され,効率的にアクセスできます.
FPGA上の外部接続
FPGAボード上にはプッシュ・ボタン,LED,スイッチ用コネクタが用意されており,Arduinoシールドの接続も可能です.SPIやI2Cの通信もこれらのコネクタを通して外部シールドに接続できます.これにより,CPUからROM/RAMまでの基本構成と,I/Oや外部デバイスとのインターフェースを一貫して理解できます.
メモリマップ例
- ROM:開始アドレス0x00000000,終了アドレス0x0FFFFFFF,実サイズ128KB
- RAM:開始アドレス0x10000000,終了アドレス0x1FFFFFFF,実サイズ32KB
- SDRAM:開始アドレス0x20000000,終了アドレス0x2FFFFFFF,実サイズ64MB
- TICKタイマ:開始アドレス0x30000000,終了アドレス0x3FFFFFFF
- 入出力ポート:開始アドレス0x40000000,終了アドレス0x4FFFFFFF
- UART:開始アドレス0x50000000,終了アドレス0x5FFFFFFF
- SPI:開始アドレス0x60000000,終了アドレス0x6FFFFFFF
- I2C0:開始アドレス0x70000000,終了アドレス0x7FFFFFFF
- I2C1:開始アドレス0x80000000,終了アドレス0x8FFFFFFF
チャプタ・リスト
著者紹介
- nan
著書
参考文献
- 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エンジニアリング株式会社.