GOWIN FPGA 開発ボード RISCV プログラミング

Copyright©2022GuangdongGowinSemiconductorCorporation。 全著作権所有。
Guangdong Gowin Semiconductor Corporation の商標であり、中国、米国特許商標庁、およびその他の国で登録されています。 商標またはサービスマークとして識別されるその他すべての単語およびロゴは、それぞれの所有者の所有物です。 本文書のいかなる部分も、GOWINSEMI の事前の書面による同意なしに、電子的、機械的、写真複写、録音、またはその他のいかなる形式または方法によっても複製または送信することはできません。
免責事項
GOWINSEMI は、GOWINSEMI 利用規約に概説されている場合を除き、マテリアルまたは知的財産の使用に起因してハードウェア、ソフトウェア、データ、または財産に生じた損害について、一切の責任を負わず、保証も提供しません (明示または黙示を問わず)。の販売。 このドキュメントのすべての情報は、暫定的なものとして扱われるべきです。 GOWINSEMI は、予告なしにいつでもこの文書を変更することがあります。 このドキュメントに依存している人は、現在のドキュメントと正誤表について GOWINSEMI に連絡する必要があります。
改訂履歴
| 日付 | バージョン | 説明 |
| 04年29月2019日 | 1.0E | 初回バージョンを公開しました。 |
|
11年11月2022日 |
1.1E |
|
導入
AE250の紹介
AE250 は 32 ビット RISC-V MCU システムです。 その構造を図 1-1 に示します。

図 1-1 AE250 構造図
Gowin FPGA 開発ボードに基づく RISC-V AE250 MCU 開発およびデバッグ システムを図 1-2 に示します。

図 1-2 開発・デバッグシステム構成図
開発ボード上の FPGA チップは、PC で Gowin Programmer を使用して AE250 MCU として構成されます。デバッグ ケーブルを接続すると、組み込みプログラムの開発と AndeSight RDS v311 ソフトウェアでのデバッグを実行できます。
準備
Gowin FPGA および AE250 を開発およびデバッグに使用する前に、次のツールを準備する必要があります。
- Gowin GW2A シリーズの FPGA 開発ボード。
- FPGA チップを構成およびダウンロードするための Gowin ソフトウェア インストール パッケージ。
- 組み込みプログラムの開発およびデバッグ用の AndeSight RDS v311 インストール パッケージ。
- Debug Cable は組み込みプログラムのダウンロードとデバッグに使用され、デフォルトは AICE-MINI+ です。 ユーザーは自分で購入する必要があります。
注記!
- UART 経由で情報を出力する必要がある場合は、UART-USB ケーブルが必要です。
- 使用するその他の周辺機器が必要です。
開発とデバッグの手順
GW250A-2C 開発ボードに基づいて RISC-V AE55 MCU を開発およびデバッグするための基本的な手順は次のとおりです。
- ソフトウェアのインストール: Gowin ソフトウェアは、AE250 RTL デザインの構成と生成、およびビットストリームの生成に使用されます。 file デザインの; AndeSight RDS v311 ソフトウェアは、組み込みプログラムの開発とデバッグに使用されます。 デバッグ用の他のソフトウェアとドライバーも必要です。
- 開発ボードの電源とダウンロードケーブルを設定します。 ビットストリーム file の AE250_chip が Gowin Programmer を使用して開発ボード上の FPGA チップにダウンロードされ、AE250 が開発ボード上で実行されます。
- RDS ソフトウェアを開いて新しい組み込みプロジェクトを作成するか、既存のプロジェクトを開いてエンコード、コンパイル、その他の操作を行います。 AE250デバッグ用デバッグケーブルを接続し、プロジェクトのコンパイル結果をAE250内の命令メモリ(ILM)にダウンロードし、チップ上でデバッグを開始します。
- デバッグ中は、UART to USB ケーブルを使用して AE250 の UART インターフェイスを PC に接続し、RDS の内蔵シリアル ターミナルを使用して入出力操作を実行できます。 GPIO を使用して、LED インジケータ、キー、または入出力操作用の外部ピンに接続できます。 I2C、SPI、イーサネットなどのペリフェラルも選択して使用できます。
- AE250 は SPI 経由でフラッシュに接続し、Gowin Programmer を使用して組み込みプログラムのコンパイル結果をフラッシュにダウンロードできます。 チップの電源がオンになると、AE250 は SPI フラッシュに組み込まれたプログラムを自動的に読み取り、起動します。 FPGA ビットストリームを保存するフラッシュを再利用できます。 FPGA ビットストリームを保存できるものもあれば、組み込みプログラムのコンパイル結果を保存できるものもあります。 これは実用的で経済的な方法です。
第 2 章デバッグ ケーブル接続手順、第 XNUMX 章を参照できます。
3 RDS の手順、および詳細な手順については第 4 章リファレンス デザインを使用してください。
デバッグ ケーブル接続手順
RDS + AE250 は、デフォルトで AICE-MINI+ デバッグ ケーブルを使用します。 外観は図 2-1 の左側に示され、ピンは図 2-1 の右側に示されています。 12ピンインターフェースです。 図ではピン 1 が空白になっていることに注意してください。 ケーブルが正しく接続され、RDS が開くと、図の黄色のボックスでマークされた赤い LED ライトが消えます。
図 2-1 AICE-MINI+ デバッグ ケーブルとそのピン

