インテル® FPGA IPの汎用シリアル・フラッシュ・インターフェイスのユーザーガイド

ID 683419
日付 4/10/2023
Public
ドキュメント目次

1.8. Generic Serial Flash Interface Intel® FPGA IPを使用したフラッシュアクセス

このセクションでは、Generic Serial Flash Interface (GSFI) Intel® FPGA IP レジスター (表 4. レジスターマップ) を使用してフラッシュ アクセスを実行するための情報を提供します。このサンプルデザインは、コントロール・ブロック・ベースのデバイスでアクティブシリアル(AS)コンフィグレーション・フラッシュへのフラッシュアクセスを実行します。開始するには、図8.汎用シリアル・フラッシュ・インターフェイスを使用したフラッシュアクセスの作成例インテルFPGA IPのようにPlatformDesignerシステムを構築する必要があります。
主要コンポーネント:
  • クロックとリセットブリッジ Intel® FPGA IP
  • 汎用シリアル・フラッシュ・インターフェース Intel® FPGA IP
  • JTAGからAvalonマスターブリッジへ Intel® FPGA IP

これらのコンポーネント、またはその他のコンポーネントについて詳しくは、Embedded Peripherals IP User Guideを参照してください。

図 8.  Generic Serial Flash Interface Intel® FPGA IPを使用してフラッシュアクセスを作成する例
注: ASコンフィギュレーション・フラッシュにアクセスするには、FPGAデバイスのMSELピンをASコンフィギュレーションモードに設定します。汎用QSPIフラッシュにアクセスするには、Disable Dedicated Active Serial InterfaceおよびEnable SPI Pins Interfaceパラメーターを有効にします。

SDMベースのデバイスの場合は、Mailbox Client Intel FPGA IPを使用してASコンフィグレーション・フラッシュにアクセスします。

インテル® MAX® 10デバイスの場合、 汎用QSPIフラッシュにアクセスするためにDisable Dedicated Active Serial InterfaceおよびEnable SPI Pins Interfaceパラメーターを有効にします。

次の図に示すアドレスマップに従って、GSFI Intel® FPGA IP レジスターマップはアドレス0x8000000から0x80000ffの範囲内にあり、フラッシュメモリー(1024 Mb)は0x0から0x7ffffffの範囲です。これらのアドレスは、正しいレジスターまたはフラッシュメモリースペースにアクセスするために重要です。
図 9. アドレスマップ

この例では、System Console を使用して GSFI Intel® FPGA IP とフラッシュ メモリにアクセスします。 System Console は、TCL スクリプトとともに JTAG to Avalon Master Bridge Intel® FPGA IPを利用します。

例 : .tclスクリプトのサンプル

#set GSFI CSR base address and register map according to Platform Designer 
#system
set base 0x8000000
set control_register [expr {$base + 0x0}]
set spi_clock_baud_rate_register [expr {$base + 0x4}]
set cs_delay_setting_register [expr {$base + 0x8}]
set read_capturing_register [expr {$base + 0xc}]
set operating_protocols_setting [expr {$base + 0x10}]
set read_instr [expr {$base + 0x14}]
set write_instr [expr {$base + 0x18}]
set flash_cmd_setting [expr {$base + 0x1c}]
set flash_cmd_ctrl [expr {$base + 0x20}]
set flash_cmd_addr_register [expr {$base + 0x24}]
set flash_cmd_write_data_0 [expr {$base + 0x28}]
set flash_cmd_write_data_1 [expr {$base + 0x2c}]
set flash_cmd_read_data_0 [expr {$base + 0x30}]
set flash_cmd_read_data_1 [expr {$base + 0x34}]

#claims JTAG to Avalon Master Bridge service
set mp [claim_service master [lindex [get_service_paths master] 0] top]  
 
#print the value of Control Register
set reg [master_read_32 $mp $control_register 0x1]
puts "Control Register : $reg"

#you may perform the flash operation here

#close JTAG to Avalon Master Bridge service
close_service master $mp

システムコンソールのサービスとコマンドの詳細については、 システムコンソールを使用したデザインの分析とデバッグを参照してください。

フラッシュ操作はいくつかのカテゴリーに分けられます。操作例、使用するレジスター、.tcl 各カテゴリーのサンプルスクリプトが提供されています。