FC2カウンター FPGAの部屋 2011年08月22日
FC2ブログ

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

Spartan-3A Starter KitでEDKを使ってカメラ表示4(カスタムIPの作成)

Spartan-3A Starter KitでEDKを使ってカメラ表示3(MPMCにポートを追加)”の続き。

今回は、カスタムIPをウィザードで作成する。カスタムIPは、カメラ・コントローラ、ディスプレイ・コントローラ、SCCBコントローラの3つだ。カメラ・コントローラ、ディスプレイ・コントローラは、PLBマスタとスレーブに対応する。SCCBコントローラは、PLBスレーブのみとなる。
最初にカメラ・コントローラ、ディスプレイ・コントローラをPLBマスタのデータバス幅32ビットで作成した。現在のPLBの動作周波数は62.5MHzで、自作のカメラ表示回路のDDR2 SDRAMコントローラ側の周波数125MHzの半分となっている。これだとバスバンド幅が自作に比べて半分になっているので、カメラ・コントローラ、ディスプレイ・コントローラのバッファ用のFIFOの容量を少なくとも2倍にする必要がある。
さて、カスタムIPを作成しよう。

XPSのHardwareメニューからCreate or Import Peripheral... を選択する。

Create and Import Peripheral Wizardが立ち上がる。
Spa3A_SKit_OV7670_23_110820.png

Peripheral Flowで、Select Flowから、Create templates for a new peripheralのラジオボタンを選択する。(デフォルト値)
Spa3A_SKit_OV7670_24_110820.png

Repository or Projectで、To an XPS projectのラジオボタンが選択されていて、Projectに現在のプロジェクトが入力されている。
Spa3A_SKit_OV7670_25_110820.png

Name and Versionで、Name:にcamera_controller と入力した。
Spa3A_SKit_OV7670_26_110820.png

Bus Interface でProcessor Local Bus(PLB v4.6) を選択する。
Spa3A_SKit_OV7670_27_110820.png

IPIF (IP Interface) Servicesが開く。Slave serves and configuration で、User logic software registerとInclude data pase timerにチェックが入っている。更にUser logic master にチェックを入れる。
Spa3A_SKit_OV7670_28_110820.png

Slave Interfaceが開く。スレーブはバースト対応にしないので、デフォルトのままとする。
Spa3A_SKit_OV7670_29_110820.png

User S/W Registerで自分のロジックモジュールで使用するレジスタ数を指定する。デフォルトの1とした。これはMicroBlazeからFIFOのOverflow, UnderflowエラーのReadやクリアなどに使用する。
Spa3A_SKit_OV7670_30_110820.png

Master Interfaceが開く。今回はPLBマスタとPLBスレーブを作るので、マスタの設定がある。Burst supportにチェックを入れる。Data widthはデフォルトの32ビットとする。(実はData widthを64ビットに設定したCAM_CONTROLLER_64も作成してある)
Spa3A_SKit_OV7670_31_110820.png

IP Interconnect (IPIC)で、IP Interconnect (IPIC) interface のどの信号と接続するかを決定する。デフォルト値とした。
Spa3A_SKit_OV7670_32_110820.png

(OPTIONAL) Peripheral Simulation Supportはデフォルト値とした。
Spa3A_SKit_OV7670_33_110820.png

(OPTIONAL) Peripheral Implementation Supportはデフォルト値とした。
Spa3A_SKit_OV7670_34_110820.png

SummaryでFinishボタンをクリックする。
Spa3A_SKit_OV7670_35_110820.png

これで、camera_controllerカスタムIPスケルトンの製作は終了した。次にdisplay_controller を作成した。同様にPLBマスタとPLBスレーブを持つ。
Spa3A_SKit_OV7670_36_110820.png

sccb_controllerは、PLBスレーブのみのカスタムIPとした。
Spa3A_SKit_OV7670_37_110820.png

3つのカスタムIPが生成された。(データバス幅64ビットの_64も2つあるので、合計5つ)

camemra_controller を右クリックメニューからAdd IPした。MPLBをplb_v46_0に接続し、SPLBをmb_plbに接続した。
Spa3A_SKit_OV7670_41_110820.png

display_controller も右クリックメニューからAdd IPした。MPLBをplb_v46_1に接続し、SPLBをmb_plbに接続した。
最後にsccb_controller も追加して、SPLBをmb_plbに接続した。
Spa3A_SKit_OV7670_42_110820.png

  1. 2011年08月22日 05:18 |
  2. EDK
  3. | トラックバック:0
  4. | コメント:0