Answer the question
In order to leave comments, you need to log in
FPGA system developer. How, with what and where to start?
This year I am getting my bachelor's degree. I want to be a designer of embedded systems and FPGA systems especially. There is not much knowledge yet, but there is a great desire to study it and do it. Can any of the specialists of this profile share their professional experience? Suggest how to get started and where to look for a job.
Answer the question
In order to leave comments, you need to log in
0. From conversational English, fluent with a good vocabulary and the ability to understand jokes and seemingly strange phrases. Everyone absolutely does not care about your experience and knowledge and skills, even if you get a free job in a corporation with a chance of growth - it will not happen no matter how hard you try, this is the real world and not fairy tales. A high start decides everything, and for this you need to give out a lot fluently eloquently at an interview for the rest in 99.9999999999999999% of cases, everyone always doesn’t care and they won’t even check even when they issue test tasks, even if they are sensible. paragraphs 1 and further without this paragraph are not needed and meaningless.
A programmer using human language works with people using tools made by other people and again described in human language. Even the code is for people and not for PCs. You need to remember and understand this.
1. Programming in C and C++. Study both intensively, realizing that even pure C will be needed and very often, you will use FPGA for a reason - which means moving huge data and you need to organize their input-output and often you need to make drivers yourself on Lunix, for example, and for this they both will be needed .
2. Ability to READ assembler - READ ONLY and ability to fix code and compiler parameters to get the right disasm at the right speed or size.
3. Never write in assembler. see item 0 (asm is unreadable uneditable d). Modern compilers do a lot better than ASMA, even on trifles you will blow it, in general, the difference will be both in size and in speed at times.
4. Do not use the old shit of a mammoth and are not proud of it, forget it like a bad dream and a peak micro with a pure i51 if you study 8051 then modern models with one cycle per instruction and with a normal amount of memory with frequencies of 100 megahertz and higher or in special cases. Similarly, forget: for example, the first maxes of the alter.
5. Prepare for immigration, otherwise interest will fade in 5 years from such a salary in the CIS countries. But we must understand that in the world this industry is on average paid 50% lower than IT.
6. Ability to work with people and soft skills. A person and salary depends on performance and the ability to show oneself, no matter what you do, self-promotion is important, I know great people but "gray mice" who were fired and then wondered why everything stopped working. But I do not know a single careerist and balabol, but very mediocre in technology, who could not jump everyone up the career ladder. [Social skills with tech minimum] >> [tech level is best]. The Silent Ones are quickly faced with the fact that they are given slag by projects or do not allocate resources, and they rot in the Legacy swamp.
7. Study not only modern but also popular and push your Wishlist and your laziness away, everyone doesn’t care that series A is interesting if series B is dull shit but 90% of the projects on it or it is about one and a half times cheaper. It is necessary to study what is required by the market and not what you inspired yourself with what is required. Self-analysis and not "well, this article is understandable, I'll try it" "hmm, I know this and therefore I will continue to sculpt on this platform" "damn it, why doesn't anyone need this platform?"
8. At the beginning, you need to make mistakes on your projects and then start studying other people's similar projects, and only then the theory in order to understand why they are made this way, and so recursively. Do not study unknown theoretical crap just for show - as you study it, you will immediately forget it if it is without practice.
9. Study programming patterns and a bit of the web with the database (it will come in handy more than once - and as a reserve for a career maneuver to go to the web or game or enterprise if everything is completely bad with finances and the salary is needed today and not in half a year)
10. of course circuit technique but without overdoing it - it’s quite enough at the arduino level
From the specifics, an example:
Arduino on STM32 or naked STM32 (or better at the beginning of arduino stm32 and then naked - perfect)
connect heavy things, for example: display camera memory, understand bottlenecks, do something useful on this - the search for faces for example. (working with live video is useful and very interesting, even if you stumble upon bugs, you can get interesting results and develop them and understand the cause of the bug, and most importantly, you can immediately see the result and it's cool)
understand that MKs are not suitable for this at all and slowly start rewriting the face search algorithm on verilog
master Icarus Verilog or another simulation toolchain
bring the simulation to the ideal - i.e. bit perfect when the simulation result is bitwise equal to the source code for STM32
buy FPGA debugging or order your own FPGA board, for example, at least cyclone 3-5 or spartan 6
torment yourself with interfaces and study time constraints and time constraints and others like them
bring this search project to mind and to realtime faces
like this
I join all of the above, I would also like to add that you can view:
1) the Verilog 2001 or SystemVerilog language standard (I don’t talk about VHDL because I’m not particularly familiar with it). I think it's a very interesting read.
2) FPGA Prototyping by Verilog Examples: Xilinx Spartan-3 Version, by Pong P. Chu.
3) "Digital Circuitry and Computer Architecture" by David Harris and Sarah Harris, an article about this book https://habr.com/post/306982/
4) Advanced FPGA Design: Architecture, Implementation, and Optimization by Steve Kilts.
5) Article on Habré: https://habr.com/post/281525/ , from which I started when I started learning Verilog. It contains a lot of useful information in my opinion.
The rest is to sit down and start to embody something conceived in hardware, but initially, of course, work in a simulator.
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question