0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

FPGAプログラミング大全Xilinx編第2版 TD4 #6

Posted at

FPGAに再入門しようと思いたちFPGAプログラミング大全Xilinx編第2版を頭からやっていく6日目

時期的にも良いので一人Advent Calendarで25日続ける

FPGAプログラミング大全ではCPUを作る方に行かないので今日からはCPUの作り方と合わせてやっていくことにする

25日終了時の目標

4004等の実CPUの実装

目次

# タイトル
01 ツール導入
02 実機テスト下準備
03 実機テスト
04 クロック利用
05 シミュレーション検証
06 TD4
07 未定

環境

【実装ボード】 Digilent Artix-7 35T Arty FPGA 評価キット
【OS】 Windows10
【IDE】 Vivado 2022.2

今日のゴール

TD4の命令セットをまとめる

TD4の仕様

CPUの作り方に載っているTD4を実装できるように仕様をまとめる

大枠

  • 4bit CPU
  • 演算用レジスタは2つ、それぞれ4bitずつ
  • フラグはキャリーのみ
    • 加算でキャリーが発生した時に1になるのみ
  • 入出力が4bit

命令フォーマット

bit7 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

上位4bitをオペコード、下位4bitをイミディエイトデータにする

命令セット

命令 意味 オペコード
ADD A, Im AレジスタにImを加算 0000
ADD B, Im BレジスタにImを加算 0101
MOV A, Im AレジスタにImを入れる 0011
MOV B, Im BレジスタにImを入れる 0111
MOV A, B AレジスタにBのデータを入れる 0001
MOV B, A BレジスタにAのデータを入れる 0100
JMP Im Imアドレスにジャンプ(絶対アドレスのみサポート) 1111
INC Im キャリーフラグがない場合のみImアドレスにジャンプ(必ず加算命令の直後のみ実行) 1110
IN A 入力ポートからAレジスタに転送 0010
IN B 入力ポートからBレジスタに転送 0110
OUT B Bレジスタのデータを出力ポートに転送 1001
OUT Im データをそのまま出力ポートに転送 1011

今日はここまで

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?