{"id":"fpga-dsp-pipelines","level":"compute","name":"FPGA fabrics, DSP blocks and adaptive pipelines","shortName":"FPGA fabrics, DSP blocks and adaptive pipelines","role":"Configures a spatial datapath around a stream and its timing constraints.","description":"An FPGA uses configurable logic and routing to implement a circuit after manufacturing. A bitstream determines connections and state machines; it is different from launching threads on a fixed GPU datapath. Hardened DSP blocks provide arithmetic, embedded memories provide buffering, and processors may handle control. AMD Versal adds instruction-programmed AI Engines alongside programmable logic and DSP engines, so an AI Engine is not simply another name for FPGA fabric. Streaming sensor or packet pipelines can exploit this mixture, especially when custom interfaces or predictable latency matter. Mapping the design still requires timing closure and a complete path from input to output.","specs":[{"label":"Pipeline initiation interval","value":"Cycles between accepted inputs","context":"Distinct from cycles for one item to traverse the pipeline."},{"label":"Resource budgets","value":"Logic, DSP, RAM and routes","context":"The binding resource varies with arithmetic precision and connectivity."}],"interfaces":[{"name":"Input stream","direction":"in","signal":"Samples or packets with ready/valid flow control"},{"name":"Configured pipeline","direction":"out","signal":"Processed stream with bounded buffering behavior"}],"tradeoff":"Spatial specialization offers interface flexibility and predictable pipelines; configurable routing consumes resources and can constrain clock speed compared with a purpose-built ASIC.","whyAI":"Preprocessing and real-time inference may benefit from directly connecting acquisition, signal processing and model operators without repeated host transfers.","related":["mac","clock","chip-physical-closure"],"sources":[{"title":"Versal adaptive SoC overview, Vitis Tutorials 2025.2","url":"https://docs.amd.com/r/2025.2-English/Vitis-Tutorials-AI-Engine-Development/Versal-adaptive-SoC-overview?contentId=mgKv1D7qaapgh~kdwNF3xA"}],"scale":"Processing element to accelerator package; array tiles exaggerated","kind":"architecture","branch":"Processing architectures","subbranch":"Explicit dataflow and custom accelerators","mechanism":["Describe the required stream rate, arithmetic precision and response deadline before choosing a circuit structure.","Map repeated arithmetic into DSP resources and control logic into configurable state machines.","Insert local buffers and pipeline registers to balance stages and meet the chosen clock constraint.","Compile or configure AI Engine code separately where the device provides instruction-programmed vector engines.","Route the combined design, verify backpressure behavior and measure sustained input acceptance rather than counting arithmetic blocks alone."],"misconception":"An FPGA bitstream configures hardware; AI Engine software on an adaptive SoC targets a distinct instruction-programmed subsystem.","check":{"question":"A pipeline has 20-cycle latency and initiation interval 1. What can it do after filling?","options":["Accept one new item each cycle","Accept one item every 20 cycles only","Finish every input without buffering"],"answer":0,"explanation":"Latency describes one item’s transit time, while initiation interval describes the rate at which independent items enter."},"science":[{"title":"Pipeline throughput","equation":"R ≤ f / II","explanation":"f is clock cycles/s and II is initiation interval in cycles/item; R is items/s.","assumptions":"Continuous valid input, ready output, and no downstream backpressure; routing must meet the specified clock."}],"prerequisites":["flipflop","mac"],"learningObjective":"Distinguish configurable fabric, hardened DSP arithmetic and instruction-programmed AI Engines.","workstream":"W07","visualFamily":"architecture-array","engineeringExample":"Synthetic pipeline at 200 MHz with initiation interval two accepts at most 100 million items/s. Its 20-cycle latency is 100 ns, which is a different metric from that throughput.","evidenceNotes":"These are illustrative timing values. The Versal source establishes subsystem roles, not a guaranteed result for an arbitrary FPGA implementation.","labId":"library","scope":"Use the execution investigation for the shared tensor-to-memory-to-result thread; no current standalone calculator models this lesson’s full mechanism.","investigationId":"execution","labScope":"Use the execution investigation for the shared tensor-to-memory-to-result thread; no current standalone calculator models this lesson’s full mechanism."}