element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • About Us
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Dev Tools
  • Products
  • More
Dev Tools
Forum FPGA or Microcontroller ?
  • Forum
  • Documents
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Dev Tools to participate - click to join for free!
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • State Not Answered
  • Replies 14 replies
  • Subscribers 80 subscribers
  • Views 1550 views
  • Users 0 members are here
Related

FPGA or Microcontroller ?

Former Member
Former Member over 13 years ago

Hi everybody, I'm a new fan of embedded, fpga and microcontroller devices.

 

I want to learn to program devices with Ethernet communication, SD memory, EEPROM, and RS-232RS-232. I have two options but I don't know what is the best option for to do better things in a near future.

 

The first is ALTERA Cyclone III FPGA Development Evaluation Board + 18 Accessory Modules Kits.

(http://www.aliexpress.com/item/OpenEP3C16-Package-B-EP3C16Q240C8N-EP3C16-ALTERA-Cyclone-III-FPGA-Development-Evaluation-Board-18-Accessory-Modules-Kits/567832707.html)

 

And the second is ARM Cortex-M4 Development Board STM32F407ZGT6 STM32F407+ 16pcs Expansion Modules.

(http://www.aliexpress.com/item/Open407Z-Package-B-STM32F407ZGT6-STM32F407-STM32-ARM-Cortex-M4-Development-Board-15pcs-Expansion-Modules-Freeshipping/594407043.html)

 

Can you explain me the difference between both options and which one will be more educational for digital signal processing and to get a better and more interesting job related to robotic or something like automatic control or stuff like that?.

 

I appreciate a lot your help beforehand because I really want to learn to work with this devices but in my university I only read about them.

 

I only can to buy one of them for a long time, so I would like the best and long time option.

  

Thanks beforehand,

 

 

Akuthor.

  • Sign in to reply
  • Cancel

Top Replies

  • michaelkellett
    michaelkellett over 13 years ago in reply to johnbeetem +1
    Hello AK, From where I estimate you to be in your development as an engineer I suggest that you start with a microcontroller board. You can get an ARM Cortex M4 from ST on their Discovery board for about…
  • michaelkellett
    michaelkellett over 13 years ago in reply to johnbeetem +1
    @ John Beetem, I think we are edging towards the Xilinx concept of "free silicon" - FPGA gates are pretty cheap now and almost all of the designs I do the cost of development is way higher than the total…
  • yibbidy
    yibbidy over 13 years ago in reply to johnbeetem +1
    @john, Thanks for the welcome. I was using the element14 app on iOS for the first time and didn't see all of the posts, only the original, so my question appeared out of context of my intent. My question…
Parents
  • johnbeetem
    0 johnbeetem over 13 years ago

    It all depends on whether you want to learn embedded programming or logic design, i.e., do you want to become a software engineer, a hardware engineer, or both.  For embedded programming, you need a processor evaluation board, for example the ARM Cortex-M4 board you have listed.  You might also see if you can get an STM32F4-Discovery board.  It's inexpensive (US$20 at Newark in USA), but does not have any plug-in modules like the one you listed.  Discovery does have headers with 0.1" pin pitch.

     

    If you want to learn logic design and design digital hardware, an FPGA module is a great platform.  Lattice Semiconductor is currently selling eval boards for their ICE40 series for US$20 plus shipping in USA.  It doesn't have any plug-in modules either, but does have 0.1" pitch headers.

     

    Both boards are designed to be used with PCs: you edit your source code and compile on the PC and download binaries to the board over USB.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • michaelkellett
    0 michaelkellett over 13 years ago in reply to johnbeetem

    Hello AK,

     

    From where I estimate you to be in your development as an engineer I suggest that you start with a microcontroller board. You can get an ARM Cortex M4 from ST on their Discovery board for about £10 or from TI on their new board for abpout £5. You won't get into FPGA for quite so little money. There are free tools for ARM processors.

    Some good books will cost you more (a lot more) so I suggest that you look on the net for projects and examples - there are loads.

     

    If you decide on the FPGA route the choice between Verilog and VHDL is tricky - the difference has been summed up as:

     

    Verilog was designed by software engineers who knew nothing about hardware.

    VHDL was designed by harddware engineers who knew nothing about software.

     

    I use VHDL !

     

    Good luck - and come back and ask specific questions when you choose a board.

     

    Michael Kellett

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • johnbeetem
    0 johnbeetem over 13 years ago in reply to michaelkellett

    Michael Kellett wrote:

     

    If you decide on the FPGA route the choice between Verilog and VHDL is tricky - the difference has been summed up as:

     

    Verilog was designed by software engineers who knew nothing about hardware.

    VHDL was designed by harddware engineers who knew nothing about software.

    IIRC, VHDL was sponsored by USA Dept of Defense as a way to describe hardware for simulation and other forms of verification.  Its purpose was to make sure you were actually designing the correct VLSI functionality.  Since is was created for USA DoD it was polite to base it on Ada, which was also sponsored by USA DoD.

     

    IIRC, Verilog was created by a company that made automatic test equipment.  Its purpose was to create test vectors and simulate the expected behavior so it could be compared to actual chips.

     

    Neither was created as a good language for logic synthesis.  This becomes clear when you try to use either to generate the logic you really want.

     

    The best hardware description language I've been paid to use was Altera's AHDL.  It was very easy to tell it what logic I wanted to design, i.e., I could specify what storage elements I wanted and the equations needed to update them.  It was easy to specify async/sync preset/clear behavior, which is a PITA in Verilog/VHDL.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • michaelkellett
    0 michaelkellett over 13 years ago in reply to johnbeetem

    Hello John,

     

    The current advice for modern FPGAs and synthesis tools is that you should concentrate on describing what you want to happen rather than the detail of the gates used to achieve it. There is also a lot of antipathy towards graphical tools. I find that you just have to look up and use 'magic' sequences in VHDL to make the tools infer things like RAM.

    I've never used AHDL (confusingly the tool I use all the time is Aldec HDL which is a VHDL/Verilog simulator etc).

    I suppose we can get used to not caring much about the gate level stuff, after all I don't worry much about which registers or instructions a C compiler uses.

     

    Michael Kellett

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • johnbeetem
    0 johnbeetem over 13 years ago in reply to michaelkellett

    Michael Kellett wrote:

     

    The current advice for modern FPGAs and synthesis tools is that you should concentrate on describing what you want to happen rather than the detail of the gates used to achieve it. There is also a lot of antipathy towards graphical tools. I find that you just have to look up and use 'magic' sequences in VHDL to make the tools infer things like RAM.

    I suppose we can get used to not caring much about the gate level stuff, after all I don't worry much about which registers or instructions a C compiler uses.

    I'd be interested in hearing who gave you that advice.  When I do FPGA design, I'm trying to fit as much function as possible into as small an FPGA as possible, and to do this it helps to understand what logic is being created.  I think FPGA vendors want you to design your logic to be as inefficient as possible, so you have to buy the largest, fastest, and most expensive FPGAs.  They don't like logicians like me who use clever tricks to get by with a fraction of the logic resources.

     

    I usually don't care about individual gates since I'm using FPGAs based on LUTs (Look-Up Tables), but I keep careful track of the number of LUTs used and sure wish the blasted Xilinx software would produce a decent textual netlist for FPGAs like it does for CPLDs.  Yes indeed, I have a lot of antipathy towards some graphical tools, particularly automatically-generated schematics (useless for non-trivial logic) and simulation waveforms (also useless for non-trivial logic).  OTOH, there are times when I'd like to be able to specify some of my logic blocks graphically.

     

    I don't care what C generates on a high-performance PC.  I do care if I'm trying to squeeze it into a tiny microcomputer, which is what I'm doing with a small FPGA.

     

    So what do I want an FPGA to do at the behavioral level?  Pretty simple:

     

    S' = F(S, X)

    Y = G(S, X)

     

    where S is the current state vector, S' is the next state, X is the input vector, and Y is the output vector.  F and G are combinational expressions.  Yeah, a Mealy machine just like we leared in  logic theory.  image

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
Reply
  • johnbeetem
    0 johnbeetem over 13 years ago in reply to michaelkellett

    Michael Kellett wrote:

     

    The current advice for modern FPGAs and synthesis tools is that you should concentrate on describing what you want to happen rather than the detail of the gates used to achieve it. There is also a lot of antipathy towards graphical tools. I find that you just have to look up and use 'magic' sequences in VHDL to make the tools infer things like RAM.

    I suppose we can get used to not caring much about the gate level stuff, after all I don't worry much about which registers or instructions a C compiler uses.

    I'd be interested in hearing who gave you that advice.  When I do FPGA design, I'm trying to fit as much function as possible into as small an FPGA as possible, and to do this it helps to understand what logic is being created.  I think FPGA vendors want you to design your logic to be as inefficient as possible, so you have to buy the largest, fastest, and most expensive FPGAs.  They don't like logicians like me who use clever tricks to get by with a fraction of the logic resources.

     

    I usually don't care about individual gates since I'm using FPGAs based on LUTs (Look-Up Tables), but I keep careful track of the number of LUTs used and sure wish the blasted Xilinx software would produce a decent textual netlist for FPGAs like it does for CPLDs.  Yes indeed, I have a lot of antipathy towards some graphical tools, particularly automatically-generated schematics (useless for non-trivial logic) and simulation waveforms (also useless for non-trivial logic).  OTOH, there are times when I'd like to be able to specify some of my logic blocks graphically.

     

    I don't care what C generates on a high-performance PC.  I do care if I'm trying to squeeze it into a tiny microcomputer, which is what I'm doing with a small FPGA.

     

    So what do I want an FPGA to do at the behavioral level?  Pretty simple:

     

    S' = F(S, X)

    Y = G(S, X)

     

    where S is the current state vector, S' is the next state, X is the input vector, and Y is the output vector.  F and G are combinational expressions.  Yeah, a Mealy machine just like we leared in  logic theory.  image

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
Children
  • michaelkellett
    0 michaelkellett over 13 years ago in reply to johnbeetem

    @ John Beetem,

     

    I think we are edging towards the Xilinx concept of "free silicon" - FPGA gates are pretty cheap now and almost all of the designs I do the cost of development is way higher than the total cost of the chips because the production volumes are quite low. It makes economic sense to speed up the development cycle even if that needs a bigger FPGA because the product gets to market quicker and the total cost is reduced.

     

    I agree about auto generated schematics (never use them) but I find the Aldec Waveform viewer an essential tool. I use a block diagram editor for top level design because it automates all that loathsome VHDL needed to join things together.

     

    Michael Kellett

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube