前回、
”
カメラ・インターフェース用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.bbdsystem\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 すると下に示すダイアログが出る。

M_AXISと mt9d111_inf に + 記号が付いているのが見えるだろうか?この信号線をクリックすると、グループを構成する信号名を一覧することができる。
- 2013年06月03日 04:39 |
- AXI4-Stream IPの作製
-
| トラックバック:0
-
| コメント:0