FC2カウンター FPGAの部屋 カメラ・インターフェース用AXI4-Stream IPの作製6(AXI4-Stream IPの設定)
fc2ブログ

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

FPGAの部屋

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

カメラ・インターフェース用AXI4-Stream IPの作製6(AXI4-Stream IPの設定)

前回、
カメラ・インターフェース用AXI4-Stream IPの作製4(HDLソース1)
カメラ・インターフェース用AXI4-Stream IPの作製5(HDLソース2)
で、カメラ・インターフェースAXI4-Stream IPのHDLソースを示した。
今回は、”カメラ・インターフェース用AXI4-Stream IPの作製1(仕様の検討)”に書かれているように、ar37425.zip を解凍して、ar37425/axi_stream フォルダをテンプレートとして、カメラ・インターフェース用のAXI4-Stream IP用に変更していく様子を示す。

・mt9d111_inf_axi_stream_v2_1_0.pao
まずは、 system\pcores\mt9d111_inf_axi_stream_v1_00_a\dataフォルダの mt9d111_inf_axi_stream_v2_1_0.pao ファイルから始める。ここには、IPに所属するHDファイルが書いてある。下のように変更した。

## AXI Stream Core
lib mt9d111_inf_axi_stream_v1_00_a mt9d111_inf_axi_stream.vhd vhdl
lib mt9d111_inf_axi_stream_v1_00_a pixel_fifo.v verilog
lib mt9d111_inf_axi_stream_v1_00_a mt9d111_cam_conts.v verilog


・mt9d111_inf_axi_stream_v2_1_0.mpd
次に、mt9d111_inf_axi_stream_v2_1_0.mpd ファイルを変更する。

1.”OPTION HDL = VHDL”を”OPTION HDL = MIXED”に変更(Verilog HDLも使用している)。

2.”OPTION STYLE = HDL”を”OPTION STYLE = MIX”に変更(pixel_fifo用にNGCファイルを使用する)。

3.”OPTION DESC”と”OPTION LONG_DESC”を下に示すように変更した。(修正)

OPTION DESC = mt9d111_inf_axi_stream
OPTION LONG_DESC = MT9D111 Interface of AXI4-Stream


4.”IO_INTERFACE IO_IF”を設定した。下の IO port for MT9D111 でグループ化する。

IO_INTERFACE IO_IF = mt9d111_inf


5.テンプレートにはマスタ用とスレーブ用の記述があるので、マスタ用だけの記述を残して、スレーブ用の記述は削除した。

6.C_M_AXIS_DATA_WIDTH の RANGE を”RANGE = (8,16,24,32,40,48,56,64,128,256)”に変更した。

6.5.C_M_AXIS_PROTOCOLパラメータを設定した。(2013/07/06:追記) ”AXI VDMAのシミュレーション1”を参照。

PARAMETER C_M_AXIS_PROTOCOL = XIL_AXI_STREAM_VID_DATA, DT = STRING, BUS = M_AXIS, ASSIGNMENT = CONSTANT, TYPE = NON_HDL


7.Ports を変更または追加した。変更、追加したポートを下に示す。

## Ports
PORT s2mm_aclk = "", DIR = I, SIGIS = CLK
PORT s2mm_prmry_reset = "", DIR = I, SIGIS = RST
PORT s2mm_fsync = "", DIR = O

# IO port for MT9D111
PORT init_done = "", DIR = I, IO_IF = mt9d111_inf, IO_IS = init_done
PORT pclk_from_pll = "", DIR = I, SIGIS = CLK, IO_IF = mt9d111_inf, IO_IS = pclk_from_pll
PORT pclk = "", DIR = I, SIGIS = CLK, IO_IF = mt9d111_inf, IO_IS = pclk
PORT xck = "", DIR =O, SIGIS = CLK, IO_IF = mt9d111_inf, IO_IS = xck
PORT href = "", DIR = I, IO_IF = mt9d111_inf, IO_IS = href
PORT vsync = "", DIR = I, IO_IF = mt9d111_inf, IO_IS = vsync
PORT cam_data = "", DIR = I, VEC = [7:0], IO_IF = mt9d111_inf, IO_IS = cam_data
PORT standby = "", DIR = O, IO_IF = mt9d111_inf, IO_IS = standby
PORT pfifo_overflow = "", DIR = O, IO_IF = mt9d111_inf, IO_IS = pfifo_overflow
PORT pfifo_underflow = "", DIR = O, IO_IF = mt9d111_inf, IO_IS = pfifo_underflow


・mt9d111_inf_axi_stream_v2_1_0.mui
次に、mt9d111_inf_axi_stream_v2_1_0.mui を編集する。このファイルは、Addした時のダイアログの表示を構築する。

1.C_M_AXIS_DATA_WIDTH の項目を削除した。

これで、mt9d111_inf_axi_stream_v2_1_0.mui の編集は終了した。

・mt9d111_inf_axi_stream_v2_1_0.bbd
system\pcores\mt9d111_inf_axi_stream_v1_00_a\dataフォルダに、mt9d111_inf_axi_stream_v2_1_0.bbdファイルを追加する。pixel_fifo のNGCファイルを追加するため、mt9d111_inf_axi_stream_v2_1_0.mpd ファイルを”OPTION STYLE = MIX”に変更し、mt9d111_inf_axi_stream_v2_1_0.bbdファイルを追加する。mt9d111_inf_axi_stream_v2_1_0.bbdファイルの内容を下に示す。

FILES
pixel_fifo.ngc


・netlistフォルダ
mt9d111_inf_axi_stream_v2_1_0.bbd フォルダに、pixel_fifo.ngc を使うと書いたが、実際の pixel_fifo.ngc を入れておくために system\pcores\mt9d111_inf_axi_stream_v1_00_a\netlist フォルダを作成する。
netlist フォルダの中には、pixel_fifo.ngc を入れておく。

これで、カメラ・インターフェース用のAXI4-Stream IPは、完成だ。

これを、XPSプロジェクトのProject メニューからRescan User Repositories を行なってから、mt9d111_inf_axi_stream をAdd IP すると下に示すダイアログが出る。
Cam_AXI4_Stream_IP_12_130603.png

M_AXISと mt9d111_inf に + 記号が付いているのが見えるだろうか?この信号線をクリックすると、グループを構成する信号名を一覧することができる。
Cam_AXI4_Stream_IP_13_130603.png

  1. 2013年06月03日 04:39 |
  2. AXI4-Stream IPの作製
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック URL
https://marsee101.blog.fc2.com/tb.php/2480-9c1d891a
この記事にトラックバックする(FC2ブログユーザー)