neosでlogix その41


概要

niosでlogixやってみる。
練習問題、やってみる。
構想編。

練習問題

cpuを実装せよ。
1から100まで、数えよ。

方針

レジスタマシンを作る。
機能毎に、実装する。

命令セット

命令セットを作る。

code ニーモニック 動作
0 nop -
1 ifc adr if (c > 0) pc = adr
2 ldb i b = i
3 ldc i c = i
4 inc b = b + 1
5 sub c = c - 1
6 out tostr b

1から100まで、数える。

  ldb 0
  ldc 100
loop:
  inc
  out
  sub
  ifc loop
  nop

ハンドアセンブル

2 0
3 100
4 0
6 0
5 0
1 2
0 0

プログラムカウンタ部

  • 入力

パルス、行番号

  • 出力

パルス、プログラムカウンタ

  • 動作

タイマーでプログラムカウンタをインクリメント

ROM部

  • 入力

パルス、プログラムカウンタ

  • 出力

パルス、オペコード、オペランド

  • 動作

プログラムカウンタの示すROM内容を命令デコードして出力する

実行、レジスタ部

  • 入力

パルス、オペコード、オペランド

  • 出力

パルス、cレジスタ、パルス、行番号

  • 動作

命令を実行する

アウト、表示部

  • 入力

パルス、cレジスタ

  • 出力

なし

  • 動作

cレジスタの値を文字にして表示する

以上。