A Field-Programmable Gate Array (FPGA) chip is a "virgin" semiconductor chip/IC, it is purchased without a specific end-application; its circuits/hardware logic (a huge matrix of transistors, logic blocks, memories, interconnection matrices, etc) is programmable and reconfigurable (in-situ: lab / field / flight) by the "user" with the desired end application, which is defined by softwareof HDL (Hardware Description Language).
FPGA technology: Pros
Their re-programming capacibility allow the benefits of the software paradigm and the hardware paradigm to be meet in the same single chip; FPGA tech. lets to develop complex digital logic functionalities at the circuit / hardware level (with reliability, uncountable parallelism, power, speed, latency and hardware determinism) but with the flexibility, fast time to market, updating and evolution of the software paradigm. That is the "panacea" of the new digital era, which is constantly evolving and adapting to regional regulations.
FPGA development: Cons
As a professional software development, the FPGA developments are not an easy task and require adequate development methodologies, as well as skills and solid knowledge regarding: low-level computing, electronics, programming and state of the art of FPGA technology, that keeps going in continuous evolution with an extensive offer, with regard end-applications, available architectures (FPGA, SoC and MPSoC) and diverse chips vendors. For these reasons, until now, FPGA developer teams are a "rare avis".
Well, this is what we do at GENERA Technologies, we are that "rare avis" since 2009. Contact us, we would like to know how we can help you ;)