posted by Neko on 3rd November 2008
Well, now I'm at Trinity and have been for the past couple of months, I've been trying to get my head around building PCI cores for the Altera MAXII and interfacing Charles' original design for the robot arm controller onto a PCI bus.
Work on the Altera PCI "Reference Design" went okay, despite having to re-learn PCI management on Linux since large parts of the API changed, I managed to build a small Linux kernel module which tweaks the on-board LEDs and reads a sensor - something that Altera only saw fit to provide a Windows binary driver to do on the development CD.
However the large part of the reference design and all the examples are coded in Verilog which adds that extra step in learning what to do, and that little bit harder since we want to do everything in VHDL (as this is generally what the students here learn and the language I have had the "most" experience with anyway).
Things are progressing slower than I would like, but I'm getting there. This week I will take a break from poking at the PCI Megacore and attempting to glue things together, and take a stab at the Motor, which is a simpler version of the arm controller (only one motor required, not 5, and it needs to be closed loop so there is far less requirement on the "software side" to do anything) on the standalone MAXII or CycloneII board. Once this is tested and working it may be much easier to glue this simpler logic into the PCI target, as the entire functionality of the motor can be exposed in a single 8-bit register and we can control the entire functionality of the motor with very little glue logic. By comparison getting the arm to do anything useful for testing with 5 motors, and getting any logic wrong, just seems like jumping too far ahead.