Reputation: 2707
I would like to get an FPGA development board with the goal to emulate a CD-ROM drive. My questions are:
Upvotes: 1
Views: 940
Reputation: 18643
A) As an alternative approach, there are some C-like languages that compile down to VHDL or Verilog. See C to HDL on Wikipedia for details.
What a compiler for such a language usually produces is a customized circuit design for your specific "program". For instance, if you wanted to compute a*b+c*d+e*f, you might end up with a circuit that contains three multipliers and two adders and can run that computation for a different (a,b,c,d,e,f) tuple every cycle, sort of like a pipeline.
I suppose it depends on what you want to do. For low level applications, a CPU is slower than a customized circuit, but it's definitely easier to program.
D) I agree with FailedDev. You should start with the basics, mess around with VHDL or Verilog and light up some LEDs (for instance, implement a binary counter).
Upvotes: 1
Reputation: 26940
A) Well directly writing C++ code does not make sense, however you can emulate a processor and write C/C++ to it. I have done this. I would recommend a starting kit from ALTERA don't buy something really expensive for starters.
B) http://www.altera.com/products/devkits/altera/kit-cyc2-2C20N.html This is pretty nice for example. I have implemented a dsp on it, using C.
Altera has the NIOS CPU which you can implement. It is not the easiest thing to do. You will need at least basic VHDL knowledge to do this.
C) http://www.amazon.com/Designing-FPGAs-CPLDs-Bob-Zeidman/dp/1578201128 covers the basics.
D) You should know digital architectures. C/C++ is way different than VHDL and you will not be able to harvest the true power of FPGA's until you know how the core components work. Adders, ALU's, MUX, DEMUX, MULTIPLIERS etc are integral parts of any digital circuit. You need to know how you can combine them in order to parallelize your solution and exploit the hardware.
Upvotes: 3