Forums - Open Redstone Engineers
My asynchronous pipelined CPU, aka AsPipe - Printable Version

+- Forums - Open Redstone Engineers (https://forum.openredstone.org)
+-- Forum: ORE General (https://forum.openredstone.org/forum-39.html)
+--- Forum: Projects & Inventions (https://forum.openredstone.org/forum-19.html)
+---- Forum: In Progress (https://forum.openredstone.org/forum-20.html)
+---- Thread: My asynchronous pipelined CPU, aka AsPipe (/thread-4837.html)

Pages: 1 2 3 4


RE: My asynchronous pipelined CPU, aka As-Pipe - Magic :^) - 10-20-2014

The program's sufficiently polished for you to have a look at it. Yes, It's not object oriented, don't judge me!
Usage:
AsPasm.py <sourcefile> <targetfile>
or
AsPasm.py <sourcefile>
(that one just writes to an output.txt file.)


RE: My asynchronous pipelined CPU, aka As-Pipe - TSO - 10-21-2014

... You know, an assembly level compiler just maps strings to numbers using arrays and pointers, so the code for the compiler should be no longer than the instruction set.


RE: My asynchronous pipelined CPU, aka As-Pipe - Magic :^) - 10-21-2014

Ye, but this is a general compiler that I use. I customized for my assembly, and I added syntax checking. I also added macros stuff. Most of the functions in the compiler are being re-used for a higher-level language.

EDIT: Also, this is the biggest thing I have attempted besides your basic 'hello world' level stuff. I'm learning as I go xP


RE: My asynchronous pipelined CPU, aka As-Pipe - LordDecapo - 10-27-2014

Love. The progress. Big Grin I'll look at compiler when I get off www work: D


RE: My asynchronous pipelined CPU, aka As-Pipe - Magic :^) - 10-27-2014

I also made a bot to load the compiled output into minecraft. It uses a config file so I can keep it compatible with any changes to my memory designs, which is nice.
http://forum.openredstone.org/showthread.php?tid=4943


RE: My asynchronous pipelined CPU, aka As-Pipe - Magic :^) - 10-31-2014

I've finally gotten the branching stage of my cpu underway. Jump has been fully debugged now, so the rest of the ops should be fine.

It is looping nicely, and the instructions are being tagged correctly.

I also tested the virtual program space. You can select one of four 256 Byte sectors to run your program from. These sectors can be selected by an extended jump instruction. It's so protected that when you press reset, it doesn't reset the sector address XD

The extended jump instruction should really only be used in a bootloader. That's what it was intended for anyways.


RE: My asynchronous pipelined CPU, aka As-Pipe - LordDecapo - 10-31-2014

Nice!! Big Grin I like the idea of a bootloader too.
Hoping to do a similar thing for mine... Also your sector selection gave me a great idea... imma add a new perameter to my branching so u can jump between different sectors.. which would increase my theoretical Max inst memory to 65655(2^16 I believe is that Lol) sectors of 65655 words each. Big Grin


RE: My asynchronous pipelined CPU, aka As-Pipe - Magic :^) - 11-01-2014

Ye basically how I'm implementing my sector thing is to have a normal 8-bit pc, but on a 10 bit rom. I use the top two bits to select sectors. Those two bits are just edited register-style with repeater locks via the extended jump instruction.


RE: My asynchronous pipelined CPU, aka As-Pipe - LordDecapo - 11-01-2014

Schweets.
I have been driving like 12hours yesterday and today. And have been thinking a small bit about how the sector would work for mine. Imma have to wait till my logisim version to add it the exact way I would want to. As it would make the branch inst. 64bits long during a sector section branch... Ya it would be an insanely long branch. But it's the only way I see to have the response time stay consistent