Undergraduate thesis and FPGA - Page 1
Forum section: electronics / general

author: Eifel
author_rank: Newbie
timestamp: October 15, 2019, 10:25:34 am
content: Hello!Please help me with ideas for my University undergraduate (Bachelors) thesis project using FPGA. I have some experience with microcontrollers and general programming, but zero exp. with FPGAs. Never had held any in my hands. But I definitelly want to learn and make something in this area. I have time till summer to complete my project and thesis, but I have two days to come up with specific topic - what I will create/investigate.What others do? There are two subjects my fellow colleagues are working on - face detection/recognition (by porting some existing system like OpenCV or other and in thesis describing this porting process, benefits of using FPGAs and create working prototype for demo) and Image processing - deconvolution (motion deblur) using radar and existing alghorithm. Originally I came for face recognition. As I jump on this train at the last minute, those two subjects are already chosen and not available so I have to come up with my own ideas.My first idea was to create fully working ECG machine. Design and create analog front-end or use ready IC (from Maxim integrated) and FPGA would process received signal, do some filtering, drive LCD and show alarm if ECG signal gets bad shape. But as I have small knownledge in signal processing and especially no knowledge how to do this in FPGA, I came up with alternative idea - create DDS function generator - complete machine with my PCB and casing, buttons, LCD. I saw some cheap generators (FeelTech) use FPGAs for this purpouse.Is this DDS Function generator using FPGA - good idea? How difficult it will be to create? I understand I will also have to design some output stage (D/A converters, op-amps, filters n stuff). What FPGA to choose? Xilinx, Altera, Lattice? (I saw Lattice have some available Demos & Reference Designs, IP cores at their site for free)What about Image processing and machine learning (from what I suppose FPGAS do well). Any idease in this field (except ones I listed above). Lattice have some docs, demos, exampleshttp://www.latticesemi.com/en/Solutions/Solutions/SolutionsDetails02/sensAIThey also have some embedded vision devkit that's a little expensive, but don't cost a leghttps://www.latticestore.com/default.aspx?tabid=417&searchid=1&searchvalue=LF-EVDK1-EVNI saw Xilinx have some similar solutions - reVISION etc, but, except for a lot of ads and presentation, I didn't find any specific info in their www. Same with Altera/Intel.Image processing looks cool topic, but will I benefit (electronics student) more from creating this DDS Function generator or messing around and experimentating with ready built image processing systems? I saw videos on YT where studens have already done this almost decade ago. Also when I tell someone - I'create face detection system - they reply - ehh, my Chinese phone can do this easy. I think when I will do job interview later on - they'll ask what did I do for my thesis?! Or maybe all of this is not so important.I'm a bit confused right now. So the question is about DDS Function generator, what kind of FPGAs to chose (easier for beginner, not so expensive, suitable for my task). I saw some boards, that already come with D/A converter onboard. Maybe some of them? Or chose D/A seperately?What about Image processing field, any cool ideas there? Some former student created his thesis on realtime geometric image processing. He described all process of acquiring image from some OVxxx camera, storing, geometric manipulating with it - he created project that removes perspective thus converting 3D image into 2D - he got 9 or 10 for this job. I also saw some interesting videos on Youtube - realtime depth measurement from video (different depth, different colors) or movement direction detection (different directions - different colors).So DDS generator or something with image processing, any ideas? Whats FPGA kits to use? How difficult will it be?

author: tunk
author_rank: Super Contributor
timestamp: October 15, 2019, 10:45:40 am
content: Is this any help getting ideas:https://www.eevblog.com/forum/fpga/fpga-application-examples/msg2611401/#msg2611401

author: daqq
author_rank: Super Contributor
timestamp: October 15, 2019, 11:24:29 am
content: QuoteIf you want to really impress people, do something more than buy 3 pre-built PCBs, slap them together and write some code. Make your own hardware, add your ADC/DAC, play with the analog design as well...A direct RF sampling radio would be cool and can involve a LOT of math that needs to be understood. An actual GPS receiver can be quite tricky.If you want to go for tools, a high resolution + high accuracy frequency counter can involve a lot of nuances.

