fjt7tdmi のノート

メモ帳みたいなもの

Chisel HDL で超簡単な CPU を書いた

筆不精でずっとブログを書いていませんでしたが、最近いろいろ生活が変わってきているので、これを機会にブログ執筆にリトライします。 というわけで、今回は Chisel で超簡単な CPU を書いてみた話。

知っている方も多いでしょうが、chisel は近年注目を集めているハードウェア記述言語です。 私は学生時代に SystemVerilog で CPU を書いていて、その後流行り始めた chisel をいじってみたいとずっと思っていたのですが、最近ようやく chisel を書き始めました。

Chisel に入門するときにやったこと

技書博で、だいにんぎょーさんの「Chisel を始めたい人に読んでほしい本」を買っていたので、とりあえずそれを読みました。今は booth で買えます。

これ一冊読めば chisel で簡単な CPU を書くくらいはできますが、公式にも目を通しておきたかったので、以下のページを読みました。

Chisel の資料と言えば、バークレーの方が書いた原著論文が引き合いに出されることが多かったですが、もうかなり古くなってしまったので chisel3 wiki とかを読んだ方が良いです。

作ったプロセッサの構成

ごく単純な In-Order スカラ・プロセッサを作りました。いわゆる MIPS 5段パイプラインみたいなやつです。(私が作った他の CPU に合わせたため、パイプラインは5段ではありませんが) 命令セットは RV64I のみを実装しており、riscv-tests の fence 以外のテストが通ることを確認しています。 一応ソースコードは public にしていますが、正直他の人に参考にしてもらうレベルではないかな…まあ、これからがんばります。