Zynq-7000 VIPで実行できるタスクを眺めてみる。
適当に一覧化してみた。
そのうち、ちゃんとした形式にしよう・・・
FPGAをソフトウェアリセットする
RESET_CTL[31:0] 下記のビットのみ有効 [24:20] [17:16] [13:12] [ 3: 0]
AXIバスのエラー発生時にシミュレーションを停止するか設定する。
LEVEL 0: 停止しない 1: 停止
タスクの内部実装は何もない。
タスクの内部実装は何もない。
AXIバスのデバッグメッセージの出力のON/OFFを設定する。
0: デバッグメッセージを出力しない 1: デバッグメッセージを出力する
AXIバス(S_AXI_xxx)のレイテンシタイプを設定する。
NAME[1023:0] "S_AXI_GP0" "S_AXI_GP1" "S_AXI_HP0" "S_AXI_HP1" "S_AXI_HP2" "S_AXI_HP3" "S_AXI_ACP" "ALL"
LATENCY[1:0] BEST_CASE: ベストケース AVG_CASE: 平均値 WORST_CASE: ワーストケース RANDOM_CASE: ランダム
S_AXI_xxxのARQOSを設定する。
NAME[1023:0] "S_AXI_GP0" "S_AXI_GP1" "S_AXI_HP0" "S_AXI_HP1" "S_AXI_HP2" "S_AXI_HP3" "S_AXI_ACP"
VALUE[3:0] 設定値
S_AXI_xxxのAWQOSを設定する。
NAME[1023:0] "S_AXI_GP0" "S_AXI_GP1" "S_AXI_HP0" "S_AXI_HP1" "S_AXI_HP2" "S_AXI_HP3" "S_AXI_ACP"
VALUE[3:0] 設定値
ファイルのデータをメモリに書き込む。
FILENAME ファイル名(最大128文字)
START_ADDR 書込開始アドレス
SIZE 書込サイズ
規定のデータを書き込む。
DATA_TYPE[1:0] ALL_RANDOM: ランダム値を書き込む(デフォルト) ALL_ZEROS: 0を書き込む ALL_ONES: 1を書き込む
START_ADDR 書込開始アドレス
SIZE 書込サイズ
メモリからデータを読みだし、ファイルへ書き込む。
FILENAME ファイル名(最大128文字)
START_ADDR 読出開始アドレス
SIZE 読出サイズ
メモリへデータを書き込む。
DATA 書き込むデータ(64bit×16word)
START_ADDR 書込開始アドレス
SIZE 書込サイズ
メモリからデータを読みだす。
START_ADDR 書込開始アドレス
SIZE 書込サイズ
DATA 読み出されたデータが格納される(64bit×16word)
割込みステータスを返す。
IRQ_STATUS IRQ_F2Pの内容が格納される。
IRQ IRQ_F2P[15:0]の番号を入力することで割込み待ちをする。
IRQ_STATUS IRQ_F2Pの内容が格納される。
該当アドレスのメモリが更新されるまで待ち、DATA_INと比較する。 該当アドレスのデータがDATA_INと一致しない場合はシミュレーションと停止する。
ADDR データチェックするアドレス。
DATA_IN 比較データ
DATA_OUT 読み出されたデータが格納される
ファイルのデータをM_AXI_GP0/1へ書き込む。
FILENAME ファイル名
START_ADDR
SIZE
REQPONSE
M_AXI_GP0/1からデータをファイルに書き込む。
FILENAME ファイル名
START_ADDR
SIZE
RESPONSE
M_AXI_GP0/1へデータを書き込む。
START_ADDR
SIZE 書き込むデータのサイズ(最大128ワード)
DATA 書き込むデータ
RESPONSE
M_AXI_GP0/1からデータを読み込む。
START_ADDR
SIZE 読み込むデータのサイズ(最大128ワード)
DATA 読み込むデータ
RESPONSE
(input [31:0] start_addr,input [axi_len_width-1:0] len,input [axi_size_width-1:0] siz,input [axi_brst_type_width-1:0] burst,input [axi_lock_width-1:0] lck,input [axi_cache_width-1:0] cache,input [axi_prot_width-1:0] prot,input [(axi_mgp_data_width*axi_burst_len)-1:0] data,input integer datasize, output [1:0] response);
M_AXI_GP0/1にバースト書込を行う。
(input [31:0] start_addr,input [axi_len_width-1:0] len,input [axi_size_width-1:0] siz,input [axi_brst_type_width-1:0] burst,input [axi_lock_width-1:0] lck,input [axi_cache_width-1:0] cache,input [axi_prot_width-1:0] prot,input [(axi_mgp_data_width*axi_burst_len)-1:0] data,input integer datasize, output [1:0] response);
M_AXI_GP0/1からバースト読み出しを行う。
input [31:0] start_addr; input [axi_len_width-1:0] len; input [axi_size_width-1:0] siz; input [axi_brst_type_width-1:0] burst; input [axi_lock_width-1:0] lck; input [axi_cache_width-1:0] cache; input [axi_prot_width-1:0] prot; output [(axi_mgp_data_widthaxi_burst_len)-1:0] data; output [(axi_rsp_widthaxi_burst_len)-1:0] response;
システムレジスタのデータを読み込む。
START_ADDR 読み込む開始レジスタアドレス。
SIZE 読み込むサイズ。
DATA データが格納される
システムレジスタのデータを読み込む。
ADDR 読み込むレジスタアドレス
DATA データが格納される