プロセッサに追加した SPI フラッシュメモリへのアクセス

NanoBoard NB2 や 3000シリーズは、ブート(ボードに電源を入れた時、保存したデザインを User FPGA にダウンロードします。)のためにデザインとプログラムできる SPI フラッシュメモリ機能を利用できます。メモリ消去、プログラミングやダウンロード確認のための要求を満たすインターフェースを含むAltium Designer では、フラッシュメモリ内のデザインを容易に得られます。 

NanoBoard で SPI フラッシュメモリデバイスを使用することは、Host Controller FPGA (NanoTalk Controller) によるデバイスと '見る' そして '相互に作用する' ことができる SPI 通信での1つの方法です。しかし、それが開発/製造ボードでのプロトタイプ ハードウェアシステムの場合、SPI フラッシュデバイスを使用するための NanoTalk コントローラはありません。では、ユーザが設計したボード上に NanoTalk のようなシステムが無い場合、フラッシュデバイスへのアクセスをどのように行うことができるのでしょうか? 

Altium Designer では、デザイン内のプロセッサに追加したパラレルフラッシュメモリデバイス、または SPI フラッシュメモリデバイスに書き込む機能を既にサポートしています。後者に関して、これは Altium Designer の統一環境を通して合理的にブートストラッピング機能を含むハードウェアシステムを利用できます。  

この機能は、現在、TSK3000A と Nios II 32ビット プロセッサのみサポートします。

フラッシュメモリ コントロールのアクセス

デザインのプロセッサへ追加したフラッシュメモリデバイスと通信するために優先することとして、FPGA デザインが物理的なターゲットボードのデバイスへダウンロードされて、エンベデッドコードが現在、プロセッサ上で実行していることを確認してください。

フラッシュメモリデバイスと相互に作用するコマンドは、プロセッサのアイコンで右クリックして Write To Flash を選択して利用できます。このコマンドは、フラッシュメモリを消去、プログラムするためにコントロールできる Flash Memory Controller ダイアログへアクセスします。 


フラッシュメモリ コントローラ ダイアログでは、プロセッサに追加したフラッシュメモリへの詳細な GUI を利用できます。

フラッシュ情報

このダイアログは、書き込みしたいフラッシュメモリデバイスを指定するために使用します。その情報は、プロセッサのアドレス領域にあるペリフェラルの定義に従って自動で含まれます。もし、プロセッサに接続した複数の SPI フラッシュデバイス、または SPI フラッシュとパラレルフラッシュデバイスの両方がある場合、デバイスを選択するためのドロップダウンを使用します。

プログラマーは現在、M25Px0 シリアル フラッシュメモリデバイスのみサポートします。シリアル フラッシュメモリデバイスは、SPI コントローラ(ブートローダ)を含むエンベデッドソフトウェア プロジェクトのためのソフトウェアプラットフォームであるダイアログのみに表示されます。更に、OpenBus/回路図ドキュメントの SPI Bootloader コンポーネントは、Enable SPI Controller for processor application オプションを有効に設定する必要があります。

フラッシュメモリの消去

プログラミング ファイル、エンベデッドソフトウェア ファイル、*.bin ファイルをフラッシュメモリにロードする前に、初めにメモリをクリアにする必要があります。フラッシュメモリを消去するには、ダイアログの Erase Flash の項目にある Erase Entire Device ボタンを押します。

また、メモリのセクタ領域、アドレス領域を消去することもできます。これを実行するには、その領域の開始、終了点を指定して Erase Sector Range、または Erase Address Range をクリックするだけです。

フラッシュメモリ内の特定のアドレス領域を消去する時、lead/trail データを保存するオプションもあります。

それぞれの場合、消去はダイアログ下部のバーで進行状態を示し実行されます。

メモリが消去されたか確認するには、ダイアログの Utility の項目にある Blank Check ボタンを押します。また、セクタ領域も確認できます。

フラッシュメモリへのダウンロード

事前に構築したデザインのボードでターゲットFPGAをブートストラッピングする時、SPI フラッシュメモリは FPGA プログラミングファイルを適応するために使用します。外部メモリに保存されたコードを利用しないデザインについては、このファイルはフラッシュメモリへプログラムする必要があります。電源を入れた時、FPGA プログラミングファイルはターゲット FPGA へ自動でダウンロードされます。エンベデッドコードはデザインと共にダウンロードされ、FPGA のブロック RAM へ保存されます。

また、外部メモリに保存されたアプリケーションコードを使用するデザインについては、エンベデッドアプリケーションコード (Hex ファイル --- *.hex) はフラッシュメモリにプログラムする必要があります。この場合に、ビットストリームファイルや Hex ファイルは、.bin ファイルに一緒に含まれます。電源を入れた時、FPGA プログラミングファイルは自動でターゲット FPGA にダウンロードされます。エンベデッドアプリケーションコードに起こることは、デザインのプロセッサによって使用されたタイプやメモリの場所に依存します。:

  • 内部メモリの使用方法 --- このコードは、ビットストリームファイルの一部としてターゲット FPGA (内部ブロック RAM にある)へダウンロードされます。
  • 外部メモリの使用方法 --- このコードは、ターゲット FPGA で利用できる独立した SRAM へロードする必要があります。

後者の場合、これはデザインの Flash SPI Bootloader コンポーネント (WB_BOOTLOADER_V2) を使用して実行されます。ブートローダ コンポーネントは、フラッシュメモリと SRAM 間のインターフェースになります。そのデバイスはブート操作のために有効となり (by taking its ENABLE line High)、デザインがターゲット FPGA にプログラムされる(または、既にプログラムされている場合、外部のリセットが働く)とすぐに、エンベデッドアプリケーションコード --- フラッシュメモリに保存された Hex ファイル --- は SRAM にコピーされます。

デザインに使用したプロセッサは、最小、または4kB、または内部メモリである必要があります。

一度、フラッシュメモリが消去されると、FPGA プログラミングファイルや/またはエンベデッドソフトウェア ファイル(または .bin ファイル) はダウンロードできます。ダウンロードのコントロールは、ダイアログの Write Flash の項目で利用できます。 

ダウンロードするには2つの方法があります:

  • Download current project – 現在のエンベデッドプロジェクトのコードファイルをダウンロードします。ビットストリームはフラッシュデバイスのベースアドレスから始まりプログラムされます。
  • Download file – 例えば、エンベデッドコードファイル (Hex ファイル --- *.hex) のような特定のファイルを指定するためにブラウズします。どれから書き込み始めるかターゲットメモリアドレスを指定できます。

書き込みの確認、または lead/trail データを保存するようなオプションがあります。デフォルトでは、フラッシュデバイスはリセットされます。一度、書き込みオプションが定義されたら、書き込むための Download to Flash オプションを押します。進行状態はダイアログ下部に表示されます。書き込みを停止するには Abort ボタンをクリックします。

ダウンロードが完了したことを手動で確認するには、Verify against Flash ボタンをクリックします。

You are reporting an issue with the following selected text and/or image within the active document: