Progress #4Posted on 2008/02/28 - 19:51
Sorry to keep you all waiting. I've been busy. First, I had to wrap up the project for this semester for my university which resulted in the final version of the PID (dutch), the final design document (dutch), and a presentation (pdf printout, apple keynote, dutch again and 2+MB each). I also had to dig up the original requests (project outline and accompanying letter - all dutch) and finish up the hours spent on the project. I did a little live demo which took some effort (hooking up cables and such while in a presentation gave imho a really sloppy impression - so I decided not to do this at fosdem) but worked out all right and with that, this semester was officially over.
Then, I had to put together the FOSDEM presentation (pdf printout, apple keynote - english, 2+MB each) and after that all hell broke loose. People who were going to drive us to Belgium cancelled, so we didn't have a place to stay, meaning we had two days to get everything sorted out again. Try getting a hostel of some sort two days before an event which attracts about 4000 people and you just know you're in trouble. But anyway, Reinder ended up driving and Wouter Verhelst (thanks!) offered us a place to stay in his office. No showers or other luxuaries, but we didn't quite care anymore at this point. So, after that FOSDEM was a blast and saw & learned lots of new cool stuff about the linux graphics subsystems, and what other people are doing. People did end up a little disappointed that I didn't bring a machine to demo (I only had the card with me) and in retrospect I just worried to much and should've brought one. Oh well, to err is human I guess. On the other hand I ended up having some really interesting discussions about what other people would like to try out with this card and started thinking about the original plan of implementing full VGA support and continuing with full 2D support after that. Maybe that's not a good idea after all. But anyway, I'm getting ahead of myself.
With the new semester already started a couple of weeks ago (you've got to love this whole semi-overlapping system, while putting the final touches on one project you're supposed to start with the next, which is completely impossible in reality) I had some catching up to do, meaning the creation of a new accompanying letter and project outline, PID and design document (all dutch again). The last one isn't quite finished yet, I'm still working on it. For the people who take the time in reading it; you might notice they look an awful lot like the ones from the previous semester. That's just because the project looks an awful lot like last semester too. :)
Simultaneously I'm now following a class called interface technology, where they're trying to learn us new stuff about some PC interfaces. Better late than never I guess, but I have to do a presentation for that as well next week about, guess, PCI. The presentation pdf printout, apple keynote, dutch) walks through some of the history and basic layout of the bus. While putting this together I realised I made yet another error on the prototype; I never routed the Arbiter lines. This isn't a gigantic issue (the card will work) but it means it'll be impossible to do any sort of DMA with this card. That might be a little to slow for comfort, so the todo list for the next circuit board now looks like this;
- Fix power line for LM1086
- Fit config pins for JTAG / master serial selection
- Route M66 capacitor
- Route #REQ and #GNT lines
- Replace CPLD and VGA connector
I also want to do a proper logo on the final card which requires some final touches - it isn't quite finished yet. The M66 capacitor is probably optional but I want to add it anyway just in case somebody tries to clock the card at 66MHz and the motherboard refuses because a single capacitor is missing. It'll be tricky to do though, it's one of the most annoying spots on the board. The CPLD turns out to be pretty small (I knew it was small, but this might be too small for proper PCI support) so I'll replace it with the XC95288XL and the VGA connector I'm using at the moment doesn't have pins to keep the connector in place (and the board doesn't have spacing around the holes in the solder mask to solder any such pins) which makes plugging a VGA connector in or out really flaky. They're not really big deals but I'll have to find a proper replacement. Some other things I want to test before I call the board sem-final are;
- Test the memory
- Get some basic PCI working
- Do some multi-MHz clocking on certain signals
- Find out more about possible ESD considerations
Since I haven't cooked up a memory controller yet I'm still in the dark about whether or not the SDRAM is working. Same for PCI, the CPLD seems to be working fine but the moment I plug the card in a system it turns the entire computer in an overengineered power brick. This is probably because I'm not properly handling incoming PCI commands but I want to make sure there's nothing more fundamentally wrong with the card. Also, some EMI and power decoupling issues might arise when trying to clock the card at very high speeds, and I want to make sure everything can do at least a few dozen MHz without freezing up randomly. Finally, I'm clueless about how much ESD decoupling the VGA connnector requires. Officially it isn't a hotplugging interface but that doesn't stop 99% of the users of doing so occasionally.
Once I get above points out of the way (hopefully that won't take me another month) I made the suggestion at FOSDEM to produce a small batch of cards within about a month, so other people can start testing and working on the project. This, of course, with a big NO WARRANTY since it still isn't a fully verified consumer product but I know there are some people who'd really like to get started. This also helps us collect a little bit of feedback - if more people are doing EMI testing and such, we only get some really good hardware quicker. The costs for a single card (when doing a batch of 25) would be an 150 euro, if you want to join in get in touch with me. My email address can be found with some google-effort (comp.arch.fpga is a good start) or send a mail to the mailinglist. The moment we have 25 or more people I'll put some effort in arranging a batch to be assembled professionally. Please only contact me if you are sincerely interested.
Sorry again for the lack of updates here, cranking out 3 presentations and about 8 documents takes a little time. Hope you'll forgive me.
[: wacco :]