AICE-MINI+ デバッグ ケーブルのピン定義は、表 2-1 に示すとおりです。 ピン 1 は未接続 (NC) として定義されていることに注意してください。 VREF は 3.3V の電源ピンを接続する必要があり、GND はピン 3 またはピン 5 を接続するだけで済みます。
表 2-1 AICE-MINI+ デバッグ ケーブルのピン定義
| ピン番号 | AICE-MINI+ デバッグ ケーブル ピン |
| 1 | NC |
| 2 | TSRST_N |
| 3 | グランド |
| 4 | TTMS |
| 5 | グランド |
| 6 | TCK |
| 7 | VREF |
| 8 | NC |
| 9 | NC |
| 10 | TTRST_N |
| 11 | TTDO |
| 12 | TTDI |
RDS の使用説明書
RDS のインストール
インストール パッケージを解凍し、Windows/Disk1 と入力します。 setup.exe をダブルクリックしてインストールします。 インストール時に特別な設定は必要ありません。 インストール中に、ドライバをインストールするかどうかを尋ねるダイアログ ボックスがポップアップ表示されます。[はい] を選択してください。 インストール手順については、を参照してください。
インストール パッケージに含まれている AndeSight_RDS_v3.2_Installation_Guide_UM207_V1.0.pdf。
- インストール パスとワークスペース パスを設定するときは、漢字やスペースを含めないでください。実行時エラーが発生します。
- RDS の現在のバージョンは、デフォルトで AICE-MINI+ ケーブルをサポートしています。
- GOWIN Programmer は、RDS のインストール後に開発ボードに接続できない場合があります。これは、Gowin Programmer ドライバーを再インストールすることで修正できます。
- シリアルナンバーと証明書について fileGowin Semiconductor Corp にお問い合わせください。
新しいプロジェクトを作成する
クリック File > New > Project > Andes C project > Next on RDS インターフェイスで、図 3-1 に示すように、New C Project の構成インターフェイスに入ります。
図 3-1 新しいプロジェクトの作成

