RISC-VとChiselで学ぶ はじめてのCPU自作
booksFPGA
2022-1-1 11:08 JST

再度 Verilog-HDL でつくろうとして(というより Verilisp で作る)この本を購入。

パイプライン化の参考にできそう。私の使い方は参考書。実際に手は動かしていない(みながら verilisp で書き下してはいるがChisel は使っていない)。

そういえば、筆者の一人はリアルで知り合い。世間は狭いなぁ。

書籍は5部構成

V だからかな?I部でCPUとは何か?とコンピュータ・アーキテクチャとScalaとChiselと論理回路まで説明している。素晴らしい構成。取り敢えずこの本を買っておけば、何を勉強すればいいかわかる。巻末にお勧め書籍が載っている。

Scala の知識が必要

昨今の言語は文法が難しい。Go言語とかもそう。記号列をパッと見てすぐわかるようにはなっていない。その思想と書き方をわからないと理解できない。Perlほど記号記号はしていないけどScala も私にとってはわかりにくいなぁ。

ステップ・バイ・ステップ

非常に丁寧に書かれているうえに、実行環境として Docker まで用意されている。ってことは Docker の知識もある程度必要です。ハイ。第II部ではひとつひとつ丁寧に実装していっている。最初はPC動かしてメモリアクセスするだけ。から始まりLWというオペコードを実装。てな具合でステップ・バイ・ステップ。

かなりアカデミックな感じの伝統的なCPUの作り方なのでそれなりにCPUの知識は必要という印象。どちらかというと以前CPUを作った人向けの構成にはなっている。「WBって何よ?」とか思ったらお勧め資料で調べていくことになるでしょう。

Chisel

Scala に精通していて SystemVerilog が好きなら、たぶん、Chiselは好きになれると思う。そういう意味では、Scala言語に詳しいハード設計者の為の言語。HDL 一筋とかいままでアプリよりでしたという人は苦労するかも。

実際にChiselをいろいろ動かして学んでいくことになるのだと思う。たとえば簡単なCPUの実装ではあれ?パイプライン組んでないのにステージという言葉があるけどどうして?じゃ、Chiselはどう動くのだ?といった感じで、脱線しながら進めることになるのでしょう。

Chisel に限らないけど、基本的に高位合成を"学ぶ"ならその前に Verilog-HDL と VHDL を勉強しておいた方がよい。どっちにしてもその時間を捉えるという感覚がないとプログラミングは難しい。

LW より先

現時点(2022/1/1)で私は中途半端にverilispでLWを実装しただけ。とりあえず動きましたよ。この本は第III部でパイプラインでの設計をしている。そして、第IV部ではなんとベクトル命令の実装までしている。すげ~。

第V部は、、、Vという名称を使いたかったんだろうなぁ。