FPGARelated.com
Forums

Starting a career with FPGAs

Started by Alexander Kane October 3, 2010
Hello.
I'm currently coming to the end of my last semester of my four year
engineering degree in electronics and computer systems engineering.
I've really enjoyed working with FPGAs as part of my degree and am now
tutoring the FPGA course.  Basically I want to start a career working
with FPGAs, but am not sure how to go about it.  I live in New
Zealand, but as the job market here is so small I'm looking at Europe
(as I speak both English and German I figure that opens up several
countries I could work in).  Does anyone have any suggestions or
advice as to how I go about entering such a career, or what kind of
options are out there, or even websites I can look for jobs on?
Thanks in advance.
- Alexander
On 10/3/2010 5:11 PM, Alexander Kane wrote:

> I'm currently coming to the end of my last semester of my four year > engineering degree in electronics and computer systems engineering. > I've really enjoyed working with FPGAs as part of my degree and am now > tutoring the FPGA course. Basically I want to start a career working > with FPGAs, but am not sure how to go about it.
Suggestions: 1. Learn C++ also to write/debug drivers interfacing to the FPGA. 2. Learn scripting to verify the FPGA and drivers at the system level. Bash, python and tcl to start with. 3. Develop your your own project to demonstrate the above skills. Exercise popular interfaces on your FPGA demo board: GigE, SDRAM3, USB3 etc. Notes: 1. Unless you work for an FPGA manufacturer, few jobs involve FPGA work all day long. 2. Most tough FPGA bugs are at the interfaces to other chips. 3. Fixing an "FPGA" bug may not require any changes to the VHDL or Verilog code. Often the problem is a bad register setting on some other chip -- but one that only the FPGA guy can find. Good luck. -- Mike Treseler
On Oct 5, 6:50=A0am, Mike Treseler <mtrese...@gmail.com> wrote:
> Suggestions: > > 1. Learn C++ also to write/debug drivers interfacing to the FPGA. > 2. Learn scripting to verify the FPGA and drivers at the system level. > =A0 =A0 Bash, python and tcl to start with. > 3. Develop your your own project to demonstrate the above skills. > =A0 =A0 Exercise popular interfaces on your FPGA demo board: > =A0 =A0 GigE, SDRAM3, USB3 etc. > > Notes: > > 1. Unless you work for an FPGA manufacturer, > few jobs involve FPGA work all day long. > 2. Most tough FPGA bugs are at the interfaces to other chips. > 3. Fixing an "FPGA" bug may not require any changes to the VHDL or > Verilog code. Often the problem is a bad register setting on > some other chip -- but one that only the FPGA guy can find. > > Good luck. > > =A0 =A0 =A0 =A0-- Mike Treseler
Thanks for the pointers Mike. I realise that most jobs won't involve working with an FPGA all day long (I don't necessarily want to be "the FPGA guy"), but I would like to work on projects that involved them. In my studies I've done quite a bit of hardware design as well as software, it sounds from your post that software skills are much more important than hardware skills when working with FPGAs, is that right? And, I guess, I was also wondering what publications/websites or whatever might be good places to start looking for jobs. Anyway, I'll try follow up on your suggestions. - Alexander
What Mike said is really good advice. I would also add the following

1 - Learning more about board-level design is an asset (ICs, Clocks,
memory, microcontrollers ,PCB design, etc.) .
 To be an effective FPGA designer you don't need to know everything
about board-level design, but you need to be able to understand how
the circuits work. It will be much easier to interact with the other
engineers and you will be able to debug FPGA design more effectively.


2 - In small companies, the guy that designs the FPGA is often the
same guy that writes the microcontroller/microprocessor code to
interact with the FPGA. You need to learn embedded C/C++ . I would say
that C is used more often for microcontroller programming than C++.

For jobs :

I searched on google "FPGA + New zealand" and I found some job offers,
I think that should be a good starting point.
Alexander Kane <ajpkane@gmail.com> wrote:
(snip)
 
