• 検索結果がありません。

SPRITE IP コア 説明書 メティエ 2010 年 12 月 21 日

N/A
N/A
Protected

Academic year: 2021

シェア "SPRITE IP コア 説明書 メティエ 2010 年 12 月 21 日"

Copied!
18
0
0

読み込み中.... (全文を見る)

全文

(1)

SPRITE IP コア

説明書

㈱メティエ 2010 年 12 月 21 日

(2)

1

はじめに

本SPRITE IP コアは、メモリに保存された複数の画像データを、キャラクターなどの必要 な部分だけ重ね合わせて一枚の画像を作り、その画像を再度メモリに保存します。 最大16 枚の画像の重ね合わせが可能です。 90 度単位の回転や、画像の透過(アルファブレンディング)機能も備えています。 また、0.35 度刻みの回転画像を作成することも可能です。 本IP コアは、CPU からコマンドレジスタを受け取ることで、動作させることができます。 VGA サイズ(640x480)で、約 43fps(・JPEG:20.4kB・YUV:420 ・CLK:100MHz の場合)で動作させることが可能です。但し、画像サイズや、重ね合わせの枚数などによ り、動作時間は変化します。 FPGA sprite 内部CPU または 外部CPU メモリ メモリ Read Write 図 1 本 IP コアとの全体図

2

モジュール構成

本IP コアは以下のファイルから成り立ち、モジュール構成は図のようになっています。

Sprite

Sp_0_rd_ad0

trigon0

Sp_1_rd_ad

Sp_2_rd_ad

Sp_3_rd_ad

・・ ・・ ・・ ・・ ・・ ・・ ・・ ・・ ・・

Sp_15_rd_ad

Sp_14_rd_ad

図 2 Sprite モジュール構成

(3)

3

端子接続

3.1 端子接続図

CLK Sp_Rd_Req Sp_Rd_Ack Sp_Rd_a[7:0] Sp_Rd_Adr[19:0] Sp_RDn Sp_WRn Sp_CSn Sp_Dat_o[31:0] Sp_Adr[8:0] Sp_Reset Sp_Dat_i[31:0] C P U コ マ ン ド 入 出 力 信 号 Sprtie メ モ リ R e ad   S pr ite 画 像 Sp_Int_Status Sp_Rd_R[7:0] Sp_Rd_G[7:0] Sp_Rd_B[7:0] Sp_Wr_Req Sp_Wr_Ack Sp_Wr_a[7:0] Sp_Wr_Adr[19:0] メ モ リ W rit e   S pr ite 画 像 Sp_Wr_R[7:0] Sp_Wr_G[7:0] Sp_Wr_B[7:0] Sp_Busy 図 3.1 本 IP コアの接続端子説明

(4)

3.2 メモリ I/F 波形図

IP コアのメモリーインターフェースは REQ、ACK のハンドシェイクの構造になって います。 REQ と ACK の双方がアサート(H)状態になったところで、転送が一回終了します。 ○メモリ I/F リードシグナル波形図 CLK MemA_RdAck MemA_RdReq a d0 a+1 d1 a+2 d0 MemA_RdAdr MemA_RdDat 図 3.2 メモリ I/F リードサイクル ○メモリI/F ライトシグナル波形図 CLK MemA_WrAck MemA_WrReq a d0 a+1 d1 a+2 d0 MemA_WrAdr MemA_WrDat 図 3.2 メモリ I/F ライトサイクル

3.3 CPU コマンドと動作

ユーザー側の外部CPU または FPGA 内蔵 CPU から、各値を設定し、アドレス 3 番地の値 が0→1 に変化したときに、Sprite IP コアが開始します。ビジーフラグが 1 から 0 になっ たとき、スプライト画像の完成です。

スプライト画像の数は、16 枚で、各スプライトのレジスタには、Sp_0_On や Sp_8_Z のよ うに、スプライトの番号がついています。レジスタアドレスの[8:4]-1 がスプライトの番号

(5)

になります。 例)Ap_Adr = 9’h058 →スプライト番号 = Ap_Adr [8:4]=5-1=4 → Sp_ 4_xxx のレジスタを使用する。 各レジスタの説明 スプライト画像(キャラクター)を背景画像に重ね合わせ、画像を出力します。図 3.3-1, 図 3.3-3 のように、スプライト画像の切取位置や、重ね合わせる位置などを指定すること ができます。スプライトはSp_ 0 から Sp_15 までの 16 個、使用できます。Sp_0 は任意の 回転角で表示できる回路で、Sp_1 から Sp_15 は、90 度刻みでの回転表示が可能です。 表はスプライトのサイズや表示位置を指定するレジスタの指定方法です。x は 0~15 を表し ます。但し、表 3.3-1 内に Sp_0 の表示があるものは、x は 1~15 になります。 表 3.3-1 スプライトレジスタの設定方法 名前 説明 Sp_Draw_Start 画像出力のスタート信号です。1→0 と設定することで、指定したスプラ イトを重ね合わせ画像を出力します。 Sp_Draw_Auto LCD のフレーム信号に合わせて、自動でスプライト画像作成をスタート させることができます。 設定値を4’h1 以上に設定し、LCD のVSYNC 信号を入力すると、VSYNC の立ち上がりで、設定した値+1 フレーム毎に、画像作成をスタートし ます。 例)Sp_Draw_Auto =3 の場合、(3+1=)4 フレームに一回自動で、ス タートがかかります。 Sp_x_On 各番号のついたスプライトのOn/Off の切替に使います。 0:Off 1:On です。 Sp_x_Z レイヤの深さを指定します。 設定値は4’h0~4’hF で、値の小さい方が、上に重なります。 また、設定値が同じ場合、スプライト番号の大きい方が上に重なります。 Sp_x_Rot (Sp_0_Rot) 90 度単位で時計回りに回転表示ができます。回転中心は、出力画像の指 定された表示位によって変化します。 0:0 度回転 1:90 度回転 2:180 度回転 3:度回転 Sp_0_Rot は約 0.35 度刻みの任意の回転表示をさせる場合に使用し、値 は3’h4 を設定します。この設定は、回路内の初期値で設定されています。 Sp_0_Theta 約0.35 度刻みの任意の回転表示をさせる場合に、回転角度を設定する場 合に使用します。初期値は0 で、時計周りに回転させます。(図 3.3-3)

