Sunday, September 11, 2011

Building Assembler - Activity 1

I've finished writing the assembler in CoffeeScript (on Node, of course).  It compiles Add, Max, Rect and Pong.  The Pong one ran, but didn't show anything on the screen...  maybe it was too slow?  I used the provided Assembler.bat and compiled it, then compared it to my output and it was identical, so it the assembler is definitely done.

Wednesday, September 7, 2011

Building the Entire Computer - Activity 3

Computer is completed...  Sorta.  The hack files on the site are 404.  The ComputerRest.tst file (and hack file) errors on line 64.  I tried this with my code, and with  Mark Bernard's and got the same result, so I'm going to assume I've done everything right, and the tests are bad.

Tuesday, September 6, 2011

Building the Entire Computer - Activity 2

The CPU is finished.  Some pieces ended up being easier than I thought (the alu stuff lined up nicely, if in reverse from expected) but some of it was harder than I thought it should be.  I ended up guessing at a lot (like which order things were in) and I didn't really like that.  However, I can say I know how it works, so I guess that's what counts.

Sunday, September 4, 2011

Building the Entire Computer - Activity 1

Finished creating 'memory'.  Turns out I was using the address bits backwards in the past.  I'll eventually go back and correct my old HDLs when I'm optimizing them.

Friday, September 2, 2011

Designing Assembly - Activity 3

Finished the screen fill program.  I tested it visually and it works.  Tried it from the command prompt with the .tst file and I'm STILL waiting for it to finish.  lol

Actually, sometimes the CPU emulator crashes...  Bleh.  But whatever.  It's done.

Designing Assembly - Activity 2

Took a bit of a break there...  Hehe.  I ended up just jumping into things this morning before work and got the Mult program almost completely working.  (Forgot to increment the counter and output to @2.)  But it's done now!

Monday, August 29, 2011

Designing Assembly - Activity 1

Read the chapter, verified the programs will run...  Couldn't find the tutorials to read them.  I'm going to assume I can figure it out on my own and continue.

Sunday, August 28, 2011

Registers & RAM, Activity 8

Created the 16bit counter with load and reset controls.  Turned out to be pretty straightforward.

Registers & RAM, Activity 7

RAM16K done, also easy peasy.

Registers & RAM, Activity 6

RAM4K done, easy peasy.

Registers & RAM, Activity 5

Created a RAM512!  Seemed awful familiar.  ;)

Registers & RAM, Activity 4

Created a RAM64.  Went exactly like I thought, and I even got the address pins correct on the first try.

Registers & RAM, Activity 3

Created a RAM8.  This took a little more work than I expected, but it wasn't too different from previous things.

Registers & RAM, Activity 2

Created Register.  Nothing to it.

Registers & RAM, Activity 1

Took me a while to get my head around the fact that HDL is not a programming language, but is instead trying to model chips.  That means that the wires running from chip to chip are all active at the same time.  It doesn't step through each line like a computer program.  They're all active the same time.

So this took me longer than I expected, but I finished making a Bit.

Saturday, August 27, 2011

ALU - Activity 5

Made my own ALU!  Whoo!

I ended up making my own gates for a couple bits of it...  Couldn't figure out how to do it otherwise.  Should probably revisit this later to determine if there's a way to do it without resorting to that.  If HDL let you reference individual bits for internal pins, I wouldn't have had to do it.

ALU - Activity 4

Incrementer created...  Not convinced I did it the best way, though.

ALU - Activity 3

Built a 16-bit adder.  Was quite a bit easier than I expected, though I wonder if it could have been done with fewer lines?

ALU - Activity 2

Stupid mistakes are stupid.  :D

Finished writing Full Adder.

ALU - Activity 1

Built a half-adder.  I actually had this one mostly figured out in my head before I finished reading.  Heh.

Activity 16

Built a DMUX8WAY.  These last 2 turned out to be easier than I expected.

Activity 15

Built a DMUX4WAY.

Activity 14

I've built a MUX8WAY16.  And of course, I did this the hard way, too, before I figured out how to use a MUX4WAY16 for it.

Activity 13

I've built a MUX4WAY16.  Of course, I did it the hard way first.  Heh.

Activity 12

I've built an OR8WAY.

Activity 11

I've built a MUX16.

Activity 10

I've built an OR16.

Activity 9

I've built an AND16.

Activity 8

I've built a NOT16.

Activity 7

I've built a DMux.

Activity 6

I've built a MUX.

Activity 5

I've built an XOR gate.

Activity 4

I've built an OR gate.  These are getting harder. :D

Activity 3

I've built an AND gate.

Activity 2

I've built a NOT gate.