VHDL/FPGA career choices - Page 1
Forum section: electronics / beginners

author: VeeJayy
author_rank: Newbie
timestamp: January 11, 2022, 11:16:22 am
content: Hello everyone,I have been working on FPGAs since a year in Germany and I have been working a little bit with the implementation on Xilinx FPGAs with VHDL.I am doing predominantly support work at my present company, and I feel like I am in the middle of nowhere since the experience I have turns out to be really less for good companies here.The only skills I have is coding very little in VHDL on specified FPGAs and I have unfortunately never worked with SoCs.I have decided to move ahead with a few courses on VHDL and FPGAs since there are absolutely no projects in the company, but would be grateful for further suggestions from people in this particular field for further career plans.I am 30 years old and i'm desperately looking for a direction in this field.Would appreciate your help in understanding- What should be the role I should look for. (Development? Verification?)- The tools that I should work on (ModelSim? Vivado?)- The hardware that are the demands of the present market- What can I do to get good at this role.It may sound really stupid of me asking such questions, but I have been in this lingo for as far as I remember.At the end, I feel I could listen to a few tips from experienced people so that I can chart a good roadmap for 2022. I really really appreciate the effort and help.Thank you.Regards,VeeJayy

author: rstofer
author_rank: Super Contributor
timestamp: January 11, 2022, 03:20:34 pm
content: I can't help with career planning but I can recommend VHDLwhiz.com. The author spends most of the time talking about simulation/verification with ModelSim but all of the code is in VHDL. There is an enormous amount of content, not all of it free but education has never really been free.

author: CaptDon
author_rank: Super Contributor
timestamp: January 11, 2022, 03:46:21 pm
content: Although there was a great book written to learn VHDL and based around the Xilinx Spartan 3 experimenter boards I have personally found Xilinx to be an uncooperative company to deal with. There are better VHDL tools out there to work with and better FPGA companies to deal with. We switched when the whole "My platform cable no longer works when I upgraded to Windows 10" and the Xilinx answer was "tough shit". The platform cable would work with the new Vivado and the new product line, but suddenly all of your old ISE 10.x and things like that quit working and Vivado (Shitvado) did not support your older designs, files, projects!!! GE has hired tons of useless middle easterners to write VHDL/Verilog and their coding sucks donkey nuts. Some of the worst code I have ever seen in code reviews. Sadly a lot of that crappy code got released and only in the field did the managers who hired 'resumes' and not talent find out how bad the code was. If you can write good compact code there is a future for you. Move away from Xilinx........Run, don't walk!!!!!

author: VeeJayy
author_rank: Newbie
timestamp: January 12, 2022, 09:57:42 am
content: Hey,I did come across VHDLwhiz. I can look more into it. He did explain a few concepts quite clearly.And yeah, nothing in life is for free. If it's worth it, I have absolutely no issues.One has to start somewhere.Thanks for the suggestion. Will look into it.

author: VeeJayy
author_rank: Newbie
timestamp: January 12, 2022, 10:04:51 am
content: Hey,Yeah the problems posed by Xilinx is unbelievable. I find Vivado a little better, but i have also used Libero from Microsemi which was so much user friendly.Also, since we are working with age old FPGAs at my present company, we had to use Xilinx ISE for everything. As you said, the ISE on windows 10 is a nightmarish story. Hence we had to use it on a Virtual machine and only flash the FPGAs using impact on Windows 10.Flashing on the virtual machine took an hour, whereas on Windows just 5 minutes. So yeah, they have literally no support and all I got was from forums.I will keep that in mind and will look into FPGAs from different companies. But since Xilinx is unfortunately at the top of the FPGA markets, they certainly have demand in European firms.Regards,VeeJayy

author: rstofer
author_rank: Super Contributor
timestamp: January 12, 2022, 04:20:31 pm
content: Legacy means old, obsolete and no longer supported. Kind of like Windows 7. Even though ISE 14.7 does run on Windows 10, I have no idea whether the platform cable works. I keep a legacy machine with Windows 7 around just in case I want to work with my legacy Spartan 3 boards.It's unreasonable to expect Xilinx to support legacy parts and code back to the beginning of time unless the purchase contract called for it and then it would cost a ton of money. If manufacturers are using obsolete devices and tools, they better be prepared to support them internally. Today, the entry level chip is the Artix 7, not the Spartan 2.At DigiKey, they list just one Spartan 3 device and it is only available through a 3rd party seller with none in stack and the item classified as a "Marketplace Product". I doubt I will be buying any more but I do want a way to work with the ones I have. A Windows 7 machine is just fine.Xilinx spent an estimated $200 million dollars to develop Vivado and that is the platform going forward. It makes no sense to spend that kind of money and still support ISE.

author: VeeJayy
author_rank: Newbie
timestamp: January 12, 2022, 09:46:18 pm
content: Yeah that's quite understandable.The difference between ISE and Vivado can be seen and felt pretty quickly. I have worked with the Artix 7 quite recently but it was a small board from digilent with 35K LEs.If I did want to develop into a good VHDL developer (may be also a verification engineer), do you have any projects that I could begin from?I did my due research and found that the companies which use FPGAs in their projects, use it predominantly for high speed ethernet projects as well as signal/data processing.Would you have any suggestions where I can align them to my future plans with respect to possible applications? (With beginner-advanced level VHDL understanding)Thank you.Regards,VeeJayy

author: CaptDon
author_rank: Super Contributor
timestamp: January 12, 2022, 10:18:54 pm
content: The fact the the platform cable worked with the older ISE stuff under windows 7 means the hardware WAS capable. After the upgrade to Win 10 the platform cable no longer worked with the older ISE and associated tools. Would it have been so hard for Xilinx to have released a retrofit driver?? No, they said stick it pal!!! And crapvado didn't support the older products although the platform cable now worked with Vivado on Win 10 so we know there was still an implied hardware compatibility to use the platform cable. I hate to tell you, but maybe Xilinx dropped support for 'Their' legacy or obsolete products, but for us designers who used their shit, we had to provide continued support to OUR products and customers. When we migrated to Win 10 in one night we could no longer use the platform cable for older products still of recent manufacture in the field. Xilinx could care less. We got a lot of bad fabric from them that required extensive power supply timing or the fabric would get damaged. We had to start using 'supercaps' to get controlled shutdowns or their fabric would die. Round and round, up and down and every time Xilinx said "Tough shit homey". We migrated!!! The only thing from Xilinx that I liked was the 'Schematic Capture' client which allowed my 74XXXTTL/4XXXCMOS building block design team to keep picking and placing building blocks within the fabric until we could get some VHDL/Verilog expertise in house. I still do small CPLD's with Schematic Capture. It is simple, easy and can be printed out in a logic block diagram that any engineer can read and understand even if they are clueless about VHDL/Verilog. The Win10 boondoggle which would have made it impossible for us to release CPLD/FPGA code updates to our products in the field, and the Xilinx indifference to this industry wide setback changed our minds about who our suppliers would be. Of course the work-around was keep a Win7 or XP machine handy. Isn't that a nice thing to tell field service. Xilinx blows so now you need to carry two laptops out to the field. Sadly Win10 hates dual-boot senarios.

author: SiliconWizard
author_rank: Super Contributor
timestamp: January 12, 2022, 10:59:47 pm
content: Don't bother with those "platform cables" with Xilinx parts. Use FTDI-based JTAG probes. Absolutely no issues.If you want something that just works, just buy a Digilent HS2/HS3 adapter. Works with a number of programming tools, including of course Digilent Adept, which is one of the fastest for programming Xilinx parts.

