[JASA 1C1] SoC Harness Functions - Caravel SoC



バージョン: 2024/03/26

目次:

  1. 目次
  2. ソフトウェアのセットアップ
  3. ハードウェアのセットアップ
  4. 電源投入手順
  5. ファームウェア
  6. 初期機能テスト7.結論
  7. 結論

1. はじめに

このガイドは、Google MPW‑6 (Marmot1) M.2 カードを使用して Caravel ボードを起動するプロセスを支援し、期待どおりに動作し、さらなる開発と テストの準備が整っていることを確認することを目的としています。

立ち上げプロセスは開発ライフサイクルの重要なフェーズであり、ハードウェア コンポーネントと機能の初期検証として機能します。これには、ハードウェアの電 源を入れ、基本的な動作を確認し、対処する必要がある可能性のある潜在的な問題や異常を特定することが含まれます。

2. ソフトウェアのセットアップ

2.1. 前提条件

  • ホストOS: Ubuntu 22.04
  • Python 3.6以降がインストールされていること。pip3がイ
  • ンストールされています。

2.2. サポート パッケージをインストールする

$ sudo apt update $ sudo apt upgrade $ sudo apt install openocd fakeroot verilator python3 meson gtkterm gawk texinfo git python3-pip bison device-tree-compiler autoconf automake autotools-dev curl python3 libmpc-dev libmpfr-dev libgmp-dev build-essential flex gperf libtool patchutils bc zlib1g-dev libexpat-dev ninja-build

2.3. 64ビットRISC‑V用クロスコンパイラツールチェーンのインストール

$ cd ~ $ git clone --recursive https://github.com/riscv/riscv-gnu-toolchain $ pushd riscv-gnu-toolchain $ ./configure --prefix=$HOME/RISCV --enable-multilib $ make newlib linux -j8 $ popd

パスに追加

$ export PATH=$PATH:$HOME/RISCV/bin $ echo 'export PATH=$PATH:$HOME/RISCV/bin' >> ~/.bashrc

2.4. pyftdiをインストールする

$ pip3 install pyftdi

3. ハードウェアのセットアップ

開発ボードのハードウェア設定は簡単で、プロジェクトのテストが容易になります。以下の手順に従って、テスト用に開発ボードをセットアップします。

3.1. ブレークアウトボードを準備します。

M.2 エッジ コネクタを備えたブレークアウト ボードを見つけます。これは、プロジェクトに対応するように設計されています。必要に応じて、既存のブレークアウト ボー ド モジュールを開発ボードに固定しているネジを取り外します。

3.2. ブレークアウト ボードを挿入します。

ブレークアウト ボードを開発ボードのソケットに挿入し、M.2 エッジ コネクタを対応するコネクタの位置に合わせます。
ブレークアウトボード上のソケット。
ブレークアウト ボードを開発ボード上の ZIF (Zero Insertion Force) コネクタに 45 度の角度で挿入します。

M2_inserted

3.3. .安全なブレイクアウトボード

ブレークアウト ボードをゆっくりと押し下げて、ZIF コネクタに正しく装着されていることを確認します。正しく位置合わせしたら、ネジを締めてブレークアウ ト ボードを所定の位置に固定し、ZIF コネクタにしっかりと保持します。

Caravel

3.4. USB ケーブルを接続します。

開発ボード上のコネクタ J1 を見つけます。ホスト コンピュータまたはワークステーションに接続するために設計されています。
micro‑B USB ケーブルの一端を開発ボードのコネクタ J1 に接続します。

3.5. ホストデバイスに接続します

micro‑B USB ケーブルのもう一方の端をコンピューターの USB ポートに接続します。

開発ボードのコネクタ J1 からホスト コンピュータに USB ケーブルを接続すると、ボードに電源が供給されます。 USB 接続はボードの電源として機能 し、動作に必要な電圧を提供します。

ハードウェアのセットアップが完了し、テストの準備が整いました。

4. 電源投入手順

コンピューターからの USB ケーブルをボード上の microUSB ポート J1 に接続します。 USB ケーブルがしっかりと差し込まれており、接続が緩んでいないこと を確認してください。

USB ケーブルが接続されているときは、システムの動作を注意深く観察してください。 LED 電源 D4 インジケータが点灯していることを確認します。このインジケ ータは、USB 接続を通じてボードに電力が正常に供給されていることを示します。

LED Power D4 が期待どおりに点灯しない場合は、電源の問題または USB 接続に問題があることを示している可能性があります。このような場合は、USB ケ ーブルの整合性を確認し、電源がボードに十分な電力を供給していることを確認してください。さらに、問題の原因となっている可能性のある接続の緩みやコンポーネントの損 傷がないか確認してください。

5. ファームウェア

5.1. caravel_board リポジトリのクローンを作成します。

$ cd ~ $ git clone https://github.com/efabless/caravel_board

5.2. ファームウェアを構築する

事前に構築されたファームウェアはこちらにあります。~/caravel_board/firmware/chipignite/blink/blink.hex リポジトリをクローンした後に。

ソースコードからファームウェアをビルド/再ビルドするには:

  1. ツールチェーンのパスとビルドオプションを変更する場所は、 ~/caravel_board/firmware/chipignite/blink/Makefile 以下のように:
  • ツールチェーンのパス (見る 2.2)
-TOOLCHAIN_PATH=/usr/local/bin/ +TOOLCHAIN_PATH=~/RISCV/bin/
  • Build options
-ARCH=rv32i -#ARCH=rv32i_zicsr +#ARCH=rv32i +ARCH=rv32i_zicsr
  1. このステップはオプションです。
cd ~/caravel_board/firmware/chipignite/blink make clean hex

5.3. ファームウェアをフラッシュする

以下のコマンドを実行してファームウェアをフラッシュしてください。

cd ~/caravel_board/firmware/chipignite/blink make flash

6. 初期機能テスト

開発ボードの電源が入っており、ホスト デバイスに適切に接続されていることを確認したら、初期機能テストに進み、基本的な操作と機能 を検証できます。初期機能テストを実行する手順は次のとおりです。

6.1. LED インジケータ

LED D3 が一定の間隔で点滅し、適切に機能していることを確認します。

6.2. GPIO ピン

開発ボード上の GPIO ピンをテストして、その機能を確認します。
オシロスコープを使用して GPIO ピンを確認します。

  • オシロスコープのプローブをテスト対象の GPIO ピンに接続します。
  • オシロスコープで出力波形を観察します。
  • GPIO ピンが期待どおりに High と Low の論理状態の間で切り替わることを確認します。
  • 各 GPIO ピンに対してテストを繰り返し、すべてのピンが正しく機能していることを確認します。

7. 結論

初期機能テストの完了は、Caravel SoC 機能の検証が成功したことを意味します。 LED インジケータ D3 が期待どおりに点滅することを注意深く観察し、オシロ スコープを使用して GPIO ピンを徹底的にテストすることにより、Caravel SoC が適切に動作することを検証しました。

このテスト段階は、開発プロセスにおける重要なマイルストーンとして機能し、Caravel SoC モジュールの機能と整合性を確認します。テスト中に重大な問題や 異常が発生しなかったことにより、ハードウェア プラットフォームの信頼性が保証されます。

今後は、Rocket SoC の開発と検証を伴う開発の次の段階に焦点が移っていきます。 Caravel SoC が期待どおりに機能しているため、自信を持ってテストと統合 の次の段階に進む準備ができています。