vistaでquartus その53

#概要

vistaでquartusやってみた。
avrなcpu作ってみる。
インターフェースの実装。

#考え方

inは、その都度、シリアルを確認して、レジスタに取り込む。
ポーリングで入力を待つ。
outは、fifoに出力する。
エージェントが、空になるまで送り出す。

#inの実装。

```
	parameter CMD_IN   = 16'b10110xxxxxxxxxxx;

			if (opcode[15:11] == CMD_IN[15:11])
			begin
				registers[dest[4:0]] <= din;
			end


```


#outの実装。

```
	parameter CMD_OUT  = 16'b10111xxxxxxxxxxx;

			if (opcode[15:11] == CMD_OUT[15:11])
			begin
				dout <= registers[dest[4:0]];
				out <= 1;
			end

```

#アセンブラをrom化

```
			rom[0] <= 16'hE000; //     ldi r16, 0x00
			rom[1] <= 16'hE4F0; //     ldi r31, 0x40
			rom[2] <= 16'h9503; // loop:   inc r16
			rom[3] <= 16'h95F3; //     inc r31
			rom[4] <= 16'hB9F0; //     out 0, r31
			rom[5] <= 16'h310A; //     cpi r16, 0x01a
			rom[6] <= 16'hF7D9; //     brne loop

```

#結果

```
D煇・YHIRSBCDMNWXGHIRSBCLMNWXGHQRSBCLMVWXGHQ・BCLMVWFGHQRABKLMVWFGPQRABKLUVWFGPQZABKLUVEFGPQZAJKLUVEFOPQZAJKTUVEFOPYZAJKTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDETCDMNOXYHIRSTCDMNWXYHIRSBCDMNWXGHIRSBCLMNWXGHQRSBCLMVWXGHQRABCLMVWFGHQRABKLMVWFGPQRABKLUVWFGPQZABKLUVEFFOPYZIJSTUDENOXYZIJSTCDENOXYHIJSTCDMNOXYHIRSTCDMNWXYHIRSBCDMNWXGHIRSBCLMNWXGHQRSBCLMVWXGHQRABCLMVWFGHQRABKLMVWFGPQRABKLUVWFGPQZABKLUVEFGPQZAJKLUVEFOPQZAJKTUVEFOPYZAJKTUDEFOPYZIJKTUDENOPYZIJSTUDENOXYZIJSTCDENOXYHIJSTCDMFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOTCDMNOXYHIRSTCDMNWXYHIRSBCDMNWXGHIRSBCLMNWXGHQRSBCLMVWXGHQRABCLMVWFGHQRABKLMVWFGPQRABKLUVWFGPQZABKLUVEFOPQZAJKTUVEFOPYZAJKTUDEFOPYZIJKTUDENOPYZIJSTUDENOXYZIJSTCDENOXYHIJSTCDMNOXYHIRSTCDMNWXYHIRSBCDMNWXGHIRSBCLMNWXGHQRSBCLMVWXGHQRABCLMVWFGHQRABKLMVWFGPQRABKLUVWFGPQZABKLUVEFGPQZAJKLUVEFOPQZAJKTUVEFOPYZAJKTUDEFOPYZIJKTUDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNODMNWXYHIRSBCDMNWXGHIRSBCLMNWXGHQRSBCLMVWXGHQRABCLMVWFGHQRABKLMVWFGPQRABKLUVWFGPQZABKLUVEFGPQZAJKLUVEFOPQZAJKTUDEFOPYZIJKTUDENOPYZIJSTUDENOXYZIJSTCDENOXYHIJSTCDMNOXYHIRSTCDMNWXYHIRSBCDMNWXGHIRSBCLMNWXGHQRSBCLMVWXGHQRABCLMVWFGHQRABKLMVWFGPQRABKLUVWFGPQZABKLUVEFGPQZAJKLUVEFOPQZAJKTUVEFOPYZAJKTUDEFOPYZIJKTUDENOPYZIJSTUDENOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYPYZIJKTUDENOPYZIJSTUDENOXYZIJSTCDENOXYHIJSTCDMNOXYHIRSTCDMNWXYHIRSBCDMNWXGHIRSBCLMNWXGHQRSBCLMVWXGHQRABKLMVWFGPQRABKLUVWFGPQZABKLUVEFGPQZAJKLUVEFOPQZAJKTUVEFOPYZAJKTUDEFOPYZIJKTUDENOPYZIJSTUDENOXYZIJSTCDENOXYHIJSTCDMNOXYHIRSTCDMNWXYHIRSBCDMNWXGHIRSBCLMNWXGHQRSBCLMVWXGHQRABCLMVWFGHQRABKLMVWFGPQRABKLUVWFGPQZABKLUVEFGPQZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKYHIRSTCDMNWXYHIRSBCDMNWXGHIRSBCLMNWXGHQRSBCLMVWXGHQRABCLMVWFGHQRABKLMVWFGPQRABKLUVWFGPQZABKLUVEFGPQZAJKKTUDENOXYZIJSTCDENOXYHIJSTCDMNOXYHIRSTCDMNWXYHIRSBCDMNWXGHIRSBCLMNWXGHQRSBCLMVWXGHQRABCLMVWFGHQRABKLMVWFGPQRABKLUVWFGPQZABKLUVEFGPQZAJKLUVEFOPQZAJKTUVEFOPYZAJKTUDEFOPYZIJKTUDENOPYZIJSTUDENOXYZIJSTCDENOXYHIJSTCDMNOXYHIRKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOP

```


以上。