Any idea for a project with FPGA? - Page 1
Forum section: electronics / projects

author: zapta
author_rank: Super Contributor
timestamp: September 16, 2015, 01:33:02 pm
content: I want to do a hobby project with FPGA but can't come out with an idea for a useful project that justifies using a FPGA over a standard MCU.Any idea?

author: Scrts
author_rank: Frequent Contributor
timestamp: September 16, 2015, 01:43:00 pm
content: Maybe try to do something with the video processing? FPGA is a good fit for that.

author: Daniel_Reyes
author_rank: Regular Contributor
timestamp: September 16, 2015, 01:45:17 pm
content: Time machine.Sent from my SM-G900P using Tapatalk

author: Bob F.
author_rank: Regular Contributor
timestamp: September 16, 2015, 02:13:42 pm
content: Function generator?Seems to be a popular use in the professional domain and probably not toooooo complex for a 1st FPGA project (he said having no FPGA experience whatsoever, but having spent some time looking at the Analog Devices DDS chips for this functionality...).Have fun.

author: daqq
author_rank: Super Contributor
timestamp: September 16, 2015, 02:16:50 pm
content: Counters are fun and you can play around with a lot of the features. A simple digital oscilloscope (high speed ADC(s) coupled to an FPGA) might be a great learning experience.

author: MagicSmoker
author_rank: Super Contributor
timestamp: September 16, 2015, 02:25:02 pm
content: Quote from: zapta on September 16, 2015, 01:33:02 pmMultiphase (3 or 4?) buck converter with purely digital control loop.

author: free_electron
author_rank: Super Contributor
timestamp: September 16, 2015, 02:25:16 pm
content: bend the pins in awkward directions , paint it purple, glue to crazy eyes on it and you have one of those 'crazy minions' from despicable me.added bonus points : drill a little hole in it and make a hanger out of it.

author: nctnico
author_rank: Super Contributor
timestamp: September 16, 2015, 02:35:41 pm
content: Quote from: zapta on September 16, 2015, 01:33:02 pmIf you have a piece of equipment with a CRT or DSTN LCD screen try replacing that with a TFT screen.

author: free_electron
author_rank: Super Contributor
timestamp: September 16, 2015, 02:39:57 pm
content: on a more serious notei;ve bene thinking about the followingi have gotten a hold of a few hundred 8x8 matrix led displays ( bi color red/green )i'm thinking of making an 8x8 tile of such displays ( so to get a 256x256 pixel display )i would use two shift registers per display , one for row one for columns. cascade the registers per row.rowdata(0..63)rowlatch would be common for all tilescollatchrowclkcolclockcoldata ( this is a single bit scanning the column so these are common for all tiles)so i scan every tile synchronously with all its brothers. only the rowdata is unique.the fpga would 'carve up' the bitmap into the scanpatterns.the fpga would hold multiple graphics 'planes'a 256x256 for red and one for greenthere would be a text plane and a graphics planeit would have a primitive gpu that allows me to 'mask' area'sfor example do a logical 'or' between text and graphics , then show only the pixels that are enabled on the 'output enable' planeso i could draw time and date on the green text plane , a circular clock on the green graphics plane , a seconds pointer on the red graphics plane and the clock face numbering on the red text plane.the FPGA would have two sets of such planes and it would be able to 'crossfade' between them.i am giving the example of a clock but there are other things you can do. the idea is to make a display where i can 'build' an image using text and graphics layers and then tell the display : start fading from one to the other ,when don i will start drawing on the 'invisible planes'

author: LDM
author_rank: Contributor
timestamp: September 16, 2015, 03:19:42 pm
content: I'm sure you could find some kind of useful format conversion to do, such as I2C to SPI to parallel to UART or whatever. It's a good project if you're interested in learning how to structure the VHDL, write modules etc.You could even do all at once, such as a multifunction input, and outputs for SPI/I2C/Parallel with a few pins to select the input format. While this would probably be much easier with a MCU which already has all the blocks built into the hardware, you have to start somewhere right?