新しい C プロジェクトの場合、次のパラメーターを構成する必要があります。
- プロジェクト名
- 場所: デフォルトの場所は現在のワークスペースです。
- Connection Configuration は ICE に設定されており、ICE デバッグ ケーブルを使用して開発ボードが接続されていることを示します。 エミュレータをテスト プラットフォームとして使用する場合は、SID を選択してください。
- チッププロ用file、Gowin FPGAに従って最適化されたADP-AE250-N25-GOWINを選択します。
- プロジェクト タイプには、空のプロジェクトと Hello World ANSI C プロジェクトが含まれます。
- ツールチェーンの場合、nds32le-elf-mculib-v5m がデフォルトです。
新しいプロジェクトを作成した後、プロジェクト エクスプローラーでプロジェクト名を右クリックし、ドロップダウン メニューから [プロジェクトのビルド] を選択するか、ツールバーの [ ] をクリックして、プロジェクトをコンパイルおよびリンクします。 ドロップダウン メニューから [Clean Project] を選択して、プロジェクトをクリーンにします。
プロジェクトのインポートとエクスポート
図 3-2 に示すように、Project Explorer のスペースを右クリックして、[インポート] または [エクスポート] を選択します。

図 3-2 プロジェクトのインポート/エクスポート
「インポート > 一般 > 既存のプロジェクトをワークスペースに」をクリックしてプロジェクトをインポートします。インターフェイスは図 3-3 のようになります。 「ルートディレクトリを選択」を選択した場合、プロジェクトをフォルダーにインポートします。 「アーカイブファイルを選択」を選択すると、プロジェクトをzipでインポートします。

図 3-3 プロジェクトのインポート
「エクスポート… > アーカイブ」を選択します File」をクリックして、図 3-4 に示すように、プロジェクトのエクスポート インターフェイスを開きます。 エクスポートするプロジェクト、圧縮形式、保存パスなどを選択したら、エクスポートを完了できます。
図 3-4 プロジェクトのエクスポート
プログラムをフラッシュにダウンロード
AE250 は Flash からの起動をサポートし、SPI インターフェイスを介して Flash から組み込みプログラムを読み取り、ILM に格納してから、組み込みプログラムを実行します。 推奨される方法は、FPGA ビットストリームを保存する SPI フラッシュを再利用することです。 フラッシュの前半を使用して FPGA ビットストリームを保存し、残りをバイナリを保存します。 file組み込みプログラムの s。
- Gowin ソフトウェアで IP コア ジェネレーターを開き、AE250 RTL パラメーターを呼び出します。 図 0-80400000 に示すように、SMU をダブルクリックして SMU インターフェイスを開き、「System Reset Vector Default」を 3x5 に設定します。 ビットストリームの保存アドレスとして合計 0M バイトの SPI フラッシュ 0~400000x4 のスペースを設定します。 0x400000から始まるバイナリの保存アドレスとして使用されます file組み込みプログラムの s。
図 3-5 システム リセット ベクターのデフォルト

- 図 1 1 に示すように、SPI1 をダブルクリックして SPI1 インターフェイスを開き、[SPI0 Support] をチェックして、[SPI80400000 Memory Map Space Base Address] を 3x6 に設定します。
図 3-6 SPI1 の設定

- RTL デザインの物理的制約では、SPI1 インターフェイスは SPI フラッシュに接続する必要があり、SPI1 インターフェイスは次の表に従って物理的に制約する必要があります。 FPGA チップが異なれば、MSPI インターフェイスの場所も異なり、制約は特定の状況に固有のものである必要があります。
表 3-1 SPI1 インターフェイスの物理的制約AE250 SPI1 インターフェイス FPGA MSPI インターフェイス CSN MCSN クロック MCLK 味噌 MSO MOSI MSI - MSPI インターフェイスを通常の IO として再利用します。 Gowin ソフトウェアの [プロセス] ウィンドウで、[配置と配線] を右クリックし、ポップアップ メニューで [構成] を選択します。 「Dual Purpose Pin」タブを選択し、「Use MSPI as regular IO」にチェックを入れ、「OK」をクリックして配置配線を終了します。
図 3-7 MSPI インターフェイスを通常の IO に設定

