Gfxile
April 24, 2014, 10:28:41 PM *
Welcome, Guest. Please login or register.

Login with username, password and session length
News: New links added in the Links section.
 
   Home   Help Search Login Register  
Pages: [1]
  Print  
Author Topic: SS216 - Programable 4-bit CPU!  (Read 10231 times)
danielbj
Newbie
*
Posts: 4


« on: July 25, 2009, 04:06:40 AM »

This is my greatest Atanua project so far.
I started out with another 4-bit CPU (SS84), but as i was about to be finished with it, i found out the design of it was.... welll... Not to good.

So i went back to the planning. Not in an attempt to save the crappy SS84. But to make another SS84.... That actually WORKS Cheesy

So after six months of studying Processors, Playing with z80 emulators, programming raw opcodes, and researching the commodore 64 into some of the more advanced features, i was ready to plan a new CPU:
THE SS216.
I draw some plans of it and began building it in Atanua. Now it is done, and after the final testing+bugfixing it is totally ready to run programs Cheesy

TECHNICAL DATA:

Bus width: 4 Bits
Clock speed: Default 50 Hz, But you can shift out the clock for speeds up to 500 Hz
Instructions per second: Each instruction takes 5-10 Clock cycles, so that may be 5IPS at its slowest
Instruction set: SS216 has 16 different instrucions:

HEX   BIN   OPERATION
------------------------------
0   0000   NOP
1   0001   LD T, D
2   0010   LD T, (D)
3   0011   LD (D), T
4   0100   LD X, Y
5   0101   LD X, (Y)
6   0110   LD (X), Y
7   0111   INC X
8   1000   DEC X
9   1001   ADD X, Y
A   1010   JP D
B   1011   JPZ D
C   1100   JPNZ D
D   1101   IN X, Y
E   1110   OUT X, Y
F   1111   HALT

Registers: 4: A, B, C and T registers
RAM: 8 bytes: 16 adresses with 4 bits at each

The way you input data and opcode, is by adding it to the IR (Instruction register). This is a register with 16 adresses and 8 bits at each: 4 bit Opcode and 4 bit data (D). The data can also operate as register pointers (X and Y, Two bits each):
00=A
01=B
10=C
11=T

So a reading from the IR will look like this in a Data instruction:
(O=Opcode, D=Data...)
OOOO DDDD

And like this in an XY instruction:
OOOO XXYY

Now i'm just asking you if you want me to upload this machine? Smiley
Logged
Muzzfar
Newbie
*
Posts: 1


« Reply #1 on: August 27, 2009, 01:05:19 PM »

where can i find the circuit diagram. or kit


Logged
icekool
Newbie
*
Posts: 9


« Reply #2 on: August 29, 2009, 12:05:57 AM »

I mean you have to ask if we want you to upload ur work? YES we would lov for you to upload it!!! I'm not a pro so when you say opcode & voo-doo x-rated 4 my ears, but in raw logic gate I get some what of a clue, Ok to be honest I kinda kno what opcodes are I just dont really kno how to use them but I think I do use them I just dont know that they are opcodes! do u understand me? or is it like me tring to understand u. I'll make it a little easier, I've read CODE by Charles Petzold, & still I dont kno if Im using opcodes but here, take a look at what I hav put togather!!!

OK MY IMAGES WILL DO WHAT THEY SHOULD DO HERE SO IF YOU WANT TO SEE MY "SYSTEM"

http://i614.photobucket.com/albums/tt227/high_risk_speeds/main.jpg

More info on this system in my other post
Logged
danielbj
Newbie
*
Posts: 4


« Reply #3 on: September 22, 2009, 11:03:36 PM »

Really. I don't know what you mean excactly D:

But if you give me a site for uploading, you can see if it answers your question? Cheesy
Logged
icekool
Newbie
*
Posts: 9


« Reply #4 on: September 28, 2009, 08:42:52 AM »

photobucket.com for photos, spruz.com, I think it is, is an easy to get started free web hosting service, they give you 10mb to store data online u can share from there
Logged
danielbj
Newbie
*
Posts: 4


« Reply #5 on: October 30, 2009, 03:30:09 PM »

Sorry for the great time delay, but i got a lot of schoolwork, AND i've been working on an 8-bit CPU.
and i can tell short about that:


SS8256:

8 bit data/adress busses

256 bytes of RAM

RAM is now also used to store the program, wich means i got rid of the seperate P-RAM (Or program-RAM, or even ProgRAM Wink )

100 hz. For some reason the data is getting messed up above 200 HZ :S

Each instruction now takes 4-6 clock cycles; half of the SS216.

A newly designed control-unit, makes it possible to HALT during processing without getting faulty logics, wich sometimes happens in the SS216.

256 Opcodes. New functions such as:
Subtract, Comparing, Jump if Greater than/less than/Equal to, AND, OR, XOR, NOT, and stack commands (Push and Pop).

I've also made a Display of diode-lamps. 8x4 controlled by output. (This can be modified to control some kind of external device aswell Wink )
Logged
danielbj
Newbie
*
Posts: 4


« Reply #6 on: October 30, 2009, 03:33:49 PM »

I have now uploaded the SS216 Wink
http://www.filefactory.com/file/a076gf4/n/SS216_atanua


And the opcodes:
http://www.filefactory.com/file/a076gf7/n/INSTRUCTION_SET_txt

Ask me if you want a tutorial on how to operate this machine Wink
Logged
Sol_HSA
Nowhere whenever
Administrator
*****
Posts: 208



WWW
« Reply #7 on: October 30, 2009, 08:59:37 PM »

Wow, that looks like a lot of work =)
Logged

http://iki.fi/sol - my schtuphh
icekool
Newbie
*
Posts: 9


« Reply #8 on: November 13, 2009, 11:34:39 AM »

OK, "o" turns it on, "p" pauses, u counts up threw memory, "j" counts down threw memory "i" resets to address 0000.. the yellow LED are inputs.. green LED are data in memory address "red LED's" Man I have to say, nice work.. Now I hav only been playing w/ this for a few mins now but I cant place my finger on a few things.(I havent traced wireing yet, kinda pressed on time right now, u kno how that goes!) Keys "b"(top row cyan LED's) and "n"(bottom row cyan LEDs) hold data, is this x and y? also keys "t" and "y" place data in memory but do I enter the opcodes to key "t" the top row of green LEDs or to "y" the bottem row of green LED's? or does it switch from each one?

Here is what I hav been able to do so far, I sent keys "b" and "n" to output on br. blue LED's...

Man thanks for the time in putting this togather and uploading. Its nice work.
Logged
icekool
Newbie
*
Posts: 9


« Reply #9 on: November 13, 2009, 11:58:59 AM »

Here is what I hav been able to do so far, I sent keys "b" and "n" to output on br. blue LED's...

1101
0100
1001
1110

well, I just added two numbers!!!! opcodes must be enter on top row of green LED's but what is the bottom green LED's for?

Why is the 8 LED's for everything?
Logged
Onforty
Newbie
*
Posts: 6


« Reply #10 on: September 10, 2010, 05:13:25 PM »

Bump, i really wanna know how to use this Cheesy
Logged
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.13 | SMF © 2006-2011, Simple Machines LLC Valid XHTML 1.0! Valid CSS!