author: zapta
author_rank: Super Contributor
timestamp: September 16, 2015, 03:21:55 pm
content: Quote from: free_electron on September 16, 2015, 02:25:16 pmThis I can implement with a standard MCU.

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: September 16, 2015, 03:30:42 pm
content: Driving the various cheap Chinese video-wall tiles is a really good use for an FPGA, especially if you want to greyscaling.This is classic FPGA territory as it involves multiple simultaneous datastreams, predictable timings, a lot of shuffling round of data, but with negligible computational complexity.It also involves minimal external hardware as all the drivers and hairy PCB layout is taken care for you. You can connect the panels straight to the FPGA pins.And it's also nice and scaleable - from "hello world" at 1bpp on one panel to a full video display.And it looks pretty.

author: nctnico
author_rank: Super Contributor
timestamp: September 16, 2015, 03:37:09 pm
content: At some point the data streams will become unmanageble though. I remember a post somewhere from someone involved with designing really large video walls. He needed gigabit streams between the FPGAs in order to transport all the pixel data.

author: GNU_Ninja
author_rank: Regular Contributor
timestamp: September 16, 2015, 03:41:57 pm
content: How about a random number generator.http://hackaday.com/2012/07/18/a-hardware-random-number-generator-for-your-fpga/

author: Neilm
author_rank: Super Contributor
timestamp: September 16, 2015, 06:13:58 pm
content: Find an ADC, read the data from it and send the results to a UART. If you feel up to it, put a small mux on the input to the ADC and select the input from the UART

author: Gyro
author_rank: Super Contributor
timestamp: September 16, 2015, 06:20:57 pm
content: How about a decent Logic Analyser - the world always needs another one of those.

author: tszaboo
author_rank: Super Contributor
timestamp: September 16, 2015, 06:33:20 pm
content: High resolution FFT for audio. <-I did this once.Active noise cancellation.Game of life hardware implementation.SDRChess board with hundreds of electromagnets moving the pieces.man... life is short...

author: jlmoon
author_rank: Unknown
timestamp: September 16, 2015, 07:42:59 pm
content: How about cpu emulation such as 8088, Z80, 6800, 68000, 6502, or any of the modern PIC, M'Series Processors. So many to choose from.

author: ez24
author_rank: Super Contributor
timestamp: September 16, 2015, 07:53:34 pm
content: Quote from: Gyro on September 16, 2015, 06:20:57 pm

author: John_ITIC
author_rank: Frequent Contributor
timestamp: September 16, 2015, 08:08:03 pm
content: How about buying a good book about Digital Design utilizing an FPGA starter kit. Lots of fun and you'll learn a lot.I strongly recommend these books for learning Digital Design, Verilog and FPGA:http://www.amazon.com/Verilog-HDL-2nd-Samir-Palnitkar/dp/0130449113/ref=sr_1_1?s=books&ie=UTF8&qid=1442433737&sr=1-1&keywords=verilog+hdlhttp://www.amazon.com/Advanced-Digital-Design-Verilog-HDL/dp/0136019285/ref=sr_1_3?s=books&ie=UTF8&qid=1442433737&sr=1-3&keywords=verilog+hdlhttp://www.amazon.com/Embedded-Design-McGraw-Hill-Electronic-Engineering/dp/0071474811/ref=sr_1_8?s=books&ie=UTF8&qid=1442433789&sr=1-8&keywords=Altera+DE1To try out in hardware, buy the Altera DE1 board (Cyclone II). Allows you to do SOPC/QSYS designs too (advanced). The last book touches on SOPC designs.http://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&CategoryNo=53&No=83&PartNo=6For advanced SOPC designs, buy this book (targets the DE1 board):http://www.amazon.com/gp/product/1118011031?psc=1&redirect=true&ref_=oh_aui_detailpage_o07_s00

author: Sbampato12
author_rank: Regular Contributor
timestamp: September 16, 2015, 08:27:53 pm
content: Quote from: Gyro on September 16, 2015, 06:20:57 pmWith data (patern) generator.... humm it's sound good