- 組み込みプログラムのパラメータ設定を変更します。 まず、リンカー スクリプトでブートローダーのパラメーターを変更します。 AE250組込みプログラムのリンカスクリプトはSAGで自動生成されるので file、SAG で変更する必要があります file. 図 250-3 に示すように、ae8.sag を開き、BOOTLOADER を見つけて、RTL デザインの System Reset Vector Default の値に変更します。 次に、config.h を変更します。 src/bsp/config/config.h を開き、マクロ定義を見つけます
「BUILD_MODE」を「BUILD_BURN」に変更します。
図 3-8 ae250.sag ブートローダ パラメータ設定

注記!
-
- このパラメーターは、RTL パラメーターの System Reset Vector Default の値と一致している必要があります。
- コンパイル設定を変更します。 埋め込みプロジェクトの名前を右クリックし、[ビルド設定] を選択します。 「オブジェクトコピー > 一般」タブを選択し、「無効」のチェックを外します。 (出力を自動生成しない file.)
組み込みプログラムを再コンパイルしてバイナリを生成する file組み込みプロジェクトの s をダウンロードし、 files Gowin Programmer の外部フラッシュ C ビン モードを使用して、SPI フラッシュ 0x400000 アドレスに変換します。
変更した RTL デザインを再度合成して配置配線し、Gowin Programmer の外部フラッシュ モードを使用して SPI フラッシュ アドレス 0x000000 にダウンロードします。
オンチップデバッグ
コンパイル後、組み込みプロジェクトのコンパイル結果を開発ボードにダウンロードして、オンチップ デバッグを行うことができます。
config.h を変更します。 src/bsp/config/config.h を開き、マクロ定義 BUILD_MODE を見つけます。 BUILD_LOAD に変更し、組み込みプログラムを再コンパイルします。
Project Explorer でプロジェクト名を右クリックし、ドロップダウン メニューから [Debug as > MCU Program] を選択します。 初めて、図 3-9 に示すように、「Debug Configuration」を設定するためのダイアログ ボックスがポップアップします。

図 3-9 デバッグ構成
「Startup」タブで、「Reset and Hold」オプションをチェックして、最初の命令を実行する前にプログラムを停止します。 オンチップ デバッグの前に組み込みプロジェクトのコンパイル結果を ILM にダウンロードするには、このオプションの下のパラメーター ボックスに load を入力します。
「ランタイム オプション」で、「ブレークポイントを設定する」にチェックを入れます。 入力ボックスに main などのラベルを入力します。 メイン関数の先頭にブレークポイントを設定できます。 「Resume」にチェックを入れると、オンチップデバッグに入った直後から連続動作を開始します。
オンチップデバッグに入ると、自動的にデバッグに入ります view 図 3-10 に示すように、領域が表示されます。 この領域は、オンチップ・デバッグの操作領域です。 デバッグ用のいくつかのショートカット ボタンが赤いボックスに表示されます。 左から順に、DEBUG の再起動、実行の継続、一時停止、終了、切断、XNUMX つのプロセスへのリンク、ステップ イン、ステップ オーバー、ステップ リターン、および命令ステップ モードを意味します。 このモードでは、risc – v アセンブリ命令を実行するたびに、それ以外の場合は C ステートメントを実行するたびに。
注記!
灰色のアイコンは、現時点では利用できないことを意味します。
コード テキストの行番号の左をダブルクリックしてブレークポイントをすばやく設定したり、ブレークポイントをキャンセルしたり、コード テキストを右クリックしてポップアップ メニューから [行まで実行] を選択します。
図 3-10 デバッグ ボタンの紹介
図 3-11 は、ILM でリアルタイムに実行されるアセンブリ命令の内容を表示するアセンブリ ステートメント ウィンドウです。

図 3-11 アセンブリ命令コード ウィンドウ
RDS内蔵シリアル端子の使い方
図 3-12 は、RDS インターフェースに組み込まれた UART ターミナルを示しています。 使用する必要がある場合は、「ウィンドウ > 表示」をクリックします。 View > ターミナル」をクリックして「ターミナル」ウィンドウを開き、「ターミナルを開く」をクリックして新しいシリアルターミナルを作成します。 ポート番号を設定した後 (これは viewハードウェア マネージャーで編集)、ボー レート、およびその他のパラメーターを指定したら、[OK] をクリックして使用を開始します。

