[Fpga-synth] Starting points?
Scott Gravenhorst
music.maker at gte.net
Sun Mar 8 00:26:14 CET 2009
"The making of synthesizers in FPGAs." wrote:
>Gentlemen,
>
>Thank you for all of the insight and comments.
>
>I studied Verilog and was deep into state machine design and
>simulation while I was in school. I understand synchronous logic,
>busses, caches, piplining, etc. I pulled out my old Verilog text
>and I'm starting to review it again. I'm also a well-disciplined
>C coder, understanding the importance of legible code, and
>modular design.
>
>Since I've got an audience with some experienced folks here, I'm
>going to start with the Spartan 3E kit. Is Avnet part number
>HW-SPAR3E-SK-UNI-G the one everyone here is using?
As far as I can tell, the part number you cited is the same board, just
marketed by Avnet. I bought mine from Digilent, the price is the same and
the image they have looks the same as mine.
This one:
http://www.digilentinc.com/Products/Detail.cfm?NavTop=2&NavSub=423&Prod=S3EBOARD
>As for languages, I'm going to get my feet wet with both Verilog
>and VHDL. Since I have a distant background in Verilog, I expect
>it'll come more quickly. However, the project I was recently
>working on was done in VHDL, and there's a chance I could be
>contracted to maintain it. I'd love to be able to wring out the
>last few bugs if they being me in.
>
>Its also an Actel part. Does anyone have experience with Xilinx
>vs. Actel? How do the tools compare?
>
>What's the wisdom on microprocessor cores? I see that the
>picoBlaze is free, but kinda small. By offloading stuff onto
>custom hardware, can it be more efficient than a general-purpose
>processor alone? How do the larger variants stack up in
>comparison? How does the pricing work for personal demo and
>evaluation work?
My experience with PicoBlaze has been mainly writing MIDI microcontrollers
for driving FPGA synth hardware. My code uses a bit less than 1/2 of a
block RAM for both monosynths and polysynths (up to 8 voices). An external
uController is probably a better option if you're designing a standalone
synthesizer that doesn't need a PC to push patch data into it and to allow
lots of knobs and a big display. Because I do my music in my home studio,
I'm not very motivated to go that route. (though I do have plans for a
synth like that in the future). n my PicoBlaze code, I designed in the
ability to receive a sysex data stream either via MIDI or via a serial
input on the FPGA board. This allows a simple connection between a PC and
the FPGA board that allows writing a nice GUI based patch editor in VB.NET
Express Edition (the free one). For a home studio, this works quite well,
but I'm sure it's not as convenient for gigging out.
So it really depends on what you want the ucontroller to do for you. If
all you need it to do is to receive MIDI and drive the synth hardware,
PicoBlaze is more than sufficient. In fact, my MIDI controller code for
one synth design also contains LCD support driver code and the block RAM
for it's instruction store is still not full (something like 3/4). So
PicoBlaze can do quite a bit. Being small is actually a good thing, it
doesn't use much FPGA fabric, something less than 100 slices is typical.
It's plenty fast for this purpose too at 25 MIPS. I do my coding in it's
native assembly language. Another thing to remember is that you can have
more than one PicoBlaze instance, the FPGA on the board we're talking about
can hold about 12 of them. As long as there is enough FPGA fabric
available, there's no problem, so your decision will be based on what the
synth has to do. One thing very nice about using PicoBlaze this way is
that it allows you to create applications without having to add much in the
way of side-car boards. The only thing I have attached to my 3-SEsk boards
is an RC interface for the DAC audio outs and a 6N138 board for MIDI input.
Everything else happens inside the FGPA.
>My father (a BASIC/Matab guy) likes to joke "a good engineer can
>write FORTRAN in any language." I'm sure the HDL's are no
>exception.
LOL, yeah, I'd say that's true. I have only "can read it" experience with
VHDL, i.e., I can translate simple module code from VHDL to Verilog. I've
read somewhere that both languages are capable of the same designs.
-- ScottG
________________________________________________________________________
-- Scott Gravenhorst
-- FPGA MIDI Synthesizer Information: home1.gte.net/res0658s/FPGA_synth/
-- FatMan: home1.gte.net/res0658s/fatman/
-- NonFatMan: home1.gte.net/res0658s/electronics/
-- When the going gets tough, the tough use the command line.
More information about the Fpga-synth
mailing list