author: jancumps
author_rank: Unknown
timestamp: September 16, 2015, 08:32:16 pm
content: Quote from: Gyro on September 16, 2015, 06:20:57 pmI'm using a Papilio with Xilinx Spartan-6 as logic (protocol) analyserhttp://forum.gadgetfactory.net/index.php?/topic/1925-porting-logic-analyser-from-one-to-pro/

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: September 16, 2015, 10:41:30 pm
content: Quote from: nctnico on September 16, 2015, 03:37:09 pmYes but building a hugeanythingis complicated and expensive. I'm noy suggesting anyone build a video wall -there are off-the-shelf solutions for that.The individual tiles are cheap, easy to drive, and IMO are a very good target for learning as you can make them display _something_ very easily with a dozen lines of HDL, but there is lots of scope to do various different increasingly interesting things with them - greyscaling, expansion to multiple tiles, autonomous content generation, playback from serial data from a PC, and even capturing data HDMI, exploring memory interfacing, character & texture generation etc., etc.A parallel TFT display (controllerless type) is also quite a fun thing to play around with on an FPGA - again pretty easy to get something displaying but lots of scope to do more things as you learn.

author: jancumps
author_rank: Unknown
timestamp: September 16, 2015, 10:44:18 pm
content: Great advice from Mike - something that's affordable and relatively easy to get started with. And has loads of opportunities to expand upon and learn.This may be a kick in the ass for @self.

author: zapta
author_rank: Super Contributor
timestamp: September 16, 2015, 10:50:44 pm
content: Quote from: mikeselectricstuff on September 16, 2015, 10:41:30 pmMike, any link to such cheap wall tiles?Quote from: Gyro on September 16, 2015, 06:20:57 pmI was thinking of a variant of this, a superb trigger detector. Imaging a black box with digital input and outputs. You can define an arbitrary trigger criteria on the inputs that will generate signals on the outputs. Trigger criteria can be based on history, combination, state, timing, protocol decoding, etc and is defined using an attached computer.Can be used with oscilloscope, logic analyzers with lesser trigger, counters, alarms, etc.Is this 'useful' ?

author: nctnico
author_rank: Super Contributor
timestamp: September 17, 2015, 05:54:02 am
content: Quote from: zapta on September 16, 2015, 10:50:44 pmYes, but my Tektronix logic analyser already does that and you can pick these up quite cheap.

author: RogerRowland
author_rank: Regular Contributor
timestamp: September 17, 2015, 09:59:01 am
content: Quote from: nctnico on September 17, 2015, 05:54:02 amHmmm ...http://www.tek.com/logic-analyzer/tla6400"The affordable TLA6400 Series of logic analyzers ...."Starting price is 12,000USD .....Quite cheap?

author: TiN
author_rank: Super Contributor
timestamp: September 17, 2015, 10:10:31 am
content: No need buy newI can spare mine

author: tombi
author_rank: Regular Contributor
timestamp: September 17, 2015, 12:43:52 pm
content: Don't know much about FGPGA capabilities but could you parallel enough processing elements to run crypto faster than a desktop PC?Bitcoin on FPGA has been well and truly done.What about an A5 cracker for decrypting GSM phone conversations captured from an SDR? Or P25 used to encrypt police radio?Can you easily do fast USB? What about a bump-in-the-wire drive encryptor for USB drives?Tom

author: free_electron
author_rank: Super Contributor
timestamp: September 17, 2015, 03:58:02 pm
content: 8x8x8 rgb led cube ?where a vertical column of LED's is made by those smart RGB led's in cascade.you essentially use 64 IO's to drive 64 of those columns.let the FPGA do all timing.the fpga has 3 color planes and a byte or word wide IO interface so it looks like 'ram' to an attached processor.this is not too big and gives you a base to start learning.you make the pattern generator , make 64 instances of that , hook it up into a bank of memory, design a bus arbiter , use dpram blocks.the memory map needs to coincide with how you define 3 dimensional array in the cpu memoryso if i do red(3,4,6) =127 then the red pixel at x3, y4 and z 6 goes to 127/255 possible settingsso the cpu does not need to do any translation. the cube is really represented as three 3-dimensional arrays

