FPGA USB Interface
Ok.. found a site http://fpgaz.com/usbp/ that talks about creating that usb/pc connection and has some libraries to use. I’m also scouring through datasheets at Xilinx regarding the system. Apple’s support of USB development seems to be top notch, minus the fact that it needs to be written in C#..
The guys @ picocomputing demoed a system like this at a conference, so i’ll try contacting them to get some additional information..
Also threw up a post to comp.arch.fpga describing the project to drum up some additional information/suggestions..
edit: heres a site with a mpeg2 fpga implementation…using the same board I have.. nice!
http://www.kdvelectronics.eu/mpeg2fpga/mpeg2fpga.html
Quickest way to learn the way of the FPGA
I’ve been reading a couple books on VHDL/Verilog and have come to this conclusion. Learning for the sake of learning is lame. There must be some purpose behind learning, ie. a project.
So. Here are two i’m bouncing out there.
1. (FPGA) PAR2 Repair Engine (Reed-Solomon Decoder)
2. (FPGA) x.264 to h.264 conversion engine
Both projects will utilize USB/PCI-x connections to pipe data directly from the disk to the FPGA that will do the offboard processing of the data.
Two of the things that are the most annoying to me are repairing broken usenet downloads (rare, but it does happen) if more than a few blocks are missing (takes about an hour at times) and trying to watch anything in HD that’s not already encoded in WMV-HD on my xbox 360.
What would be optimal is to integrate this with the already complete solution to downloading via hellanzb. Download a NZB, hellanzb processes it, if its broken, it sends the par2repair processing over to the FPGA. If its an x.264, it begins piping the file over to the FPGA for (hopefully) translation to h.264.
So, what we’ll do is start this from the most basic level. Problem identification and….flowcharting!
Here are my initial observations
- Both projects are similar in that data from the computer hard drive needs to be transferred to the FPGA, processed, then re-assembled on the pc.
- I’m assuming this is a fairly common practice, so examples on the internet regarding the buffering necessary for this type of transfer abound.
- I need an introductory understanding of x.264 vs. h.264 before I can proceed with that portion
- Getting data in and out via USB might be a quicker, easier way to get something started
I’ll hook up the ML-505 to the trusty macbook pro and get USB/disk transfer going this week and go from there. Stay tuned for updates.
No commentsFPGA Design from SCRATCH (seriously)
FPGAs are the coolest thing since sliced bread and no one knows how to use ‘em. That’s not quite true, but to say that there’s a steep learning curve in getting to the mystical “holy grail” of Verilog/VHDL is an understatement.
I read another blog here, but it quickly proved itself to be a little too advanced for me and leaves out some basics beginners (like me right now) need to get started. The guy has years of ASIC development and in transferring that over to FPGAs he leaves out a lot of “obvious to a seasoned vet” type things. I’ll be filling in those areas here.
I will become a subject matter expert in the field of (redundant acronym warning) Field Programmable Gate Arrays within a year, so hang on because its going to be a fast, fun filled ride!
What you need to get started
NOTE: Ok.. understandably, there are a lot of FPGA vendors out there including Xilinx and Altera. My personal preference is Xilinx b/c they well, invented FPGAs and do a hell of a job advertising. The upside is that because we’re using standardized high-level languages such as Verilog/VHDL, all the designs made on any one platform will be transferrable (should be assuming you’re following abstract form) to a different platform.
1 - FPGA Development Board
For ease of explanation, i’ll suggest you invest in the XILINX Virtex ML-505 development board because its what i’m using. Yes, I know its $1300, but it has everything you could possibly need and then some.
If the price is prohibitive (and it is for me, but my company provided it for me), you can pick up any number of the “off the street” boards. Try the SPARTAN-3 Development Board from www.digilentinc.com. I have the x-board CPLD development kit they provide and its proven to be a solid platform.
I’ll purchase this one (SPARTAN-3 Board) in the next couple weeks and make the necessary additions to what i’ve already done on the ML505 for those who have it, and not the 505. As for a comparison, the ML505 Virtex-5 chip is ~$550 while the SPARTAN-3 chip is ~$45…
NOTE: No matter what FPGA development board you get, ensure you can configure the device via USB. I’ll repeat that, ENSURE YOU CAN CONFIGURE VIA USB. Its really important because the official xilinx JTAG adapter that uses USB is pretty expensive > $150. If you get the ML505, you can afford it, so go ahead and get the official adapter, otherwise, ignore it.
The boards from digilent have the USB based configuration (when you download your compiled project into the FPGA) option.
No commentsChanges and a new part time job
Ok.. Well, since I last posted I’ve graduated college and have secured a full time position as an electrical engineer.
I’ve also started a web design company, Thompson Digital Media.
Once Thompson Digital is doing more business than simply web design, i’ll transition that to media.thompsondigital.com and let the main domain be the main page allowing you to select which domain you’d like to choose.
As a result, I’ll use this blog to post some of the tricks/etc. I uncover and attempt to fix in the world of web design.
No commentsThe absolute worst ribs, ever!
Damn! Today I made the absolutely worst ribs in the history of BBQ. They weren’t horrible, they were edible, but that’s all they were. Being of the BBQ persuasion, I have come to be extremely critical of my ribs and when they aren’t up to snuff, its not a pretty sight. I committed the #1 BBQ sin and rushed the BBQ. I cooked it hotter than i’ve ever cooked it and I thought I’d be able to get it done quicker with the same quality. The other thing I did is not use the damn water pan. Thinking back on it now, I think that’s what really made it soo bad. The temp went absolutely through the roof and it never had anything to buffer it. That alone exacerbated the issue.
No commentsSenior Design is OVER
I think it’ll take me an entire month to re-cap the events that took place over this semester. Everything worked perfectly up until the end, where only about 75% of stuff went as planned. Surprisingly, I feel that the project as a whole was a success. Definitely not the best that could have been done, but i’ll attribute that to the group.
We finished the project and it worked as planned. A few things could have been better. Quite a few things could have been better. I think problems (if you can call it that) with the group is what led to the most frustration and ultimately created an atmosphere that wasn’t the most conducive to the last-minute thrust most design projects have.
Dead Weight
It kills you. If you find you have dead weight on a project, get rid of it immediately. For not noticing that and fixing the problem early, I blame myself and I can guarantee it will never happen again.
Initially, I accepted the dead weight as an “ok” thing, because I have been in groups where I was the deadest of the dead as far as pulling my own weight is concernred. Somehow I stuck it out as a form of self punishment and I can now truly see how it kills groups. Its like cancer. The project wasn’t as bad-ass as it could have been because of the dead weight we were forced to carry.
Things I would have fixed:
- Have a nice, smooth pep talk with my group members earlier in the game to bee where everyone’s head was at. If they were looking to be dead meat, slice ‘em quick and deep.
- More dry runs of the actual final demo.
- Put myself on a stricter deadline that would have had us “finishing” two weeks in advance.
- Have a clearer definition of “finished.”
- Distribute the workload more effectively and not try to take it all on my back.
- Do more research before picking teammates.
That’s the lesson learned from this project.
In the mean time, i’ll work on starting my next project so that when I graduate, I have acutal working products to put on the table and if there’s any question of technical skill/knowledge, its immediately quieted. You can’t deny a working product. From the thought to the schematic to the board layout and population, having an actual working product speaks volumes.
No comments