Forums - Open Redstone Engineers
~!Official CPU Build-off!~ - Printable Version

+- Forums - Open Redstone Engineers (https://forum.openredstone.org)
+-- Forum: Announcements (https://forum.openredstone.org/forum-102.html)
+--- Forum: Announcements (https://forum.openredstone.org/forum-7.html)
+--- Thread: ~!Official CPU Build-off!~ (/thread-12297.html)



~!Official CPU Build-off!~ - LordDecapo - 05-24-2017

Hello All!!!

We will be hosting a CPU buildoff this weekend and its open to anyone wanting to join! Simply read the rules and details below and reply to this thread with a simple "I accept the challenge", show up, and you will be good to go [Image: biggrin.png]

For this contest you are allowed to bring along just an ALU and an Instruction Set / Architecture idea you want to build. They must be at least a 4bit CPU. IS may be any size.
This ALU Can not have an encoder/decoder on its control lines and can not have a register file connect, however it may have Forwards and L/R Shifts installed. You will have 6 hours to do this. The build-off will be hosted on the new Event/Competition plot area on Saturday May 27th @ 11:00AM-ish through 5:00PM-ish.


The scoring will be based on the performance of your CPU running 2 out of 3 (Doing all 3 gets bonus points) the following  programs.  Examples below are simply that examples, you can also do any other code if you want. As long as they meet the same desired result.
  • Fibonacci:
    Starts at 0,1 and goes until it overflows, then either resets or halts. Score for big will be calculated with the average tick per iteration of fib. This example does 2 iterations per loop, so you would count the total length of the loop, (lines 3-9) which is 6 cycles, so given a 10 tick clock you would spend 60 ticks in the loop, with 2 iterations per loop, that gives you a score of 30 ticks. Example:
  1. Clear your Registers
  2. Load an Immediate of 1 into register A 
  3. #START
  4. Add Register A with Register B
  5. Branch to #OVERFLOW If_Cout
  6. Add Register B to Register A 
    //Option 1:
  7. Branch to #OVERFLOW If_Cout
  8. Jump to #START
    //Option 2:
  9. Branch to #START If_NOT_Cout
  10. not needed
    #OVERFLOW//with halt:
  11. Halt
    //with reset:
  12. Jump to Line 1
  • Sequential Squares:
    Find the Squares of the numbers 1-4 for 4 bit CPUs and 1-8 for 8 bit CPUs. Optional challenge: store squares in there respective roots RAM address (Such, 1^2 would be stored in RAM address 1, 2^2 would be stored in RAM address 2, 3^2 would be stored in RAM address 3.Example: (does not show the storing to RAM, HINT: use your A register as a RAM Pointer). Scoring for this program will be nearly the same as fib, average ticks per iteration. This example has 1 iteration per loop. So given the following example, we have the loop running from lines 5 to 9. That is 5 total cycles, if we again use a 10 tick clock, this program would have a score of 50 ticks. Example:
  1. Clear registers
  2. Load an Immediate of 1 into Register A
  3. Add Register A to Register B store to Register B
  4. Add Register A to Register C store to Register C
    //#START of loop, 1^1 is now in B.
  5. Add Register A to Register B store to Register B
  6. Increment Register A
  7. Increment Register C 
  8. Add Register C to Register B Store to Register B
  9. Jump to #START
  • List Comparison:
    Compare the contents of 2 Lists. [9,8,2,5,9,1,1,2] and [9,8,2,5,9,0,1,2]. I will give 3 separate examples for this one. Two with a CPU that has 16 bytes of RAM or more, both with and without pointers. One that does not require RAM but does require a bit more instruction memory as the same lists will be contained in a series of Load Immediate instructions rather than load from RAM. The score on this will be similar to the rest, avg number of ticks per pair of elements compared. Instructions that are *'ed are only needed if your using pointers for Load/Store, Pointers also require 5 registers compared to 3 without... Example:
    With RAM Load/Store Poiners:
  1. Preload your RAM if you have at least 16 bytes. with the following numbers in order from address 0 in RAM to address 15: 7, 8, 3, 5, 9, 1, 1, 2, 9, 8, 2, 2, 9, 0, 1, 2. You may do this preload by hand and put the data in manually into your RAM or use a PROM for this if you want to just read from it. Or any other way you like. 
  2. Clear Registers
  3. Load an immediate of 8 into Register B
  4. Load an Immediate of 8 into Register C
  5. #START
  6. Subtract/Compare Register C from/with Register A (Do not store Result)
  7. Branch to #CHECKED if C and A came back Equal (If0+!Cout... you don't really need the !Cout for this particular case tho)
  8. Load @A (Register A as a pointer) to Register C 
  9. Increment Register A
  10. Load @B (Register A as a pointer) to Register D
  11. Increment Register B
  12. Subtract/Compare (same thing) Register C from D
  13. Branch to #START If C and D came back Equal
  14. Halt or end or something.
  15. #CHECKED
  16. Halt or end or something different.
  • Without RAM Load/Store Pointers or with Load Immediates:
<Working on Adding the other ways to do List comparison now>


Good luck everyone!


RE: ~!Official CPU Build-off!~ - JesseRS - 05-24-2017

(05-24-2017, 08:56 PM)LordDecapo Wrote: <placeholder thread till the full one is written>

post here with a simple "i accept the challenge" if you would like to be in the build-off this Saturday 11am-5pm EST. 
You may premake your IS, design your arch, and make an ALU... ANYTHING other then that must be complete in the 6hour window saturday on the competition plot.

Eye aksipt Challenj (I accept challenge) Big Grin


RE: ~!Official CPU Build-off!~ - Aerodynamic Brick - 05-24-2017

Im in!


RE: ~!Official CPU Build-off!~ - Chibill - 05-24-2017

Big Grin


RE: ~!Official CPU Build-off!~ - zSwifty - 05-24-2017

Ill have a stab at it
( ͡° ͜ʖ ͡°)


RE: ~!Official CPU Build-off!~ - PaukkuPalikka - 05-24-2017

I'll join too, hopefully strategic patience won't take over Big Grin
I accept the challenge


RE: ~!Official CPU Build-off!~ - Matthew - 05-24-2017

Fuck me hard and call me sally LETS MAKE SOME GODAMN MOTHER FUCKING CPUS BOIS


in other words im in


RE: ~!Official CPU Build-off!~ - LambdaPI - 05-24-2017

I'm going to try and fail hatd but at least i tried. Gotta memorize newo's regs now

I accept the challenge but I am not sure i will be able to be on at that time so i might not participate but I'm accepting just in case i do have time and i really like runoff sentences.


RE: ~!Official CPU Build-off!~ - tokumei - 05-24-2017

I've already disqualified myself by been working on a stack design. I'm in and will try to dedicate some time this weekend to the project. Not sure whether I can fit inside the alotted time though.


RE: ~!Official CPU Build-off!~ - LordDecapo - 05-25-2017

I am in ofc lol


RE: ~!Official CPU Build-off!~ - Nickster258 - 05-25-2017

Nickster258 will automatically be declared winner due to his greatness.


RE: ~!Official CPU Build-off!~ - LordDecapo - 05-25-2017

(05-25-2017, 03:43 PM)Nickster258 Wrote: Nickster258 will automatically be declared winner due to his greatness.

u couldnt build shit. bring it


RE: ~!Official CPU Build-off!~ - Nickster258 - 05-26-2017

(05-25-2017, 09:28 PM)LordDecapo Wrote:
(05-25-2017, 03:43 PM)Nickster258 Wrote: Nickster258 will automatically be declared winner due to his greatness.

u couldnt build shit. bring it

I taught you all you know fan.


RE: ~!Official CPU Build-off!~ - EEVV - 05-27-2017

I will participate!


RE: ~!Official CPU Build-off!~ - Nuuppanaani - 05-27-2017

(05-26-2017, 02:20 PM)Nickster258 Wrote:
(05-25-2017, 09:28 PM)LordDecapo Wrote:
(05-25-2017, 03:43 PM)Nickster258 Wrote: Nickster258 will automatically be declared winner due to his greatness.

u couldnt build shit. bring it

I taught you all you know fan.

Are you swearing in Swedish or did you just mistype fam?