Published Jun 18th, 2014, 6/18/14 4:01 pm
- 744 views, 1 today
- 68 downloads, 0 today
0
Hello friends.
I have built 8 bit computer without using command blocks.
Computer is using allmost 15 simple commads.
It has 4 registers, buffers for registers and instruction pointer.
8 bit data buss, 8 bit address buss, 3 bit control buss(read, write readdy).
There are currently 2 memmory moduls connected (16 moduls can be connected). Each contains 16 cells. Width of one cell is 8 bits.
Inputs are marked with green blocks, outputs are marked with yellow blocks.
Reset is marked by teal blocks.
You may coppy all blocks to use in your project.
Pink blocks are 8 bit memmory cells. Teal input is reset.
Red blocks are 8 paraler ANDs.
Green blocks with + sighn are adders.
Great grey block transforms binary number to 7 segment display.
In operating memmory there are two programs right now.
First program set and infinitly increments number(still dont have any mechanism to compare two numbers).
Second program transorms binary number and writes it on 7 segment display.
In future i plan add interupt signal, mechanisms to compare numbers and
transfer signal using 2 wires(i dont know how to translate this technology).
Sorry for my english and thanks for watching to my upload.
*****************************************************
3 types of instructions.
Instructions that work with:
=====================
1. no register
0000 xxxx
---------------------
0000 0100
set index
next bit determines where to jump
0000 0001
jump
next bit determines where to jump
0000 0010
begin
next bit determines where to jump
end
0000 0011
=====================
2. one register
0xxx xx(R1)(R1)
---------------------
0100 01(R1)(R1)
write from index
0100 01(R1)(R1)
write from next bit
0101 10(R1)(R1)
push
0101 01(R1)(R1)
pop
0101 00(R1)(R1)
transform number in binary code
to signal for 7 segment display
0110 00(R1)(R1)
displays value from R1 on 7 segment display
=====================
3. two registers
0xxx (R1)(R1)(R2)(R2)
---------------------
1000 (R1)(R1)(R2)(R2)
sum
(R2)=(R1)+(R2)
*****************************************************
PROGRAM 1:
(address in memmory, value)
0. number 1
1. set index
2. number 0
3. write from index
4. write from next bit
5. number 2
6. sum (00)(01)
7. begin
8. number 10
9. jump
10.number 5
PROGRAM 2:
(address in memmory, value)
11. push(01)
12. transform(01)
13. display(01)
14. pop(01)
15. return
I have built 8 bit computer without using command blocks.
Computer is using allmost 15 simple commads.
It has 4 registers, buffers for registers and instruction pointer.
8 bit data buss, 8 bit address buss, 3 bit control buss(read, write readdy).
There are currently 2 memmory moduls connected (16 moduls can be connected). Each contains 16 cells. Width of one cell is 8 bits.
Inputs are marked with green blocks, outputs are marked with yellow blocks.
Reset is marked by teal blocks.
You may coppy all blocks to use in your project.
Pink blocks are 8 bit memmory cells. Teal input is reset.
Red blocks are 8 paraler ANDs.
Green blocks with + sighn are adders.
Great grey block transforms binary number to 7 segment display.
In operating memmory there are two programs right now.
First program set and infinitly increments number(still dont have any mechanism to compare two numbers).
Second program transorms binary number and writes it on 7 segment display.
In future i plan add interupt signal, mechanisms to compare numbers and
transfer signal using 2 wires(i dont know how to translate this technology).
Sorry for my english and thanks for watching to my upload.
*****************************************************
3 types of instructions.
Instructions that work with:
=====================
1. no register
0000 xxxx
---------------------
0000 0100
set index
next bit determines where to jump
0000 0001
jump
next bit determines where to jump
0000 0010
begin
next bit determines where to jump
end
0000 0011
=====================
2. one register
0xxx xx(R1)(R1)
---------------------
0100 01(R1)(R1)
write from index
0100 01(R1)(R1)
write from next bit
0101 10(R1)(R1)
push
0101 01(R1)(R1)
pop
0101 00(R1)(R1)
transform number in binary code
to signal for 7 segment display
0110 00(R1)(R1)
displays value from R1 on 7 segment display
=====================
3. two registers
0xxx (R1)(R1)(R2)(R2)
---------------------
1000 (R1)(R1)(R2)(R2)
sum
(R2)=(R1)+(R2)
*****************************************************
PROGRAM 1:
(address in memmory, value)
0. number 1
1. set index
2. number 0
3. write from index
4. write from next bit
5. number 2
6. sum (00)(01)
7. begin
8. number 10
9. jump
10.number 5
PROGRAM 2:
(address in memmory, value)
11. push(01)
12. transform(01)
13. display(01)
14. pop(01)
15. return
Progress | 100% complete |
Tags |
2949827
2
Create an account or sign in to comment.