Monthly Archives: November 2006

Not so much learning today

I apologize to Professors Hill and Solomon, because I don’t think I did much today but offend them by continually nodding off through their lectures… oops. Dave and I stayed up, well, a bit late last night finishing our 552 project. I got up at 7:30 Monday morning, and then went to bed at 1:15 PM this afternoon.

The moral of the story is: do your work when it’s assigned, not when it’s due.

Now do I go and sleep more or do I try and do something tonight?

Still debating

I’m still debating how to handle moblogging, even as I phoned in my picture leaving for Florida today. One option is Flickr + Blogger to automagically create blog posts that redirect to flickr. The other option is to write some mail processing scripts of my own, and send the pics from my phone to myself.

If I go with route two, I can possibly integrate with the XMLRPC work that the Gallery Summer of Code projects supposedly completed. I will have to look into this further.

Meanwhile, here is the history of what could have been my mobile blog to date, had I not been too lazy to get it up and running earlier:

Colin’s Moblog

…Very Soon

…Very Soon
Originally uploaded by CCmcGeek.

I should have known that a) there would already be a free, simple way to do this and b) Paul would know what it was. Thanks Paul! I may still write my own someday, but it no longer need be soon. I guess I’m still not accustomed to having a national network instead of Cellcom. It’s nice! Oh yeah- the pic is just a random view out my window past the speaker.

Moblogging… Coming Soon

I realize I’m doing a pretty crappy job of keeping this blog updated lately… sorry! As many of you know, I ended up taking a set of classes this semester with very few exams (i.e., only one midterm + one final per course), but with large projects in all. They’ve been consuming most of my free time, and blog-apathy is my excuse for the rest.

I have, though, been taking pictures over the past couple weeks of stuff that I wanted to post to my blog. I would post a whole bunch here, but I don’t want to be a problem for those with less-than-blazing-fast broadband connections (hi Jeni!), so instead I’ll just post one, and then direct you to my “moblog” gallery (Coming Soon… after I get out of class).

On the topic of moblogging, I just figured out this morning how to send picture messages to my email via my cell phone. I can’t believe I never tried that before! Expect code to be forthcoming this weekend for turning those emails into moblog posts. Then I suspect you will see my blog post frequency increase again.

Anyway, here’s one of the pictures I took recently:

This is why we will have to shut off the fountain soon… it’s icing over 🙁

Huzzah! Functional Branching!

Dave and I spent all of one late night implementing the first generation (unpipelined) of our 552 project, a 16-bit MIPS processor in Verilog, and then we spent a couple hours this afternoon debugging it. Around 5:15 we ran into a snag:

The assembler we were provided was for a slightly different instruction set architecture than the one we were required to implement. Specifically, in that other ISA, PC-relative branch offsets assumed a least-significant bit of 0 and thus didn’t waste a bit in the instruction for that zero. As a result, the next PC calculation (for that ISA) would be PC < - PC + 2 + (sign ext. Immed. << 1).

This is a problem, because Our ISA is byte-addressable, and says the PC calculation should be PC < - PC + 2 + sign ext. Immed. (See beqz instruction for an example.)

Those of you familiar with computer architecture will recognize this as a severe problem: The assembler is generating offsets to odd byte addresses, due to the off-by-one-bit error, while all of our instructions are word-aligned.

On the upshot, I was able to hack around this in the assembler source and get a working version. Plug in the new binary, fix a minor bug in the parameterization of our sign extender and voila:

This is the (admittedly meaningless out of context) output of running the branchTest test program (assembled by my modified assembler).

To see the full output and verify perfect branching functionality for yourself, here is a link to the full waveform [PDF].