Forum Discussion

Altera_Forum's avatar
Altera_Forum
Icon for Honored Contributor rankHonored Contributor
10 years ago

Is an FPGA the Best Option for High I/O (120-150 Input) Prototype?

Hi All,

I would like to give some context of my project first before asking the question so you can understand where I am currently at.

context

I am starting to create a prototype of a system that will contain the following components (off the top of my head);

  • 10 Dual Rotary Encoders (with push buttons)

  • 3 Rotary Encoders (with push buttons)

  • 20 Buttons

  • 1 Four Way Hat with Rotary Encoder and Push Button

I did the calculations and at this stage I believe I need in the vicinity of 120 digital inputs. There will be a number of outputs that will drive lighting but I don't consider these to increase the total IO by too much.

The device will be communicating to a computer via Serial (USB), it will be bi-directional. I recently purchased the DE0 Nano, essentially a starter-kit as I haven't done any FPGA programming before (only microcontrollers with Arduino compatible platforms).

question

What I would like to know is, would the FPGA be appropriate for the above prototype that I am building or should I stick with microcontroller based designs?

The reason I would like to know is I don't consider this to be too complex a system (after reading quite a few other posts in the FPGA forum). The reasons I am looking at FPGA in the first place was really down to the complexity of having to source so many additional components to cater for the lack of digital IO and to eliminate an overly messy processing loop with a microcontroller based design.

Another question, should I stick with microcontroller based design (opinions may be biased on this forum but happy to hear some other opinions)?

Thanks.

Mark

12 Replies

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    For some reason I have posted a number of replies and they are not coming through... If only my other posts came through the context of the system would be more obvious. I am assuming they have been moderated for some reason.

    I would like to thank everyone for their advice. I have since investigated the CAN bus approach but since it is a prototype and I will get it "professionally" designed I am going to go with the microcontroller based approach with a chain of 8 MCP23017 components which gives me 128 I/O's. I have done some quick calculations in regards to how often I need to process the loop and I am within the required timings so I will not miss any critical events. Noise will not be a concern at this stage from other electrical equipment (but my prototype will validate this).

    I am a lot more comfortable with this approach now that I have somewhat "validated" what I am trying to do and heard about some other options. Once again, thanks for your help... I'll need to find another use for my FPGA for a future project.
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    --- Quote Start ---

    I would like to thank everyone for their advice. I have since investigated the CAN bus approach but since it is a prototype and I will get it "professionally" designed I am going to go with the microcontroller based approach with a chain of 8 MCP23017 components which gives me 128 I/O's. I have done some quick calculations in regards to how often I need to process the loop and I am within the required timings so I will not miss any critical events. Noise will not be a concern at this stage from other electrical equipment (but my prototype will validate this).

    --- Quote End ---

    The MCP23017 devices are I2C, which is fairly slow, so signal integrity requirements will be easier to meet (more so than a >1MHz SPI or shift-register interface).

    --- Quote Start ---

    I am a lot more comfortable with this approach now that I have somewhat "validated" what I am trying to do and heard about some other options. Once again, thanks for your help... I'll need to find another use for my FPGA for a future project.

    --- Quote End ---

    Its important to learn about new technology. Once you understand it, you'll always find applications. As I said earlier, once you have a good "Hammer" all problems look like "Nails". An FPGA is a great hammer!

    Cheers,

    Dave