author: nctnico
author_rank: Super Contributor
timestamp: September 17, 2015, 04:07:34 pm
content: Quote from: tombi on September 17, 2015, 12:43:52 pmNo. Especially if you look at the financial picture. Parallel GPU processing has replaced a lot of parallel processing applications which where traditionally FPGA territory.

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: September 17, 2015, 06:46:26 pm
content: Quote from: zapta on September 16, 2015, 10:50:44 pmSearch RGB LED display on aliexpressOr RGB LED PHn where n is the pitch - 2.5, 3,4,6,8,10,12 etc. 4-6mm are the cheapestOr RGB LED Panel at Adafruit

author: sarepairman2
author_rank: Frequent Contributor
timestamp: September 18, 2015, 03:14:05 am
content: how about a quad 20 bit dac controller?

author: Nerull
author_rank: Frequent Contributor
timestamp: September 18, 2015, 03:31:20 am
content: Quote from: nctnico on September 17, 2015, 04:07:34 pmParallel GPUs are being replaced by ASICs which are even faster for crypto these days. The fastest GPU on the market does about 700 million hashes per second, ASICs are into the trillions-per-second range.These things mostly seem to be tied up in cryptocurrencies, but they'd be ungodly at password hash cracking.Cryptocurrency hashing has an ever increasing difficulty scale, at least the ones I've seen, and the new tech is so much faster than the old that if you started up a miner with that GPU today it would make approximately 4 cents a month, though you wouldn't actually see it since it would take you 62856 years (ignoring future difficulty increases) to mine 1 BTC and you only get them in blocks of 25. The calculator rounds the amount a 6 core i7 would make down to $0.00.

author: Delta
author_rank: Super Contributor
timestamp: September 18, 2015, 07:18:57 am
content: Use an FPGA to make a Microcontroller emulator...

author: obiwanjacobi
author_rank: Super Contributor
timestamp: September 18, 2015, 01:56:30 pm
content: I am a FPGA noob but have always thought that a way to have a conventional MCU+software backed into hardware (FPGA) would be cool. You'd need a software tool that converts the MCU platform and the program to an FPGA configuration. Probably not the easiest projectCreate your own microprocessor with massive parallel capability (parallax style)? No, too complex..?I think something like a led matrix / cube would be my first choice (but without the smart leds) - just to get a feel for it.Take on more complex projects at a later time.

author: daybyter
author_rank: Frequent Contributor
timestamp: September 18, 2015, 09:56:23 pm
content: I wonder if you do faster BigDecimal processing with an FPGA coprocessor. I have not seen any GPU using this variable type.

author: Bud
author_rank: Super Contributor
timestamp: September 18, 2015, 10:44:43 pm
content: Glue some random ADC to it, write some crappy code as if you were trying to design a scope, do not worry if it will not work as intended, will do weird things or will freeze all the time, swap the board in the rigol scope, no one will notice a difference.

author: JoeN
author_rank: Frequent Contributor
timestamp: September 19, 2015, 11:02:35 am
content: Quote from: zapta on September 16, 2015, 10:50:44 pmI have a couple of these. They are good quality.http://www.ebay.com/itm/32x32-Full-Color-RGB-1024-LED-Dot-Matrix-Display-Module-6mm-Pitch-PH6-US-SHIP-/181538726928

author: SundayProgrammer
author_rank: Contributor
timestamp: September 19, 2015, 12:09:56 pm
content: I don't know what to would be a nice idea for a project, but I learned a lot when I made "Apple I-replica" with FPGA. When it was ready I wrote "Apple I style" basic-interpreter "operating system" to it.Also modified one open source C compiler project to able to compile C source programs in that "computer". It is "a little bit" easier to make demos by compiling C rather than opcodes. (as you all know of course)Axel.

author: bitslice
author_rank: Frequent Contributor
timestamp: September 19, 2015, 03:12:35 pm
content: Not all processors have a DMA function but it can be quite handy for data transfers.Likewise for Maths coprocessors, repetitive operations can be faster than a software equivalent