author: rstofer
author_rank: Super Contributor
timestamp: October 15, 2019, 03:38:10 pm
content: If you want to do the DDS project, research all of the documentation about the Analog Discovery 2 at Digilent.Personally, I would do a CPU core that I could drop into other projects. There is a project called LC3 that is used by many colleges and universities as an upper division or post grad course and it is well documented with a ton of information on the web. There is also a C compiler and assembler out in the wild. The book is "Introduction to Computing Systems from bits & gates to C & Beyond" by Patt and Patel. There is a worksheet for the microcode if that is the type of design you use but there is also a state diagram that is fairly easy to translate into a finite state machine (FSM) in some HDL language. Building such a core will take a couple of thousand lines of VHDL by the time a UART and various displays are included. It's a worth project.

author: rstofer
author_rank: Super Contributor
timestamp: October 15, 2019, 03:40:52 pm
content: Embedded Vision:https://store.digilentinc.com/embedded-vision-bundle/

author: Eifel
author_rank: Newbie
timestamp: October 15, 2019, 11:14:16 pm
content: Thank you all for your answers and time!I agree that buying prebuilt 3 PCB stack and write some code for it wouldn't be impressive, maybe I'll someday buy and leave this Lattice vision kit for some free/spare time experiments at home.I did some research on "direct RF sampling radio" and found that it's way too complicated subject, but I really like idea about creating "a high resolution + high accuracy frequency counter"! Thank you, daqq, for idea. I think, I'll go for it. I also found good theory lessons in www about this subj.Thanks, rstofer, for reference to Analog Discovery 2. I remember this kit from first study year, we were using them a little bit. I forget about that it's using FPGA and have a bunch of schematics in digilent webpage. That's give me some understanding how difficult it would be.Despite my original willing to create DDS, capable of creating various waveforms - this project seams to be too complicated tooBut sometimes I see DDS generator and counter in one device. So I'll go for counter and if it will success I'll look to add DDS generator. Or maybe focus only on counter cause I have to fully understand every detail and be able to defend/assert this.

author: EEVblog
author_rank: Unknown
timestamp: October 15, 2019, 11:33:23 pm
content: Maybe something to do with crypto?I'm not thinking mining, that's been done to death, but maybe the other end like an ultra low power node on a small FPGA.Maybe target a market like renewable trading using Power Ledger perhaps.

author: NorthGuy
author_rank: Super Contributor
timestamp: October 16, 2019, 02:09:06 am
content: Quote from: Eifel on October 15, 2019, 11:14:16 pmIt's nothing compared to face recognition.

author: tggzzz
author_rank: Super Contributor
timestamp: October 16, 2019, 08:44:58 am
content: Strategy:find what FPGA toolchain is used locally. These can beverycomplex and time consuming to learn, and you ought to get zero credit for learning which buttons to push on tool Frobnitz version 16.7.5find which FPGAs can be used with those tools and which are used locally and are already mounted on PCBs. FPGAs can be very demanding about the PCB layout, and you ought to get zero credit for laying out a PCB that can be easily purchaseddetermine what scale of circuit could reasonably fit in that FPGAchoose a projectAnalogy. In the 60s and 70s a famous professor of Electrical Engineering used to set three types of exam questions: easy (gets you a pass mark), normal (gets you full marks), impossible to answer in the available time. He expectedengineersto spot the last onesand avoid them; if they didn't then they weren't good enough to become engineers.

author: EEVblog
author_rank: Unknown
timestamp: October 16, 2019, 11:13:03 am
content: Quote from: tggzzz on October 16, 2019, 08:44:58 amYes, wise advice.

