5段パイプラインのMIPS/RISC-V風プロセッサ
概要
本リポジトリは、Verilogで記述された5段パイプラインのプロセッサ実装を収めています。設計はMIPSに近いパイプライン構成を採りつつ、RISC-Vライクな命令セットの考え方にも親和性があることから「MIPS/RISC-V-like」と表現されています。主要機能としてハザード検出(hazard detection)、データフォワーディング(data forwarding)、および分岐処理(branch handling)を備えており、パイプラインの性能を阻害する典型的な問題に対処できる構造です。READMEとテストベンチが同梱されているため、シミュレーションによる挙動確認や学習用途に適しています。
リポジトリの統計情報
- スター数: 9
- フォーク数: 0
- ウォッチャー数: 9
- コミット数: 6
- ファイル数: 4
- メインの言語: Verilog
主な特徴
- 5段(IF, ID, EX, MEM, WB)パイプライン構成で命令スループットを向上
- ハザード検出ユニットによりデータ依存・ロードユース等を検出してストールを制御
- データフォワーディング(フォワードユニット)でレジスタ間の待ちを最小化
- 分岐処理(分岐判定とパイプラインフラッシュ/PC更新)を実装
技術的なポイント
本実装は典型的な5段パイプラインプロセッサの教育的かつ実践的な実例です。各ステージは命令フェッチ(IF)、命令デコード/レジスタ読出し(ID)、実行(EX)、メモリアクセス(MEM)、ライトバック(WB)に分かれており、ステージ間はパイプラインレジスタで分離されています。データハザードに対してはフォワーディングユニットがALU入力に対して実行中/メモリ段の結果を選択的に供給し、RAWハザードの多くを回避します。一方でロード命令直後にそのデータを使用するケース(ロード・ユース)は、メモリからの値がEX段で利用可能になるまでに遅延が生じるため、ハザード検出ユニットがストール(バブル挿入)を生成して正しい動作を保証します。分岐については分岐判定とターゲット計算をどの段で行うかが設計の要ですが、本実装は分岐検出に伴うパイプラインのフラッシュやPC更新処理を含み、制御ハザードを扱います。Verilogソースはモジュール分割されており、ALU、レジスタファイル、メモリインターフェース、制御ユニット、フォワーディングおよびハザードユニットといった単位で構成される想定で、テストベンチを用いてシミュレーション検証が可能です。学習用途だけでなく、FPGA上での合成・実験にも適する基本設計を備えています。
プロジェクトの構成
主要なファイルとディレクトリ:
- README.md: file
- images: dir
- src: dir
- testbench: dir
まとめ
教育用途に適した、実践的な5段パイプラインCPU実装。
リポジトリ情報:
- 名前: 5-stage-pipelined-MIPS-RISC-V-like-processor
- 説明: A 5-stage pipelined MIPS processor implemented in Verilog featuring hazard detection, data forwarding, and branch handling.
- スター数: 9
- 言語: Verilog
- URL: https://github.com/Harih7/5-stage-pipelined-MIPS-RISC-V-like-processor
- オーナー: Harih7
- アバター: https://avatars.githubusercontent.com/u/183395911?v=4
READMEの抜粋:
5-stage-pipelined-MIPS-RISC-V-like-processor
A 5-stage pipelined MIPS processor implemented in Verilog featuring hazard detection, data forwarding, and branch handling. …