author: tggzzz
author_rank: Super Contributor
timestamp: September 19, 2015, 03:14:53 pm
content: Quote from: obiwanjacobi on September 18, 2015, 01:56:30 pmPeople have been trying to do that for 30 years. They have had some success in limited areas, but there are significant holes in the progress. Currently the most advanced commercial tools appear to come from Xilinx and are centred around the Vivado ecosystem

author: technix
author_rank: Super Contributor
timestamp: September 19, 2015, 06:41:22 pm
content: You can try create a new CPU or GPU using your FPGA. That kind of project is definitely non-trivial but should you be able to pull that off you can patent your design and start try selling licenses to it, if it have some desirable features like ultra low energy consumption or being really really fast.Something interesting I am wondering about is making a board in the form factor of a PCIe add-on card (or USB which is simpler but slower) on your computer, and try and find out what kind of wonderfulness and weirdness you can cook up on that FPGA coupled to a computer using PCIe. You can make it crunch through calculations (e.g. Bitcoin mining,) or interface some oddball pieces of hardware (e.g. a game cartridge emulator - when the other end is connected to a game console your computer can have access to the console's system bus, not only allowing loading games onto real hardware but even can behave as a ICE so you can write new games for the console)

author: daybyter
author_rank: Frequent Contributor
timestamp: September 19, 2015, 10:33:43 pm
content: http://www.embeddedintel.com/commentary.php?article=2143

author: Nerull
author_rank: Frequent Contributor
timestamp: September 19, 2015, 10:48:40 pm
content: Quote from: technix on September 19, 2015, 06:41:22 pmIts a neat idea, but not a new idea:

author: Someone
author_rank: Super Contributor
timestamp: September 20, 2015, 01:13:39 am
content: There have been many GPU on FPGA projects over the years:https://www.kickstarter.com/projects/725991125/open-source-graphics-processor-gpuIts not a good fit when you are trying to replicate existing sequential operations, it could get interesting if it included a new graphics API with algorithms better suited to the FPGA as in the raytracing demos seen over the years.

author: zapta
author_rank: Super Contributor
timestamp: September 21, 2015, 01:36:56 am
content: Thanks everybody for the ideas. The LED wall seems to justify FPGA (supporting a large number of panels with high refresh/PWM rate), but I am not sure what to do with it after that since it require also artistic skills to make it useful.The logic analyzer idea is also interesting even though there are many on the market. For example a pass through logic analyzer with a form factor of an Arduino shield so you can debug an arduino based system with a customized sigrok without having to hook wires.I will try to refine these ideas and please post here any new ones you have. The goal is to justify the usage of a FPGA for something useful, not just learning FPGA programming.EDIT: another idea I am evaluating is having an FPGA as a protocol signal injector. I did something similar for linbus with an atmel 328P but this will not work for faster busses such as CAN. The idea is to have a proxy between a node and the buss, the proxy injects signals to/from the node by flipping selected bits and updating packet checksum. With linbus it allowed me to inject simulated button presses (for Sport mode) without having to modify any node. Will a similar injector will be useful for example for CAN bus?

author: technix
author_rank: Super Contributor
timestamp: September 21, 2015, 03:31:15 am
content: Quote from: zapta on September 21, 2015, 01:36:56 amYou can make your RGB LED wall understand some kind of standard protocol (e.g. HDMI or DisplayPort, DVI is somewhat compatible with HDMI) so you can, after finished building it, use it as a display of your computer.

author: zapta
author_rank: Super Contributor
timestamp: September 21, 2015, 04:30:51 am
content: Quote from: technix on September 21, 2015, 03:31:15 amIt will compete very poorly with a standard large flat LCD panel, both in resolution and cost.My goal is to do something useful that is enabled by FPGA.

author: ez24
author_rank: Super Contributor
timestamp: September 21, 2015, 06:00:48 am
content: I would like to see more instruments that are driven by tablets. A good 7 inch tablet with a keyboard can be had for about $50.I like your Arduino idea.

author: Psi
author_rank: Super Contributor
timestamp: September 21, 2015, 06:08:55 am
content: 1. Take the HDMI feed from a gopro or similar small camera crop/split the HD video up into 2 or 3 subsets and generate composite video streams for each of those. (Without adding more than 1 frame of latency)2. Now do the same again but in reverse.Congratulations you now have a way for the RC community to get high definition FPV video without paying DJI $2000 for lightbridge3. Sell for $400. ProfitI would do it myself but I don't have the time and would need to teach myself FPGA programming as I go. Also I worry china will bring out a cheap fully digital alternative making it redundent.It's a dirty hack to use multiple $10 analog transmitters to transmit hd video but its realativly simple concept wise, no need to deal with complex low latency compression algorithms

author: tggzzz
author_rank: Super Contributor
timestamp: September 21, 2015, 09:37:08 am
content: Quote from: evb149 on September 21, 2015, 07:17:51 amYou can do much more with a DDS if you don't simply increment the phase counter linearly (i.e. constant frequency).If you have an FSM that changes the phase increment (i.e. set frequency) at appropriate times, then you can simply define and implement many phase modulated signals. Add a gain control and you can generate AM signals.

author: rs20
author_rank: Super Contributor
timestamp: September 21, 2015, 10:10:32 am
content: ^ QAM as well!

author: Psi
author_rank: Super Contributor
timestamp: September 21, 2015, 10:13:30 am
content: a single chip HDMI->DVBT encoder would be cool too, but very complex. Would need H264 encoder, COFDM etc.

author: hamster_nz
author_rank: Super Contributor
timestamp: September 21, 2015, 11:19:59 am
content: How about making a GPS disciplined frequency reference?On most FPGAs you can tune the a phase of a PLL's VCO signal very precisely, with small steps - something like 1/8th of a cycle at 1000MHz.So if you are using a 100MHz XTAL, the count between GPS PPS pulses is 100,001,234 you could run the PLL at 10x (1000MHz), and then crawl it's phase backwards by 45 degrees 8*10*1234 = 98,720 times per second (or every 1012.978 cycles of the crystal clock), and then use that to generate a clock suitable for driving a DDS chip that is generating a 1MHz reference.That way you should end up with a 1MHz reference that is tightly aligned to the GPS PPS, give or take a few 100 ps.I haven't done all the math, but it would be an interesting project - lots of interesting design work, and maybe even useful. It can also be build up a little bit at a time. e.g.:a) count cycles between GPS PPS pulses,b) work out how adjust VCO phasec) work out how to drive the DDS.d) integrate it all together

author: daybyter
author_rank: Frequent Contributor
timestamp: September 22, 2015, 02:40:53 am
content: A VGA graphics adapter for the c64. With 80 column support etc.

author: UConn94
author_rank: Newbie
timestamp: September 22, 2015, 03:20:43 am
content: 1. 80 channel logic analyzer - in light of USBEE out of business, and more than 2X of Intronixs..2. 1.3 GHz frequency counter3. VME bus master with Ethernet/USB3 interface

author: ez24
author_rank: Super Contributor
timestamp: September 22, 2015, 04:39:38 am
content: Make all these projects and become a billionaire(sorry if some are jokes - I do not know if they are or not)

author: alexanderbrevig
author_rank: Frequent Contributor
timestamp: September 22, 2015, 05:14:21 am
content: I just bought an FPGA dev board and for project I will make something that's useful to one of my other hobbies. Music!For listening I want a FIR filter. USB HID audio in => room corrected L & R out (audiolense, I love you) through some DAC that I've yet to decide.For mixing (I'm an audio engineer as a side business) I want a digital snake/ mux that takes 8/16 or 32 lines of audio from stage and transmits over Ethernet PHY and then unpacks them again at my end.For playing (with my band Immetic, we're on Spotify etc if you're interested in 8 string metal) I want a MIDI in/out foot controller (which will also control lights through DMX). Ok, this could easily be a micro controller project but I'm in it to learnI think it's easier to find projects if you combine electronics with other interestsEDIT: I also have an idea for a box that sits between mixer and audio system that 'learns' the frequency response of the empty venue, and when people arrive and completely f**ks up the freq.response then the box kicks in and modifies it's filter. This is something I think is sellable if done right. #freeideas :/