(6)

設定値は10’h000 から 10’h3FF までの任意の値です。特に、90 度刻み の回転は、次のように設定する必要があります。 0 度:10’h000 90 度:10’h100 180 度:10’h200 270 度:10’h300 Sp_x_Mir 左右反転(ミラー)表示ができます。(図 3.3-2) 0:反転表示 Off 1:反転表示 On Sp_x_Torans 画像の透過(αブレンディング)表示ができます。 0:透過表示 Off 1:透過表示 On 表示させる元画像の背景のαを設定 にしておく必要があります。 αが8’h00 より大きい部分がその値に応じて透過して表示されます。 Sp_x_Width スプライト画像の表示させたい部分の幅を指定します。(図 3.3-1,図 3.3-3) Sp_x_Hight スプライト画像の表示させたい部分の高さを指定します。(図 3.3-1,図 3.3-3) Sp_x_Vir_Width スプライト画像の幅を指定します。(図 3.3-1,図 3.3-3) Sp_x_Pos_X (Sp_0_Pos_X) スプライト画像を表示させる出力画像の位置X を指定します。(図 3.3-1) Sp_0_Pos_X は出力画像におけるスプライトの回転中心の X 座標です。 (図 3.3-3) Sp_x_Pos_Y (Sp_0_Pos_Y) スプライト画像を表示させる出力画像の位置Y を指定します。(図 3.3-1) Sp_0_Pos_Y は出力画像におけるスプライトの回転中心の Y 座標です。 (図 3.3-3) Sp_x_Offset_X (Sp_0_Offset_X) スプライト画像の表示させたい部分の先頭位置X を指定します。(図 3.3-1) Sp_0_ Offset_X はスプライト画像における回転中心の X 座標です。(図 3.3-3) Sp_x_Offset_Y (Sp_0_Offset_Y) スプライト画像の表示させたい部分の先頭位置Y を指定します。(図 3.3-1) Sp_0_ Offset_Y はスプライト画像における回転中心の X 座標です。(図 3.3-3) Sp_x_StartAdr スプライト画像が保存されているメモリの先頭アドレスを指定します。 Sp_0_Start_XY 任意角回転のスプライト画像の領域の先頭座標を指定します。

指定方法は、Sp_0_Start_XY [19:10]=Y 座標 Sp_0_Start_XY[9:0]=X 座標となります。

(7)

120 16 5 75 85 P(6,70) Q(135,180) 240 32 0 Sp_x_Width = 75(h4B) Sp_x_Hight = 85(h55) Sp_x_Vir_Width = 120(h78) Sp_x_Pos_X = 135(h87) Sp_x_Pos_Y = 180(hB4) LCD_Hight = 320(h140) LCD_Width = 240(hF0) Sp_x_Offset_X = 6(h6) Sp_x_Offset_Y = 70(h46) 出力画像 スプライト画像 背景画像 図 3.3-1 スプライト表示位置(Sp1~Sp15) Sp_x_Mir = 1 Sp_x_Mir = 0

Sp_x_Rot = 0 Sp_x_Rot = 1 Sp_x_Rot = 2 Sp_x_Rot = 3

(8)

