LoginSignup
0
0

More than 1 year has passed since last update.

vistaでquartus その26

Last updated at Posted at 2020-08-17

概要

vistaでquartusやってみた。
cpu作ってみた。

cpuの仕様

スタックマシン
スタック長 8word
命令長 16bit
データ長 16bit
アドレス長 12bit
実装メモリー 256word

アセンブラの作成

push

スタックトップに、データを直接積む。

get

メモリーから読み込んで、スタックトップに積む。アドレスを直接指示。

set

スタックトップを、メモリーへ格納。アドレスを直接指示。

jmp

アドレスに飛ぶ。

jz

スタックトップが0なら、アドレスへ飛ぶ。

out

スタックトップをシリアルへ出力。

op

算術計算。加算と比較のみ、実装。

アセンブラでhello_world


push 'h'
out
push 'e'
out
push 'l'
out
push 'l'
out
push 'o'
out
push ' '
out
push 'w'
out
push 'o'
out
push 'r'    
out
push 'l'
out
push 'd'
out
push '!'
out
loop:
jmp loop

命令セット

ニーモニック bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 16進
push I 0 0 0 1 I I I I I I I I I I I I 1000+I
get A 0 0 1 0 A A A A A A A A A A A A 2000+A
set A 0 0 1 1 A A A A A A A A A A A A 3000+A
jp A 0 1 0 0 A A A A A A A A A A A A 4000+A
jz A 0 1 0 1 A A A A A A A A A A A A 5000+A
jnz A 0 1 1 0 A A A A A A A A A A A A 6000+A
out 1 1 1 0 - - - - - - - - - - - - E000
+ 1 1 1 1 - - - - - - - 0 0 0 0 0 F000
> 1 1 1 1 - - - - - - - 0 0 0 0 1 F001
< 1 1 1 1 - - - - - - - 0 0 0 1 0 F002

ハンドアセンブル


        mem[0]  = 16'h1068;//push 'h'
        mem[1]  = 16'he000;//out
        mem[2]  = 16'h1065;//push 'e'
        mem[3]  = 16'he000;//out
        mem[4]  = 16'h106c;//push 'l'
        mem[5]  = 16'he000;//out
        mem[6]  = 16'h106c;//push 'l'
        mem[7]  = 16'he000;//out
        mem[8]  = 16'h106f;//push 'o'
        mem[9]  = 16'he000;//out
        mem[10] = 16'h1020;//push ' '
        mem[11] = 16'he000;//out
        mem[12] = 16'h1077;//push 'w'
        mem[13] = 16'he000;//out
        mem[14] = 16'h106f;//push 'o'
        mem[15] = 16'he000;//out
        mem[16] = 16'h1072;//push 'r'   
        mem[17] = 16'he000;//out
        mem[18] = 16'h106c;//push 'l'
        mem[19] = 16'he000;//out
        mem[20] = 16'h1064;//push 'd'
        mem[21] = 16'he000;//out
        mem[22] = 16'h1021;//push '!'
        mem[23] = 16'he000;//out
        mem[24] = 16'h4018;//jmp 24

環境

windows vista 32bit
quartus ii v13.0
ep2c5t144ボード

コンパイル結果

無題.jpg

実行結果

無題.jpg

以上。

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