図 3-12 RDS 内蔵シリアル ターミナル
詳細は資料をご覧ください
AndeSight_RDS_v3.1_User_Manual_UM170_V1.0.pdf (インストール ディレクトリのドキュメント パスにあります)。
リファレンスデザイン
プロジェクトコード
鍵 fileAE250 組み込みプロジェクト テンプレートの s は次のとおりです。
- src/bsp/ae250/ae250.h: これ file システム クロックの定義、ペリフェラル レジスタの定義、ペリフェラル レジスタのアドレス マッピングの定義、および割り込みソース番号の定義が含まれます。 クロック定義は、AE250 パラメータ設定と一致している必要があります。
- src/bsp/ae250/ae250.c: reset_handler 関数は、組み込みプログラムを開始するためのエントリです。 エントリでは、メイン関数が実行される前に UART の初期化が実行されます。 AE250 のパラメータ設定に従って、必要な UART ポートが選択され、必要なボーレートが設定されます。
- src/bsp/ae250/interrupt.c: この file AE250の割り込みハンドラ関数の定義です
- src/bsp/config/config.h: この file コンパイル方法を制御するマクロ定義が含まれています。 #define BUILD_MODE は、BUILD_LOAD または BUILD_BURN として定義できます。 BUILD_LOAD は、プログラムが ILM に直接ロードされることを意味し、通常はデバッグ時に使用されます。 BUILD_BURN は、プログラムが SPI フラッシュにダウンロードされ、プログラムが電源投入後に SPI フラッシュから ILM に読み込まれ、次に実行されることを意味します。これはリリース バージョン プログラムに適用されます。
- Start.S: スターター file アセンブリ言語で書かれています。
- src/bsp/loader.c: ブートローダー file、SPI フラッシュから開始するために使用されます。
- ae250.sag: Sag は、Scattering and Gathering 形式のスクリプトです。 リンカー スクリプトを生成するために使用されます。 ae250.sag のメモリ マップ パラメータは、AE250 のメモリ マップ パラメータと一致する必要があることに注意してください。
- src/bsp/driver: このディレクトリには 250 つのフォルダーが含まれています。ae250 は AEXNUMX ドライバー コード、include はドライバー関数の呼び出しインターフェイスです。
- src/bsp/lib: XNUMX つ含まれています file秒。 printf.c では、C 標準ライブラリのサブ関数の形式が再定義され、UART 経由で printf 情報が出力されます。 read.c には、UART を介して入力情報を読み取る簡単な関数があります。
リファレンスデザイン
インストール後、いくつかの基本的なリファレンス デザインは、インストール ディレクトリの demo フォルダー、または次の URL のリファレンス デザインの zip ファイルにあります。 webサイト; リファレンス デザインは、インポートによって試用、デバッグ、および再開発のために RDS にロードできます。 リファレンス デザインは次のとおりです。
- ae250_demo: AE250 の UART 入出力と GPIO 出力を示します。
- ae250_plic: 割り込みに対する割り込みコントローラーの応答を示し、マシン タイマーとピット タイマーのデモを提供します。
- ae250_freertos: AE250 ポートが組み込まれていることを示します
リアルタイム オペレーティング システム FreeRTOS マルチスレッド実行プログラム。 - ae250_ucosiii: AE250 ポートにリアルタイム オペレーティング システム uC/OS-III マルチスレッド実行プログラムが組み込まれていることを示します。
ドキュメント / リソース
![]() |
GOWIN FPGA 開発ボード RISCV プログラミング [pdf] ユーザーガイド FPGA 開発ボード RISCV プログラミング、ボード RISCV プログラミング、FPGA 開発 RISCV プログラミング、RISCV プログラミング、ボード RISCV |





