Index ¦ Archives ¦ Atom ¦ RSS

Using the Altera USB-Blaster on Fedora

Altera's Quartus tools include some special software to download bitstreams to their devices over USB (a DE-2 eval board, in my case). They require some tricky work to set up properly on Fedora - my dev host of choice. But you're in luck! I've packaged up an RPM that takes care …


Fake RAM, load/store and push

Progress report time....

I need RAM in order to implement/test most instructions. To that end, I've implemented a fake data cache that is always accessed within a single cycle during the WRITE pipeline stage. Eventually this will have to be replaced with a real data cache that reads/writes …


GTKWave Tip #2: Translate Filter Files

Tip #1 was about using an external process to perform dynamic translations of signal display values. GTKWave can also perform simple static translations of data. In the example below, for instance, moxie's execute unit is receiving a 4-bit signal identifying "register A" (riA_i) for whatever operation is about to happen …


GTKWave Tip #1

GTKWave is a new tool for me, so I'll use this space to post useful tips as I discover them.

The first tip comes from Tony Bybell, author of GTKWave, who pointed me at some helpful functionality in a recent blog comment. You can enhance GTKWave's waveform display by replacing …


Branch delays

I've coded up logic for more arithmetic instructions, register moves, as well as direct and indirect jumps. For jumps, I simply pass a branch signal from the execute stage back to the fetch stage, as well as the computed target address. Here's some code that works now:

.text
    xor $r0 …

A simulation milestone for the Muskoka SoC!

A moxie-based SoC had it's first successful simulation run today....

gtkwave display of first code run

Pretty exciting! So, here's what's happening...

The SoC, code named "Muskoka", has three main components: the moxie core, a wishbone switch and a ROM device. The switch was easy to implement, as I just have a single bus master (moxie …


RTEMS status update

The RTEMS port in moxiedev is looking pretty good right now. Here's a test of the RTEMS network loopback device running on the moxie gdb simulator.  The first two client connections fail in this test.  It's supposed to fail in the first case, but I'm not sure about the second …


Bisecting GCC

The thing about GCC is that things break when you take your eye off the ball. And this is what happened during my months long hiatus from the moxie project. Somewhere between early March and today, the moxie GCC port lost the ability to compile non-trivial code, notably libgcc. Firing …


On-chip communications

I need to build real SoC infrastructure around my developing core in order to test it on real hardware. For the most part, this means a memory controller and IO devices. I've decided to implement a shared-bus wishbone-style interconnect for these devices. Wishbone is an open source on chip bus …


Quartus II and the Cloud: Not There Yet...

Altera's Quartus II software is now running on my Fedora box, but I was really hoping to load it into a grid of Amazon EC2 instances so I could batch out jobs for synthesis, place and route. Unfortunately the free-beer Quartus software requires a license file that is generated based …

© Anthony Green. Built using Pelican. Theme by Giulio Fidente on github.