On Fri, Feb 01, 2013 at 08:07:46PM +0000, Kelly Hirai wrote:There are many ways to use an fpga. I've got a friend who's a real
> fpga seems a natural way to express in silicon, data flow languages like
> pd, chuck, csound, ecasound. regarding the stretch, the idea that one
> could code in c or c++ might streamline refactoring code, but i'm still
> trying to wrap my head around designing graph topology for code that is
> tied to the program counter register. nor do i see the right peripherals
> for sound. perhaps the g.711 codec support is software implementation
> and could be rewritten. need stats on the 8 bnc to dvi adapter audio port.
wizard in this game, and his approach is quite unusual but very
effective.
In most cases, after having analysed the problem at hand, he'll design
one or more ad-hoc processors in vhdl. They are always very minimal,
maybe having 5 to 20 carefully chosen instructions, usually all of them
conditional (ARM style), and coded if necessary in very wide instruction
words so there's no microcode and these processors are incredibly fast.
It takes him a few hours to define such a processor, and a few more hours
more to create an assembler for it in Python. Then he starts coding the
required algorithms using these processors.
If necessary, he'll revise the processor design until it's perfectly
matched to the problem. In all cases I've watched, this results in
something that most other designers couldn't even dream of in terms
of speed and efficiency - not only of the result, but also of the
design process and hence the economics.
All of this is of course very 'politically incorrect' - he just throws
away the whole canon of 'high level tools' or rather replaces it with
his own vision of it - with results that I haven't seen matched ever.