author: tggzzz
author_rank: Super Contributor
timestamp: October 16, 2019, 11:40:23 am
content: Quote from: Eifel on October 15, 2019, 10:25:34 amYou should find out from your supervisors what willand will notgain you credit towards your qualification. For example, for an electronics qualification, creating a case is probably irrelevant.

author: RoGeorge
author_rank: Super Contributor
timestamp: October 16, 2019, 02:49:04 pm
content: Quote from: Eifel on October 15, 2019, 10:25:34 amIt's a very short time to learn FPGAs, and HDL, and specific IDE/tools, and research the theme, and implement the project, and write your thesis, and have a life, and do all these reasonably well by yourself.Better stick with a microcontroller implementation. A microcontroller based DDS can be a great project.The project doesn't need to be an ultra-super-mega-extra-revolutionary invention, but it is important to do it by yourself. Squeeze the maximum performance at a given BOM cost, and in the given time frame. Show that you used what you had efficiently. With infinite resources anything can be done. The challenge is to do the best with limited resources. That's what engineering is about.Good luck with your thesis!

author: tggzzz
author_rank: Super Contributor
timestamp: October 16, 2019, 04:38:19 pm
content: Quote from: RoGeorge on October 16, 2019, 02:49:04 pmThat is sane.When I've interviewed new graduates, I've wanted to knowwhatobjectivesthey set themselveshowthey chose to stretch themselveswhatdecisions they madewhythey made themtheirnextsteps if they had met their objectives (if not, why not)what they now know they would dobetterif they had their time over again

author: rstofer
author_rank: Super Contributor
timestamp: October 16, 2019, 04:58:54 pm
content: Quote from: RoGeorge on October 16, 2019, 02:49:04 pmEngineering students aren't supposed to have a life! If a life was required, it would be sold in the bookstore or handed out in a lab class.There's a reason that engineers are characterized as introverts lacking even basic social skills. OTOH, they can do math in their head that defies solution by the non-engineers.There are some very high speed uCs that would do a fine job of making a DDS. OR, you could use a uC like the BlackFin which has hardware specifically intended for the application. Then it turns into a code-monkey project. Worthy? Hard to tell but in the real world copanies actually use the Analog Devices uC. The chip has no MMU so it is restricted to running uClinux which it does very well.https://en.wikipedia.org/wiki/Blackfinhttps://www.analog.com/en/products/processors-dsp/dsp.htmlhttps://www.analog.com/en/design-center/evaluation-hardware-and-software/evaluation-boards-kits/eval-bf706-mini.html#eb-overviewAD is discontinuing support of uClinux but the sources will be available:https://ez.analog.com/dsp/software-and-development-tools/linux-blackfin/f/q-a/108907/end-of-life-for-blackfin-linuxA DSP device doesn't necessarily need an operating system as long as there is library code for things like serial IO streams. I haven't played with the Blackfin in quite a long time but it was a terrific board when I used it.Machine vision?https://visionlab.uncc.edu/dokuwiki/blackfin:uclinux_bf537setup

author: Bassman59
author_rank: Super Contributor
timestamp: October 16, 2019, 05:06:53 pm
content: Quote from: rstofer on October 16, 2019, 04:58:54 pmFunny, when I was an undergraduate in engineering school, I was a short train ride away from New York City. And I definitely took advantage of that. Oh, and the best little rock club on the east coast was a six-block walk from my dorm, so rather than avoiding studying by playing pool or watching TV, I'd go see bands. I seemed to do fine!

author: dferyance
author_rank: Regular Contributor
timestamp: October 16, 2019, 05:14:52 pm
content: One possibility to consider -- as you have programming experience -- is OpenCL. OpenCL provides the ability to write code that will run on CPUs, GPUs and FPGAs. I have only minimal experience with it -- just trying out GPU examples. So I don't know how well it works. One downside I know of is that the supported FPGA boards for it can be very expensive.Now that's just a technology option. I don't have any ideas over what you should use it for.