IP PortfolioDatapath and DSP

Foundation datapath and DSP building blocks

Arithmetic, floating point, number formats, CRC/ECC, FIFOs and memories wrappers, arbiters, counters, DSP primitives (FIR, IIR, FFT, CORDIC, NCO), compression and encoding blocks.

Blocks 147Implemented 78Families 16FPGA + ASIC 147

integer arithmetic

33 blocks · 26 implemented
IDBlockMaturityTargetsDifficulty
of_add_rippleRipple-carry addersimulatedFPGA + ASICEasy
of_add_claCarry-lookahead addersimulatedFPGA + ASICEasy
of_add_cselCarry-select addersimulatedFPGA + ASICEasy
of_add_kogge_stoneKogge-Stone parallel-prefix adderfpga-routedFPGA + ASICEasy
of_add_brent_kungBrent-Kung parallel-prefix addersimulatedFPGA + ASICEasy
of_add_sklanskySklansky parallel-prefix addersimulatedFPGA + ASICEasy
of_addsubAdder/subtractor with flagssimulatedFPGA + ASICEasy
of_incIncrementer / decrementersimulatedFPGA + ASICEasy
of_absAbsolute valuesimulatedFPGA + ASICEasy
of_cmpMagnitude comparatorsimulatedFPGA + ASICEasy
of_minmaxN-input min/max with indexsimulatedFPGA + ASICEasy
of_sat_addsubSaturating adder/subtractorsimulatedFPGA + ASICEasy
of_csa_treeCarry-save adder tree (Wallace / Dadda)simulatedFPGA + ASICMedium
of_multpPartial-product multiplier (carry-save output)simulatedFPGA + ASICMedium
of_mul_arrayArray multipliersimulatedFPGA + ASICEasy
of_mul_booth4Radix-4 Booth multiplierfpga-routedFPGA + ASICMedium
of_mul_wallaceWallace-tree multipliersimulatedFPGA + ASICMedium
of_mul_daddaDadda-tree multipliersimulatedFPGA + ASICMedium
of_mul_pipePipelined multipliersimulatedFPGA + ASICMedium
of_macMultiply-accumulate unitsimulatedFPGA + ASICMedium
of_div_seqSequential divider (restoring / non-restoring)fpga-routedFPGA + ASICMedium
of_div_pipePipelined array dividersimulatedFPGA + ASICMedium
of_sqrtInteger square rootsimulatedFPGA + ASICMedium
of_requantFixed-point requantizer (round + saturate)simulatedFPGA + ASICEasy
of_mul_seqSequential shift-add multiplierplannedFPGA + ASICEasy
of_mul_karatsubaKaratsuba wide-operand multiplierplannedFPGA + ASICHard
of_div_srtRadix-4 SRT dividerplannedFPGA + ASICHard
of_div_constDivide-by-constant unitplannedFPGA + ASICEasy
of_int_aluInteger ALUsimulatedFPGA + ASICEasy
of_dotp_intInteger dot-product unit (INT8/INT4)simulatedFPGA + ASICMedium
of_recip_nrFixed-point reciprocal and reciprocal square rootplannedFPGA + ASICMedium
of_log_expFixed-point log2 and exp2 unitplannedFPGA + ASICMedium
of_pwl_funcPiecewise-linear function approximatorplannedFPGA + ASICEasy

floating point

14 blocks · 11 implemented
IDBlockMaturityTargetsDifficulty
of_fp_addFloating-point adder/subtractorsimulatedFPGA + ASICMedium
of_fp_mulFloating-point multipliersimulatedFPGA + ASICMedium
of_fp_roundFloating-point round & pack unitsimulatedFPGA + ASICMedium
of_fp2intFloating-point to fixed-point convertersimulatedFPGA + ASICMedium
of_int2fpFixed-point to floating-point convertersimulatedFPGA + ASICMedium
of_fp_fmaFloating-point fused multiply-addsimulatedFPGA + ASICHard
of_fp_divsqrtFloating-point divide and square rootsimulatedFPGA + ASICHard
of_fp_cmpFloating-point compare, min/max and classifysimulatedFPGA + ASICEasy
of_fp_cvtFloating-point format convertersimulatedFPGA + ASICMedium
of_bf16_dotpbfloat16 dot-product unitsimulatedFPGA + ASICMedium
of_fp8_macFP8 (E4M3 / E5M2) multiply-accumulatesimulatedFPGA + ASICMedium
of_mx_quantMicroscaling (MX) block quantizerplannedFPGA + ASICMedium
of_posit_unitPosit arithmetic unitplannedFPGA + ASICHard
of_fp_transcFloating-point transcendental unitplannedFPGA + ASICHard

bit manipulation

