element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • 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 & Tria Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • About Us
  • 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
      • Japan
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Vietnam
      • 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
FPGA
  • Technologies
  • More
FPGA
Forum FPGA's for everyone
  • Blog
  • Forum
  • Documents
  • Quiz
  • Events
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join FPGA to participate - click to join for free!
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • Replies 4 replies
  • Subscribers 558 subscribers
  • Views 589 views
  • Users 0 members are here
Related

FPGA's for everyone

Former Member
Former Member over 10 years ago

I have watched many projects to make FPGA's easy to program. This includes custom languages, conversion of languages to HDL, and none have gone mainstream. The really neat thing about FPGA's is that they make interfacing easy. Rather than trying to make everyone an FPGA programmer, why can't we just make FPGA easy to put in a design. We could setup an environment where the interface to computer or microcontroller is standard thru USB, SPI, Ethernet, etc. Then the user can just select from a menu of interfaces they want to use and assign the pins. This would be parallel I/O ports, I2C, serial, PWM, 2x16 display drivers, etc. I have used this at my real work over the last couple of years, and having the interface done shortens the project time, and all we have to do is write the new interface modules.

 

My two cents.

Ron

  • Sign in to reply
  • Cancel

Top Replies

  • michaelkellett
    michaelkellett over 10 years ago +2
    The approach you describe wouldn't address most of the complexity in the kind of FPGA design work I do. For example I've recently spent quite a lot of time on a signal generation package which can do sweeps…
  • johnbeetem
    johnbeetem over 10 years ago

    What you describe is pretty much what you get with Cypress PSoC microcontroller.  The PSoC Creator tool lets you select various digital (and analog!) peripherals and assign them to pins.  You can also write a C program that flings data between the various peripherals.

     

    I've seen similar configurable peripheral capability offered for various ARM microcontrollers, e.g., NXP.

     

    While I love FPGAs, they are typically an expensive way to get functionality compared to a microcontroller.  So you typically only use an FPGA if you need a non-standard function that would require a custom chip if you couldn't get an FPGA.  Hence you really do need a way to describe general digital logic, rather than just standard interfaces.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • michaelkellett
    michaelkellett over 10 years ago

    The approach you describe wouldn't address most of the complexity in the kind of FPGA design work I do. For example I've recently spent quite a lot of time on a signal generation package which can do sweeps (log or lin), sines, arbitrary waveforms etc - only a tiny fraction of the work was involved with the interface to the DAC or the micro at the other end.

     

    Like most designers I do use standard interfaces to micros, typically SPI or USART but sometimes memory mapped.

     

    I have done quite a bit of work with Ethernet on FPGA but once again most of the effort went into generating the messages and much less into the actual interface (partly because we bought IP for the MAC).

     

    The current job is a  data acquisition system with a motherboard/controller and daughter boards linked by a custom data bus. The application is such that standard interfaces can't be used (low power, high speed, low noise, not many pins etc.) The FPGAs need to do everything from controlling the ADCs, calibrating and filtering the data, buffering it, sending it to the motherboard across the bus and there another FPGA assembles the data into sensible packets and buffer them ready to write to micro SD card or eventually Ethernet.

     

    In all these applications you need, as John puts it, 'to describe general digital logic'. A high level abstraction would be nice but any I have seen are far too inefficient for this kind of work.

     

    MK

    • Cancel
    • Vote Up +2 Vote Down
    • Sign in to reply
    • Cancel
  • Former Member
    Former Member over 10 years ago in reply to michaelkellett

    What we have done really doesn't make sense for connection to micro's, where it saves the most is connections to an ARM or PC with an OS. Our Ethernet stack defines a standard message set to the hardware as well as providing an internal fpga bus, so it does save time. The internal fpga bus is unique in that allows us to add components without changing the interface. So if you need five uarts, you can place five of the code same uarts on the bus and it works. You can add additional interfaces without affecting the working interface or the other modules. The software sees each module as an unique item, regardless of the type. The items on the bus auto-configures the addresses at power up. There is some overhead involved (1K LE for UDP Ethernet including MAC), but it saves time on both the software and fpga side. This is a poor mans' modularity for fpga's. Now everyone sees the same interface for every new design.

     

    I have been struggling with the 80's type tools for FPGA's for many years. As the vendors keep bringing out larger parts they push on us bloatware that drives up the gate counts. I have been looking for something to get us over the productivity hump, but I figure open source will have to derive the answer.

     

    Ron

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • Former Member
    Former Member over 10 years ago

    Ron, I think what you're looking for is pretty much exactly this: https://www.crowdsupply.com/krtkl/snickerdoodle

     

    (full disclosure, I'm one of the creators)


    ARM+FPGA in the same physical package/chip and we've actually made it possible to pick your hardware "personality" (I/O configuration) from a mobile app using pre-build bit streams. We've spent years dealing with the exact problems you mentioned above and snickerdoodle was the solution we came up with to address them.

     

    If you want to check it out, I'd be very interested to hear your thoughts.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • 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