Design Article
FPGA outsourcing: Ten questions you should ask
Mark D. Wecht, Embedded Systems Design
2/12/2009 4:30 PM EST
1. Can the effort be outsourced?
Software, hardware, and firmware efforts selected for outsourcing should result in deliverable components with well defined interfaces. There must be a technical point of contact (TPOC) with sufficient skills to manage an outsourced effort. The TPOC must understand the requirements, development budget, schedule, and interdependencies. The TPOC must be able to assign tasks to the engineering services provider and determine whether delivered components meet the outlined requirements.
2. Are there clear requirements for the effort to be outsourced?
It is important to have solid requirements for an outsourced effort. FPGA circuit and core logic requirements include:
- interfaces to the system (data, clock, control, and status) including width (serial or parallel),
- functional blocks in system,
- interfaces between blocks including data width,
- data rates into the system and between blocks (data rates are tied to data widths),
- clock domains into system and between blocks,
- memory (size, speed, and width),
- standards/specs,
- timing diagrams (setup, hold, latency tolerance), and
- schedule.
You can define all of your requirements internally before you talk with an engineering services provider, or you can hire an engineering services provider to help you develop the requirements. Many engineering services providers will provide a firm fixed price (FFP) quote for the upfront requirements development and requirements capture effort.
Hiring engineering services provider for requirements development has two subtle but important advantages. First, the engineering services provider will create a requirements document which you can use as a request for quote (RFQ) for the rest of the development effort. This will save you the effort of creating your own RFQ. In addition, the process of creating the requirements document allows you to determine how well your companies work together. If the working relationship doesn't meet your expectations, you can end the relationship quickly and cleanly. In contrast, it can be difficult and expensive to disengage from an engineering services provider once the development effort is under way.
3. What is the definition of success?
To define success, it is important to have a good test plan and solid acceptance criteria for any software, hardware, and firmware delivered by the engineering services company. You should work with the engineering services provider to create a test plan together and sign off on the plan at the critical design review. To be successful, the engineering services provider must demonstrate that its deliverables meet the acceptance criteria established. It is critical that the TPOC be capable of making acceptance decisions.
4. Is there an established schedule?
Before seeking quotes, it is important to have an established system development schedule or roadmap. You should minimize dependencies between outsourced components and other components in the system, as these dependencies can create undesired cost growth and schedule slips. Align your schedule to take full advantage of the staff augmentation achieved through outsourcing. Make sure to allow adequate time for component integration, especially if there are multiple engineering service providers.
5. What is the desired level of interaction during the effort?
Companies often overlook one cost benefit of outsourcing: it can reduce the management of staffing and development activities. To realize these savings, it is essential to keep your interaction with the service provider to a few key points in the development process. Below is an example design flow used internally by an engineering services provider for a VHDL-based FPGA design process. If interaction with the service provider can be limited during the development, requirements review, preliminary design review, and critical design review, you will benefit from significant cost savings. When outsourced component requirements are clear and you trust the service provider's judgment, you may choose to stay out of the loop completely and just set a delivery date.

(Click to enlarge)



Benji729
2/13/2009 1:15 PM EST
I'm not sure that talking about shortage in 2009 is really relevant.
Unless the author is stick in a year-2000 mindeset
Sign in to Reply
luca1
2/17/2009 7:54 AM EST
the effort on testbench definition is neglected!
Sign in to Reply
MutJinNohm
4/14/2009 2:10 PM EDT
I agree wth Benji729.
Engineer shortage is the story of 1999 or 2000. I see a whole bunch of layed off FPGA engineers looking for job and willing to get paid way less than they were getting paid.
Outsourcing is good idea only if you have firmly defined architecture and spec. under the assumption you know your design is accurate and your process is completely well defined. Otherwise, you will end up risking huge amount of money and time.
Sign in to Reply