7 blocks · 4 implemented
IDBlockMaturityTargetsDifficulty
of_lzcLeading-zero / leading-one counterfpga-routedFPGA + ASICEasy
of_popcountPopulation countsimulatedFPGA + ASICEasy
of_priencPriority encodersimulatedFPGA + ASICEasy
of_shifterBarrel shifter / rotatorsimulatedFPGA + ASICEasy
of_bitrevBit, byte and nibble reverse / swapplannedFPGA + ASICEasy
of_bitmanip_rvRISC-V bit-manipulation unitplannedFPGA + ASICMedium
of_clmulCarry-less multiplierplannedFPGA + ASICEasy

code conversion

4 blocks · 4 implemented
IDBlockMaturityTargetsDifficulty
of_bin2grayBinary to Gray converterfpga-routedFPGA + ASICEasy
of_gray2binGray to binary convertersimulatedFPGA + ASICEasy
of_bin2onehotBinary to one-hot decodersimulatedFPGA + ASICEasy
of_onehot2binOne-hot to binary encodersimulatedFPGA + ASICEasy

error control coding

12 blocks · 3 implemented
IDBlockMaturityTargetsDifficulty
of_crcParallel CRCfpga-routedFPGA + ASICEasy
of_ecc_encHamming / SECDED encodersimulatedFPGA + ASICEasy
of_ecc_decHamming / SECDED decodersimulatedFPGA + ASICEasy
of_parityParity generator and checkerplannedFPGA + ASICEasy
of_bch_codecBCH encoder and decoderplannedFPGA + ASICHard
of_rs_codecReed-Solomon encoder and decoderplannedFPGA + ASICHard
of_ldpc_decLDPC encoder and decoderplannedFPGA + ASICVery hard
of_polar_codecPolar encoder and list decoderplannedFPGA + ASICVery hard
of_turbo_decTurbo encoder and decoderplannedFPGA + ASICVery hard
of_viterbiConvolutional encoder and Viterbi decoderplannedFPGA + ASICMedium
of_ecc_symbolSymbol-based memory ECC (single symbol correct)plannedFPGA + ASICHard
of_interleaverBlock and convolutional interleaverplannedFPGA + ASICEasy

control and scheduling

14 blocks · 12 implemented
IDBlockMaturityTargetsDifficulty
of_cnt_updownUp/down countersimulatedFPGA + ASICEasy
of_cnt_grayGray-code countersimulatedFPGA + ASICEasy
of_cnt_johnsonJohnson countersimulatedFPGA + ASICEasy
of_arb_fixedFixed-priority arbitersimulatedFPGA + ASICEasy
of_arb_rrRound-robin arbiterfpga-routedFPGA + ASICEasy
of_arb_wrrWeighted round-robin arbitersimulatedFPGA + ASICEasy
of_arb_matrixMatrix (least-recently-granted) arbitersimulatedFPGA + ASICEasy
of_credit_cntCredit countersimulatedFPGA + ASICEasy
of_debounceDebouncersimulatedFPGA + ASICEasy
of_edge_detectEdge detectorsimulatedFPGA + ASICEasy
of_oneshotOne-shot (monostable) pulse generatorsimulatedFPGA + ASICEasy
of_pwmMulti-channel PWM generatorfpga-routedFPGA + ASICEasy
of_sched_dwrrDeficit weighted round-robin schedulerplannedFPGA + ASICMedium
of_token_bucketToken bucket rate limiterplannedFPGA + ASICEasy

random number generation

4 blocks · 2 implemented
IDBlockMaturityTargetsDifficulty
of_lfsrLFSR (Fibonacci / Galois)simulatedFPGA + ASICEasy
of_prbsPRBS generator and checkersimulatedFPGA + ASICEasy
of_xoshiroxoshiro / xoroshiro PRNGplannedFPGA + ASICEasy
of_awgnGaussian noise generatorplannedFPGA + ASICMedium

storage helpers

14 blocks · 8 implemented
IDBlockMaturityTargetsDifficulty
of_fifo_syncSynchronous FIFOfpga-routedFPGA + ASICEasy
of_fifo_asyncAsynchronous (dual-clock) FIFOsimulatedFPGA + ASICMedium
of_lifoSynchronous stack (LIFO)simulatedFPGA + ASICEasy
of_regfileMulti-port register filesimulatedFPGA + ASICEasy
of_camContent-addressable memory (flop-based)fpga-routedFPGA + ASICMedium
of_delay_lineShift-register delay linesimulatedFPGA + ASICEasy
of_tcamTernary CAM (logic based)plannedFPGA + ASICMedium
of_pingpongPing-pong (double) bufferplannedFPGA + ASICEasy
of_line_bufferImage line bufferplannedFPGA + ASICEasy
of_fifo_packetPacket FIFO with commit and dropsimulatedFPGA + ASICMedium
of_queue_mgrMulti-queue shared buffer managerplannedFPGA + ASICHard
of_ram_wrapGeneric RAM wrappersimulatedFPGA + ASICEasy
of_robReorder bufferplannedFPGA + ASICMedium
of_hash_lookupHash table lookup engineplannedFPGA + ASICHard

number theory

4 blocks · 0 implemented
IDBlockMaturityTargetsDifficulty
of_mod_addsubModular adder and subtractorplannedFPGA + ASICEasy
of_mont_mulMontgomery modular multiplierplannedFPGA + ASICHard
of_barrett_redBarrett modular reducerplannedFPGA + ASICMedium
of_ntt_butterflyNumber-theoretic transform butterfly and engineplannedFPGA + ASICHard

encoding and line coding

8 blocks · 2 implemented
IDBlockMaturityTargetsDifficulty
of_enc_8b10b8b/10b encoder and decodersimulatedFPGA + ASICEasy
of_enc_64b66b64b/66b encoder, decoder and block locksimulatedFPGA + ASICMedium
of_enc_128b130b128b/130b encoder and decoderplannedFPGA + ASICMedium
of_scramblerScrambler and descrambler familyplannedFPGA + ASICEasy
of_enc_manchesterManchester and differential Manchester codecplannedFPGA + ASICEasy
of_enc_nrzi_stuffNRZI and bit-stuffing codecplannedFPGA + ASICEasy
of_enc_4b5b_mlt34B/5B and MLT-3 line coderplannedFPGA + ASICEasy
of_checksumInternet, Fletcher and Adler checksum engineplannedFPGA + ASICEasy

compression

5 blocks · 0 implemented
IDBlockMaturityTargetsDifficulty
of_huffman_decCanonical Huffman decoderplannedFPGA + ASICMedium
of_deflate_decDEFLATE / gzip / zlib decompressorplannedFPGA + ASICHard
of_deflate_encDEFLATE / gzip compressorplannedFPGA + ASICVery hard
of_lz4_codecLZ4 compressor and decompressorplannedFPGA + ASICHard
of_zstd_decZstandard decompressorplannedFPGA + ASICVery hard

dsp filters

7 blocks · 3 implemented
IDBlockMaturityTargetsDifficulty
of_firFIR filtersimulatedFPGA + ASICMedium
of_fir_polyphasePolyphase decimator and interpolatorsimulatedFPGA + ASICMedium
of_cicCIC decimator and interpolatorsimulatedFPGA + ASICEasy
of_halfbandHalf-band filterplannedFPGA + ASICEasy
of_iir_biquadIIR biquad cascadeplannedFPGA + ASICMedium
of_farrowFractional resampler (Farrow)plannedFPGA + ASICMedium
of_lmsAdaptive LMS / NLMS filterplannedFPGA + ASICMedium

dsp transforms and oscillators

6 blocks · 2 implemented
IDBlockMaturityTargetsDifficulty
of_fft_streamStreaming pipelined FFT/IFFTplannedFPGA + ASICHard
of_fft_memMemory-based mixed-radix FFTplannedFPGA + ASICHard
of_cordicCORDIC rotator and vectoring unitfpga-routedFPGA + ASICMedium
of_ncoNCO / direct digital synthesizersimulatedFPGA + ASICEasy
of_windowWindow function generatorplannedFPGA + ASICEasy
of_dct2D DCT / IDCTplannedFPGA + ASICMedium

dsp signal processing

7 blocks · 1 implemented
IDBlockMaturityTargetsDifficulty
of_cmulComplex multipliersimulatedFPGA + ASICEasy
of_mixerDigital complex mixerplannedFPGA + ASICEasy
of_ddcDigital down-converterplannedFPGA + ASICHard
of_ducDigital up-converterplannedFPGA + ASICHard
of_correlatorMulti-lag correlatorplannedFPGA + ASICMedium
of_matched_filterMatched filter and pulse compressorplannedFPGA + ASICHard
of_agcDigital automatic gain controlplannedFPGA + ASICEasy

sorting and selection

3 blocks · 0 implemented
IDBlockMaturityTargetsDifficulty
of_sort_networkSorting network generatorplannedFPGA + ASICMedium
of_merge_sortStreaming merge sorterplannedFPGA + ASICHard
of_topkTop-K selectorplannedFPGA + ASICMedium

matrix and linear algebra

5 blocks · 0 implemented
IDBlockMaturityTargetsDifficulty
of_systolic_mmSystolic matrix multiply arrayplannedFPGA + ASICHard
of_transposeMatrix transpose and corner-turn bufferplannedFPGA + ASICMedium
of_qr_givensQR decomposition (Givens rotations)plannedFPGA + ASICHard
of_choleskyCholesky decomposition and solverplannedFPGA + ASICHard
of_mat_invMatrix inversion unitplannedFPGA + ASICHard
Search and filter this category