author: RoGeorge
author_rank: Super Contributor
timestamp: January 13, 2022, 01:50:56 am
content: The fact that you wrote "coding VHDL" makes me think you are coming from a computer science background. FPGA is not about "coding", it is about "digital design", or else said designing schematics. It is just a coincidence that those schematics are described as VHDL text instead of circuits drawing.Digital Designhas nothing in common withSoftware Design.Look for classes about Digital Design at first. Everything that covers logic gates, flip-flops, counters, (de)multiplexers, CLC, Mealy/Moore machines, state charts, glitches, metastability, synchronous vs asynchronous designs, etc.Once the hardware aspects are clear, focus on learning VHDL or Verilog, then learn about vendor specific toolchains like ISE/Vivado, Quartus, Multisim for simulations, etc. and how to "draw" a digital circuit, a schematic, with text.Later, learn how to write constraints (knowing a little Tcl - the programming language might help, for example Vivado uses Tcl a lot, and knowing Tcl would help understanding Vivado text messages, errors and commands), and get closer to the design tools.Then, there are FPGA specific hardware structures to learn about, like LUT, BRAM, Block RAM, PLL, SERDES, MAC/DSP, ARM cores, etc.This is a very long learning journey, and some parts of it can get quite tedious. It takes many years to master all these. On top of it, current FPGAs can easily have 10 000 - 100 000 pages of datasheets, manuals and application notes. You don't need to read each and every page, but all these docs can be overwhelming, especially at the beginning.There is always the top to bottom approach, where one can use an FPGA with the help of a high levelprogramminglanguage like C (e.g. Vivado HLS), so without the need to learn hardware design, or hardware description languages like VHDL or Verilog.This approach might be wasteful in terms of FPGA area, but so far the advances in chips manufacturing were on the verge of miracles. So, unless the hardware BOM is under a very tight control, slapping a bigger FPGA on a board then wasting its resources with HLS programming instead of using a tight digital design, might make sense financially. Skilled FPGA engineers are hard to find.Then there is even easier ways to make use of a FPGA, like graphic languages, for example LabVIEW FPGA, where it is all about dragg&drop blocks and interconnecting them, thinking more in terms of dataflow than in terms of digital hardware.There is a big difference between FPGA design vs. verification, especially if the company is big enough to have dedicated teams for each of these steps. The set of skills and tools needed/used on a day to day basis are very different.Usually, verification requires less skills, offers more jobs, but the tasks can get very repetitive, and testing/verification jobs are usually paid less.R&D jobs require higher and more specialized skills than testing, but the job offers are not that many as in verification, while the payment can be much higher, especially for senior digital design engineers. Even better payment is to find if you follow a career in management.I don't know what path to recommend, it all depends of each one's goals, skills, personality, and luck.

author: rpiloverbd
author_rank: Regular Contributor
timestamp: January 13, 2022, 12:56:59 pm
content: You can apply as an IC layout designer in semiconductor design companies. As you're in Germany, I think you can try for a job at 'Infineon Technologies ' or similar companies.

author: CaptDon
author_rank: Super Contributor
timestamp: January 13, 2022, 02:52:18 pm
content: SiliconeWizard, you are correct in ditching the very expensive and failure prone Platform Cable. We had an in-house guy who fixed those cables for us and other local companies. Seems there is a couple of surface mount transistors prone to failure and we could really never get a handle on why. The other varieties of JTAG cables do seem to work (sometimes need a downloadable driver) and are FAR less expensive. They also seem more robust against however my team was killing the Xilinx offering. I held on to an older black colored platform cable. It only draws 90ma and seems to work with any laptop. The newer red platform cable needs something like 150ma and older laptops apparently had some kind of 100ma soft current limit on the USB port unless specifically enabled to go higher by one of the Xilinx cable drivers. I also have a 'parallel port' Xilinx JTAG cable that I keep mostly for the novelty of it. It was dog slow but never failed to work back when we very first got into the world of JTAGGING. Cheers!!

author: emece67
author_rank: Frequent Contributor
timestamp: January 13, 2022, 06:48:03 pm
content: .

author: VeeJayy
author_rank: Newbie
timestamp: January 14, 2022, 02:59:53 pm
content: Hey RoGeorge,Unfortunately, as i come from an analog background with no experience in digital design or coding, except for the fact that I have taken a few C programming courses, my outlook regarding VHDL has tilted towards 'coding VHDL'.This perspective is due to the lack of development opportunities and lack of challenges with Timing issues, giving pipelining solutions etc which have resulted me in directly coding VHDL not knowing the implications of loops in it.The concept of designing logic gates. flip flops, counters and so on have been forced into my head (By myself) and eventually seem to be bearing fruit, whereas eliminating asynchronous signals from our designs does not seem to be important for our applications. Hence, the lack of experience of 'digital design' concepts.Despite the efforts to understand the concept behind integrated RAMs, PLL and SERDES, nothing often opens your mind up to these concepts except when you actually work on projects related to it. As you said the journey seems quite tedious, but I am eagerly looking forward to it.What does not seem to come my way are opportunities (Everyone seems to want project oriented experience) and that is where I seem to lack. Hence, the questions regarding something that I can improve on that companies can look at it and say that's something that we would need.With regards to the top to bottom approach, I would also not prefer to go that way as in I feel I do have enough time to go into the niche area of just pure HDL programming and probably learning a verification language along with it.Anyway, thank you for your suggestions. I get the vision that you suggest of the 'Ideal digital designer' and frankly I wanted that.Well that's pretty much the shit that I am in, where there's infinite interest to learn (but far too less time since I am engrossed in my daily job too), but I really want to make it count in VHDL since it's hardware oriented, a niche industry and quite challenging.It would really be cool if you could suggest someplace to start from (or continue)Thanks,VeeJayy

