Turns a signal-processing algorithm into a real-time circuit.
Test the algorithm in Python or Matlab
Choose what runs in the FPGA and what stays in software
Manage pipelines, number formats and available resources
DSP · VHDL · Python/Matlab · fixed point · pipelines
FPGA Prototyping / SoC Emulation Engineer
Runs all or part of a future SoC on one or more FPGAs so it can be tested before the chip is made.
Split a large design across one or more FPGAs
Bring up clocks, resets, memories and interfaces
Help software teams start the BIOS, Linux or drivers
Multi-FPGA · HAPS · SDC · C/C++/Python
FPGA / SoC Architect
Usually a senior role. The architect defines the system structure and divides work between hardware and software.
Choose the main blocks, buses, memories and interfaces
Compare options based on speed, resources, cost and power
Keep FPGA, board, software and system teams aligned
System architecture · AXI · memory · interfaces · HW/SW
FPGA / EDA Applications Engineer
Helps customers and other teams use FPGA devices, tools and platforms.
Build examples, demos and small prototypes
Help solve integration or tooling problems
Explain solutions and share user needs with the product teams
FPGA/EDA · debug · demos · communication · Tcl/Python
Advice
Prepare for your interview
You do not need to recite a textbook. Explain your decisions and how you work through a problem.
01
Know how to talk about your projects
Pick two projects you know well. Explain the goal, what you did, the hardest problem and how you checked that it worked.
02
Explain what you are doing
It is fine if you do not know the answer straight away. Say what you understand, state your assumptions and work through it step by step.
03
Use numbers when you can
A clock frequency, cycle count or LUT estimate makes your answer more concrete. A rough estimate still shows that you understand the hardware cost of your design.
04
Say how you would test it
Think about normal use, edge cases, reset and possible failures. The point is to show that you look beyond writing the code.
Questions / answers
Technical questions
Try answering in your own words first, then open the answer to check whether you covered the main points.
25 / 25 questions
FPGA flowWhat is the difference between synthesis and implementation?
Synthesis turns VHDL or Verilog into a netlist made of logic resources. Implementation then places those resources inside the FPGA, routes them and checks timing. The tool can generate the bitstream after those steps.
LogicWhat is the difference between a flip-flop and a latch?
A flip-flop stores its input on a clock edge. A latch stays transparent while its enable signal is active. Synchronous FPGA designs mainly use flip-flops and generally avoid unintended latches.
VHDLWhat does a for loop do in synthesizable code?
Synthesis unrolls the loop and repeats the requested hardware. It is not a loop executed several times by a processor. A loop with eight iterations may therefore create eight pieces of parallel logic, depending on its contents.
SynthesisWhat is the difference between inference and instantiation?
With inference, you write RTL and let the tool recognise the resource, such as a block RAM. With instantiation, you directly use a vendor primitive. Inference is usually more portable, while instantiation gives tighter control over a specific resource.
CDCWhat is metastability, and how do you reduce the risk?
A flip-flop can become metastable when its input changes too close to a clock edge. A two-flop synchroniser is common for a one-bit control signal. A bus or data stream needs a handshake or an asynchronous FIFO instead.
MemoryWhat is the difference between a FIFO and block RAM?
Block RAM is a physical memory resource inside the FPGA. A FIFO describes how data is stored and read: first in, first out. A large FIFO may use block RAM as its storage.
MemoryWhat is the difference between SRAM and DRAM?
Both are volatile. DRAM needs regular refresh but provides much more capacity at a lower cost. SRAM is simpler and faster to access but uses more area. External DRAM is commonly used for large amounts of data.
ClockingWhat does a PLL do inside an FPGA?
A PLL creates one or more clocks from an input clock. It can multiply or divide the frequency and adjust the phase. Those generated clocks must then be described correctly in the timing constraints.
TimingWhat are setup and hold times?
A flip-flop input must be stable for a short time before the clock edge: that is setup time. It must also remain stable for a short time afterwards: that is hold time. Breaking either requirement can lead to a wrong value or metastability.
FSMWhat is the difference between Moore and Mealy state machines?
Moore outputs depend only on the current state. Mealy outputs depend on both the current state and the inputs. A Mealy machine can react sooner, but its outputs may need more care.
ResourcesWhat is a LUT, and what else is inside an FPGA?
A LUT is a small truth table that implements a logic function. FPGAs also contain flip-flops, internal memories, DSP blocks, PLLs, I/O resources and sometimes high-speed transceivers or embedded processors.
ArchitectureWhy choose an FPGA instead of a processor or an ASIC?
An FPGA is useful for parallel work, predictable timing, high data rates and reprogrammability. A processor is easier for frequently changing software. An ASIC can be faster and more efficient at high volume, but it costs far more to design.
High-speed linksWhat is a SERDES used for?
A SERDES converts parallel data into a fast serial stream and performs the reverse operation at the receiver. It is used by interfaces such as PCI Express, Ethernet and SATA. At those speeds, clocks, PCB layout and constraints matter a great deal.
ArithmeticWhat are FPGA DSP blocks used for?
They are dedicated hardware blocks for fast multiplication, addition and accumulation. They are widely used in filters, image processing and fixed-point calculations while saving LUT resources.
VHDLInside a VHDL process, what is the difference between a signal and a variable?
A variable takes its new value immediately inside the process. A signal is updated after the process suspends, during a delta cycle. This matters when assignments follow one another because reading a signal still returns its previous value. The hardware produced still depends on the whole piece of code, not only on the assignment operator.
Combinational logicWhy can an incomplete combinational process create a latch?
If an output is not assigned in every possible case, it has to keep its previous value. The tool therefore adds storage, which means a latch. Give every output a default value and cover every branch of each if and case statement. In VHDL 2008, process(all) also prevents signals from being left out of the sensitivity list.
ResetWhy must an asynchronous reset be released carefully?
Reset can be asserted immediately, but releasing it close to a clock edge may make some flip-flops restart before others or become metastable. A common approach is asynchronous assertion followed by synchronous release. Each clock domain needs its own reset synchroniser.
TimingWhat does negative slack mean in a timing report?
It means that a path misses the required margin. For setup, the data arrives too late; for hold, it changes too early. Before changing the RTL, check that clocks and constraints are correct, then find out whether the problem comes from too much logic, routing, fanout or an incorrect clock-domain crossing.
PipeliningWhat do you gain and lose by adding a pipeline stage?
The register splits one long combinational path into shorter paths. The design can often run at a higher clock frequency and accept more data back to back. The trade-off is extra latency, more registers and the need to keep control signals aligned with the data.
CDCHow would you move a short pulse into a slower clock domain?
A two-flop synchroniser is not always enough because the slower domain may never sample a narrow pulse. The pulse can be stretched, converted into a toggle, or sent through a handshake. The destination then rebuilds a one-cycle pulse, and an acknowledgement prevents events from being lost when they arrive close together.
ArithmeticHow many bits are needed for the result of a multiplication?
Multiplying N-bit and M-bit values can require up to N + M result bits. If fewer bits are kept, you must decide which bits are removed and how overflow is handled. Fixed-point designs must also track the binary-point position and make truncation, rounding or saturation an explicit choice.
Asynchronous FIFOWhy are Gray-coded pointers commonly used in an asynchronous FIFO?
Adjacent Gray-code values differ by only one bit. When a pointer enters the other clock domain, this reduces the risk of sampling an inconsistent mix of several changing bits. The pointers still need synchronisation, correct constraints and careful comparison to produce the full and empty flags.
HardwareWhat does a decoupling capacitor do, and why place it close to the pin?
It supplies part of the current locally during a fast transition and limits rail variation. A long trace or loop adds inductance, so placement matters as much as value. I start with the device recommendations and then measure the rail near the load.
I/OHow do you check whether two devices can be connected directly?
First compare the electrical levels on both sides. Maximum low output must stay below VIL and minimum high output above VIH under the intended current load. I also check FPGA bank voltage, I/O standard, and whether level translation is needed.
Board bring-upWhat do you check before and during the first power-up of an FPGA board?
Before applying power, I inspect assembly and measure resistance from each rail to ground. I start with a cautious current limit, then check current, rails, clock, reset, configuration, and JTAG in that order. If a rail is wrong or a part heats quickly, I remove power and find the cause.
Mock interview · Club
A mock interview with Jayson Dangremont
The session has 45 minutes of questions for the role you want, followed by 15 minutes to review your answers together.
Jayson Dangremont
FPGA SoC Architect
45 min of questions and a technical exercise
15 min to go over your answers together
Questions suited to your level
It is practice, not a real hiring interview
1,100 prepared questions: VHDL, FPGA, hardware, OSVVM, verification, CDC, and more