| 1 | Define the primary workload | Classify the design as signal processing, industrial control, networking, image processing, data acquisition, or hardware acceleration. | Identify the dominant operation, such as filtering, packet handling, motor control, video pipelines, or custom parallel computation. | - Input and output data types
- Required interfaces
- Real-time or batch-processing behavior
| Choose an FPGA architecture whose embedded resources match the workload instead of selecting mainly by logic-cell count. |
| 2 | Estimate logic and register capacity | Determine the size of the intended RTL design, including control logic, datapaths, state machines, and interface logic. | Plan for implementation utilization below 100%; a practical design target commonly leaves approximately 10–20% capacity for timing fixes and future changes. | - Look-up tables and configurable logic blocks
- Flip-flops or registers
- Expected synthesis overhead
| Use post-synthesis and post-place-and-route estimates where possible, because RTL size alone does not predict final resource usage accurately. |
| 3 | Match DSP and arithmetic resources | Identify multiply-accumulate operations, finite impulse response filters, transforms, matrix calculations, and fixed-point datapaths. | Calculate operations per sample, samples per second, operand width, and required parallelism. | - Number and width of hardware multipliers
- Accumulator width and saturation needs
- Floating-point or fixed-point arithmetic
| Select sufficient dedicated DSP blocks to avoid implementing large multipliers only with general-purpose logic. |
| 4 | Size on-chip memory correctly | Account for buffering, line stores, coefficient tables, packet queues, frame storage, and processor firmware. | Determine total bytes, number of simultaneous buffers, read/write ports, access latency, and required memory bandwidth. | - Block RAM and distributed RAM capacity
- Memory block aspect ratios
- External DDR or other memory requirements
| Check both memory capacity and port configuration; adequate total memory may still fail if the required parallel access pattern is unavailable. |
| 5 | Set clock frequency and latency targets | Define whether the system requires deterministic low latency, high throughput, or both. | Specify clock frequency, cycles per transaction, end-to-end latency, initiation interval, and data throughput. | - Clock domains and clock ratios
- Timing constraints and clock jitter
- Pipeline depth and reset behavior
| Evaluate timing using realistic constraints and placement conditions; a higher nominal speed grade does not guarantee timing closure for every design. |
| 6 | Verify I/O and protocol compatibility | List all connections to sensors, converters, processors, storage devices, displays, and communication equipment. | Define interface data rates, lane counts, transaction sizes, and allowable latency or backpressure. | - I/O voltage standards and electrical signaling
- Differential or single-ended connections
- Required serial, memory, or board-level protocols
| Confirm that the package provides enough correctly positioned pins and that the I/O banks support the required voltage and signaling standards. |
| 7 | Check processing-system requirements | Decide whether the design needs only programmable logic or also requires embedded processors for configuration, control, networking, or software tasks. | Estimate processor workload, interrupt rate, firmware memory, operating-system needs, and hardware–software communication bandwidth. | - Embedded processor availability
- Processor memory and peripheral interfaces
- Shared-memory or bus architecture
| Use a device with an integrated processing subsystem when it reduces board components and meets the software workload without excessive external hardware. |
| 8 | Evaluate power and thermal limits | Define the operating environment, duty cycle, enclosure size, cooling method, and maximum allowable temperature. | Estimate static and dynamic power at the intended voltage, clock frequency, toggle rate, memory activity, and transceiver usage. | - Power-supply rail count and current capacity
- Junction-temperature limit
- Heat spreading, airflow, and thermal resistance
| Perform power estimation early and include startup, worst-case workload, configuration, and transceiver power in the thermal analysis. |
| 9 | Plan configuration and security | Determine how the FPGA will load its design in production, during field updates, and after power interruptions. | Specify configuration time, update frequency, recovery behavior, and protection requirements for the bitstream and stored data. | - Nonvolatile configuration memory
- Supported configuration interfaces
- Authentication, encryption, and tamper-response needs
| Choose configuration features that support reliable boot, secure updates, rollback or recovery, and protection of application intellectual property. |
| 10 | Confirm package, lifecycle, and development support | Assess PCB constraints, production quantity, qualification requirements, maintenance period, and development-team experience. | Compare achievable performance after place-and-route with the available tools, reference designs, verification flow, and schedule. | - Package size, pin count, and PCB escape routing
- Operating-temperature and reliability requirements
- Tool support, IP availability, documentation, and device lifecycle
| Make the final choice only after confirming that the device can be sourced, designed in, tested, supported, and maintained for the full product life. |