author: VeeJayy
author_rank: Newbie
timestamp: January 14, 2022, 03:07:52 pm
content: QuoteDid the work involve verification using VHDL? Would be interested to know the verification tools you used.QuoteYeah, I can stress the importance of luck enough. I feel it's really important that someone gets a good start to their career or be involved in projects that fit the market demands. There's some eventual path that you tend to go towards. That, in addition to being lucky enough to find someone who is ready to 'give an opportunity' to beginners.That, is the toughest part. Getting with the job is the easy part is what I have found to be.If I got a penny for every single time they said we need more experience.Would be quite open to any suggestions of a path I need to pave this year.

author: emece67
author_rank: Frequent Contributor
timestamp: January 14, 2022, 04:15:25 pm
content: .

author: RoGeorge
author_rank: Super Contributor
timestamp: January 14, 2022, 06:42:36 pm
content: You talk about VHDL and loops, but it is not clear to me if you already clarified for yourself the difference between synthesizable and non-synthesizable VHDL. Before moving on, it is a must to know the difference.VHDL is a mixture,hardwaredescription (synthesizable code that translates into digital circuits inside an FPGA, the "schematic as text" I was talking before), mixed with programming language structures, like loops. The former ones are not syntesizeable into schematic, they will never in the FPGA bitstream, they will never run inside the FPGA.So, from the perspective of synthesizable code that describes the schematic that is put inside the FPGA, VHDL is not a programming language, but a hardware description language. However, other structures like loops and so on, which are specific to software programming languages were added to it. So, technically, from a software developer standpoint, VHDL is Turing complete therefore a programming language. To a hardware developer, VHDL being Turing complete is irrelevant, won't insist any longer on this aspect, something like it is asked here:https://electronics.stackexchange.com/questions/572019/why-do-non-synthesizable-commands-even-exist-in-vhdlBefore buying classes, IMO the best are the free classes from recognized Universities, at a brief search, this one from MIT might be good to check against and see what you know already and what to search more about:https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-111-introductory-digital-systems-laboratory-spring-2006/For example, take the class notes and see if those notions are already familiar or not to you (the Finite State Machine is a key concept in FPGA and digital design, but pay attention to all other terms there):https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-111-introductory-digital-systems-laboratory-spring-2006/lecture-notes/l6_fsm.pdfIt happens the one I find is for Verilog. Verilog to VHDL is like Python to C, but maybe if you search more you can find a VHDL one from similarly reputable sources. Anyways, switching between HDL language is OK-ish if you already know digital design.Similar for VHDL, simulation, etc. I'll look for university classes from the most prestigious EE, otherwise I don't know which one exactly to recommend. I tend to stay away from payed classes, but that's just me.For project, you just take one that steers your interest and start doing it. If you play music, do a synthesizer, if you like fishing do a sonar, and so on, pick a theme that you would enjoy. Doesn't has to be rocket science from day 1, but it matters a lot to want it and to need it, because "necessity is the best engineer" is not just a saying, it's heavy truth. Some hobby level projects or a blog about related projects might weight as much as an engineering diploma when it comes to get a job.Maybe we should have started from the how to get the job approach in the first place:- do a search for "FPGA interview questions", the questions you'll find would be a good check to discover where you stand and what you don't know yet, and what to learn- apply to as many FPGA related jobs as you can find, and go to all the interviews even if you don't really want that job- might be easier to find a job in testing at first, then after a while show your will to move to the dev team, is that is what you wish- keep practicing and do as many personal project as you can- post these projects in a blog, a forum, or some place where one can click and see your work. It doesn't has to be perfect, but being a clean write and well organized matters. Usually nobody has time for watching an applicant video, but everybody will be happy to look at a few nice pics even if it's just a well known devboard with some extra wires or a PCB addon for it.- in your CV/resume and use your own words, stay away of HR stereotypes wording that puts anybody to sleep- be honest, but don't omit things you did and that might be related with the job, one year in a FPGA team is big plus in a CV, no matter the role. Don't diminish and don't emphasize whatever was that you did there.- bring a project with you, if possible. Doesn't has to be a finished product, a PCB or a devboard may be enough. In general, a board with a lighten LED and some parts that one can touch and look closely is way more impactful than a very elaborate (software) demo that took you 10 000 hours of hard work. Has to be a physical object. That can help a lot in 2-nd 3-rd interview levels, many will ask you questions related to your project, and such questions will suit you better than some other random question.- don't try to fit your training according to a given job announcement, nobody expects to find the perfect fit, but somebody with enough background to adjust to the given job- again, apply to interviews even if the job doesn't look stellar- again, go to interview and win the job even if you don't want it- don't be discouraged if you don't get a job, failures are in fact the best teaching lessons- again, apply and go to interviews starting right now, you don't have to wait until you reach perfection. Strive for excellence all the time, yes. Wait for perfection before acting, no.Your experience might be already more than enough for some jobs out there, so keep hunting for jobs while you keep learning. A too tight plan for a rigid career path might make you miss other options that serendipity has to offer.Pick a project theme for your devboard and start working on something you wish or useful to you, meanwhile take some online classes, apply for any FPGA related jobs, go to all interviews. Don't get disappointed if you don't get the job from the first try.Sometimes you get the job from the first try, sometimes after applying to a hundred places, you can never know, best luck!

