Search code examples
c++cembeddedarduinoxilinx

How commonly used are the xilinx chips?


I'm beginning to learn embedded with C (and maybe some C++) and someone from the office said they're willing to donate a free xilinx chip they've got sitting on their shelf. I was thinking more along the lines of an Arduino, especially that the Arduino tutorials and sample projects are abundant.

  • Can someone confirm how xilinx chips compare to arduino? Are they known within the industry to be more "real world" in any way? or not?

  • Are there specific xilinx chips (maybe older models) that I should avoid, at least while I'm still starting out?

  • Do they have a relatively steeper learning curve than an Arduino due to lack of tutorials or not?

I'm interested in hearing whatever comes to your mind when you hear xilinx as opposed to Arduino. I know very little about chips, let alone this particular one, so it's very hard to have any informed comparison.


Solution

  • You are comparing chalk and cheese. Xilinx is a company, not a chip and Arduino is an open development platform based on Atmel AVR microcontroller.

    Also 'a chip' alone is probably useless to you; it will have to be assembled onto a development board with subsidiary components and power supplies etc.

    Xilinx make FPGAs and other programmable logic devices. It is possible to have an FPGA with a hard or soft core processor embedded (i.e. a processor defined in FPGA logic gates), and for that core to be programmed in C, but if you are starting out, how many balls do you want to juggle at once? Such a core will be useless without the ability also to synthesize the peripheral hardware necessary to make it do something useful. They are used in highly specialised applications where the core and peripheral set need to be tightly coupled to the application. They are often used in applications where standards are still under development (such as wireless communications), where both firmware and software may need to change in-field to support changes. Another use of FPGAs is in directly implementing algorithms in hardware to take advantage of the parallelism and pipe-lining that they make possible offering massive acceleration compared to software solutions..

    While Arduino, or more specifically AVR (there are other AVR development platforms available) can be programmed in C and C++, if you are serious about using C++ in embedded systems, a 32-bit platform may be more appropriate (as well as having performance advantages). A development board based on an ARM Cortex-M3 or ARM 7 would be a good start, especially since ARM is also a common choice for soft-core processors on FPGAs if you eventually progress to that.