Making a PCI DSP card?

GroupDIY Audio Forum

Help Support GroupDIY Audio Forum:

This site may earn a commission from merchant affiliate links, including eBay, Amazon, and others.

Consul

Well-known member
Joined
Jun 3, 2004
Messages
1,653
Location
Port Huron, Michigan, USA
I don't know how many here might be familiar with the Arduino and the concept of open-source hardware. So I've been getting it in my head to try my hand at designing an open-source DSP card for computers, along the lines of the UAD-1 or TC PowerCore, and creating some dev tools so people can code for it easily. The front-end code (GUI) and interface to the DSP could then run on the CPU.

I scanned around TI's web site, and found a suite of 32-bit floating point DSPs that are apparently not too expensive. Ranging from 167-300Mhz, each with 8 multiplier-adders and 8 accumulators, which seem to be good specs to me.

Now I just need to figure out how to put those on a PCI card. :grin:

I'm probably off the deep end with this one, but what the hell.
 
Remember, that the UAD-1 was in fact a graphics-adapter card used alternatively. Early cards even still had the pcb space for the VGA-connector. :razz:

Now that Nvidia has released a platform-portable programming interface for their chips, that route seems extremely interesting

http://www.gpgpu.org/ title: "General-Purpose Computation Using Graphics Hardware"

http://www.ddj.com/hpc-high-performance-computing/207200659 - title "supercomputing for the masses"

Writing a software wrapper (or some similar interface) to enable use of this type of hardware with standard plugins might be a better idea than designing DSP hardware from scratch..?

Jakob E.
 
Yeah, and the UAD-1 is the one I hear all of the horror stories about. The Powercore is the one that generally works without a fuss.

Using a graphics processor through CUDA also misses the "open-source hardware" point. However, it also means that nothing new need be designed, and that the rest is in implementing software.
 
[quote author="Consul"]Yeah, and the UAD-1 is the one I hear all of the horror stories about. The Powercore is the one that generally works without a fuss.
.[/quote]

Really ?
I ran the early UAD-1's with no problems and now have a pair of the later
UAD PCe cards, also working flawlessly !
I heard a whisper that UAD are releasing new cards in a few months that will
have 4 x and 8 x the power of the current cards ... :green:
Now that WILL be cool.
 
[quote author="MartyMart"]I ran the early UAD-1's with no problems and now have a pair of the later UAD PCe cards, also working flawlessly ![/quote]

If you're running ProTools, sure...

Sorry, it's really only hearsay on my part, but I know some folks trying to run UAD-1s with Reaper, and it was nothing but horror stories. And sure, you can say that UA is under no obligation to make sure their cards work with other hosts. That would be arrogance, though, in my opinion.

The CUDA stuff is looking pretty cool. I think I'll look into that. Unfortunately, it's looking like my GeForce 6150 chip isn't supported, though I haven't scoured that hard just yet.
 
[quote author="Consul"]Now I just need to figure out how to put those on a PCI card. :grin:[/quote]
If you have to ask, you can't afford it.

Designing PCI cards is non-trivial. You could go with a DSP with integrated PCI, in which case you 'only' need to worry about the signal integrity issues. You could use an FPGA and either buy a PCI core ($$$$) or help debug the OpenCores one. Or you could use a dedicated PCI bridge such as the ones PLX sells, and figure out a way to connect your DSPs.

DIYing PCI cards is an expensive proposition, with gold-plated edge connectors and preferably a beveled edge, not to mention the obligatory SMD chips. PCB layout packages that can handle the required Signal Integrity simulations are costly, too.

How would such a card get programmed or integrated? Do you get to write a Vista driver? Besides, those TI FP DSPs are only supported by a rather expensive proprietary compiler. Many FPGAs do have free-as-in-beer toolchains available from the manufacturer, but none that are truly open.

Finally, once you have the card and the driver working, faster GP CPUs will have been released which may well make any performance advantages disappear. This may not matter if you're just doing this as a learning experience, but it will impact the real-world usability of your design.

This is not to say that there is nothing worthwhile that could be designed. If you don't mind the steep learning curve, an open ADAT/AES interface card could be built (but someone would still need to write drivers). If you want to have an accelerator, have a look at what the GNU Radio people have produced.

(It is worth noting that most software defined radio DIYers are moving away from DSPs, preferring to have GP CPUs do the heavy lifting. And trust me, latency is very important there, too).

CUDA looks like an interesting alternative time sink.

JDB.
 
[quote author="Consul"]
If you're running ProTools, sure...

[/quote]

Nope, Mac only since 1995 and using a Hammerfall card with Logic and now
a Fireface 800 with Logic Pro on Intel Mac.
There was a problem with certain Mac board chips and there's a new problem
with the 8 core macs !!
I generally prefer "trailing edge" technology, got caught with the "cutting edge"
once and won't go there again !!

MM.
 
Elector offers a PCI bus prototyping card. Looks like there is a Xilinx chip on it.

http://www.elektor.com/magazines/2001/february/pci-bus-prototyping-card-(1).54365.lynkx

Freescale Semi has the Symphony Sound Byte Development kit which has one of their DSPs and AD/DA converters for $150.

http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=SYMP_SOUNDBITE&fsrch=1

They also allow you to download a complete dev IDE software package.

Analog Devices has the Blackfin eval kits for $350-$450 range. This is an example:

http://www.analog.com/en/epHSProd/0,2461,BF533-HARDWARE,00.html

Here is a MIDI synth project built using one of those boards:

http://www.theover.org/Synth

Sorry about the mangled URLs. The forum seems to be having somekind of problem.
 
[quote author="burdij"]Elector offers a PCI bus prototyping card. Looks like there is a Xilinx chip on it.[/quote]
It's a Lattice chip, the ispLSI1032. It has gone EOL (end of life, out of production) some six years ago, even though some distributors still have it in stock, and it's not supported by the current Lattice toolchain. It's 5V only, and as such not compatible with newer PCs' 3.3V PCI slots ('newer' meaning anything produced since ~2003). Moreover, the Elektor design only allows for single cycle PCI access (as opposed to bus mastering), reducing speed to the level of a parallel port, which might be too slow for the intended application.

The other links look interesting (and show what is probably the best approach to Open Hardware audio; especially the MIDI synth), but are not PCI based as the original poster wanted.

JDB.
 
I don't care for it to be specifically PCI-based. I just want to make a piece of open hardware with a DSP that can run low-latency. If that can be done with USB2, then I'll go that route, unless you come back with something like, "wow, that's even more difficult than PCI!"

But I probably won't do this at all, what with CUDA's existence.
 
imho all you can gain with DSP is that you can tap it nearby to a converter , thats cool, but therefore external , no PCI :twisted:

USB is hard as well, you need asynchronous data connection b2b, and a FIFO, clock distribution , meh , not trivial either
 
What if the clock and A/D sat outboard with a USB2 link for processing the waveforms only?

[quote author="playboss"]imho all you can gain with DSP is that you can tap it nearby to a converter , thats cool, but therefore external , no PCI :twisted:

USB is hard as well, you need asynchronous data connection b2b, and a FIFO, clock distribution , meh , not trivial either[/quote]
 
aes ebu is 192 khz maximum , but you'd want twice as much to do oversampling / decimation inside the DSP , this can be transmitted thru LVDS line what is not standard, also 32bit is not a bad thing during conversion either. Non of these you can do with off the shelf interfaces. BTW there is something fpga related at diyhifi.org
 

Latest posts

Back
Top