販売終了のお知らせ

SUZAKU シリーズ販売終了のお知らせ > 詳細情報


Howto : SZ410 新SPIコア(高速タイプ)への差し替え方法

該当製品:
SZ410-U00

はじめに

SZ410のSPIフラッシュメモリへのアクセス速度を改善した新しいSPIのIPコア(XPS-SPI-SZ410)を作成しました。 デフォルトLinuxイメージのブート時間が、以前と比較して約10秒短縮されます。
FPGAプロジェクト XPS-SPI + BBootv2.5使用 XPS-SPI-SZ410 + BBootv2.6使用
Linux起動時間 24秒 14秒

既に適用済みのプロジェクトは以下よりダウンロードできます。
ここではSUZAKUのデフォルトプロジェクトsz410-20080327を元に新SPIコアへの差し替え方法を説明します。 差し替え手順は以下となります。
  1. ファイルのダウンロード&解凍
  2. xps_spi_sz410_v1_00_aのコピー
  3. xps_proj.mhsの編集
  4. xps_proj.mssの編集
  5. xps_proj.ucfの編集
  6. BBootの上書きコピー

1. ファイルのダウンロード&解凍

XPS-SPI-SZ410およびBBootv2.6を入手するため、以下のファイルをダウンロードして展開してください。

2. xps_spi_sz410_v1_00_aのコピー

sz410-20080502\pcores\xps_spi_sz410_v1_00_aをsz410-20080327\pcores以下にコピーしてください。

3. xps_proj.mhsの編集

sz410-20080327\xps_proj.mhsをテキストエディタ等で開き、以下のように編集してください。

 PORT SYS_RST_IN = SYS_RST_IN, DIR = I, RST_POLARITY = 1, SIGIS = RST
 PORT SYS_CLK_IN = SYS_CLK_IN, DIR = I, SIGIS = CLK
 PORT CNSL_RX = CNSL_RX, DIR = I
 PORT CNSL_TX = CNSL_TX, DIR = O
 PORT CNSL_CTSn = CNSL_CTSn, DIR = I
 PORT CNSL_RTSn = CNSL_CTSn, DIR = O
 PORT FPGA_RESET_EN = FPGA_RESET_EN_w, DIR = O
 PORT BOOT_JP = BOOT_JP, DIR = I
 PORT nLED = nLED, DIR = O, VEC = [0:0]
 PORT SPI_SCK = SPI_SCK_O & SPI_SCK_O, DIR = O, VEC = [0:1]  # 削除
 PORT SPI_MISO = SPI_MISO_I_Ext, DIR = I, VEC = [0:1]
 PORT SPI_MOSI = SPI_MOSI_O & SPI_MOSI_O, DIR = O, VEC = [0:1]
 PORT SPI_SS = SPI_SS_O, DIR = O, VEC = [0:1]
 PORT SPI_SCK = SPI_SCK, DIR = O, VEC = [0:1]  # 追加
 PORT SPI_MISO = SPI_MISO, DIR = I, VEC = [0:1]
 PORT SPI_MOSI = SPI_MOSI, DIR = O, VEC = [0:1]
 PORT SPI_SS = SPI_SS, DIR = O, VEC = [0:1]

   ・・・

BEGIN xps_spi  # 削除
 PARAMETER INSTANCE = spi_cntlr
 PARAMETER HW_VER = 1.00.a
 PARAMETER C_BASEADDR = 0xF0FF0000
 PARAMETER C_HIGHADDR = 0xF0FF01FF
 PARAMETER C_NUM_SS_BITS = 2
 PARAMETER C_SCK_RATIO = 16
 BUS_INTERFACE SPLB = plb_peripheral
 PORT MISO_I = SPI_MISO_I
 PORT MOSI_O = SPI_MOSI_O
 PORT SCK_O = SPI_SCK_O
 PORT SS_O = SPI_SS_O
END

BEGIN xps_spi_sz410  # 追加
 PARAMETER INSTANCE = spi_cntlr
 PARAMETER HW_VER = 1.00.a
 PARAMETER C_SPLB_SMALLEST_MASTER = 64
 PARAMETER C_MEM0_BASEADDR = 0xF0FF0000
 PARAMETER C_MEM0_HIGHADDR = 0xF0FF01FF
 BUS_INTERFACE SPLB = plb_peripheral
 PORT SPI_MISO = SPI_MISO
 PORT SPI_MOSI = SPI_MOSI
 PORT SPI_SCK = SPI_SCK
 PORT SPI_SS = SPI_SS
END

   ・・・

 BEGIN util_vector_logic  # 削除
  PARAMETER INSTANCE = or_miso_ss
  PARAMETER HW_VER = 1.00.a
  PARAMETER C_SIZE = 2
  PARAMETER C_OPERATION = or
  PORT Op1 = SPI_MISO_I_Ext
  PORT Op2 = SPI_SS_O
  PORT Res = or_miso_Res
 END

 BEGIN util_reduced_logic  # 削除
  PARAMETER INSTANCE = reduced_miso
  PARAMETER HW_VER = 1.00.a
  PARAMETER C_SIZE = 2
  PARAMETER C_OPERATION = and
  PORT Op1 = or_miso_Res
  PORT Res = SPI_MISO_I
 END

4. xps_proj.mssの編集

sz410-20080327\xps_proj.mssをテキストエディタ等で開き、以下のように編集してください。

BEGIN DRIVER
 PARAMETER DRIVER_NAME = spi  # 削除
 PARAMETER DRIVER_VER = 1.11.a
 PARAMETER DRIVER_NAME = generic  # 追加
 PARAMETER DRIVER_VER = 1.00.a
 PARAMETER HW_INSTANCE = spi_cntlr
END

5. xps_proj.ucfの編集

sz410-20080327\data\xps_proj.ucfをテキストエディタ等で開き、以下のように編集してください。

# SPI FLASH

Net SPI_SCK<1>       LOC = V2 | IOSTANDARD = LVCMOS33;  # 変更
Net SPI_SS<1>        LOC = W2 | IOSTANDARD = LVCMOS33;
Net SPI_MISO<1>      LOC = W3 | IOSTANDARD = LVCMOS33;
Net SPI_MOSI<1>      LOC = V1 | IOSTANDARD = LVCMOS33;

# SPI EEPROM

Net SPI_SCK<0>       LOC = R3 | IOSTANDARD = LVCMOS33;  # 変更
Net SPI_SS<0>        LOC = R4 | IOSTANDARD = LVCMOS33;
Net SPI_MISO<0>      LOC = W6 | IOSTANDARD = LVCMOS33;
Net SPI_MOSI<0>      LOC = R2 | IOSTANDARD = LVCMOS33;

6. BBootの上書きコピー

sz410-20080502\code以下のファイルをsz410-20080327\code以下のファイルに上書きコピーして下さい。 (memmap.h, spi.c, srec.cを編集されている方は差分摘出し編集ください)

カテゴリ: