Before discussing the criteria for choosing an FPGA design services, lets first explain what an FPGA is and what are the benefits of using an FPGA.
FPGA technology was introduced in the 80’s and allowed digital design teams to create custom logic in a re-programmable single chip. Back in the 80’s, FPGA’s capabilities and programming tools were very basic and enabled design teams to perform simple and small-sized logic functions.
FPGA is a chip that allows designers to custom design a chip with infinite programming iterations. FPGA can be reprogrammed after production and in the field multiple times. This give companies a huge flexibility with backward compatibility and future upgrades. Just image an electronic product that can change its functionality after deployment (yes, just like software)
As opposed to ASICs which are “hardwired”, FPGAs are “Field Programmable Gate Array” (i.e. FPGA). FPGA allows you to change product functionality without any cost and extra effort.
FPGAs consist of logic gates. The more the gates the more functionality that can be squeezed into a single chip. In the 90’s FPGA had 6000 gates. Today, modern FPGAs consist of millions of gates and offer analog and high-speed IO functionalities in addition to the classic digital logic gates.
FPGA design is done via a programming language. This area has been also developed since the 80’s and today hardware description language is as modern as C++ and other modern software programming language.
VHDL counter example:
always @(posedge clk)
if (reset) begin
out <= 8’b0 ;
end else if (enable) begin
out <= out + 1;
Using a high-level programming language makes it simple and easy to design an entire product into a single FPGA. FPGA designers do not need to worry about the gates placement and the routing inside the FPGA because a compiler (yes, just like in software) is responsible to convert the high-level block functionality into lower level gates and wires.
FPGA is programmed via special IO pins that can be connected to a CPU or a Flash memory. A CPU with an interface to the external world (via WiFi or USB interface) can easily fetch a new code for the FPGA and download it into the chip in real time or just after reset.
Although FPGA has numerous benefits it has also a few drawbacks. In some cases, engineers would prefer to use an ASIC (i.e. Application Specific Integrated Chip). ASIC is a non-programmable chip. Once it is designed and produced its functionality cannot be changed.
If the chip functionality should no change in the future and the chip should produce in high volume, then it makes sense to use an ASIC.
Let’s take a look at a real case that describes very clearly the FPGA and ASIC crossover point.
ASIC NRE: $1.5M
ASIC Unit Cost: $4
FPGA NRE: $0
FPGA Unit Cost: $8
In 2009 I applied for a job in San Diego. The job required hands on technical and commercial skills and therefore the interview was a bit tricky.
One very difficult question in the interview related to estimating different things. They asked me to estimate the number of Piano Tuning companies which are currently active in Tokyo, Paris and New Zealand. For the young readers, these are usually one-person company that tunes clients’ piano at their homes. Tuning is not required very often, perhaps only every 1-2 years.
There are many things to consider here. First: culture. How popular is the Piano in those areas. Second: Finance. Can these people afford a Piano? Moreover, I know that houses in Japan are relatively small. Is there a place for a Piano in the house? I had just too many puzzles in my head and I only had 3 minutes.
Eventually I was wrong.
It would have been easier to find the answer if I was more familiar with the music industry and particularly with the Piano market. And it would have been a piece of cake, if I was a Piano tuning guy myself, right?
This brings me to a very interesting discussion around evaluating RFQ responses from FPGA design companies.
In some scenarios you may consider outsourcing your FPGA design activities to an external company. Most of the electronics companies occasionally use external FPGA design services because they lack internal resources. The other type of companies, must use external FFPGA services because their core competencies are not around FPGA design.
Like in my piano story, the question is how do you evaluate FPGA design companies, which may be far away from your domain expertise? The answer is obviously by collecting price quotes for your FPGA project.
While there are really many FPGA design companies out there, you should send out your RFQ or FPGA specifications to no more than 5 companies. Dealing with more than 5 vendors during the early exploration phase will consume too much energy and will slow you down.
You should look for a development team that brings great value and minimizes the project risk. A team which is ‘spot on’ your project requirements. One indication that I use, is comparing the schedules provided by the different FPGA design houses. Naturally, there will be a few companies with a very optimistic schedule and a few with a very pessimistic schedule.
Over the years I developed my own metrics. My rule of thumb is as follows: FPGA design companies that acquired relevant experience and can reuse some of the design blocks from their previous projects will hand over the shortest schedule. And FPGA design companies which have no relevant experience will propose the longest schedule and thus also the highest risk.
In short, my recommendation is – look at the schedule and use it as an indicator to assess your risk.
Like in any other rule there are exceptions. If you are planning a very complex chip utilizing leading edge technologies, it could easily take 5 years of development. But all in all, it’s very similar to my piano story – it’s either guessing the way or knowing the way.
Are you ready to get price quote from FPGA design companies? Start the journey here: https://hardwarebee.com/vendor_category/fpga-design-services/