author: VeeJayy
author_rank: Newbie
timestamp: January 16, 2022, 03:12:55 pm
content: Hey RoGeorge,Would really like to thank the inputs from your side. I must say, it's great that someone takes their valuable time to share their perspective. My appreciation for it cannot be quantized.Coming to the courses aspect of it, I will look up universities like MIT as you have mentioned, for really good courses to build up a really good base in FPGAs.I would also look for something with detailed information regarding simulation too, as I gather from this thread that simulation is something that just cannot be ignored.The project part is in fact something that I do not know where to begin, but I think I must be having a smartfusion 2 board lying somewhere, and I will look up for a few mini projects on Git or forums to begin with. If not Smartfusion (Microsemi FPGA) then I will resort to something to do with an Artix 7.The whole process of development, simulation, implementation and debugging is what I want to go through to learn. I will try to look for links to it.QuoteThis would be my main focus for the first half of the year. As I said, it is of utmost importance to me that I know to develop and I do things from scratch, with some help from websites and forums. This would eventually provide a cool platform to show potential employers my interest to develop and learn.QuoteThis is what I hope makes a difference. Experience of being in a development cycle, no matter what the role is, hopefully is what different companies do see in the resume.QuoteI have been told to do the same thing by the people around me too.Unfortunately the success rate seems to be really less when it comes to Interviews. I have probably given up to 30 interviews till date. The strike rate here is 1/30.Albeit it beingbeforeI got the present job and also including the interviews given for the role of an FPGA developer (looking for the roles of an FPGA developer after I got this job), you eventually question yourself as to what is enough?That's where I seem to be stuck.QuoteThis will exactly be my flow for the next few months. As I have mentioned, I again thank you for the advice. It sometimes helps just to hear someone give an advice from their own experience. Must say, it makes me look forward to the year and it's challenges.Afterall Slow and steady, wins the race.

author: VeeJayy
author_rank: Newbie
timestamp: January 16, 2022, 03:19:39 pm
content: Hey emece67,Thank you for the detailed information regarding the verification methodologies.I did ask about it as i wanted to focus on verification methodologies which involved HDL. Seems like UVVM is something that is quite openly discussed.In addition, the use of TCL has also been discussed, and I will look to use it too when the time comes.I think for now, I will resort to VHDL development, simulations using ModelSim as well as look into UVVM as a plus point. I think they should let me have my feet in 2 doors at the same time (Dev and verification)Thanks!Regards,VeeJayy

author: tggzzz
author_rank: Super Contributor
timestamp: January 16, 2022, 03:28:14 pm
content: Quote from: VeeJayy on January 16, 2022, 03:19:39 pmDon't forget that validation comes before verification.

author: VeeJayy
author_rank: Newbie
timestamp: January 17, 2022, 08:32:24 am
content: QuoteThe validation part seems to be new to me.Could you please elaborate a little bit?

author: tggzzz
author_rank: Super Contributor
timestamp: January 17, 2022, 09:24:39 am
content: Quote from: VeeJayy on January 17, 2022, 08:32:24 amGoogle will elaborate, however the traditional English distinction isvalidation: do the right thingverification: do the thing right