Q(135,180) 240 3 2 0 背景画像 120 1 6 5 75 8 5 P(6,70) Sp_0_Width = 75(h4B) Sp_0_Hight = 85(h55) Sp_0_Vir_Width = 120(h78) Sp_0_Offset_X = 6(h6) Sp_0_Offset_Y = 70(h46) スプライト画像 スプライトの回転中心座標 Sp_0_Pos_X = 135(h87) Sp_0_Pos_Y = 180(hB4) LCD_Hight = 320(h140) LCD_Width = 240(hF0) Sp_0_Theta = h000 Sp_0_Theta = h090 Sp_0_Theta = h210 Sp_0_Theta = h330 出力画像 出力画像の回転中心座標 Sp_0_Start_XY = {12'h000, 10'h046, 10'h006} P( Y座標 , X座標 ) 図 3.3-3 任意角回転スプライト(Sp_0_ xxx)

(9)

3.4 レジスタマップ

本IP コアの動作コマンドを表に示します。 レジスタの領域は、9'h000 から 9’h10F まで使用しています。9’h000 から 9’h00B までは全 体の画像サイズや、スタートなどの設定、9’h00F から 9’h10F は、個別のスプライトのサ イズや位置などを設定するレジスタになっています。 表 3.4-2 レジスタマップ Address 名称 R/W 初期値 説明 9’h000 ID Read 32’h0000_5917 任意の定数 9’h001 Sp_Int_Mask R/W 1’b0 0:OFF 1:On 9’h002 Sp_Int_Clr R/W 1’b1 Reserved

9’h003 Sp_Draw_Start R/W 1’b0 表 3.3-1 参照(Sp_Draw_Start) 9’h004 Sp_Draw_Auto R/W 4’h0 表 3.3-1 参照(Sp_Draw_Auto)

9’h005 VSYNC R/W 1’b0 LCD の VSYNC 信号と連動

9’h006 Sp_On R/W 1’b0 0:IDLE 1:JPEG 伸張中

9’h007 LCD_StartAdr R/W 20’h0_0000 圧縮画像の保存先先頭アドレス 9’h008 LCD_Hight R/W 10’h140 圧縮画像の幅(ヘッダー情報) 9’h009 LCD_Width R/W 10’h0f0 圧縮画像の高さ(ヘッダー情報) 9’h00A LCD_PSize R/W 20’h12BFF 伸張画像の保存先先頭アドレス 9’h00B Sp_Busy Read 1’b0 0:IDLE 1:スプライト回路動作中

9’h00F Sp_0_Start_XY R/W 20’h0_0000 回転スタート位置 Y:[19:10] X:[9:0] (表 3.3-1/図 3.3-3 参照) 9’h010 Sp_0_On R/W 1’b0 表 3.3-1 参照(Sp_x_ On) 9’h011 Sp_0_Z R/W 4’h0 表 3.3-1 参照(Sp_x_Z) 9’h012 Sp_0_Rot R/W 3’h4 表 3.3-1 参照(Sp_0_Rot) 9’h013 Sp_0_Theta R/W 10’h000 表 3.3-1 参照(Sp_0_Theta) 9’h014 Sp_0_Mir R/W 1’b0 表 3.3-1 参照(Sp_x_Mir) 9’h015 Sp_0_Torans R/W 1’b0 表 3.3-1 参照(Sp_x_Torans) 9’h016 Sp_0_Width R/W 10’h000 表 3.3-1 参照(Sp_x_Width) 9’h017 Sp_0_Hight R/W 10’h000 表 3.3-1 参照(Sp_x_Hight) 9’h018 Sp_0_Vir_Width R/W 10’h000 表 3.3-1 参照(Sp_x_ Vir_Hight) 9’h019 Sp_0_Vir_Hight R/W 10’h000 Reserved

(10)

9’h01B Sp_0_Pos_Y R/W 10’h000 表 3.3-1 参照(Sp_0_Pos_Y) 9’h01C Sp_0_Offset_X R/W 10’h000 表 3.3-1 参照(Sp_0_Offset_X) 9’h01D Sp_0_Offset_Y R/W 10’h000 表 3.3-1 参照(Sp_0_Offset_Y) 9’h01E Sp_0_StartAdr R/W 20’h0_0000 表 3.3-1 参照(Sp_x_StartAdr) 9’h01F Sp_0_RotStartAdr R/W 32’h0000_0000 Reserved 9’h020 Sp_1_On R/W 1’b0 表 3.3-1 参照(Sp_x_On) 9’h021 Sp_1_Z R/W 4’h0 表 3.3-1 参照(Sp_x_Z) 9’h022 Sp_1_Rot R/W 3’h0 表 3.3-1 参照(Sp_x_ Rot) 9’h023 Sp_1_Theta R/W 10’h000 Reserved 9’h024 Sp_1_Mir R/W 1’b0 表 3.3-1 参照(Sp_x_Mir) 9’h025 Sp_1_Torans R/W 1’b0 表 3.3-1 参照(Sp_x_Torans) 9’h026 Sp_1_Width R/W 10’h000 表 3.3-1 参照(Sp_x_Width) 9’h027 Sp_1_Hight R/W 10’h000 表 3.3-1 参照(Sp_x_Hight) 9’h028 Sp_1_Vir_Width R/W 10’h000 表 3.3-1 参照(Sp_x_Vir_Width) 9’h029 Sp_1_Vir_Hight R/W 10’h000 Reserved

9’h02A Sp_1_Pos_X R/W 10’h000 表 3.3-1 参照(Sp_x_Pos_X) 9’h02B Sp_1_Pos_Y R/W 10’h000 表 3.3-1 参照(Sp_x_Pos_Y) 9’h02C Sp_1_Offset_X R/W 10’h000 表 3.3-1 参照(Sp_x_Offset_X) 9’h02D Sp_1_Offset_Y R/W 10’h000 表 3.3-1 参照(Sp_x_Offset_Y) 9’h02E Sp_1_StartAdr R/W 20’h0_0000 表 3.3-1 参照(Sp_x_StartAdr) 9’h02F Sp_1_RotStartAdr R/W 20’h0_0000 Reserved 9’h030 Sp_2_On R/W 1’b0 表 3.3-1 参照(Sp_x_On) 9’h031 Sp_2_Z R/W 4’h0 表 3.3-1 参照(Sp_x_Z) 9’h032 Sp_2_Rot R/W 3’h0 表 3.3-1 参照(Sp_x_ Rot) 9’h033 Sp_2_Theta R/W 10’h000 Reserved 9’h034 Sp_2_Mir R/W 1’b0 表 3.3-1 参照(Sp_x_Mir) 9’h035 Sp_2_Torans R/W 1’b0 表 3.3-1 参照(Sp_x_Torans) 9’h036 Sp_2_Width R/W 10’h000 表 3.3-1 参照(Sp_x_Width) 9’h037 Sp_2_Hight R/W 10’h000 表 3.3-1 参照(Sp_x_Hight) 9’h038 Sp_2_Vir_Width R/W 10’h000 表 3.3-1 参照(Sp_x_Vir_Width) 9’h039 Sp_2_Vir_Hight R/W 10’h000 Reserved

9’h03A Sp_2_Pos_X R/W 10’h000 表 3.3-1 参照(Sp_x_Pos_X) 9’h03B Sp_2_Pos_Y R/W 10’h000 表 3.3-1 参照(Sp_x_Pos_Y) 9’h03C Sp_2_Offset_X R/W 10’h000 表 3.3-1 参照(Sp_x_Offset_X) 9’h03D Sp_2_Offset_Y R/W 10’h000 表 3.3-1 参照(Sp_x_Offset_Y)

(11)

9’h03E Sp_2_StartAdr R/W 20’h0_0000 表 3.3-1 参照(Sp_x_StartAdr) 9’h03F Sp_2_RotStartAdr R/W 20’h0_0000 Reserved 9’h040 Sp_3_On R/W 1’b0 表 3.3-1 参照(Sp_x_On) 9’h041 Sp_3_Z R/W 4’h0 表 3.3-1 参照(Sp_x_Z) 9’h042 Sp_3_Rot R/W 3’h0 表 3.3-1 参照(Sp_x_ Rot) 9’h043 Sp_3_Theta R/W 10’h000 Reserved 9’h044 Sp_3_Mir R/W 1’b0 表 3.3-1 参照(Sp_x_Mir) 9’h045 Sp_3_Torans R/W 1’b0 表 3.3-1 参照(Sp_x_Torans) 9’h046 Sp_3_Width R/W 10’h000 表 3.3-1 参照(Sp_x_Width) 9’h047 Sp_3_Hight R/W 10’h000 表 3.3-1 参照(Sp_x_Hight) 9’h048 Sp_3_Vir_Width R/W 10’h000 表 3.3-1 参照(Sp_x_Vir_Width) 9’h049 Sp_3_Vir_Hight R/W 10’h000 Reserved

9’h04A Sp_3_Pos_X R/W 10’h000 表 3.3-1 参照(Sp_x_Pos_X) 9’h04B Sp_3_Pos_Y R/W 10’h000 表 3.3-1 参照(Sp_x_Pos_Y) 9’h04C Sp_3_Offset_X R/W 10’h000 表 3.3-1 参照(Sp_x_Offset_X) 9’h04D Sp_3_Offset_Y R/W 10’h000 表 3.3-1 参照(Sp_x_Offset_Y) 9’h04E Sp_3_StartAdr R/W 20’h0_0000 表 3.3-1 参照(Sp_x_StartAdr) 9’h04F Sp_3_RotStartAdr R/W 20’h0_0000 Reserved 9’h050 Sp_4_On R/W 1’b0 表 3.3-1 参照(Sp_x_On) 9’h051 Sp_4_Z R/W 4’h0 表 3.3-1 参照(Sp_x_Z) 9’h052 Sp_4_Rot R/W 3’h0 表 3.3-1 参照(Sp_x_ Rot) 9’h053 Sp_4_Theta R/W 10’h000 Reserved 9’h054 Sp_4_Mir R/W 1’b0 表 3.3-1 参照(Sp_x_Mir) 9’h055 Sp_4_Torans R/W 1’b0 表 3.3-1 参照(Sp_x_Torans) 9’h056 Sp_4_Width R/W 10’h000 表 3.3-1 参照(Sp_x_Width) 9’h057 Sp_4_Hight R/W 10’h000 表 3.3-1 参照(Sp_x_Hight) 9’h058 Sp_4_Vir_Width R/W 10’h000 表 3.3-1 参照(Sp_x_Vir_Width) 9’h059 Sp_4_Vir_Hight R/W 10’h000 Reserved

9’h05A Sp_4_Pos_X R/W 10’h000 表 3.3-1 参照(Sp_x_Pos_X) 9’h05B Sp_4_Pos_Y R/W 10’h000 表 3.3-1 参照(Sp_x_Pos_Y) 9’h05C Sp_4_Offset_X R/W 10’h000 表 3.3-1 参照(Sp_x_Offset_X) 9’h05D Sp_4_Offset_Y R/W 10’h000 表 3.3-1 参照(Sp_x_Offset_Y) 9’h05E Sp_4_StartAdr R/W 20’h0_0000 表 3.3-1 参照(Sp_x_StartAdr) 9’h05F Sp_4_RotStartAdr R/W 20’h0_0000 Reserved

(12)

9’h061 Sp_5_Z R/W 4’h0 表 3.3-1 参照(Sp_x_Z) 9’h062 Sp_5_Rot R/W 3’h0 表 3.3-1 参照(Sp_x_ Rot) 9’h063 Sp_5_Theta R/W 10’h000 Reserved 9’h064 Sp_5_Mir R/W 1’b0 表 3.3-1 参照(Sp_x_Mir) 9’h065 Sp_5_Torans R/W 1’b0 表 3.3-1 参照(Sp_x_Torans) 9’h066 Sp_5_Width R/W 10’h000 表 3.3-1 参照(Sp_x_Width) 9’h067 Sp_5_Hight R/W 10’h000 表 3.3-1 参照(Sp_x_Hight) 9’h068 Sp_5_Vir_Width R/W 10’h000 表 3.3-1 参照(Sp_x_Vir_Width) 9’h069 Sp_5_Vir_Hight R/W 10’h000 Reserved

9’h06A Sp_5_Pos_X R/W 10’h000 表 3.3-1 参照(Sp_x_Pos_X) 9’h06B Sp_5_Pos_Y R/W 10’h000 表 3.3-1 参照(Sp_x_Pos_Y) 9’h06C Sp_5_Offset_X R/W 10’h000 表 3.3-1 参照(Sp_x_Offset_X) 9’h06D Sp_5_Offset_Y R/W 10’h000 表 3.3-1 参照(Sp_x_Offset_Y) 9’h06E Sp_5_StartAdr R/W 20’h0_0000 表 3.3-1 参照(Sp_x_StartAdr) 9’h06F Sp_5_RotStartAdr R/W 20’h0_0000 Reserved 9’h070 Sp_6_On R/W 1’b0 表 3.3-1 参照(Sp_x_On) 9’h071 Sp_6_Z R/W 4’h0 表 3.3-1 参照(Sp_x_Z) 9’h072 Sp_6_Rot R/W 3’h0 表 3.3-1 参照(Sp_x_ Rot) 9’h073 Sp_6_Theta R/W 10’h000 Reserved 9’h074 Sp_6_Mir R/W 1’b0 表 3.3-1 参照(Sp_x_Mir) 9’h075 Sp_6_Torans R/W 1’b0 表 3.3-1 参照(Sp_x_Torans) 9’h076 Sp_6_Width R/W 10’h000 表 3.3-1 参照(Sp_x_Width) 9’h077 Sp_6_Hight R/W 10’h000 表 3.3-1 参照(Sp_x_Hight) 9’h078 Sp_6_Vir_Width R/W 10’h000 表 3.3-1 参照(Sp_x_Vir_Width) 9’h079 Sp_6_Vir_Hight R/W 10’h000 Reserved

9’h07A Sp_6_Pos_X R/W 10’h000 表 3.3-1 参照(Sp_x_Pos_X) 9’h07B Sp_6_Pos_Y R/W 10’h000 表 3.3-1 参照(Sp_x_Pos_Y) 9’h07C Sp_6_Offset_X R/W 10’h000 表 3.3-1 参照(Sp_x_Offset_X) 9’h07D Sp_6_Offset_Y R/W 10’h000 表 3.3-1 参照(Sp_x_Offset_Y) 9’h07E Sp_6_StartAdr R/W 20’h0_0000 表 3.3-1 参照(Sp_x_StartAdr) 9’h07F Sp_6_RotStartAdr R/W 20’h0_0000 Reserved

9’h080 Sp_7_On R/W 1’b0 表 3.3-1 参照(Sp_x_On) 9’h081 Sp_7_Z R/W 4’h0 表 3.3-1 参照(Sp_x_Z) 9’h082 Sp_7_Rot R/W 3’h0 表 3.3-1 参照(Sp_x_ Rot) 9’h083 Sp_7_Theta R/W 10’h000 Reserved

(13)

9’h084 Sp_7_Mir R/W 1’b0 表 3.3-1 参照(Sp_x_Mir) 9’h085 Sp_7_Torans R/W 1’b0 表 3.3-1 参照(Sp_x_Torans) 9’h086 Sp_7_Width R/W 10’h000 表 3.3-1 参照(Sp_x_Width) 9’h087 Sp_7_Hight R/W 10’h000 表 3.3-1 参照(Sp_x_Hight) 9’h088 Sp_7_Vir_Width R/W 10’h000 表 3.3-1 参照(Sp_x_Vir_Width) 9’h089 Sp_7_Vir_Hight R/W 10’h000 Reserved

9’h08A Sp_7_Pos_X R/W 10’h000 表 3.3-1 参照(Sp_x_Pos_X) 9’h08B Sp_7_Pos_Y R/W 10’h000 表 3.3-1 参照(Sp_x_Pos_Y) 9’h08C Sp_7_Offset_X R/W 10’h000 表 3.3-1 参照(Sp_x_Offset_X) 9’h08D Sp_7_Offset_Y R/W 10’h000 表 3.3-1 参照(Sp_x_Offset_Y) 9’h08E Sp_7_StartAdr R/W 20’h0_0000 表 3.3-1 参照(Sp_x_StartAdr) 9’h08F Sp_7_RotStartAdr R/W 20’h0_0000 Reserved 9’h090 Sp_8_On R/W 1’b0 表 3.3-1 参照(Sp_x_On) 9’h091 Sp_8_Z R/W 4’h0 表 3.3-1 参照(Sp_x_Z) 9’h092 Sp_8_Rot R/W 3’h0 表 3.3-1 参照(Sp_x_ Rot) 9’h093 Sp_8_Theta R/W 10’h000 Reserved 9’h094 Sp_8_Mir R/W 1’b0 表 3.3-1 参照(Sp_x_Mir) 9’h095 Sp_8_Torans R/W 1’b0 表 3.3-1 参照(Sp_x_Torans) 9’h096 Sp_8_Width R/W 10’h000 表 3.3-1 参照(Sp_x_Width) 9’h097 Sp_8_Hight R/W 10’h000 表 3.3-1 参照(Sp_x_Hight) 9’h098 Sp_8_Vir_Width R/W 10’h000 表 3.3-1 参照(Sp_x_Vir_Width) 9’h099 Sp_8_Vir_Hight R/W 10’h000 Reserved

9’h09A Sp_8_Pos_X R/W 10’h000 表 3.3-1 参照(Sp_x_Pos_X) 9’h09B Sp_8_Pos_Y R/W 10’h000 表 3.3-1 参照(Sp_x_Pos_Y) 9’h09C Sp_8_Offset_X R/W 10’h000 表 3.3-1 参照(Sp_x_Offset_X) 9’h09D Sp_8_Offset_Y R/W 10’h000 表 3.3-1 参照(Sp_x_Offset_Y) 9’h09E Sp_8_StartAdr R/W 20’h0_0000 表 3.3-1 参照(Sp_x_StartAdr) 9’h09F Sp_8_RotStartAdr R/W 20’h0_0000 Reserved

9’h0A0 Sp_9_On R/W 1’b0 表 3.3-1 参照(Sp_x_On) 9’h0A1 Sp_9_Z R/W 4’h0 表 3.3-1 参照(Sp_x_Z) 9’h0A2 Sp_9_Rot R/W 3’h0 表 3.3-1 参照(Sp_x_ Rot) 9’h0A3 Sp_9_Theta R/W 10’h000 Reserved

9’h0A4 Sp_9_Mir R/W 1’b0 表 3.3-1 参照(Sp_x_Mir) 9’h0A5 Sp_9_Torans R/W 1’b0 表 3.3-1 参照(Sp_x_Torans) 9’h0A6 Sp_9_Width R/W 10’h000 表 3.3-1 参照(Sp_x_Width)

(14)

9’h0A7 Sp_9_Hight R/W 10’h000 表 3.3-1 参照(Sp_x_Hight) 9’h0A8 Sp_9_Vir_Width R/W 10’h000 表 3.3-1 参照(Sp_x_Vir_Width) 9’h0A9 Sp_9_Vir_Hight R/W 10’h000 Reserved

9’h0AA Sp_9_Pos_X R/W 10’h000 表 3.3-1 参照(Sp_x_Pos_X) 9’h0AB Sp_9_Pos_Y R/W 10’h000 表 3.3-1 参照(Sp_x_Pos_Y) 9’h0AC Sp_9_Offset_X R/W 10’h000 表 3.3-1 参照(Sp_x_Offset_X) 9’h0AD Sp_9_Offset_Y R/W 10’h000 表 3.3-1 参照(Sp_x_Offset_Y) 9’h0AE Sp_9_StartAdr R/W 20’h0_0000 表 3.3-1 参照(Sp_x_StartAdr) 9’h0AF Sp_9_RotStartAdr R/W 20’h0_0000 Reserved

9’h0B0 Sp_10_On R/W 1’b0 表 3.3-1 参照(Sp_x_On) 9’h0B1 Sp_10_Z R/W 4’h0 表 3.3-1 参照(Sp_x_Z) 9’h0B2 Sp_10_Rot R/W 3’h0 表 3.3-1 参照(Sp_x_ Rot) 9’h0B3 Sp_10_Theta R/W 10’h000 Reserved 9’h0B4 Sp_10_Mir R/W 1’b0 表 3.3-1 参照(Sp_x_Mir) 9’h0B5 Sp_10_Torans R/W 1’b0 表 3.3-1 参照(Sp_x_Torans) 9’h0B6 Sp_10_Width R/W 10’h000 表 3.3-1 参照(Sp_x_Width) 9’h0B7 Sp_10_Hight R/W 10’h000 表 3.3-1 参照(Sp_x_Hight) 9’h0B8 Sp_10_Vir_Width R/W 10’h000 表 3.3-1 参照(Sp_x_Vir_Width) 9’h0B9 Sp_10_Vir_Hight R/W 10’h000 Reserved

9’h0BA Sp_10_Pos_X R/W 10’h000 表 3.3-1 参照(Sp_x_Pos_X) 9’h0BB Sp_10_Pos_Y R/W 10’h000 表 3.3-1 参照(Sp_x_Pos_Y) 9’h0BC Sp_10_Offset_X R/W 10’h000 表 3.3-1 参照(Sp_x_Offset_X) 9’h0BD Sp_10_Offset_Y R/W 10’h000 表 3.3-1 参照(Sp_x_Offset_Y) 9’h0BE Sp_10_StartAdr R/W 20’h0_0000 表 3.3-1 参照(Sp_x_StartAdr) 9’h0BF Sp_10_RotStartAdr R/W 20’h0_0000 Reserved 9’h0C0 Sp_11_On R/W 1’b0 表 3.3-1 参照(Sp_x_On) 9’h0C1 Sp_11_Z R/W 4’h0 表 3.3-1 参照(Sp_x_Z) 9’h0C2 Sp_11_Rot R/W 3’h0 表 3.3-1 参照(Sp_x_ Rot) 9’h0C3 Sp_11_Theta R/W 10’h000 Reserved 9’h0C4 Sp_11_Mir R/W 1’b0 表 3.3-1 参照(Sp_x_Mir) 9’h0C5 Sp_11_Torans R/W 1’b0 表 3.3-1 参照(Sp_x_Torans) 9’h0C6 Sp_11_Width R/W 10’h000 表 3.3-1 参照(Sp_x_Width) 9’h0C7 Sp_11_Hight R/W 10’h000 表 3.3-1 参照(Sp_x_Hight) 9’h0C8 Sp_11_Vir_Width R/W 10’h000 表 3.3-1 参照(Sp_x_Vir_Width) 9’h0C9 Sp_11_Vir_Hight R/W 10’h000 Reserved

(15)

9’h0CA Sp_11_Pos_X R/W 10’h000 表 3.3-1 参照(Sp_x_Pos_X) 9’h0CB Sp_11_Pos_Y R/W 10’h000 表 3.3-1 参照(Sp_x_Pos_Y) 9’h0CC Sp_11_Offset_X R/W 10’h000 表 3.3-1 参照(Sp_x_Offset_X) 9’h0CD Sp_11_Offset_Y R/W 10’h000 表 3.3-1 参照(Sp_x_Offset_Y) 9’h0CE Sp_11_StartAdr R/W 20’h0_0000 表 3.3-1 参照(Sp_x_StartAdr) 9’h0CF Sp_11_RotStartAdr R/W 20’h0_0000 Reserved 9’h0D0 Sp_12_On R/W 1’b0 表 3.3-1 参照(Sp_x_On) 9’h0D1 Sp_12_Z R/W 4’h0 表 3.3-1 参照(Sp_x_Z) 9’h0D2 Sp_12_Rot R/W 3’h0 表 3.3-1 参照(Sp_x_ Rot) 9’h0D3 Sp_12_Theta R/W 10’h000 Reserved 9’h0D4 Sp_12_Mir R/W 1’b0 表 3.3-1 参照(Sp_x_Mir) 9’h0D5 Sp_12_Torans R/W 1’b0 表 3.3-1 参照(Sp_x_Torans) 9’h0D6 Sp_12_Width R/W 10’h000 表 3.3-1 参照(Sp_x_Width) 9’h0D7 Sp_12_Hight R/W 10’h000 表 3.3-1 参照(Sp_x_Hight) 9’h0D8 Sp_12_Vir_Width R/W 10’h000 表 3.3-1 参照(Sp_x_Vir_Width) 9’h0D9 Sp_12_Vir_Hight R/W 10’h000 Reserved

9’h0DA Sp_12_Pos_X R/W 10’h000 表 3.3-1 参照(Sp_x_Pos_X) 9’h0DB Sp_12_Pos_Y R/W 10’h000 表 3.3-1 参照(Sp_x_Pos_Y) 9’h0DC Sp_12_Offset_X R/W 10’h000 表 3.3-1 参照(Sp_x_Offset_X) 9’h0DD Sp_12_Offset_Y R/W 10’h000 表 3.3-1 参照(Sp_x_Offset_Y) 9’h0DE Sp_12_StartAdr R/W 20’h0_0000 表 3.3-1 参照(Sp_x_StartAdr) 9’h0DF Sp_12_RotStartAdr R/W 20’h0_0000 Reserved

9’h0E0 Sp_13_On R/W 1’b0 表 3.3-1 参照(Sp_x_On) 9’h0E1 Sp_13_Z R/W 4’h0 表 3.3-1 参照(Sp_x_Z) 9’h0E2 Sp_13_Rot R/W 3’h0 表 3.3-1 参照(Sp_x_ Rot) 9’h0E3 Sp_13_Theta R/W 10’h000 Reserved

9’h0E4 Sp_13_Mir R/W 1’b0 表 3.3-1 参照(Sp_x_Mir) 9’h0E5 Sp_13_Torans R/W 1’b0 表 3.3-1 参照(Sp_x_Torans) 9’h0E6 Sp_13_Width R/W 10’h000 表 3.3-1 参照(Sp_x_Width) 9’h0E7 Sp_13_Hight R/W 10’h000 表 3.3-1 参照(Sp_x_Hight) 9’h0E8 Sp_13_Vir_Width R/W 10’h000 表 3.3-1 参照(Sp_x_Vir_Width) 9’h0E9 Sp_13_Vir_Hight R/W 10’h000 Reserved

9’h0EA Sp_13_Pos_X R/W 10’h000 表 3.3-1 参照(Sp_x_Pos_X) 9’h0EB Sp_13_Pos_Y R/W 10’h000 表 3.3-1 参照(Sp_x_Pos_Y) 9’h0EC Sp_13_Offset_X R/W 10’h000 表 3.3-1 参照(Sp_x_Offset_X)

(16)

9’h0ED Sp_13_Offset_Y R/W 10’h000 表 3.3-1 参照(Sp_x_Offset_Y) 9’h0EE Sp_13_StartAdr R/W 20’h0_0000 表 3.3-1 参照(Sp_x_StartAdr) 9’h0EF Sp_13_RotStartAdr R/W 20’h0_0000 Reserved

9’h0F0 Sp_14_On R/W 1’b0 表 3.3-1 参照(Sp_x_On) 9’h0F1 Sp_14_Z R/W 4’h0 表 3.3-1 参照(Sp_x_Z) 9’h0F2 Sp_14_Rot R/W 3’h0 表 3.3-1 参照(Sp_x_ Rot) 9’h0F3 Sp_14_Theta R/W 10’h000 Reserved 9’h0F4 Sp_14_Mir R/W 1’b0 表 3.3-1 参照(Sp_x_Mir) 9’h0F5 Sp_14_Torans R/W 1’b0 表 3.3-1 参照(Sp_x_Torans) 9’h0F6 Sp_14_Width R/W 10’h000 表 3.3-1 参照(Sp_x_Width) 9’h0F7 Sp_14_Hight R/W 10’h000 表 3.3-1 参照(Sp_x_Hight) 9’h0F8 Sp_14_Vir_Width R/W 10’h000 表 3.3-1 参照(Sp_x_Vir_Width) 9’h0F9 Sp_14_Vir_Hight R/W 10’h000 Reserved

9’h0FA Sp_14_Pos_X R/W 10’h000 表 3.3-1 参照(Sp_x_Pos_X) 9’h0FB Sp_14_Pos_Y R/W 10’h000 表 3.3-1 参照(Sp_x_Pos_Y) 9’h0FC Sp_14_Offset_X R/W 10’h000 表 3.3-1 参照(Sp_x_Offset_X) 9’h0FD Sp_14_Offset_Y R/W 10’h000 表 3.3-1 参照(Sp_x_Offset_Y) 9’h0FE Sp_14_StartAdr R/W 20’h0_0000 表 3.3-1 参照(Sp_x_StartAdr) 9’h0FF Sp_14_RotStartAdr R/W 20’h0_0000 Reserved 9’h100 Sp_15_On R/W 1’b0 表 3.3-1 参照(Sp_x_On) 9’h101 Sp_15_Z R/W 4’h0 表 3.3-1 参照(Sp_x_Z) 9’h102 Sp_15_Rot R/W 3’h0 表 3.3-1 参照(Sp_x_ Rot) 9’h103 Sp_15_Theta R/W 10’h000 Reserved 9’h104 Sp_15_Mir R/W 1’b0 表 3.3-1 参照(Sp_x_Mir) 9’h105 Sp_15_Torans R/W 1’b0 表 3.3-1 参照(Sp_x_Torans) 9’h106 Sp_15_Width R/W 10’h000 表 3.3-1 参照(Sp_x_Width) 9’h107 Sp_15_Hight R/W 10’h000 表 3.3-1 参照(Sp_x_Hight) 9’h108 Sp_15_Vir_Width R/W 10’h000 表 3.3-1 参照(Sp_x_Vir_Width) 9’h109 Sp_15_Vir_Hight R/W 10’h000 Reserved

9’h10A Sp_15_Pos_X R/W 10’h000 表 3.3-1 参照(Sp_x_Pos_X) 9’h10B Sp_15_Pos_Y R/W 10’h000 表 3.3-1 参照(Sp_x_Pos_Y) 9’h10C Sp_15_Offset_X R/W 10’h000 表 3.3-1 参照(Sp_x_Offset_X) 9’h10D Sp_15_Offset_Y R/W 10’h000 表 3.3-1 参照(Sp_x_Offset_Y) 9’h10E Sp_15_StartAdr R/W 20’h0_0000 表 3.3-1 参照(Sp_x_StartAdr) 9’h10F Sp_15_RotStartAdr R/W 20’h0_0000 Reserved

(17)

4

サンプルソフト

本IP コアは、以下の手順で動作させます。初めにユーザー側で、1 枚以上の RGB(Hex) 画像をメモリに保存しておく必要があります。背景や重ね合わせるキャラクターの絵を決 めて、プログラムから自由に配置します。 手順 ①基板リセット後、レジスタの初期化を行います。 ②表示させたい画像とその位置、などを決めます。 ③レジスタSp_Draw_Start に 1→0 を書くことで、画像の重ね合わせスタートします。 ④レジスタSp_Busy が 0 になったら、画像の重ね合わせとメモリへの保存が終了します。 これらを実行する関数は以下の通りです。 表 4-3 サンプルソフトウェア関数一覧 関数名 内容 init_sprite_reg() 各レジスタの設定を行います。リセット直後に使用される関数な ので、レジスタを他の値に変更する場合は、別の関数内で、その 都度設定する必要があります。ここでは、スプライト回路の On 信号や、作成する画像サイズ、データサイズなどを設定し、その 他はすべて0 を設定します。Sp_0_Rot をここで設定しておくこと で、任意角回転画像が表示されなくなることを防ぎます。 Write_sprite_reg ( Xuint8 no, Xuint32 reg_0, Xuint32 reg_1,

Xuint32 reg_2, Xuint32 reg_3, Xuint32 reg_4, Xuint32 reg_5, Xuint32 reg_6, Xuint32 reg_7, Xuint32 reg_8, Xuint32 reg_9, Xuint32 reg_a, Xuint32 reg_b, 各スプライトのサイズや位置などを、まとめて設定できるように した関数です。 実際に表示をする関数内で、下のように指定します。 Write_sprite_reg ( 7 (スプライト番号) , 0x00000001 (On/Off) , 0x00000006(Sp_x_Z), 0x00000002(Sp_x_Rot), 0x00000000(Sp_x_Theter), 0x00000000(Sp_x_Mir), 0x00000001(Sp_x_Torans), 0x0000003b(Sp_x_Width), 0x0000003b(Sp_x_Hight), 0x000000f0(Sp_x_Vir_Width), 0x00000000(Sp_x_Vir_Hight), 0x00000010(Sp_x_Pos_X), 0x000000E0+(i*2)(Sp_x_ Pos_Y), 0x00000000(Sp_x_Offset_X), 0x00000000(Sp_x_Offset_Y), 0x00012C00(Sp_x_StartAdr), 0x00000000(Sp_x_RotStartAdr));

(18)

Xuint32 reg_c, Xuint32 reg_d, Xuint32 reg_e, Xuint32 reg_f ) sprite_on_a () スプライト回路が動作していないことを確認(Sp_Busy= 0)し、 アドレス3 の Draw_Start に 1→0 を書いて、回路を動作させます。 その後、Sp_Busy が 0 になっていることを確認して、終了します。 p_animation() Write_sprite_reg と sprite_on_a を組合せることで、重ね合わせた

図  3.3-2  スプライト 90 度回転と左右反転表示

参照

関連したドキュメント

KDDI Sustainable Action 3つの「つなぐ」

第124条 補償説明とは、権利者に対し、土地の評価(残地補償を含む。)の方法、建物等の補償

〜 3日 4日 9日 14日 4日 20日 21日 25日 28日 23日 16日 18日 4月 4月 4月 7月 8月 9月 9月 9月 9月 12月 1月

2019年 3月18日 Abu Dhabi Gas Liquefaction Company Limitedと、同社が保有するLNG液化設備に おけるOperation &

大正13年 3月20日 大正 4年 3月20日 大正 4年 5月18日 大正10年10月10日 大正10年12月 7日 大正13年 1月 8日 大正13年 6月27日 大正13年 1月 8日 大正14年 7月17日 大正15年

下山にはいり、ABさんの名案でロープでつ ながれた子供たちには笑ってしまいました。つ

The Tokyo Electric Power Company,