RISC-V CPU自作備忘録(環境構築)
はじめに
RISC-Vの理解のため、「RISC-VとChiselで学ぶ はじめてのCPU自作 ――オープンソース命令セットによるカスタムCPU実装への第一歩」を参考にして、CPU自作に挑戦中です。
本記事は、Vscodeで本書の内容を学習するための、環境構築メモです。
VscodeでScalaを開発する場合は、Metalsという拡張機能を使用すると良いです。
本編は以下のページです。
参考図書
- RISC-VとChiselで学ぶ はじめてのCPU自作 ――オープンソース命令セットによるカスタムCPU実装への第一歩
著者の開発環境(参考)
項目 | 内容 |
---|---|
OS | Ubuntu 22.04.3 |
CPU | AMD Ryzen5 5600X |
GPU | NVIDIA RTX3060 |
Memory | 32GB |
Dockerイメージ立ち上げ
本の内容に従って、Dockerイメージを作成します。
注意点として、本に記載の内容は古いため、一部内容の修正が必要です。
修正内容は以下のページにまとめてあります。参考にしてください。
Vscode インストール
下記のページに従って、Vscodeをインストールしてください。
すでにインストール済みの方はスキップしてください。
Vscode 拡張機能インストール
Vscodeを立ち上げます。任意のディレクトリで、下記コマンドを実行してください。
$ code
Vscodeの画面が現れます。
Vscode画面例(Welcomeページが表示される場合もある)
サイドバーの「Extensions」ボタンをクリックし、下記拡張機能をインストールします。
拡張機能名 | 内容 |
---|---|
Dev Containers | VSCodeをDockerコンテナにアタッチできるようにするための拡張機能です。 |
Scala Syntax (official) | Scalaのシンタックスハイライトのための拡張機能です。ただし、この拡張機能のみでは十分な開発サポートを受けられないため、下記のMetalsをインストールします。 |
Scala (Metals) | .sbtファイルで定義されたワークスペースを取り込み、importの補完などを行ってくれます。 |
Extensionsの管理画面
Vscode に docker をアタッチ
拡張機能「Dev Containers」のインストールが完了すると、サイドバーに「リモートエクスプローラー」ボタンが表示されます。
また、画面左下に、下記のような緑のアイコンが表示されています。
Open a remote windowボタン
これをクリックすると、コマンドパネルメニューが表示されます。
コマンドパネルメニュー
「Attach to Running Container (実行中のコンテナにアタッチ)」から、任意のコンテナにアタッチすることができます。
本通りに作業していれば、下記の通り「riscv/mycpu」というコンテナがあるはずです。そちらを選びます。
Attach to Running Container を選択
これでDockerとVscodeの接続は完了です。
Metal に build.sbt を import
拡張機能「Metals」のインストールが完了すると、サイドバーにMetalsのMマークが表示されます。
クリックすると下記の画面が現れます。
Metalsの設定画面
前章の手順で、Vscodeを起動済みの「riscv/mycpu」にアタッチします。
本通りの手順であれば、起動済みのdockerコンテナには、sbtがインストールされているはずです。
この状態であれば、Metalsを使用することができます。
Metalsのメニューから、「Import build」を選択すると、build.sbtの内容が読み込まれます。
これでMetalsの設定が完了です。下記のように、import や 変数が正しくシンタックスハイライトされていれば成功です。
Metals適用結果
Discussion