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
RoadTests & Reviews
  • Products
  • More
RoadTests & Reviews
RoadTest Forum What's Stopping You Building Your Next Project with an FPGA? (Please, Don't Blame the Cost!)
  • Blog
  • RoadTest Forum
  • Documents
  • RoadTests
  • Reviews
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join RoadTests & Reviews to participate - click to join for free!
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • Replies 100 replies
  • Subscribers 2563 subscribers
  • Views 8332 views
  • Users 0 members are here
  • scasny
  • xilinx
  • fpgafeatured
Related

What's Stopping You Building Your Next Project with an FPGA? (Please, Don't Blame the Cost!)

rscasny
rscasny over 7 years ago

The community does a ton of projects with MCUs. If they do the job for you, that's great. But the element14 community is about learning, experimenting and roadtesting. In this spirit, I am proposing that you should try building your next project with an FPGA (SoC), if it suits the application, of course. What's stopping you? Oh, some members have voiced the cost issue. Granted, some FPGAs do cost a lot. But chip manufacturers are rolling out economical chipsets that most makers, pro-makers or experienced hobbyists can afford. (If you can't, then apply to a RoadTest and if you win you can get a dev board for FREE.) I think FPGA / SoCs will move into a more important place for electronic designers, especially for IoT applications. Perhaps it's time to experiement with one. What's stopping you?

 

Here's a link to a current roadtest:Digilent ARTY S7 Dev Board (Xilinx Spartan 7)   Apply today!

 

Randall Scasny

RoadTest Program Manager

  • Sign in to reply
  • Cancel

Top Replies

  • Workshopshed
    Workshopshed over 7 years ago +16
    Hi Randall, I have been thinking about getting started with FPGAs this year. I've got myself a "TinyFPGA". I've gone for the $12 A version which is based on the Lattice Mach XO2-256. That's it's about…
  • ipv1
    ipv1 over 7 years ago +8
    rscasny I just posted a comment for this in the vivado discussion. To answer this question in short, I find very few projects worthy of an FPGA. An IoT application with FPGAs sounds fascinating though…
  • shabaz
    shabaz over 7 years ago +8
    There's a simple CPLD project here that I had a lot of fun working on, in case it helps provide ideas: Programmable Logic Project: Pseudo-Random Noise Generator CPLDs and FPGAs are great for signal generation…
Parents
  • ntewinkel
    ntewinkel over 7 years ago

    I just noticed FPGAs can be used for HDMI output, which would be a very interesting use case: fpga4fun.com - HDMI

    But the assembly-like language used on that example website makes me run for the hills.

     

    My hope is something like this: Basic Arduino to output video and sound (https://playground.arduino.cc/Main/TVout ), with the outputs connected to an FPGA that converts it to HDMI.

     

    The ultimate goal is to show images and play mp3s from an SD card on a TV using an HDMI connection.

     

    Would this be possible? (question is to the FPGA experts image re the HDMI part - I can handle the Arduino to TV-out and Audio-out part)

     

    -Nico

    • Cancel
    • Vote Up +4 Vote Down
    • Sign in to reply
    • Cancel
  • jc2048
    jc2048 over 7 years ago in reply to ntewinkel

    Have you tried the Arduino TVout? By the looks of that page, it can only be one bit per pixel and big, chunky pixels at that.

     

    The FPGA could do the HDMI part at 25MHz quite easily. You'd need to look at the signalling levels on the HDMI - I'm not familiar with it hardware-wise, but you could probably work with one of the many differential standards that FPGAs provide. It would need a proper PCB.

     

    A better architecture (than having the Arduino struggling to produce the video timing) would be to have a frame store in the FPGA (or a memory attached to the FPGA if there wasn't enough internal RAM going spare) that got scanned and output. The Arduino would then write to it once (setting or resetting pixels) and the FPGA would then deal with refreshing the display. It would be similar to an old CGA graphics card in a PC, except you'd be designing the graphics chip. The interface between the Arduino and the FPGA could be whatever you wanted, but SPI might work well.

     

    Another fun idea, taking a further step back in history, would be to do a vector display. The Arduino could write a sequence of line end-point pairs to the FPGA and the FPGA could draw the vectors on-screen (you might decide to get the Arduino to sort them into a favourable order first). You could then do Asteroids in it's original form.

    • Cancel
    • Vote Up +4 Vote Down
    • Sign in to reply
    • Cancel
  • ntewinkel
    ntewinkel over 7 years ago in reply to jc2048

    Thanks Jon!

     

    >Have you tried the Arduino TVout? By the looks of that page, it can only be one bit per pixel and big, chunky pixels at that.

     

    Eww, no I had not looked at it in that much detail, but that doesn't sound very good. I wonder if they only just meant it to be used for the old 80's style arcade games.

     

    I like your idea of frames being sent to the FPGA, seems much nicer.

     

    -Nico

    • Cancel
    • Vote Up +2 Vote Down
    • Sign in to reply
    • Cancel
  • COMPACT
    COMPACT over 7 years ago in reply to ntewinkel

    I've pumped out "hires" monochrome 640 x 256 line output from an AVR32.

     

    To pump out modern digital video signal's you'll need to use differential pair transceivers.

    There are some complex encoding to be performed and it requires a fair bit of horsepower unless you stick to the special case colours where an encoding engine is not required.

     

    Vector output is fun. The easiest way is to use an Oscilloscope or Laser Projector as the output driver.

    DAC's they way aha aha      We like it aha aha.

    • Cancel
    • Vote Up +4 Vote Down
    • Sign in to reply
    • Cancel
  • jc2048
    jc2048 over 7 years ago in reply to COMPACT

    How do you do that on an Arduino when 640x256 needs 20k of SRAM to hold the image?

     

    For the 'vector' display, I was thinking of the FPGA rendering the vector data in real-time on each frame to get a raster.

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
  • COMPACT
    COMPACT over 7 years ago in reply to jc2048

    Compress it a bit.  1920 bytes for 80 x 24 characters and store the bit maps (8 x ((10 or 11)) in Flash.

     

    FPGA rendering a vector image is a challenge - You'll have to use Bresenham's Line and Circle Algorithms or similar.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • COMPACT
    COMPACT over 7 years ago in reply to COMPACT

    When I designed Laser Printer controllers (30+ years ago) instead of Flash we'd use RAM and compile the programmable characters on the fly as the paper was feeding through the printer.

    That way we could have some degree of graphics available from very limited memory available.

    If the image couldn't be rendered with the limited memory available an error message was displayed on the printer to say so.

    • Cancel
    • Vote Up +3 Vote Down
    • Sign in to reply
    • Cancel
  • jc2048
    jc2048 over 7 years ago in reply to COMPACT

    I'm not sure you've got time to 'decompress' if you're trying to keep up with a pixel rate that's not too far off the clock rate of the processor.

     

    "FPGA rendering a vector image is a challenge - You'll have to use Bresenham's Line and Circle Algorithms or similar."

     

    No, no. Nico will have to implement the DDAs - I was very generously gifting the challenge to him. It's a natural for an FPGA and with your mentoring he'll do it in no time; I'm just providing a little initial creative input.

     

    For myself, I was wondering about getting the A2 version of the FPGA board that Workshopshed shows above and using it for bitcoin mining. Make my fortune in the new digital gold rush. Can't be too difficult, can it? The hash thing looks like it's just simple boolean stuff with a little arithmetic and a look-up or two thrown in.

    • Cancel
    • Vote Up +3 Vote Down
    • Sign in to reply
    • Cancel
  • ntewinkel
    ntewinkel over 7 years ago in reply to jc2048

    Hehe, for the FPGA, I think I'll stick with brake light logic for now image  Any HDMI project I'll do on the Raspberry Pi!

    • Cancel
    • Vote Up +2 Vote Down
    • Sign in to reply
    • Cancel
  • mcb1
    mcb1 over 7 years ago in reply to ntewinkel

    You do recall the Digisark bootloader can be changed to start instantly ...?

     

    Adding an FPGA to your trailer is just skitting image (edit ...the word is SKITE, not sure of the plural).

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
  • ntewinkel
    ntewinkel over 7 years ago in reply to mcb1

    >Adding an FPGA to your trailer is just skitting

    (I had to google that image)

    Hahaha yeah, but the little bit of logic required is a good introduction to FPGAs. Not sure if HDMI is going to be biting off too much at once.

     

    And yes, I recall the quickstart Digispark. That's also on my list of things to try. Also a heck of a lot cheaper and easier than an FPGA image

     

    ps, I did get the trailer logic working somewhat using 4000 series logic chips. It seems to now be down to a timing issue - it works when I power up the chips first and then apply the 2 inputs.

     

    I also looked into replacing the logic chips with transistors. That's a lot more wiring but it appears to be quite doable.

     

    And if that doesn't work, I'll just buy a MacPro to handle it image

     

    -Nico

    • Cancel
    • Vote Up +3 Vote Down
    • Sign in to reply
    • Cancel
  • mcb1
    mcb1 over 7 years ago in reply to ntewinkel

    ntewinkel

    >Adding an FPGA to your trailer is just skitting

    (I had to google that )

    Actually I meant "skite"

    noun: skite; plural noun: skites

    1.  

      1.
      Australian/NZ a boaster.

       

      •  

        boasting; boastfulness.

         

     

    And if that doesn't work, I'll just buy a MacPro to handle it

    HAHA ... that's until Apple decide to slow it down .. image

     

     

    Besides some clever person sent you the code, so all you need to do is arrange some diodes to power it.

     

    Mark

    • Cancel
    • Vote Up +3 Vote Down
    • Sign in to reply
    • Cancel
Reply
  • mcb1
    mcb1 over 7 years ago in reply to ntewinkel

    ntewinkel

    >Adding an FPGA to your trailer is just skitting

    (I had to google that )

    Actually I meant "skite"

    noun: skite; plural noun: skites

    1.  

      1.
      Australian/NZ a boaster.

       

      •  

        boasting; boastfulness.

         

     

    And if that doesn't work, I'll just buy a MacPro to handle it

    HAHA ... that's until Apple decide to slow it down .. image

     

     

    Besides some clever person sent you the code, so all you need to do is arrange some diodes to power it.

     

    Mark

    • Cancel
    • Vote Up +3 Vote Down
    • Sign in to reply
    • Cancel
Children
  • ntewinkel
    ntewinkel over 7 years ago in reply to mcb1

    Both words make sense LOL. Hilariously boastful image

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • ntewinkel
    ntewinkel over 7 years ago in reply to mcb1

    (re DigiSpark)

    >Besides some clever person sent you the code, so all you need to do is arrange some diodes to power it.

     

    True, and no timing issue - it won't read the inputs until after it has powered up.

     

    And I guess I'd have to use a couple of DC-DC voltage reducers, but they are tiny. And I think I have a couple of those already.

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
  • mcb1
    mcb1 over 7 years ago in reply to ntewinkel

    And I guess I'd have to use a couple of DC-DC voltage reducers

     

    Digispark has an decent sized 7805 regulator, should handle 12v okay.

    I have been known to run the power through a 7808 (8v) regulator first.

     

    True, and no timing issue - it won't read the inputs until after it has powered up.

    The worst case scenario is the Indicator only ... there will be a small delay before the output contol is activated.

     

     

    I'd also look at using LED tailights (replace the lamps, or the whole fitting) and you have more options to drive them.

    There are some excellent LED lamps I found here. What went wrong

     

     

    Mark

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
  • ntewinkel
    ntewinkel over 7 years ago in reply to mcb1

    >I'd also look at using LED tailights

    They are LED, which makes them respond much faster, so a small logic delay probably wouldn't even be noticeable in real life.

     

    I'll look into the regulators. Sounds like a simpler approach, thanks image

     

    -Nico

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
  • ntewinkel
    ntewinkel over 7 years ago in reply to mcb1

    Mark Subtly Hinted:

    >You do recall the Digispark bootloader can be changed to start instantly ...?

    ...

    >Besides some clever person sent you the code, so all you need to do is arrange some diodes to power it.

    ...

    >Digispark has an decent sized 7805 regulator, should handle 12v okay.

     

    You're absolutely right, Mark. After thinking about this more the Digispark looks like a much easier option, so I've dug one out of my drawer and I'll give that a go. I'll leave that FPGA learning curve for later, and thus unenrolled from that RT - it's just the wrong time for me take that on right now.

     

    Looks like I'll still need two more 7805's for the 2 inputs, right? Or do you have a much more clever way of doing that?

     

    ps, The 4000-series cmos chip method is also still in the works. So close. sooooo close. can't give up now!

     

    -Nico

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • mcb1
    mcb1 over 7 years ago in reply to ntewinkel

    ntewinkel

    Sorry I missed the response.

     

    Looks like I'll still need two more 7805's for the 2 inputs, right?

    No I think you only need the single one to power it.

     

     

    do you have a much more clever way of doing that?

     

    I would diode OR the lights (with the capacitor) to provide the power for the Digispark, or a small battery.

    You can use a transistor or opto to provide the input detection that drives the input on the digispark.

    Since they are LED's on the trailer you could use a PNP transistor.

     

    Mark

    • Cancel
    • Vote Up +2 Vote Down
    • Sign in to reply
    • Cancel
  • ntewinkel
    ntewinkel over 7 years ago in reply to mcb1

    Ah! I didn't think of using transistors for inputs. So then it's the 12v switching the 5v instead of the other way around when powering LEDs or such. That makes much more sense.

     

    And I guess the 7808 in between is just to take the bullet in case of a voltage spike on the dirty-automotive-power ?

     

    Oh and the small battery - also a way to clean up the power? Or to keep the power on?

    I was thinking of using a capacitor (maybe of the super variety), to keep power on for an intermediate amount of time - that way if there's any startup lag, subsequent use will be quicker.

    Not sure if that would make any real-life difference though, now that I think of it - it's the reaction time on the first lighting of brake lights that counts!

     

    But maybe if a battery or cap keeps it powered long enough for the down-time for city traffic, that might be useful.

    That's another interesting project in itself - can we store enough power during the start of a journey, to last for the next 5 or 10 minutes? The start of a journey usually involves holding the brakes while starting and putting the car in gear, and then a fair bit of brake use while leaving the driveway.

     

    But first things first, though not necessarily in that order image

     

    Thanks,

    -Nico

     

    ps, mcb1

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
  • mcb1
    mcb1 over 7 years ago in reply to ntewinkel

    ntewinkel

     

    I guess the 7808 in between is just to take the bullet in case of a voltage spike on the dirty-automotive-power ?

    The specs for the Digispark regulator say 35v, but yes it was "just in case".

     

     

    Battery or Capacitor would work.

    You have LED's so they are almost instant, and the startup lag is very little. (worth an experiment)

    You're likely to be be braking earlier than normal which gives more time for anyone following, and the indicator only cycle is going to be a little shorter.

     

    All bets are off in a full emergency so even 250mS is not really going to be the final deciding factor IMO.

     

     

     

    Mark

    • Cancel
    • Vote Up +2 Vote Down
    • Sign in to reply
    • Cancel
  • ntewinkel
    ntewinkel over 7 years ago in reply to mcb1

    >All bets are off in a full emergency

     

    Right. In that case we buy a new trailer image

    • Cancel
    • Vote Up +2 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