// Times.v 行列積を計算します

module Times(in1,in2:input,out:output)
int in1 on row;     // 入力1、行ごとに分割
int in2 on column;  // 入力2、列ごとに分割
int out on pixel;   // 出力、要素ごと(画素ごと)に分割
{
    parallel{
	int i;
	int length;  // 行、あるいは列の長さ
	int dt = 0;

	// 1つの要素につき入力1の1行、入力2の1列の積をとります
	for(i = 0; i < 512; i++)
	    dt += in1[i][]*in2[][i];

	out[][] = dt;
    }
}

行列演算メインフローへ戻る

VIOS トップページ