> Thanks for the pointers Mike. I realise that most jobs won't involve > working with an FPGA all day long (I don't necessarily want to be "the > FPGA guy"), but I would like to work on projects that involved them. > In my studies I've done quite a bit of hardware design as well as > software, it sounds from your post that software skills are much more > important than hardware skills when working with FPGAs, is that > right?
That doesn't seem right to me... Well, I believe that there are more software people than hardware people, so maybe that is why I would say that the hardware skills are more important. To me, it is very important that FPGA people think in terms of hardware, not software, even if VHDL and Verilog look like software.
> And, I guess, I was also wondering what publications/websites > or whatever might be good places to start looking for jobs. Anyway, > I'll try follow up on your suggestions.
Getting a job out of country won't be easy, because of the transportation costs. -- glen
On 10/04/2010 01:12 PM, Alexander Kane wrote:
> On Oct 5, 6:50 am, Mike Treseler<mtrese...@gmail.com> wrote: >> Suggestions: >> >> 1. Learn C++ also to write/debug drivers interfacing to the FPGA. >> 2. Learn scripting to verify the FPGA and drivers at the system level. >> Bash, python and tcl to start with. >> 3. Develop your your own project to demonstrate the above skills. >> Exercise popular interfaces on your FPGA demo board: >> GigE, SDRAM3, USB3 etc. >> >> Notes: >> >> 1. Unless you work for an FPGA manufacturer, >> few jobs involve FPGA work all day long. >> 2. Most tough FPGA bugs are at the interfaces to other chips. >> 3. Fixing an "FPGA" bug may not require any changes to the VHDL or >> Verilog code. Often the problem is a bad register setting on >> some other chip -- but one that only the FPGA guy can find. >> >> Good luck. >> >> -- Mike Treseler > > Thanks for the pointers Mike. I realise that most jobs won't involve > working with an FPGA all day long (I don't necessarily want to be "the > FPGA guy"), but I would like to work on projects that involved them. > In my studies I've done quite a bit of hardware design as well as > software, it sounds from your post that software skills are much more > important than hardware skills when working with FPGAs, is that > right?
Not necessarily -- good FPGA guys have to understand digital logic and it's embodyment with an HDL, they have to understand some analog to really grok the timing issues and chip interface issues, and they are often -- even in large groups -- called upon to design the boards on which the FPGA resides, so they have to be good with board-level design as well. Knowing software, too, is just a huge plus.
> And, I guess, I was also wondering what publications/websites > or whatever might be good places to start looking for jobs. Anyway, > I'll try follow up on your suggestions.
Pick a city or some cities and start looking at want ads, or go to company web sites and read the "Jobs offered" section. Rarely will you find a company advertising for a new college hire, particularly in this economy. Instead, look for companies that are hiring experienced guys that do what you want to do in 5-10 years, and apply there in hopes that they need to hire a junior guy as well. Even though you're in NZ, get a copy of "What Color is your Parachute". It's aimed at folks in the US who are changing careers, but there is lots of the material that's pertinent to anyone considering any job change -- and you're thinking of changing from a student to a professional, so that counts. Much will be irrelevant to your situation, but much will matter, so get a copy and sort it out. -- Tim Wescott Wescott Design Services http://www.wescottdesign.com Do you need to implement control loops in software? "Applied Control Theory for Embedded Systems" was written for you. See details at http://www.wescottdesign.com/actfes/actfes.html
On 10/03/2010 05:11 PM, Alexander Kane wrote:
> Hello. > I'm currently coming to the end of my last semester of my four year > engineering degree in electronics and computer systems engineering. > I've really enjoyed working with FPGAs as part of my degree and am now > tutoring the FPGA course. Basically I want to start a career working > with FPGAs, but am not sure how to go about it. I live in New > Zealand, but as the job market here is so small I'm looking at Europe > (as I speak both English and German I figure that opens up several > countries I could work in). Does anyone have any suggestions or > advice as to how I go about entering such a career, or what kind of > options are out there, or even websites I can look for jobs on? > Thanks in advance.
These days "digital designer", unless it's a chip company, either means "motherboard design" or "FPGA design". Start with "digital designer" and read the job posting -- you'll find lots of FPGA work. -- Tim Wescott Wescott Design Services http://www.wescottdesign.com Do you need to implement control loops in software? "Applied Control Theory for Embedded Systems" was written for you. See details at http://www.wescottdesign.com/actfes/actfes.html
On 10/4/2010 1:12 PM, Alexander Kane wrote:

> Thanks for the pointers Mike. I realise that most jobs won't involve > working with an FPGA all day long (I don't necessarily want to be "the > FPGA guy"), but I would like to work on projects that involved them. > In my studies I've done quite a bit of hardware design as well as > software, it sounds from your post that software skills are much more > important than hardware skills when working with FPGAs, is that > right?
Hardware skills are just as important. The point is that in most systems there are CPUs and other complex interface chips attached to to the FPGA, and that the FPGA work is not done until all the modes and interfaces are working.
> And, I guess, I was also wondering what publications/websites > or whatever might be good places to start looking for jobs.
For a new graduate, internships are best, if you can get one. Otherwise, work on your own and socialize with others who share your interests. -- Mike Treseler
On Oct 5, 2:49=A0am, Mike Treseler <mtrese...@gmail.com> wrote:
> On 10/4/2010 1:12 PM, Alexander Kane wrote: > > > Thanks for the pointers Mike. =A0I realise that most jobs won't involve > > working with an FPGA all day long (I don't necessarily want to be "the > > FPGA guy"), but I would like to work on projects that involved them. > > In my studies I've done quite a bit of hardware design as well as > > software, it sounds from your post that software skills are much more > > important than hardware skills when working with FPGAs, is that > > right? > > Hardware skills are just as important. > The point is that in most systems there > are CPUs and other complex interface chips attached to > to the FPGA, and that the FPGA work is not done > until all the modes and interfaces are working.
The number of hardware related jobs is steadily declining compared to the number of software related jobs. FPGA design can be considered a software job and in fact, at the last company I worked for full time, was organized under software and the entire hardware design was considered subservient to the software design. You very much can work in FPGAs and spend 95% of your time banging a keyboard writing and simulating code. I build boards and spend maybe a max of 20% of my time in the lab. Software is by far the dominant portion of electronic design for now and the foreseeable future. Embedded software is currently a hot area of work (mostly C code rather than HDLs) but may become less so as systems become more capable and embedded software becomes more like programming a PC. Another trend, although still in its infancy, is the merger of HDL with standard programming languages. It seems to be making slow headway, but there is a lot pushing it along. The idea of writing one program which can flexibly be partitioned into hardware and software is a highly prized goal. Rick
>2. Learn scripting to verify the FPGA and drivers at the system level. > Bash, python and tcl to s
Just a question... what kind of important tasks can be done with script that the vendor synthesiser (as QUartus II or ISE) cant handle?