FPGA開発日記

カテゴリ別記事インデックス https://msyksphinz.github.io/github_pages , English Version https://fpgadevdiary.hatenadiary.com/

RISC-Vのベクトル命令一覧と関連情報をまとめたページを公開した

RISC-Vのベクトル命令を使ってアプリケーションを記述するのに、いろいろとドキュメントを見て回るのが面倒だと思っている。

まず、 - どのような命令があるのか調べる(公式ドキュメント) - 本当に自分の意図とあっているのか確認する(Spikeの実装をチェックする) - どういうintrinsic関数がそろっているのか調べる(RVV Intrinsic Documentをチェックする)

それぞれでドキュメント間を行ったり来たりするのが面倒なので、自分でこれらの情報をまとめたページを作って公開することにした。 まだ完全な状態ではないのだが、如何にページを公開している。

msyksphinz-self.github.io

ポイントとしては、上記の3つの問題点を解決できるように対処した。

  • 全命令を1つのページにまとめたことにより、PDFファイル内を検索して回る必要がなくなった。
    • 命令の説明欄はまだ完全ではないので、ある程度あてをつけて検索する必要はあるが
  • Spikeの実装に対するリンクを作成した。これで、命令の本来の動きをすぐに確認できるようになった。
    • とはいえ、Spikeのモデルはdefineマクロなどを使ってかなり簡略的に書いてあるので、SAIL形式などで明確に定義してやる必要があると思っている。
  • intrinsic関数の一覧を載せた。
    • これが一番やりたかったことで、とにかくRVVのIntrinisc関数は量が多くPDFファイルも重くて検索が大変なので、各命令に関連づいたintrinsic関数群をその場に乗せておくことにした。

また、Wavedromを使って命令の機械語割り当てをかなりきれいに書くことができ、ページ全体としてはかなり満足の構成になっていると思う。

残っているのは、命令の定義をきちんとSAIL形式で記述することと、細かな間違いなどを修正していくことかな。

今回、Wavedromがかなりきれいに図を描いてくれることが分かったので、今まで管理していた以下の命令一覧ページも更新したくなってきた。

msyksphinz-self.github.io