Link to home
Start Free TrialLog in
Avatar of flicky_18
flicky_18

asked on

FPGA vs Microcontroller

Hi,

My question are

1. what is a microcontroller, is it an ASIC or FPGA or other type?

2. when should the project use a microcontroller, or when should it uses FPGA? Can you provide a good example of the project. The project that comes to my mind are:
            a.  A pong game using LCD interface and push buttons.
            b.  A stepper motor controller that will control 2-3 motors
            c.  A simple version of Atari game console
            d. An oscilloscope
            e. A project that involve image processing from camera input
At first I thought that from a hobbiest, that they will make it in microcontroller but in industry they will do it using FPGA. But after further thought, since the cost of FPGA is more that a simple microcontroller, this is not making sense.

Thank you,

Flicky
SOLUTION
Avatar of Harisha M G
Harisha M G
Flag of India image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
ASKER CERTIFIED SOLUTION
Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Differences between FPGA's and CPLD's is discussed here:

      https://www.experts-exchange.com/questions/21279573/Xilinx-CPLD-FPGA.html

I use Atmel CPLD's and PIC microcontrollers a lot.  
Atmel AVR microcontrollers are probably better than PIC's but they aren't what I started with.
Atmel is great company for hobbiests.

                      http://www.atmel.com/products/product_selector.asp
Avatar of flicky_18
flicky_18

ASKER

Wow thanks for the clarification. Just one things still bother me.
Facts:

1. microcontroller is a programmable IC. (We can say this general purpose IC then)
2. Asic is application specific IC

what makes microcontroller slower compared to asic ?

Flicky
SOLUTION
Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
A microcontroller executes a program, one step at a time.
 A PIC with a 40 MHz clock takes four clock cycles per instruction.
So you can get can 8-bit additions per microsecond.

You program a CPLD, FPGA, or ASIC once by configuring connections between logic elements.
You wind up with dedicated logic.  You could implement a hundred parallel adders if you needed to.
The clocks are faster, typically 100 to 300 MHz.
If your are careful you can get an 8-bit addition every clock cycle.
Two factors of 100 give you 10,000 times the performance.
Thank you all for answering my question.