Difficulty: Easy
Correct Answer: Speed—they are too slow
Explanation:
Introduction / Context:Choosing between software running on microprocessors/DSPs and dedicated hardware (CPLDs/FPGAs/ASICs) is a core architecture decision. While software offers rapid iteration and rich libraries, some applications require deterministic, ultra-low-latency or high-throughput processing that general-purpose CPUs/DSPs struggle to achieve.
Given Data / Assumptions:
Concept / Approach:Microprocessors and many DSPs execute instructions sequentially (or in limited superscalar/parallel forms), whereas FPGAs exploit deep spatial parallelism. For tight timing loops, nanosecond-class I/O handshakes, or massive multiply-accumulate arrays, custom logic pipelines reach far higher deterministic speed with lower latency. Thus, the common limitation of software-only solutions is inadequate speed for demanding real-time tasks.
Step-by-Step Solution:
Identify workload requiring concurrent operations (for example, multiple filters, parallel protocol checks).Note that CPUs/DSPs serialize or partially parallelize; FPGAs instantiate many operations concurrently.Throughput scales with clock and parallel instances in hardware; software mostly scales with clock and instruction-level parallelism.Conclude that speed—insufficient for stringent tasks—is the major shortcoming of µP/DSP-only designs.Verification / Alternative check:Latency measurements routinely show sub-microsecond responses in FPGA logic versus millisecond or tens of microseconds for software stacks, supporting the speed argument in real deployments.
Why Other Options Are Wrong:
Common Pitfalls:Overlooking memory and I/O bottlenecks that further slow software solutions; ignoring determinism requirements (jitter) that hardware meets more easily than software on multitasking systems.
Final Answer:Speed—they are too slow
Discussion & Comments