私がRISC-Vアーキテクチャ プログラミングに出会ったのは、2019年のHackaday Superconferenceでした。このイベントでは、RISC-Vベースのシリコンを製造するSiFiveのエンジニアリング担当副社長であるMegan Wachs博士による基調講演が行われました。私はある程度の知識を持っていた FPGA (フィールド プログラマブル ゲート アレイ) とRISC-Vアーキテクチャ (RISC-Vは、縮小命令セット コンピューティング アーキテクチャ (「リスク ファイブ」と発音) に対するバークレーの5番目の試み) ですが、どちらについても実際の経験はありません。
実践的な学習と実験を促進するために、Hackadayはプログラム可能な RISC-V開発モジュール バッジとして。また、以下の基準に基づいて二次バッジも配布されました。 サーキットPython、シンプルなテキスト エディターだけで構成されます。バッジをカスタマイズしている間、メインの FPGAボード 私が認めたいよりも長い間放置されていました。今、私はついにこのRISC-Vデバイスを再検討し、「Hello World」やそのテーマのバリエーションを印刷できるかどうかを確認しました。
FPGAプログラミングツールチェーンとセットアップ
当然ながら、このFPGAベースのRISC-Vバッジをプログラミングするには、CircuitPythonの対応するものよりも少し多くのヤクシェービングが必要です。良いニュースは、プログラミングツールチェーンが存在することです。 リナックス、MacOSX、Windows、Dockerイメージとして入手可能で、 GitHubページの紹介。私は「 Windows 10分セットアップ「バリエーション」
すべてをセットアップするのに10分以上かかりましたが、説明書には、この世界が初めての人でも簡単にセットアップできる方法が説明されています。Bashシェルの経験があると確かに役立ちますが、私は専門家ではないので、簡単に操作できました。
RISC-Vプログラミングチュートリアル
これらの完全な手順に従う際に、この特定のプロセスに関するヒントをいくつか紹介します。RISC-V FPGAの「hello world」は多少異なるハードウェア上にある可能性がありますが、次のヒントのいくつかは一般的に適用できます。
- Git Bashに貼り付けることもできますが、 Ctrl+V 動作しません。右クリックして貼り付けを選択するだけです。必要に応じて、別のキーボード ショートカットも使用できます。 Shift+Ins。
- ステップEでは、次のように入力してホームディレクトリに.bashrcファイルを作成します。 ナノ ~/.bashrc。必要な行をコピー/貼り付けますが、2行目のバージョンがそこに記載されているものと異なる場合があることに注意してください。私のは最新のツールチェーンに基づいたv1.1.6.9でした バージョンはここにあります。 Ctrl+X nanoテキスト エディターを終了します。
- ステップFでは、Git Bashシェルが、app-helloworldをコピーしようとした後、cygwin DLLに関する「フィードバック」を返しました。 cp -r。検索でコピーを1つだけ見つけて、提案どおりに再起動した後でも、この問題が発生しました。代わりにWindowsファイル マネージャーを試してみましたが、問題なく操作できました。一般的に言えば、このプロセス中にWindows GUIとBashを併用することを恐れないでください。
- Makefile、.bashrcなどを開くには、 メモ帳++ 編集用。
- ランニング 作る /tmpフォルダーがないという警告が表示される場合がありますが、適切なファイルは生成されます。
- プログラムを変更して再コンパイルする必要がある場合は、.elf、.map、.symファイルを削除し、変更内容を入力して実行します。 作る これらのファイルを再生成するには、再度実行してください。
「app-helloworld」テンプレートからコンパイルされ、自分の情報で変更された .elfファイルを使用して、RISC-Vプロセッサで実行されるCプログラムを作成するための第一歩を踏み出しました。その後、このファイルをバッジにロードしました。 マイクロUSBケーブル — 次のように列挙されているので、簡単な作業です USBマスストレージ 電源を入れ直すと、この新しいファイルが起動画面に実行可能なオプションとして表示されました。
また、「app-mynameis」Cプログラムも修正してコンパイルしました。背景画像は写真編集プログラムで変更することもでき、非常に素敵なバッジとして機能するようになります。いつかライブイベントで使うかもしれません。
RISC-VとFPGAの実装
ほとんどの読者は、私がここで行ったのとまったく同じバッジ モジュールをプログラムすることはないでしょうが、参加者の1人か2人がこの投稿を読んでいる可能性は十分にあります。もしあなたがそうであり、まだ興味を持っていないのであれば、ぜひ試してみることをお勧めします。ツールチェーンをインストールすると、プログラムをコンパイルするのは実は非常に簡単になります。ここで学べる一般的な教訓は、カンファレンスのアナウンスで特定のツールをインストールするように求められた場合は、それを実行することです。
もっと具体的に言うと、偶然にもFPGA上で動作しているRISC-Vプロセッサ用に最初のプログラムをコンパイルできたのはうれしいことです 。つまり、オンボードの Lattice LFE5U-45F FPGAはエミュレートするのではなく、コンパイルされたCコードを実行する回路レベルで2つのRISC-V CPUになるように設定されます。CPUに加えて、初期プログラム ローダーがあり、LEDの点滅などの低レベルのタスクを処理するための PICプロセッサ もオンボードにあります。 明確に言えば、個別のPICチップは存在せず、FPGAは単にそのリソースの一部を使用してPICを追加するだけです。
このFPGAを操作する際の重要な違いは、私が作成した (または変更した) Cプログラムでは、実際にはLatticeボード内のゲートが入れ替わっていなかったことです。代わりに、ゲームボーイのような形をしたバッジ/開発モジュールのストレージに転送され、デバイスのFPGA RISC-Vプロセッサによって実行されるファイルを作成します。理論的には、Latticeボード上のRISC-Vプロセッサを別のものに変えたり、モジュラーISA設計を介して追加したりすることも可能ですが、それには少し手間がかかります。
FPGAプログラミングを学ぶ
全体的なコンセプトを理解するのは大変です。マトリックスでネオが「スプーンはない」と言われたように、FPGAの世界には「PICはない」し「RISC-Vプロセッサはない」。しかし、事実上、これら2つのプロセッサは存在し、サイファーの完璧にシミュレートされたステーキが「ジューシーでおいしい」のと似ています。FPGAとオープンソースのRISC-Vツールチェーンの世界が現実世界に足を踏み入れるのか、それとも現実世界から抜け出すのかはわかりませんが、このテクノロジーがますます普及するにつれて、さまざまな新しいイノベーションが可能になります。